先进网络渗透测试工具包,支持 SSH 漏洞评估、CVE-2018-15473 漏洞利用、隐蔽式暴力破解能力及 fail2ban 规避技术。专为授权渗透测试项目设计的专业级安全测试框架。
███╗ ██╗███████╗████████╗██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗ ███████╗██████╗
████╗ ██║██╔════╝╚══██╔══╝██║ ██║██╔═══██╗██╔══██╗██║ ██╔╝ ██╔══██╗██╔══██╗██╔════╝██╔══██╗
██╔██╗ ██║█████╗ ██║ ██║ █╗ ██║██║ ██║██████╔╝█████╔╝ ██████╔╝██████╔╝█████╗ ██║ ██║
██║╚██╗██║██╔══╝ ██║ ██║███╗██║██║ ██║██╔══██╗██╔═██╗ ██╔═══╝ ██╔══██╗██╔══╝ ██║ ██║
██║ ╚████║███████╗ ██║ ╚███╔███╔╝╚██████╔╝██║ ██║██║ ██╗ ██║ ██║ ██║███████╗██████╔╝
╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═════╝
专业级网络侦察与 SSH 渗透测试框架,具备高级规避能力
🔴 仅限授权测试
本工具仅用于教育目的和授权渗透测试。未经授权访问计算机系统属违法行为,可能招致刑事指控。
✅ 授权使用:
❌ 未经授权的使用:
使用本工具即表示您同意对自己的行为承担全部责任,并遵守所有适用法律。
config.yaml 实现灵活的参数管理# Ensure Python 3.6+ is installed
python3 --version
# Install required dependencies
pip3 install paramiko pyyaml colorama
# Clone the repository
git clone https://github.com/floriankostov/network_scanner.git
cd network_scanner
# Make executable (Unix/Linux/macOS)
chmod +x scanner.py
# Run the scanner
python3 scanner.py
# Build Docker image
docker build -t network-scanner .
# Run in container
docker run -it --network host network-scanner
python3 scanner.py
扫描器提供直观的菜单系统:
╔══════════════════════════════════════════════════════════════════╗
║ NETWORK SCANNER TOOLKIT ║
║ Professional Penetration Testing ║
╠══════════════════════════════════════════════════════════════════╣
║ 1. 📡 Extended Port Scan - Comprehensive port discovery ║
║ 2. ⚡ Basic Port Scan - Quick essential port check ║
║ 3. 🔐 SSH Security Testing - Advanced SSH vulnerability scan ║
║ 4. 🎯 Custom Target Scan - Manual IP/range specification ║
║ 5. ❌ Exit - Quit the application ║
╚══════════════════════════════════════════════════════════════════╝
# Automatic network detection
[+] Network: 192.168.1.0/24 (254 hosts)
[+] Gateway: 192.168.1.1
[+] Local IP: 192.168.1.100
# Custom network specification
python3 scanner.py --network 10.0.0.0/16
# Standard enumeration
[EXPLOIT] CVE-2018-15473 Username Enumeration
[+] Target: 192.168.1.50:22 (OpenSSH 7.4)
[+] Testing 100 common usernames...
[✓] Valid users found: admin, user, test
# Stealth enumeration with evasion
[STEALTH] Enabling anti-detection measures
[+] Random delays: 0.5-2.0 seconds
[+] Connection variation: randomized
[✓] Valid users found: admin (confirmed)
# Smart brute force
[EXPLOIT] Smart SSH Brute Force
[+] Target: 192.168.1.50:22
[+] Valid users: admin, user
[+] Wordlist: 500 common passwords
[✓] Credentials found: admin:password123
# Stealth brute force with fail2ban evasion
[STEALTH] Advanced evasion enabled
[+] Adaptive delays: 3-8 seconds
[+] Connection resets: every 5 attempts
[+] IP rotation: enabled
[!] Intrusion detection bypass: active
config.yaml)# Network scanning settings
network:
ping_timeout: 1.0
port_timeout: 3.0
thread_count: 50
max_hosts: 254
# SSH exploitation settings
ssh:
timeout: 10.0
retry_count: 3
stealth_mode: true
delay_min: 0.5
delay_max: 2.0
# Exploitation parameters
exploits:
user_enumeration:
max_users: 100
timing_threshold: 0.05
brute_force:
max_attempts: 50
wordlist_size: 500
fail2ban_detection: true
port_lists:
basic: [22, 80, 443, 8080]
extended: [21, 22, 23, 25, 53, 80, 110, 143, 443, 993, 995, 8080]
comprehensive: [1-1000, 3389, 5432, 5900, 8080-8090]
# Disable root login
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
# Require key-based authentication
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
# Change default port
echo "Port 2222" >> /etc/ssh/sshd_config
# Restart SSH service
systemctl restart sshd
# Username enumeration attempts
grep "Invalid user" /var/log/auth.log
# Brute force detection
grep "Failed password" /var/log/auth.log | head -10
# Connection frequency analysis
awk '{print $1, $2, $3, $11}' /var/log/auth.log | grep "sshd" | sort | uniq -c
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
# Simplified timing attack pseudocode
def enumerate_users(target, usernames):
timings = {}
for user in usernames:
start = time.time()
try_authentication(target, user, "invalid_password")
end = time.time()
timings[user] = end - start
# Analyze timing patterns
return analyze_timing_anomalies(timings)