只是纯粹的分享,请勿喷。
大家知道渗透测试中的信息收集是很关键步骤。其中能够准确全面的找到厂商的ip段,又是其中很重要的。相信大部分的人对厂商的子域名,都会做很详细的收集。但是对ip段却没做这么细致的收集。今天我就分享下我是怎么收集厂商的ip段的,然后做信息初步探测的。(可能很多人都用的类似方法吧)
一、收集厂商的ip段
1、首先用的seay的子域名挖掘机或者其他的子域名收集的工具,对子域名进行收集,其实重点不是在收集到的域名,而是域名所对应的ip。
2、爆破完二级域名,就可以右键导出存活网站。
3、然后就是就是去掉域名,留下ip的前三位,去重之后再生成C段。这样就能得到目标的不重复的ip段。脚本我已经写好,贴上脚本。
import re
import sys
path=sys.argv[1]
path2=sys.argv[2]
f=open(path)
c_iplist=[]
#f1=open('newip.txt','a')
line=f.readline()
while line:
line = f.readline()
ip=re.findall('(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])',line)
#print ip[0]
try:
if re.match('^(10|127|172|192)+.\d+.\d+.\d+',ip[0]):
pass
else:
print ip[0]
ip2=ip[0]
print ip2+">>>>>>>>>>>>>>>"
c_iplist.append(ip2)
except:
pass
iplist=[]
iplist1=[]
f=open(path2,'a')
for line in c_iplist:
print line
ip=re.findall(r'\d+.\d+.\d+.',line)
iplist.append(ip[0])
for ip in iplist:
print ip
if ip not in iplist1:
iplist1.append(ip)
for ip in iplist1:
for i in range(1,255):
print ip
ip1=ip+str(i)+'\n'
f.write(ip1)
f.close
用法就是,python iplist.py xxx.txt yyy.txt.(前者是你收集的域名和ip的结果的txt,后者是你要生成的ip段的文件名)
生成的效果:
二、简单的信息刺探
1、这种方法收集的ip网往往很多,拿百度来说我最后收集的ip有2万多个,的确很多的。所以你还需要一个自动化的工具只管去喂ip然后帮你探测目标ip信息的工具。这里可以用nmap或者直接上lijiejie的BBscan。
2、如果单独只是扫目录的话,把llijiejie的BBscan改一下,效果更好,先扫描端口,然后识别web服务,然后在上BBscan目录,因为有些web服务不一定是部署在80端口的。
3、最好的方法就是对ip先探测一下端口,再识别服务,然后根据不同的服务来做不一样的事情。(其实可以根据这个思路做一个简单的扫描器了,以后再谈)
有的童鞋可能会质疑,这样收集的ip误差太大。确实,对于小的厂商的确是这样的。但是对于大的互联网公司,是还是比较准确的,公司越大越好,这样越准确,据我测试就百度而言的准确率达百分之九十。
注:
搜集ip的好处:
1、可能触碰到厂商的边缘应用,或者测试系统,这些系统往往很脆弱
2、做扫描的时候有可能躲过一些云waf或者cdn之类的,因为现在的云waf大部分的流程是,用户访问域名,域名先解析到云waf上,然后经过云waf过滤之后,再指向你要访问的真正的ip。所以直接通过ip做扫描,有些时候是能躲过云waf或者cdn的。
3、细心地同学还可以看到我脚本里面做了内网ip的过滤,其实这种方法还可能收集到内网ip段,可以用作后续的渗透测试的。
以下是通过这种收集ip的方式发现的厂商一些的漏洞:
WooYun: 百度某系统未授权导致内网数据库服务器沦陷(linux下mysql拿shell)
WooYun: 乐视云多个数据库密码泄露
WooYun: 优酷某站配置不当泄露数据库配置信息已进入后台
WooYun: 联想某重要系统弱口令导致命令执行(泄露众多项目威胁内网)
WooYun: 网龙某关键站点注入
等等
还有些src的就不贴了
附一些厂商的ip段:
http://pan.baidu.com/s/1pJQNpDh 密码: sxjy
如果大家都有什么其他的好方法都分享出来吧。