
关于NetworkSherlock
NetworkSherlock是一款功能强大且灵活的网络端口扫描工具,该工具专为网络安全专业人员和渗透测试人员设计,凭借其先进的功能,NetworkSherlock可以有效地扫描目标IP地址范围、CIDR地址块和多个目标。
该工具集成了Shodan搜索功能(Shodan是世界上首屈一指的互联网连接设备扫描和分析服务),支持跨各种协议实现详细的数据抓取。通过集成Shodan,NetworkSherlock能够大幅增强其扫描功能,可以帮助广大研究人员更加深入地了解网络中的安全漏洞以及潜在威胁。通过将本地端口扫描与Shodan广泛的数据库相结合,NetworkSherlock为识别和分析网络安全问题提供了一个全面的视角。
功能介绍
1、扫描多个IP地址、IP地址范围和CIDR地址块;
2、端口扫描功能,支持TCP和UDP协议;
3、详细的Banner数据抓取;
4、通过Ping检测识别可到达的主机;
5、多线程支持实现更快速的扫描操作;
6、支持将扫描结果存储到文件中;
7、提供详细的工具版本信息;
8、带有颜色高亮提醒的控制台输出,增加了数据可读性;
9、集成Shodan以增强扫描能力;
10、支持通过配置文件配置Shodan API密钥;
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3.6+环境。接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/HalilDeniz/NetworkSherlock.git
然后切换到项目目录中,使用pip工具和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:
cd NetworkSherlock pip install -r requirements.txt
工具配置
我们可以通过编辑networksherlock.cfg文件来设置或修改Shodan API密钥:
[SHODAN] api_key = YOUR_SHODAN_API_KEY
工具使用
python3 networksherlock.py --help usage: networksherlock.py [-h] [-p PORTS] [-t THREADS] [-P {tcp,udp}] [-V] [-s SAVE_RESULTS] [-c] target NetworkSherlock: Port Scan Tool positional arguments: target 目标IP地址(一个或多个)、IP地址范围或CIDR地址块 (例如192.168.1.1, 192.168.1.1-192.168.1.5,192.168.1.0/24) options: -h, --help 显示工具帮助信息和退出 -p PORTS, --ports PORTS 要扫描的目标端口(例如1-1024、21、22、80或80) -t THREADS, --threads THREADS 要使用的线程数量 -P {tcp,udp}, --protocol {tcp,udp} 扫描所使用的协议 -V, --version-info 获取工具版本信息 -s SAVE_RESULTS, --save-results SAVE_RESULTS 扫描结果存储文件 -c, --ping-check 扫描之前执行Ping检测 -ad, --arp-discover 针对指定网络执行ARP发现 --use-shodan 针对额外信息启用Shodan集成
工具使用样例
基础端口扫描
扫描单个IP地址,使用默认端口:
python networksherlock.py 192.168.1.1
自定义端口范围
扫描一个IP地址,端口范围自定义:
python networksherlock.py 192.168.1.1 -p 1-1024
扫描多个IP地址和指定端口自定义
扫描多个IP地址,自定义目标端口(支持多个):
python networksherlock.py 192.168.1.1,192.168.1.2 -p 22,80,443
CIDR地址块扫描
使用CIDR标识要扫描的整个子网:
python networksherlock.py 192.168.1.0/24 -p 80
使用多线程扫描
使用多线程执行扫描任务以提升任务执行速度:
python networksherlock.py 192.168.1.1-192.168.1.5 -p 1-1024 -t 20
选择协议执行扫描
使用一个指定的协议来执行扫描任务(TCP或UDP):
python networksherlock.py 192.168.1.1 -p 53 -P udp
使用Shodan执行扫描
python networksherlock.py 192.168.1.1 --use-shodan
使用Shodan扫描多个目标
python networksherlock.py 192.168.1.1,192.168.1.2 -p 22,80,443 -V --use-shodan
Banner获取和结果存储
python networksherlock.py 192.168.1.1 -p 1-1000 -V -s results.txt
扫描之前执行Ping检测
执行Ping检测之后扫描一个IP地址范围:
$ python3 networksherlock.py 10.0.2.12 -t 25 -V -p 21-6000 -t 25 ******************************************** Scanning target: 10.0.2.12 Scanning IP : 10.0.2.12 Ports : 21-6000 Threads : 25 Protocol : tcp --------------------------------------------- Port Status Service VERSION 22 /tcp open ssh SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1 21 /tcp open telnet 220 (vsFTPd 2.3.4) 80 /tcp open http HTTP/1.1 200 OK 139 /tcp open netbios-ssn %SMBr 25 /tcp open smtp 220 metasploitable.localdomain ESMTP Postfix (Ubuntu) 23 /tcp open smtp #' #' 445 /tcp open microsoft-ds %SMBr 514 /tcp open shell 512 /tcp open exec Where are you? 1524/tcp open ingreslock root@metasploitable:/# 2121/tcp open iprop 220 ProFTPD 1.3.1 Server (Debian) [::ffff:10.0.2.12] 3306/tcp open mysql > 5900/tcp open unknown RFB 003.003 53 /tcp open domain
工具输出样例
$ python3 networksherlock.py 10.0.2.0/24 -t 10 -V -p 21-1000 ******************************************** Scanning target: 10.0.2.1 Scanning IP : 10.0.2.1 Ports : 21-1000 Threads : 10 Protocol : tcp --------------------------------------------- Port Status Service VERSION 53 /tcp open domain ******************************************** Scanning target: 10.0.2.2 Scanning IP : 10.0.2.2 Ports : 21-1000 Threads : 10 Protocol : tcp --------------------------------------------- Port Status Service VERSION 445 /tcp open microsoft-ds 135 /tcp open epmap ******************************************** Scanning target: 10.0.2.12 Scanning IP : 10.0.2.12 Ports : 21-1000 Threads : 10 Protocol : tcp --------------------------------------------- Port Status Service VERSION 21 /tcp open ftp 220 (vsFTPd 2.3.4) 22 /tcp open ssh SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1 23 /tcp open telnet #' 80 /tcp open http HTTP/1.1 200 OK 53 /tcp open kpasswd 464/udpcp 445 /tcp open domain %SMBr 3306/tcp open mysql > ******************************************** Scanning target: 10.0.2.20 Scanning IP : 10.0.2.20 Ports : 21-1000 Threads : 10 Protocol : tcp --------------------------------------------- Port Status Service VERSION 22 /tcp open ssh SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.9
工具运行截图
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
NetworkSherlock:【GitHub传送门】
参考资料
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)