横向移动检测之远程执行—PsExec
1.1 介绍
在横向移动过程,攻击者通常会使用PsExec在远程主机执行命令。在客户端执行psexec.exe后,如果服务器认证成功,会将psexesvc.exe上传到服务端的ADMIN$目录并作为服务运行,在执行完命令后删除对应的服务和psexesvc.exe。
通过对客户端和服务端的事件日志、注册表、文件系统进行分析,可以从客户端主机获得连接的目的主机,连接时间等信息;从服务端主机可以获得连接的客户端信息,连接时间等信息。
环境
- 源:192.168.49.155
- 目的:192.168.49.144
psexec.exe基本命令格式如下:
psexec.exe \\host -accepteula -d -c c:\temp\evil.exe
-accepteula 不显示license对话框
-d 不等待进程终止(非交互式)
-c 复制执定程序到远程系统执行,如果省略,应用必须在远程系统的系统路径。
如果在执行命令时提示拒绝访问:
须在目标主机执行如下命令:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
在192.168.49.144上远程执行evil.exe:
PsExec.exe \\192.168.49.144 -u victim -p <passwd> -d -c .\evil.exe
在目标主机查看,evil.exe已运行:
1.2 PsExec - 源
1.2.1 事件日志
- security.evtx
- 4648,试图使用显式凭据登录。记录当前登录的用户名,使用的凭据的用户名,目标主机名/IP,进程名。
4648日志内容如下,在下图中,当前登录的用户为attacker,使用的凭据为victim,目标服务器名称为victim-pc,时间为2019-09-08 23:18:02:
首先使用kape.exe对日志文件进行提取:
kape.exe --tsource C: --target EventLogs --tdest .\event
使用logparser对security.evtx进行分析:
logparser -stats:OFF -i:EVT "SELECT timegenerated as date, extract_token(strings, 1, '|') as accountname, extract_token(strings, 2, '|') as domain, extract_token(strings, 5, '|') as usedac