Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CyberNetScope

CyberNetScope is a fast network reconnaissance and port scanner written in modern C++. It resolves a target, maps its DNS records, scans TCP ports concurrently, grabs service banners, and detects product versions. For each detected service it prints a ready-to-run searchsploit query so you can cross-check known vulnerabilities yourself.

It does host discovery and enumeration only. It does not exploit anything.

demo

Русская версия ниже

Quick start

# 1. install dependencies
sudo apt update && sudo apt install build-essential cmake libssl-dev

# 2. build (both commands are required)
cmake -B build
cmake --build build

# 3. run
./build/cybernetscope --help
./build/cybernetscope scanme.nmap.org -p 1-1024 --deep

See Build for a step-by-step explanation.

What it does

  • Forward and reverse DNS resolution (A/AAAA, PTR).
  • DNS record lookups: CNAME, MX, NS, TXT.
  • Concurrent TCP connect scanning (no root required).
  • Banner grabbing and service/version detection.
  • TLS handshake details: protocol, cipher, and full certificate (CN, SANs, issuer, expiry).
  • HTTP fingerprinting: status, title, redirects, powered-by.
  • Built-in port reference: every open port is labelled with what it does.
  • Risk flagging: high-risk and commonly attacked ports are marked, with a one-line reason and an attention summary.
  • searchsploit query hints based on detected versions.
  • Dictionary-based subdomain enumeration.
  • Human-readable console output and JSON export.

Why connect scan

CyberNetScope uses TCP connect scanning, which completes the normal three-way handshake. It works without elevated privileges and is reliable through most NAT and firewall setups. It is not stealthy by design - if you need SYN/stealth scanning, that requires raw sockets and root, and is out of scope here.

Discovery runs on a single epoll loop driving thousands of non-blocking connects at once, so a full 1-65535 sweep finishes in seconds on a responsive host. Service fingerprinting (TLS, banners, HTTP) then runs only on the open ports.

Requirements

  • Linux.
  • A C++17 compiler (GCC or Clang).
  • CMake 3.16+.
  • libresolv (ships with glibc), pthreads and OpenSSL.

On Debian/Ubuntu/Kali:

sudo apt update
sudo apt install build-essential cmake libssl-dev

Optional external tools

CyberNetScope can shell out to these when the matching flag is used. They are optional - without them the related feature simply reports that the tool is missing:

sudo apt install masscan nuclei sqlmap

Build

Follow the steps in order. There are two cmake commands and they do different things: the first one configures the project, the second one actually compiles it. You need both.

Step 1 - get the code. Either clone the repo:

git clone https://github.com/d3xm0s/CyberNetScope.git
cd CyberNetScope

or, if you have the zip, unzip it and enter the folder:

unzip CyberNetScope.zip
cd CyberNetScope

Step 2 - install the build dependencies (skip if already installed):

sudo apt update
sudo apt install build-essential cmake libssl-dev

Step 3 - configure (creates the build/ folder and checks your system):

cmake -B build

Step 4 - compile (this is what produces the binary):

cmake --build build

After step 4 the binary is at build/cybernetscope. Check it works:

./build/cybernetscope --help

Optional - install system-wide so you can run cybernetscope from anywhere instead of ./build/cybernetscope:

sudo cmake --install build
cybernetscope --help

Common mistake: running cmake -B build and then trying ./build/cybernetscope right away. That only configures the project. You must run cmake --build build first to compile it.

If you don't want to use cmake, you can compile directly:

g++ -std=c++17 -O2 -Iinclude src/*.cpp -o cybernetscope -lpthread -lresolv -lssl -lcrypto

Usage

cybernetscope <target> [target...] [options]

Examples

Scan the top common ports of a host with banner grabbing:

cybernetscope example.com

Scan a specific port range:

cybernetscope 192.168.1.10 -p 1-1024

Scan every port fast:

cybernetscope 192.168.1.10 -p 1-65535

List what every known port is used for:

cybernetscope --ports-list

Scan a few explicit ports across multiple hosts:

cybernetscope host-a.local host-b.local -p 22,80,443,8080

Enumerate subdomains using the bundled wordlist:

cybernetscope -d example.com

Enumerate subdomains with your own wordlist and save everything as JSON:

cybernetscope -d example.com -w /usr/share/wordlists/subdomains.txt -j result.json

Faster scan, more threads, shorter timeout, no version detection:

cybernetscope 10.0.0.5 -p 1-65535 -t 500 --timeout 600 --no-banner

Use masscan as the discovery backend, then fingerprint what it finds (needs root):

sudo cybernetscope 10.0.0.0/24 -p 1-65535 --masscan --rate 5000

Тихий low-and-slow скан, чтобы оставить минимальный след:

cybernetscope 192.168.1.10 -p 1-1024 --quiet

Глубокий скан с TLS-рукопожатием, деталями сертификата и HTTP-fingerprint:

cybernetscope example.com -p 443,8443 --deep

Скан, затем запуск nuclei по найденным веб-сервисам:

cybernetscope example.com --nuclei

Детект SQL-инъекций через sqlmap по параметризованному URL:

cybernetscope --sqlmap "https://example.com/item?id=1"

Передать в sqlmap доп. опции (более глубокий детект, на ваше усмотрение):

cybernetscope --sqlmap "https://example.com/item?id=1" --sqlmap-args "--level=3" --sqlmap-args "--risk=2"

Quiet, low-and-slow scan to keep the footprint small:

cybernetscope 192.168.1.10 -p 1-1024 --quiet

Deep scan with TLS handshake, certificate details and HTTP fingerprinting:

cybernetscope example.com -p 443,8443 --deep

Scan, then run nuclei against any web services found:

cybernetscope example.com --nuclei

Run sqlmap injection detection against a parameterized URL:

cybernetscope --sqlmap "https://example.com/item?id=1"

Pass extra options through to sqlmap (deeper detection, your call):

cybernetscope --sqlmap "https://example.com/item?id=1" --sqlmap-args "--level=3" --sqlmap-args "--risk=2"

Options

Option Description
-p, --ports SPEC Ports: 22,80,443, 1-1024, or top (default: top)
-t, --threads N Fingerprint workers for open ports (default: 200)
--max-in-flight N Simultaneous connects during discovery (default: 2000)
--timeout MS Connect timeout in milliseconds (default: 1500)
--no-banner Skip banner grabbing and version detection
--masscan Use masscan as the discovery backend (needs root)
--rate PPS masscan packet rate, packets per second (default: 1000)
-q, --quiet Low-and-slow stealth scan (few threads, jitter, randomized order)
--deep Thorough scan: retries, larger timeouts, full TLS/cert and HTTP fingerprinting
--nuclei Run nuclei against discovered web services
--sqlmap URL Run sqlmap injection detection against URL (repeatable)
--sqlmap-args A Extra args passed verbatim to sqlmap (repeatable)
-d, --domain NAME Enumerate subdomains of NAME
-w, --wordlist FILE Wordlist for subdomain enumeration
--no-dns Skip MX/NS/TXT/CNAME lookups
-j, --json FILE Write results as JSON
--no-color Disable colored output
--ports-list Print the known port/service reference and exit
-h, --help Show help
-v, --version Show version

The vulnerability part

cyberCyberNetScope does not ship a CVE database and does not claim a service is vulnerable. What it does is detect the product and version, then print a searchsploit query you can run against the offline Exploit-DB that ships with Kali:

2222/tcp  ssh  OpenSSH 8.9p1
  searchsploit OpenSSH 8.9

This keeps the results honest and current - you check the version against searchsploit or the NVD instead of trusting a stale built-in list.

Project layout

CyberNetScope/
├── CMakeLists.txt
├── README.md
├── include/cybernetscope/      public headers
│   ├── dns.hpp
│   ├── port_scanner.hpp
│   ├── banner.hpp
│   ├── service_db.hpp
│   ├── masscan.hpp
│   ├── process.hpp
│   ├── nuclei.hpp
│   ├── sqlmap.hpp
│   ├── tls.hpp
│   ├── http.hpp
│   ├── subdomain.hpp
│   ├── output.hpp
│   └── thread_pool.hpp
├── src/                   implementation
│   ├── main.cpp
│   ├── dns.cpp
│   ├── port_scanner.cpp
│   ├── banner.cpp
│   ├── service_db.cpp
│   ├── masscan.cpp
│   ├── process.cpp
│   ├── nuclei.cpp
│   ├── sqlmap.cpp
│   ├── tls.cpp
│   ├── http.cpp
│   ├── subdomain.cpp
│   ├── output.cpp
│   └── thread_pool.cpp
└── data/
    └── subdomains.txt     default subdomain wordlist

Legal

Only scan systems you own or have explicit written permission to test. Unauthorized scanning may be illegal in your jurisdiction. You are responsible for how you use this tool.

License

MIT. See the LICENSE file.


CyberNetScope (русская версия)

CyberNetScope - быстрый инструмент сетевой разведки и сканер портов на современном C++. Резолвит цель, собирает её DNS-записи, параллельно сканирует TCP-порты, снимает баннеры служб и определяет версии продуктов. Для каждой найденной службы печатает готовый запрос searchsploit, чтобы вы сами сверились с известными уязвимостями.

Инструмент только обнаруживает и перечисляет. Ничего не эксплуатирует.

Быстрый старт

# 1. поставить зависимости
sudo apt update && sudo apt install build-essential cmake libssl-dev

# 2. собрать (нужны обе команды)
cmake -B build
cmake --build build

# 3. запустить
./build/cybernetscope --help
./build/cybernetscope scanme.nmap.org -p 1-1024 --deep

Подробное пошаговое объяснение - в разделе Сборка.

Что умеет

  • Прямой и обратный DNS-резолвинг (A/AAAA, PTR).
  • Запрос DNS-записей: CNAME, MX, NS, TXT.
  • Параллельное TCP connect-сканирование (root не нужен).
  • Снятие баннеров и определение службы/версии.
  • Детали TLS-рукопожатия: протокол, шифр и весь сертификат (CN, SAN, издатель, срок).
  • HTTP-fingerprint: статус, заголовок страницы, редиректы, powered-by.
  • Встроенный справочник портов: каждый открытый порт подписан, за что отвечает.
  • Пометка риска: опасные и часто атакуемые порты выделяются, с краткой причиной и итоговой сводкой.
  • Подсказки searchsploit на основе найденных версий.
  • Перебор поддоменов по словарю.
  • Читаемый вывод в консоль и экспорт в JSON.

Почему connect-скан

cyberCyberNetScope использует TCP connect-сканирование - полное трёхстороннее рукопожатие. Работает без повышенных привилегий и надёжно проходит через большинство NAT и фаерволов. Скрытным он не задумывался: если нужен SYN/stealth-скан, это raw-сокеты и root, что выходит за рамки проекта.

Фаза обнаружения работает на одном epoll-цикле, который держит тысячи неблокирующих коннектов разом, поэтому полный проход 1-65535 на отвечающем хосте занимает секунды. Fingerprint (TLS, баннеры, HTTP) затем запускается только по открытым портам.

Что нужно

  • Linux.
  • Компилятор C++17 (GCC или Clang).
  • CMake 3.16+.
  • libresolv (идёт с glibc), pthreads и OpenSSL.

На Debian/Ubuntu/Kali:

sudo apt update
sudo apt install build-essential cmake libssl-dev

Опциональные внешние инструменты

cyberCyberNetScope вызывает их, когда указан соответствующий флаг. Они не обязательны - без них функция просто сообщит, что инструмент не найден:

sudo apt install masscan nuclei sqlmap

Сборка

Выполняйте шаги по порядку. Здесь две команды cmake, и они делают разное: первая настраивает проект, вторая собственно компилирует. Нужны обе.

Шаг 1 - получите код. Либо клонируйте репозиторий:

git clone https://github.com/d3xm0s/CyberNetScope.git
cd CyberNetScope

либо, если у вас zip, распакуйте и зайдите в папку:

unzip CyberNetScope.zip
cd CyberNetScope

Шаг 2 - поставьте зависимости для сборки (пропустите, если уже стоят):

sudo apt update
sudo apt install build-essential cmake libssl-dev

Шаг 3 - настройка (создаёт папку build/ и проверяет систему):

cmake -B build

Шаг 4 - компиляция (именно она создаёт бинарник):

cmake --build build

После шага 4 бинарник лежит в build/cybernetscope. Проверьте, что работает:

./build/cybernetscope --help

Опционально - установка в систему, чтобы запускать cybernetscope откуда угодно, а не ./build/cybernetscope:

sudo cmake --install build
cybernetscope --help

Частая ошибка: выполнить cmake -B build и сразу пробовать ./build/cybernetscope. Это только настройка. Сначала нужно скомпилировать командой cmake --build build.

Если не хотите использовать cmake, можно собрать напрямую:

g++ -std=c++17 -O2 -Iinclude src/*.cpp -o cybernetscope -lpthread -lresolv -lssl -lcrypto

Использование

cybernetscope <цель> [цель...] [опции]

Примеры

Сканировать топ распространённых портов хоста со снятием баннеров:

cybernetscope example.com

Сканировать диапазон портов:

cybernetscope 192.168.1.10 -p 1-1024

Быстро просканировать все порты:

cybernetscope 192.168.1.10 -p 1-65535

Посмотреть, за что отвечает каждый известный порт:

cybernetscope --ports-list

Несколько конкретных портов на нескольких хостах:

cybernetscope host-a.local host-b.local -p 22,80,443,8080

Перебрать поддомены встроенным словарём:

cybernetscope -d example.com

Перебрать поддомены своим словарём и сохранить всё в JSON:

cybernetscope -d example.com -w /usr/share/wordlists/subdomains.txt -j result.json

Быстрый скан: больше потоков, меньше таймаут, без определения версий:

cybernetscope 10.0.0.5 -p 1-65535 -t 500 --timeout 600 --no-banner

Использовать masscan как бэкенд обнаружения, затем снять версии с найденного (нужен root):

sudo cybernetscope 10.0.0.0/24 -p 1-65535 --masscan --rate 5000

Опции

Опция Описание
-p, --ports SPEC Порты: 22,80,443, 1-1024 или top (по умолчанию top)
-t, --threads N Воркеры fingerprint по открытым портам (по умолчанию 200)
--max-in-flight N Одновременных коннектов в фазе обнаружения (по умолчанию 2000)
--timeout MS Таймаут подключения в мс (по умолчанию 1500)
--no-banner Не снимать баннеры и не определять версии
--masscan Использовать masscan как бэкенд обнаружения (нужен root)
--rate PPS Скорость masscan, пакетов в секунду (по умолчанию 1000)
-q, --quiet Тихий low-and-slow скан (мало потоков, джиттер, случайный порядок)
--deep Тщательный скан: ретраи, больше таймауты, полный TLS/сертификат и HTTP-fingerprint
--nuclei Запустить nuclei по найденным веб-сервисам
--sqlmap URL Запустить детект инъекций sqlmap по URL (можно несколько)
--sqlmap-args A Доп. аргументы, передаются в sqlmap как есть (можно несколько)
-d, --domain NAME Перебор поддоменов домена NAME
-w, --wordlist FILE Словарь для перебора поддоменов
--no-dns Пропустить запросы MX/NS/TXT/CNAME
-j, --json FILE Сохранить результат в JSON
--no-color Отключить цветной вывод
--ports-list Вывести справку портов/служб и выйти
-h, --help Показать справку
-v, --version Показать версию

Про уязвимости

CyberNetScope не содержит встроенной базы CVE и не утверждает, что служба уязвима. Он определяет продукт и версию, а затем печатает запрос searchsploit, который вы запускаете против офлайн-базы Exploit-DB из комплекта Kali:

2222/tcp  ssh  OpenSSH 8.9p1
  searchsploit OpenSSH 8.9

Так результаты остаются честными и актуальными - вы сверяете версию через searchsploit или NVD, а не доверяете устаревшему встроенному списку.

Структура проекта

CyberNetScope/
├── CMakeLists.txt
├── README.md
├── include/cybernetscope/      публичные заголовки
│   ├── dns.hpp
│   ├── port_scanner.hpp
│   ├── banner.hpp
│   ├── service_db.hpp
│   ├── masscan.hpp
│   ├── process.hpp
│   ├── nuclei.hpp
│   ├── sqlmap.hpp
│   ├── tls.hpp
│   ├── http.hpp
│   ├── subdomain.hpp
│   ├── output.hpp
│   └── thread_pool.hpp
├── src/                   реализация
│   ├── main.cpp
│   ├── dns.cpp
│   ├── port_scanner.cpp
│   ├── banner.cpp
│   ├── service_db.cpp
│   ├── masscan.cpp
│   ├── process.cpp
│   ├── nuclei.cpp
│   ├── sqlmap.cpp
│   ├── tls.cpp
│   ├── http.cpp
│   ├── subdomain.cpp
│   ├── output.cpp
│   └── thread_pool.cpp
└── data/
    └── subdomains.txt     словарь поддоменов по умолчанию

Юридическое

Сканируйте только те системы, которыми владеете или на тест которых есть явное письменное разрешение. Несанкционированное сканирование может быть незаконным. Ответственность за использование инструмента лежит на вас.

License

Copyright (c) 2026 d3xm0s

About

Fast C++ network reconnaissance and port scanner for red team operators: concurrent TCP scanning, service and version fingerprinting, TLS/HTTP inspection, DNS mapping, and searchsploit hints.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages