首发于Python Hacker
Python自动化渗透(一)

Python自动化渗透(一)

从ZoomEye到BugScan,再到TangScan,大型的Poc/EXP平台越来越多,各种扫描器也层出不穷。Web安全的门槛越来越高,自动化的渗透已经成了一种趋势。我一直梦想着,将来渗透的时候,先打开自己写的各种自动化工具,输入目标,然后喝着咖啡,刷着知乎,最后只需要把工具的分析报告整理整理就可以了。事实上,现在的扫描器也正在向这个方向发展,期待一键getshell的那一天。

这是这个系列的第一篇文章,我们首先谈谈利用python进行信息采集。之前我写过一个对C段进行扫描,搜集网站Title和Banners,检测开放端口的轻量级扫描器,主要用于对C段进行快速检测,快速确定目标。当然也可以用在对内网设备的探索。

Title可由BeautifulSoup直接获得。另外,在获取Response Header后,可以添加一个模块,利用设备指纹可以识别出一些网络摄像头,路由器或者交换机之类的联网设备,这个可以根据需要自己拓展。

我采用的检测端口的方法是利用socket直接尝试建立连接:

def port_scan(self, ip, p):
if p:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        n = 0
        for port in self.port_list:
try:
                sock.connect((ip, port))
                mess1 =  "[*][%s] %s : %s =====>> open!\n" % (ctime(), ip, port)
self.set_color(mess1, 0x0a)
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                n += 1
            except socket.error:
#self.set_color( "[*][%s] %s : %s =====>> close!\n" % (ctime(), ip, port), 0x01)
                pass

这种方法检测少量端口比较快,但检测大量端口速度会变慢很多。如果大家有比较好的方法可以一起交流。

这个工具的下载地址在 BSDR_Banners.py 密码:rzv0

发布于 2016-01-15 16:22