
Инструмент offensive security для пентеста принтеров
Версия 0.4.0 | Журнал изменений
"Nmap для принтеров" — Инструмент наступательной безопасности для пентеста принтеров.
Быстрый. Целенаправленный. Без лишнего.
PSO включает функции оценки и эксплуатации. Всегда получайте явное разрешение перед использованием.
--aggressive): эксплуатация файловой системы PJLНеавторизованное сканирование сети незаконно. Используйте ответственно.
443,631,5000-6000,9100@PJL INFO ID--aggressive) — проверка неавторизованного доступа к файловой системеpip install -r requirements.txt
Требования: zeroconf, requests, pyyaml
python pso.py --scan 192.168.1.0/24
# Single port
python pso.py --scan 10.0.0.0/24 --ports 8631
# Multiple ports
python pso.py --scan 10.0.0.0/24 --ports 443,631,9100
# Port ranges (smart!)
python pso.py --scan 10.0.0.0/24 --ports 443,631,5000-6000,9100
python pso.py 192.168.1.50 --check-jobs
Требует разрешения. Включает проверки файловой системы PJL.
python pso.py 192.168.1.50 --aggressive
Вывод:
[!] АГРЕССИВНЫЙ РЕЖИМ ВКЛЮЧЁН
[!] Проверки файловой системы PJL — это ЭКСПЛУАТАЦИЯ.
[!] Убедитесь, что у вас есть явное разрешение.
[*] 192.168.1.50 (JETDIRECT)...
└─ PJL ID: Canon imageRUNNER ADVANCE
🔥 ДОСТУП К ФС PJL ПОДТВЕРЖДЁН (Уязвим)
Риск: 🔥 КРИТИЧЕСКИЙ (Уязвим)
nmap -p- 10.0.0.0/16 -oX scan.xml
python pso.py --nmap scan.xml --aggressive --output json
python pso.py [target] [options]
Positional:
target IP or CIDR (e.g., 192.168.1.0/24)
Options:
--scan CIDR Scan network range
--ports PORTS Ports: single (631), list (443,631,9100), ranges (5000-6000)
--nmap FILE Parse nmap XML
--check-jobs Check for stored print jobs
--aggressive Enable PJL FS checks (requires authorization)
--output FORMAT table | csv | json (default: table)
--timeout SEC mDNS timeout (default: 5)
--no-probe Skip active probing
Сканирование сети с пользовательскими портами:
python pso.py --scan 10.0.0.0/24 --ports 443,631,5000-6000,9100
Комплексная оценка:
python pso.py 192.168.1.50 --check-jobs --aggressive --output json
Автоматизация рабочего процесса:
# 1. Discovery
nmap -sV -p- 10.0.0.0/16 -oX scan.xml
# 2. PSO analysis
python pso.py --nmap scan.xml --aggressive --output json > results.json
# 3. Filter critical findings
cat results.json | jq '.printers[] | select(.risk_score > 80)'
Порты по умолчанию: 9100, 631, 515, 443 (стандартные порты принтеров)
Зачем пользовательские порты?
Синтаксис:
--ports 631 # Single
--ports 443,631,9100 # List
--ports 5000-6000 # Range
--ports 443,631,5000-6000,9100 # Mixed
Примечание: Для полного сканирования сначала используйте nmap для обнаружения всех открытых портов, затем проанализируйте результаты с помощью PSO.
--aggressive)Что делает:
@PJL FSDIRLIST на порты с поддержкой PJLВоздействие: 🔥 КРИТИЧЕСКИЙ
Обнаружение: Может срабатывать IDS/IPS
Правовой аспект: Требует явного разрешения
--check-jobs)Что делает:
Get-JobsВоздействие: 🔴 ВЫСОКИЙ
Правовой аспект: Обычно допустимо в авторизованных пентестах
Name IP Port Proto Make/Model Risk Level
---------------------------------------------------------------------------------------------------------
Canon-Office 192.168.1.50 631 IPP Canon imageRUNNER ADVANCE 85 🔥 КРИТИЧЕСКИЙ (Уязвим)
python pso.py --scan 10.0.0.0/24 --output csv > findings.csv
python pso.py --scan 10.0.0.0/24 --output json > results.json
Структура JSON:
{
"printers": [
{
"id": "printer_192_168_1_50",
"ip": "192.168.1.50",
"risk_score": 85,
"risk_level": "🔥 CRITICAL (Exploitable)",
"fs_access": true,
"vulnerabilities": [...],
"findings": [...]
}
]
}
PSO проверяет принтеры на наличие известных уязвимостей в cve_db/printers.yaml.
Включённые CVE:
Добавьте свои:
vendors:
YourVendor:
models:
"Model XYZ":
cves:
CVE-2025-0001:
severity: CRITICAL
cvss: 9.8
description: "Your finding"
remediation: "Fix steps"
Массовое обновление:
python cve_db_builder.py --export
# 1. Discovery
nmap -sV -p- 10.0.0.0/16 -oX nmap_scan.xml
# 2. Assessment
python pso.py --nmap nmap_scan.xml --check-jobs --output json > assessment.json
# 3. Exploitation (authorized only)
python pso.py <target_ip> --aggressive --output json > exploit.json
# 4. Reporting
python pso.py --nmap nmap_scan.xml --output csv > client_report.csv
ModuleNotFoundError?
python -m pip install -r requirements.txt
Не найдены принтеры?
--ports 8631,19100Приветствуются pull request'ы. Для серьёзных изменений, пожалуйста, сначала откройте issue, чтобы обсудить, что вы хотите изменить.
MIT — Copyright © 2025 Hivesecurity