Skip to content

Scanning a network asset information script

Notifications You must be signed in to change notification settings

songshanyuwu/F-NAScan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#网络资产信息扫描

目的:通过将程序运行版本由Python2升级为Python3来学习原作者ywolf的F-NAScan实现功能。
原项目地址 https://github.com/ywolf/
在渗透测试(特别是内网)中经常需要对目标进行网络资产收集,即对方服务器都有哪些IP,IP上开了哪些端口,端口上运行着哪些服务。
此脚本即为实现此过程,相比其他探测脚本有以下优点:
1、轻巧简洁,只需python环境,无需安装额外外库。
2、扫描完成后生成独立页面报告。

此脚本的大概流程为 ICMP存活探测-->端口开放探测-->端口指纹服务识别-->提取快照(若为WEB)-->生成结果报表

#运行环境:python 3.7 +

#参数说明
-h 必须输入的参数,最多限制一次可扫描65535个IP。
支持ip(192.168.1.1)
ip段(192.168.1)
ip范围指定(192.168.1.1-192.168.1.254)
ip列表文件(ip.ini)
-p 指定要扫描端口列表,多个端口使用,隔开
例如:22,23,80,3306。
未指定即使用内置默认端口进行扫描
(21,22,23,25,53,80,110,139,143,389,443,445,465,873,993,995,1080,1723,1433,1521,3306,3389,3690,5432,5800,5900,6379,7001,8000,8001,8080,8081,8888,9200,9300,9080,9999,11211,27017)
-m 指定线程数量 默认100线程
-t 指定HTTP请求超时时间,默认为10秒,端口扫描超时为值的1/2。
-n 不进行存活探测(ICMP)直接进行扫描。
-o 指定文件名的部分。
结果报告保存在当前目录(扫描IP-文件名-时间戳.html)。

结果报告保存在当前目录(扫描IP-时间戳.html)。

使用例子:
python NAScan.py -h 10.111.1
python NAScan.py -h 192.168.1.1-192.168.2.111
python NAScan.py -h 10.111.1.22 -p 80,7001,8080 -m 200 -t 6
python NAScan.py -h ip.ini -p port.ini -n

服务识别在server_info.ini文件中配置
格式为:服务名|默认端口|正则 例 ftp|21|^220.*?ftp|^220-
正则为空时则使用端口进行匹配,否则以正则匹配结果为准。


#进度
V0.1
目前大部分功能已经从Python2升级到Python3,主要是生成html文件前的字符串编码还有问题,原先是cgi,现在需要使用html模块,但是替换原来和html格式文件中的代码后,html文件显示,总是和原作者的不一样,计划在尝试两天,还是不行的话,就将输出格式变为Excel和导入数据库。

V0.2
啊,崩溃了。使用扫描结果替换原来和html格式文件中的代码后,html文件显示总是和原作者的不一样。目前已经将输出格式变为TXT文件。
后续计划:1.引入MySQL库,将结果录入数据库,通过定时任务将不同时间的扫描结果进行对比,在从数据库中输出Excel格式文件。
2.Excel格式文件包含本次的扫描结果,以及与上一次的扫描差异。
3.考虑引入POC 。

About

Scanning a network asset information script

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%