从ZoomEye到BugScan,再到TangScan,大型的Poc/EXP平台越来越多,各种扫描器也层出不穷。Web安全的门槛越来越高,自动化的渗透已经成了一种趋势。我一直梦想着,将来渗透的时候,先打开自己写的各种自动化工具,输入目标,然后喝着咖啡,刷着知乎,最后只需要把工具的分析报告整理整理就可以了。事实上,现在的扫描器也正在向这个方向发展,期待一键getshell的那一天。
这是这个系列的第一篇文章,我们首先谈谈利用python进行信息采集。之前我写过一个对C段进行扫描,搜集网站Title和Banners,检测开放端口的轻量级扫描器,主要用于对C段进行快速检测,快速确定目标。当然也可以用在对内网设备的探索。
Title可由BeautifulSoup直接获得。另外,在获取Response Header后,可以添加一个模块,利用设备指纹可以识别出一些网络摄像头,路由器或者交换机之类的联网设备,这个可以根据需要自己拓展。
我采用的检测端口的方法是利用socket直接尝试建立连接:
1 def port_scan(self, ip, p): 2 if p: 3 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 4 n = 0 5 for port in self.port_list: 6 try: 7 sock.connect((ip, port)) 8 mess1 = "[*][%s] %s : %s =====>> open! " % (ctime(), ip, port) 9 self.set_color(mess1, 0x0a) 10 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 11 n += 1 12 except socket.error: 13 #self.set_color( "[*][%s] %s : %s =====>> close! " % (ctime(), ip,port), 0x01) 14 pass
这个工具的下载地址在 http://pan.baidu.com/share/init?shareid=3045207390&uk=2837989663 密码:rzv0