网络资产信息扫描(F-NAScan)
wolf (@伏宸安全) | 2016-04-14 13:00
网络资产信息扫描
在渗透测试(特别是内网)中经常需要对目标进行网络资产收集,即对方服务器都有哪些IP,IP上开了哪些端口,端口上运行着哪些服务,此脚本即为实现此过程,相比其他探测脚本有以下优点:
1、轻巧简洁,只需python环境,无需安装额外外库。
2、扫描完成后生成独立页面报告。
此脚本的大概流程为:
ICMP存活探测-->端口开放探测-->端口指纹服务识别-->提取快照(若为WEB)-->生成结果报表
运行环境:
python 2.6 +
参数说明
-h 必须输入的参数,支持ip(192.168.1.1),ip段(192.168.1),ip范围指定(192.168.1.1-192.168.1.254),ip列表文件(ip.ini),最多限制一次可扫描65535个IP。
-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)直接进行扫描。
结果报告保存在当前目录(扫描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-
正则为空时则使用端口进行匹配,否则以正则匹配结果为准。
效果图
下载地址:http://down.future-sec.com/F-NAScan.zip
项目地址:https://github.com/ywolf/F-NAScan
欢迎大家反馈建议和BUG
相关内容:
King Of The Proxy (代理之王) v2.0,http/https/socks4/5代理采集/验证工具
Jboss JMX/EJBInvokerServlet 批量检测工具
【APT】NodeJS 应用仓库钓鱼,大规模入侵开发人员电脑,批量渗透各大公司内网
Nscan.py - Fast Network Scanner,高速网络扫描器,全网端口扫描神器
关于FTP弱口令扫描的,为什么经常见有人搞一些FTP弱口令扫描?
一段通过WebRTC获取客户端内网IP的js (无需java/ActiveX支持)
InsightScan:Python多线程Ping/端口扫描 + HTTP服务/APP 探测
King Of The Proxy (代理之王) v1.0 发布、HTTP代理采集、验证工具
Crazy Scan v1.0 - 疯狂扫描 v1.0 - 独立版
长安刺客 - 旁注杀手 v1.3 + Crazy Scan v1.0 - 疯狂扫描 v1.0,发布!
查找“CDN、负载均衡、反向代理”等大型网络真实IP地址的方法
长安刺客 - 旁注杀手 v1.2 版 + CDN 终结者 v1.1 发布
长安刺客 - 旁注杀手 v1.1 版发布,外加强力新功能:CDN 终结者 v1.0
DEDE 0DAY 批量扫描程序 DEDE5.5批量拿shell工具
各种吐槽:
1#
园长 (喵~) | 2016-04-14 13:02
前排,支持狼狗
2#
_Thorns (舍就是得。) | 2016-04-14 13:02
赞
3#
齐迹 (sec.zbj.com 欢迎来撸) | 2016-04-14 13:03
前排,支持狼狗
4#
小胖子 (z7y首席代言人,园长的表哥...) | 2016-04-14 13:03
前排,支持狼狗
5#
Hackshy (嘘....告诉你个秘密) | 2016-04-14 13:05
感谢分享。
6#
wolf (@伏宸安全) | 2016-04-14 13:05
@小胖子 @齐迹 @园长 你们都被谁带坏了 wolf = 狼
7#
闰土。 (骗我长胖 ?) | 2016-04-14 13:06
前排,支持狼狗
8#
路人N (?) | 2016-04-14 13:21
赞赞赞~
9#
小牛牛 | 2016-04-14 13:25
牛逼,支持WOlf
10#
Mystery。 (设计师一枚) | 2016-04-14 13:35
支持师傅
11#
BloodSword | 2016-04-14 13:38
中排,支持狼狗
12#
luwikes (土豆你个西红柿,番茄你个马铃薯~~~) | 2016-04-14 13:47
后排,支持狼狗
13#
JiuShao | 2016-04-14 14:06
@wolf 我能来你们办公室走吗 我在你们楼下。
14#
ver007 | 2016-04-14 14:07
输出效果不错拿来用用
15#
DNS | 2016-04-14 14:10
@JiuShao 来来
16#
JiuShao | 2016-04-14 14:15
@DNS 你们在了么 我真上来了哟
17#
prolog (事了拂衣去,不收一分钱) | 2016-04-14 14:18
前排,支持狼狗
18#
Azui | 2016-04-14 14:29
赞!
19#
luwikes (土豆你个西红柿,番茄你个马铃薯~~~) | 2016-04-14 14:42
感谢楼主分享.提个小bug,不加-n参数的话会一直显示提示信息,可是提示信息里的-n参数写的是可选..
20#
HackBraid | 2016-04-14 14:44
这个比nmap好用吗
21#
wolf (@伏宸安全) | 2016-04-14 14:50
@luwikes 测试不存在这个问题 发下你的环境信息看看
@HackBraid 比不上NMAP全面,但也有自己的优点
22#
null_z | 2016-04-14 14:51
赞赞赞! py还有个nmap的包扫描结果是json格式的跟其他工具对接也超级棒。
23#
rockes | 2016-04-14 14:59
为什么我在WIN10下面跑, F-NAScan.py 172.19.2.0 任何回显都没有 又弹出dos框呢?我的python版本是2.7
24#
L.N. (http://ln.sycsec.com/) | 2016-04-14 15:03
必须点赞
25#
wolf (@伏宸安全) | 2016-04-14 15:08
@rockes -h 172.19.2
26#
带馅儿馒头 (我就一小小小小鸟) | 2016-04-14 15:19
赞
27#
newbie0086 | 2016-04-14 15:19
这个在内网配合插件自动化测试 效果一级棒
28#
wolf (@伏宸安全) | 2016-04-14 15:23
@newbie0086 最近这2个工具都是在客户现场做渗透测试为了方便写出来的。
29#
pyphrb (please called 强爷) | 2016-04-14 15:28
前排,支持狼狗
30#
Master (小菜一枚) | 2016-04-14 15:40
冒泡
31#
wolf (@伏宸安全) | 2016-04-14 15:44
@luwikes 解决这个问题了 https://github.com/ywolf/F-NAScan 重新下载试试
32#
凌零1 | 2016-04-14 16:15
后排学习
33#
好基友一辈子 | 2016-04-14 16:31
34#
好基友一辈子 | 2016-04-14 16:31
@wolf 权限是777
35#
wolf (@伏宸安全) | 2016-04-14 16:35
@好基友一辈子 是不稳定吗? 超时调高一点试试看,默认为10秒。
36#
wolf (@伏宸安全) | 2016-04-14 16:43
@好基友一辈子 在print 'Results output failure'上面加上print e 看看是什么错误信息
37#
路人N (?) | 2016-04-14 17:13
@wolf 帮你换了个皮肤(⌒▽⌒)
使用方法:把write_result函数改成下面的,扫描结束,打开这个文件http://paste.ubuntu.net/15825793/
def write_result():
try:
content = "var servers="+str(json.dumps(re_data))+";\n"
content += "var portdata="+str(json.dumps(port_data))+";\n"
content += "var statistics="+str(json.dumps(statistics))+";\n"
result = open("result.js","w")
result.write(content)
result.close()
except Exception,e:
print 'Results output failure'
效果图:
38#
wolf (@伏宸安全) | 2016-04-14 17:14
@路人N 好评
39#
乌云小秘书 (第1.绝对不意气用事!第2.绝对不漏判任何一件坏事) | 2016-04-14 18:24
@路人N 666
40#
终于乌云了 | 2016-04-14 18:55
大赞
41#
白开水 | 2016-04-14 18:59
mark
42#
scanf (www.scanfsec.com 网络尖刀) | 2016-04-14 19:08
可以打包成exe吗?
43#
toomi | 2016-04-14 20:58
狼哥真是赞啊,学习了
44#
Sai、 | 2016-04-14 21:22
内网探测很好用
45#
从容 (@寂寞的瘦子 其实是个死胖子!) | 2016-04-14 21:57
支持狼狗
46#
LoveSnow (我要努力,争取开发自己的神器) | 2016-04-15 00:24
支持狼狗
47#
LoveSnow (我要努力,争取开发自己的神器) | 2016-04-15 01:00
@路人N js获取的结果怎么进不来呢?
48#
ADO (为啥我名字又短又简单,因为我智商低啊) | 2016-04-15 08:41
@路人N 非常好用,赞!
@wolf 干的漂亮,Thanks!
49#
cf_hb (10000定律<=>实践ing) | 2016-04-15 09:34
赞,以后内网探测就用这个小脚本了。
50#
x1aoh4i (灰狗 、 就是灰狗) | 2016-04-15 09:42
后排,支持狼狗
51#
猪猪 | 2016-04-15 09:48
下载的压缩文件是损坏的?
52#
wolf (@伏宸安全) | 2016-04-15 10:02
@猪猪 多谢提醒 重新上传了
@scanf 可以的
53#
好基友一辈子 | 2016-04-15 10:05
@wolf 应该是编码问题,扫描过程中web页面如果有乱码或者编码不同的时候会导致导出失败
54#
东方不败 (日出东方,唯我不败) | 2016-04-15 10:23
赞 结合路人甲的 内网以后不用了
55#
风之传说 | 2016-04-15 10:25
前后用了三个,一个没有指纹识别,一个打开报告有错误,还有一个需要加载其他的库。 这个接近完美了,在我看来。 感谢了一个。
56#
小葵 (burpsuite+metasploit就是我爹。) | 2016-04-15 11:40
大赞.. 不错不错 内网神器.. 收下啦. 自己改改代码... 省的自己再写了.
57#
东方不败 (日出东方,唯我不败) | 2016-04-15 14:06
@路人N 这个每次打开不同报告都要改名result.js么- -有不有直接封装html啊。。不然好麻烦啊@wolf
58#
wolf (@伏宸安全) | 2016-04-15 15:24
@好基友一辈子 解决这个问题了 增加了编码识别环节,增加了忽略证书验证+容错 https://github.com/ywolf/F-NAScan
59#
wolf (@伏宸安全) | 2016-04-15 16:12
@scanf 已经打包成独立exe文件 http://down.future-sec.com/F-NAScan.exe
60#
小歪 | 2016-04-15 17:20
可以放弃iisputscan了
61#
路人N (?) | 2016-04-15 17:37
@wolf @东方不败 http://paste.ubuntu.net/15846036/
62#
wolf (@伏宸安全) | 2016-04-15 22:05
@路人N 不错不错
63#
廷廷 (想法最重要) | 2016-04-15 23:47
不错支持共享
64#
指尖上的故事 | 2016-04-16 00:39
@wolf @路人N
[img src="http://imgur.com/HBj1A8A" alt="报表"/]
提供一个思路:增加功能让这个更强大些(半自动化)。
port = '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'
如果: 21 ftp 22 ssh 80 web 3389 rdp 3306 mysql
先是扫描出了开始IP段 & 结束IP段,然后比如扫描出来的某IP地址存在3389 3306 22 21 80 这些端口服务。
然后比如:3389弱口令字典爆破什么的在python中编写如下测试逻辑。
在然后比如:80 web端口可以用到的漏洞测试逻辑脚本加入到代码中。
然后比如:3306 mysql默认端口数据库首先检测远程端口是否开放,如果开放进行字典爆破或者根据SQL漏洞进行测试写入等等。
这样的话就更方便了,能写的话可以试试加入漏洞检测环节。
留言评论(旧系统):