简单层面有手就行的Windows服务器后门排查和一些常见使用方法
[hedi]
创建隐藏账号
net user test$ 123 /add 加$使得平常的net user无法看到该账户
net localgroup administrators test$ /add 加入管理员组获得最高权限
所以需要在本地用户和组去查看,删除未知的账户
命令行删除net user test$ /del
但是如果攻击者先一步使用注册表\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
赋予权限并导出账户reg,然后删除了该账户在导入注册表,那么我们在命令行 本地组均无法看到该账户
所以最好的方式是直接在注册表查看账户信息,并删除
#自启动目录
#运行查找
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
#直接文件夹
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
#注册表
用户级
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
系统级
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001\Depend
#自启动服务
services.msc
查找可疑的启动服务
命令行创建自启服务的方法
sc create "Server Name" binpath= "c:\\windows\\a.exe" //创建服务 在命令中,=号前面不能有空格,而=号后面必须有一个空格sc description KeyName "eval file" //服务的描述
sc config KeyName start=auto //设置服务自启动
sc qc "Server Name" //查看该服务的详细信息
net start "Server Name" //启动该服务
net start //查看所有启动的服务
icacls "c:\\windows" //查看该windows目录的执行权限
查找计划任务
查看是否有可疑的计划任务
#命令行创建计划任务的方法
schtasks /create /tn test /sc onstart /tr C:\shell.bat /ru system /f:在主机上创建名为test的计划任务
schtasks /run /i /tn "test":运行主机上的test计划任务
schtasks /delete /tn "test" /f:删除主机上的test计划任务(schtasks >=2008)
/ru 指定运行任务的用户权限,这里指定为最高的 SYSTEM,/tn 是任务名称,/sc 是任务运行频率,这里指定为每天运行
/tr 指定运行的文件,/F 表示如果指定的任务已经存在,则强制创建任务并抑制警,其中/i 表示立即运行
schtasks //查看所有计划任务
#登陆脚本
本地组策略编辑器->计算机配置->Windows设置->脚本(启动/关机)
检查每次开机/关机会执行的脚本文件。
#检查文件打开关联
assoc后边加上文件后缀比如:
assoc .txt
返回:
txt=txtfile
在使用ftype查看使用的程序
ftype txtfile
#大致就是这样了
assoc .txt=txtfile 设置txt文件关联类型
ftype txtfile=c:\windows\notepad.exe %1 设置打开txt的应用程序
注册表路径为:HKCR\txtfile\shell\open\command
#用户登陆初始化(userinit)
用户登陆的时候,WinLogon 会启动HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon 的UserInit表键下指定的程序(默认为 userinit.exe)。
UserInit 进程执行登录和初始化脚本,然后启动 Shell 表键中定义的 Shell程序,
默认即是 Explorer.exe。
但是,注册表的键值支持多个进程,这就给了我们机会。
检查UserInitMprLogonScript是否有可疑的进程优先级过高,
加载优先级高,先于大多数启动项(包括杀软)就会免杀
以下是一个方法
HKEY_CURRENT_USER\Environment
创建一个键为:UserInitMprLogonScript,其键值为我们要启动的程序路径(可以加载一个恶意exe文件,充当后门)
还有一种方式,
将目标主机屏幕保护打开,我们可以修改、替换屏保程序来启动我们的恶意程序。
屏幕保护的配置位置:HKEY_CURRENT_USER\Control Panel\Desktop,主要键值:
SCRNSAVE.EXE,默认屏幕保护程序,我们可以把这个键值改为我们的恶意程序
ScreenSaveActive,1表示屏幕保护是启动状态,0表示表示屏幕保护是关闭状态
ScreenSaverTimeout,指定屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900(15分钟)
程序替换(shift后门)
在系统登录界面可以以特定方式运行系统程序,
例如连续按shift五次即可运行 C:\WINDOWS\system32\sethc.exe,
可以使用木马后门程序替换该文件。可以替换该程序为cmd.exe(名字还是需要设置为sethc.exe),则按5次shift之后会调用cmd窗口
C:\Windows\System32\utilman.exe 设置中心 快捷键:Windows+U 键
C:\Windows\System32\osk.exe 屏幕键盘
C:\Windows\System32\Magnify.exe 放大镜 快捷键:Windows+加减号
还有一种映像劫持
对于在Windows Vista和Windows Server 2008 及更高的版本中,替换的二进制文件受到了系统的保护,
无法使用经典的shift后门。映像劫持也被称为“IFEO”(Image File Execution Options),
简单来说就是当目标程序被映像劫持时,当我们启动目标程序时,
启动的是劫持后的程序而不是原来的程序。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ 添加一个项sethc.exe,
然后在sethc.exe这个项中添加debugger键,键值为我们恶意程序的路径
连按5次shift键之后会打开cmd窗口。
后边是一些常见的方式
通过cmd添加helper
netsh add helper c:\windows\calc.dll
通过注册表添加helper
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NetSh
com组件会根据以下路径去寻找
HKCU\Software\Classes\CLSID
HKCR\CLSID HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\shellCompatibility\Objects\
那么我们如果想要进行com劫持,肯定挑选的是首先寻找的路径,
即HKCU\Software\Classes\CLSID,我们可以直接在CLSID下新建一个对象ID,与dll劫持不同的是,dll劫持只能劫持dll,局限性比较大,但是com组件能够劫持如.com文件、pe文件、api等文件
快捷方式加载恶意脚本启动
将快捷方式的启动%windir%\system32\mstsc.exe后边加上我们自己的恶意程序 /c calc.exe&mstsc.exe
当用户启动程序时启动我们的程序,就可以做到实时记录用户操作 键鼠 剪切板等记录并发送到云端的目的。
脚本甚至可以捕捉程序关闭时结束,让你无法查看到异常。
DLL注入劫持 shell反弹等就需要基础了
一般简单的可以用Sysmon工具对系统事件进行监控
安装 Sysmon.exe -i
• 指定规则安装(sysmonshell生成规则)Sysmon.exe -accepteula -i Sysmonconfig-export.xml
• 更新配置文件 Sysmon.exe -c Sysmonconfig-export.xml
• 卸载 Sysmon.exe -u
监控日志:事件查看器(eventvwr.msc)-->应用程序和服务日志-->Microsoft-->Windows- >Sysmon-->Operationa
ProcessMonitor可以实时显示文件系统、注册表、网络连接、进程活动、配置事件
[/hedi]