Windows入侵排查
一、账号
1、弱口令
- 检查方法:查看服务器是否存在弱口令,远程连接端口是否对公网开放;直接询问管理员
2、新建账号和可疑账号
检查方法一:
Win+R
,输入lusrmgr.msc
检查方法二:
Win+R
,输入net localgroup administrators
检查方法三:
powershell
输入Get-WmiObject -Class Win32_UserAccount | Select-Object Name, SID
处理方法:禁用或删除对应的账户
3、隐藏账号和克隆账号
- 检查方法:查看注册表对应的键值
如果想用命令
reg query "HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names"
查询的话,需要system权限,可以用psexec去启一个PsExec64.exe -i -s cmd.exe
- 处理方法:删除注册表
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\
下对应帐户的键值即可(两处)
4、在线用户
除了自己外,是否还有其他人连接到服务器的。
- 检查方法一:如下命令进行查询。
quser
query session
Get-SmbSession # powershell
- 检查方法二:任务管理器中用“用户”功能模块。
5、登陆日志
- 检查方法:
a、
win+R
,输入eventvwr.msc
,打开事件管理器
b、Windows日志 -> 安全 -> 另存为
c、利用Log Parser
进行分析- 安装后常规情况安装到
C:\Program Files (x86)\Log Parser 2.2
- 有查询的思路可以直接问GPT让帮忙写查询语句,如:
使用LogParser.exe查询登陆成功的日志,怎么编写命令
- 安装后常规情况安装到
# 查看日志中的登陆记录
LogParser.exe -i:EVT "select TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username FROM c:\日志路径\日志.evtx where EventID=4624"
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM C:\Users\d4m1ts\Desktop\安全.evtx where EventID=4624"
二、端口和进程
可能存在一些还在运行中的后门程序,方便快速定位
1、检查端口情况
检查端口连接,是否有远程连接、可疑连接等
- 检查方法:
a、
netstat -ano
查看目前的网络连接、本地端口等情况,定位可疑的ESTABLISHED
、LISTENING
和TIME_WAIT
进程pid。 b、根据查询到的pid
定位到进程,tasklist /svc | findstr $PID
c、根据查询到的建立连接的IP,可以去微步上查一下是否为已知C2
2、检查异常进程
- 检查方法一:“任务管理器” -> “进程”
- 检查方法二:使用
Process Explorer
- 检查方法三:
Win+R
,输入msinfo32
,点击 “软件环境” -> “正在运行任务”
3、进程命令行启动参数
- 除了上述2种图形化界面外,可以用
wmic
在windows下查看所有运行程序(或进程)的命令行参数
wmic process get caption,commandline /value
- 如果想查询某一个进程的命令行参数,使用下列方式:
wmic process where caption="svchost.exe" get caption,commandline /value
4、查看进程关联文件
在Process Explorer
中打开如下选项,即可查看到进程关联的文件、注册表等,实现类似linux中 lsof -p <pid>
的效果。
如此时我通过powershell打开txt,可成功关联到对应的txt文件
5、技巧
- 技巧一:如何快速定位恶意进程
- (1). 没有签名验证信息的进程
- (2). 没有描述信息的进程
- (3). 进程的属主
- (4). 进程的路径是否合法
- (5). CPU或内存资源占用长时间过高的进程
- (6). 攻击时间段内启动、被修改过的进程
技巧二:如何快速定位进程目录
- (1). 任务管理器的进程栏,直接右键,点击“打开文件位置”
- (2).
msinfo32
可以直接看 - (3).
cmd
中输入wmic
,然后输入process
6、Kill进程
[!WARNING]
一般乙方只负责排查出报告,不负责后续的清理,如果一定要清理必须要在客户有明确的说明的情况下再去清理(最好是有文字留档,避免背锅。
- 命令行:
# taskkill
taskkill /F /PID <进程ID>
taskkill /F /IM <进程名,可以用*表示通配符>
# powershell
powershell Stop-Process -Id <进程ID> -Force
# wmic
wmic process where ProcessId=<进程ID> call Terminate
- 图形化:
基本就直接选中进程,右键选择Kill就可以了
三、开机启动项、计划任务、服务
1、开机启动项
检查方法:
a、Win+R
输入shell:startup
,快速查看开机启动目录
b、Win+R
输入msconfig
,查看启动项
c、Win+R
输入regedit
- 查看
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
右侧是否有启动异常的项目; - 查看
HKEY_CURRENT_USER\Environment\
是否存在UserInitMprLogonScript
参数(Logon Scripts 后门); - 查看
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
的Userinit
的参数值是否有除userinit.exe
外的其他程序(userinit后门);
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce"
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
2、计划任务
检查方法一:“控制面板” -> “管理工具” -> “计算机管理”->“系统工具”->“任务计划程序”->“任务计划程序库” 或者 Win+R
输入 taskschd.msc
检查方法二:cmd
输入schtasks
或者 at
3、服务
检查方法一:Win+R
输入 services.msc
,注意服务状态和启动类型,检查是否有异常服务。
检查方法二:cmd
输入 sc query
,不太直观
四、系统信息
1、近期活动
使用工具 LastActivityView;LastActivityView 是一款适用于 Windows 操作系统的工具,它从运行系统的各种来源收集信息,并显示用户的操作日志以及这台计算机上发生的事件。LastActivityView 所显示的活动包括:运行.exe 文件、打开打开/保存对话框、从资源管理器或其他软件打开文件/文件夹、软件安装、系统关机/启动、应用程序或系统崩溃、网络连接/断开等等。
记得下载语言文件并放入到文件夹中
2、可疑目录和文件
检查前先开启隐藏文件和文件后缀
检查方法:
a、Win+R
输入 %UserProfile%\Recent
,打开最近操作过的文件(可以看到attrib +s +a +h +r
隐藏的文件)
b、临时目录,如 %TMP%
、%TEMP%
、C:\Windows\Temp
c、用户目录,如 C:\Users
、C:\Users\Public
d、回收站cd /d %SystemDrive%\$Recycle.Bin
、浏览器下载目录、浏览器历史记录
e、修改时间在创建时间之前的为可疑文件,或者近期更新过的文件
f、ADS隐藏后门
当看到运行进程中调用的文件名包含:
,或者dir /r
看到的文件列表中包含:
,类似test.txt:1.vbs
时,可考虑此后门,直接删除test.txt
即可
3、异常流量
后门不一定会是TCP的,可能是走的其他协议比如DNS后门
# wireshark
icmp or dns
4、系统补丁
检查方法:CMD
中输入 systeminfo
,将结果复制到提权辅助页,查看是否有相应可用的漏洞
五、集成工具🌟
上面每一项都太杂了,而且比如伪装成一样的进程名可能也不太方便判断,那么是否有什么工具集成了这些功能,能够辅助看,然后再去查漏补缺呢?当然有,如下:
Autoruns
Autoruns for Windows 是 Mark Russinovich 和 Bryce Cogswell 开发的一款软件,它能用于显示在 Windows启动或登录时自动运行的程序,并且允许用户有选择地禁用或删除它们,例如那些在“启动”文件夹和注册表相关键中的程序。此外,Autoruns还可以修改包括:Windows 资源管理器的 Shell 扩展(如右键弹出菜单)、IE浏览器插件(如工具栏扩展)、系统服务和设备驱动程序、计划任务等多种不同的自启动程序。
下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/autoruns
火绒剑
火绒剑是火绒安全软件里的高级工具,也是一款用于分析、处理恶意程序的安全工具软件,适用于 Windows 系统的安全分析辅助工具,具有系统动作监控、文件管理、进程管理、启动项管理、注册表管理、服务管理、驱动模块、网络管理、系统内核查看、钩子扫描等功能。后面改名成了安全分析工具,在火绒的安全工具最下面。
下载地址:https://www.huorong.cn/person6.html (官网先下载安装火绒,然后去安全工具中找到 安全分析工具,一般客户有安装火绒的情况下建议用,或者安装后把它和依赖dll提取出来放到U盘,还是推荐用autoruns
OpenArk
OpenArk是一款Windows平台上的开源Ark工具. Ark是Anti-Rootkit(对抗恶意程序)的简写, OpenArk目标成为逆向工程师、编程人员的工具,同时也能为那些希望清理恶意软件的用户服务。以后也将会支持更多功能和命令。
下载地址:https://github.com/BlackINT3/OpenArk/releases/latest
六、自动化查杀
病毒查杀
- 检查方法:下载安全软件,更新最新病毒库,进行全盘扫描。
杀软推荐
卡巴斯基:http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe (推荐理由:绿色版、最新病毒库)
大蜘蛛:http://free.drweb.ru/download+cureit+free (推荐理由:扫描快、一次下载只能用1周,更新病毒库)
火绒安全软件:https://www.huorong.cn (推荐理由:如果用火绒就一定要用联网控制的功能,虽然很烦,但是很好用
在线病毒扫描
https://x.threatbook.cn/ // 微步在线
https://www.virustotal.com/gui/ // 老牌查杀
http://www.virscan.org //多引擎在线病毒扫描网 v1.02,当前支持 41 款杀毒引擎
https://habo.qq.com //腾讯哈勃分析系统
https://virusscan.jotti.org //Jotti恶意软件扫描系统
http://www.scanvir.com //针对计算机病毒、手机病毒、可疑文件等进行检测分析
一些特殊情况,比如使用了msf的 migrate
迁移到内存了,可能手动什么也查不出来,所以还是建议安装杀软做一次扫描,尽可能保证内存的安全。
扫描后,成功发现恶意的内存:
[!NOTE]
不要盲目信任杀软的处理,经测试火绒处理了权限还是在
如果被加载了恶意的内存,最好的办法是在备份进程内存后重启进程(不需要取证分析的话可以不备份)