【应急响应】知攻善防实验室Linux(2)靶机
前言
靶机地址
链接:百度网盘 请输入提取码 提取码:mapi --来自百度网盘超级会员V5的分享
前景需要:看监控的时候发现webshell告警,领导让你上机检查你可以救救安服仔吗!!
1,提交攻击者IP
2,提交攻击者修改的管理员密码(明文)
3,提交第一次Webshell的连接URL([http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg](http://xxx.xxx.xxx.xx/abcdefg?abcdefg%E5%8F%AA%E9%9C%80%E8%A6%81%E6%8F%90%E4%BA%A4abcdefg?abcdefg))
3,提交Webshell连接密码
4,提交数据包的flag1
5,提交攻击者使用的后续上传的木马文件名称
6,提交攻击者隐藏的flag2
7,提交攻击者隐藏的flag3
相关账户密码:root/Inch@957821.
学习过程
一、提交攻击者ip
-
打开虚拟机后先登录
-
ip a查询靶机ip得到
![]()
-
xshell连接靶机
![2026-09-07-17-13-36-image]()
![2026-09-07-17-13-55-image]()
-
对靶机操作
题目是“发现 webshell 告警”,webshell 属于 Web 层攻击,所以第一步要找到 Web 服务。
netstat -anlpt #netstat:Network Statistics,网络统计工具。 -a (all):显示所有连接(包括正在监听的端口和已经建立的连接),不省略任何状态。 -n (numeric):以纯数字形式显示 IP 地址和端口号(比如直接显示 192.168.20.1:80)。如果不加这个参数,系统会去尝试反向解析域名(比如把 IP 解析成 www.baidu.com),既慢又容易产生干扰。 -l (listening):只显示正在监听(即开放等待别人连接)的端口。这对找后门非常有用。 -p (process):显示对应的进程 PID 和程序名称(比如显示是 nginx、sshd 还是 python3 占用)。 -t (tcp):只显示 TCP 协议的连接(常用的 Web、SSH、数据库都是基于 TCP 的。如果是 UDP 则用 -u)得到
![]()
发现有nginx服务和进程号1276
-
使用lsof -p命令查询进程号为1276的进程打开了哪些文件
lsof -p 1276 | grep log #查看nginx的目录 lsof:系统监视工具 COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称 指令的用法如下: lsof abc.txt # 显示开启文件abc.txt的进程 lsof 目录名 # 查找谁在使用文件目录系统 lsof -i :22 # 知道22端口被哪个进程占用 lsof -c abc # 显示abc进程现在打开的文件 lsof -g gid # 显示归属gid的进程情况 lsof -n # 不将IP转换为hostname,缺省是不加上-n参数 lsof -p 12 # 看进程号为12的进程打开了哪些文件 lsof -u username # 查看用户打开哪些文件 lsof -i @192.168.1.111 # 查看远程已打开的网络连接(连接到192.168.1.111) lsof -i # 用以显示符合条件的进程情况![]()
-
查看nginx的access目录 在/www/wwwlogs下
access.log是记录所有HTTP请求(攻击流量)的进出记录cd /www/wwwlogs ls -laS #将文件按照大小排序![]()
-
用cat命令查看access.log的内容
cat access.log

发现好多127.0.0.1地址的日志,我们过滤掉再查看
cat access.log | grep -v "127.0.0.1"

现在全是192.168.20.1的了,没有发现攻击行为
-
再看127.0.0.1.log
cat 127.0.0.1.log | grep -v "127.0.0.1"![]()
我有这么多日志要看
哇,找到了疑似攻击行为
![]()
-
提交攻击ip
![]()
二、提交攻击者修改的管理员密码
-
提示我们查看历史命令
![]()
提示我们注意宝塔面板
我们输入宝塔面板修改密码
bt #进入宝塔面板 5 1.787878 #|-用户名: uysycv5w #|-新密码: 1.787878 -
重启宝塔面板服务
![]()
bt default #让其报错,获取后台地址![]()
-
复制内网面板地址往里进
![]()
各种密码往里找并记录
kaishi
5Sx8mK5ieyLPb84m
往里进往里进
注意到表不止一页,注意到password是md5加密
![]()
注意到md5解密网站
www.somd5.com
![]()
![]()
三、提交第一次Webshell的连接URL
-
要分析流量包,我用xshell打开文件管理器,将流量包下载下来
![]()
-
用wireshark打开流量包后筛选http字段
![]()
发现关键字flag1,右键点击该条流量,追踪流
![]()
得到一个flag?
![]()
-
提示我们ip.addr == 192.168.20.1 and http.request.uri
这里对uri有疑问
URI :Uniform Resource Identifier,统一资源标识符;
URL:Uniform Resource Locator,统一资源定位符;
URN:Uniform Resource Name,统一资源名称。
随机找一个post包追踪流都能看出很明显的蚁剑的流量特征
![]()
得到post头的url
index.php?user-app-register
当前进度
192.168.20.1 Network@2020 index.php?user-app-register
提取webshell连接密码
Network2020
四、提交数据包中的flag1
flag1{Network@_2020_Hack}
五、提交攻击者使用的后续上传的木马文件名称
-
o.O
![]()
-
O.o
![]()
-
o.o
![]()
cat 127.0.0.1.log | grep "192.168.20.1" | cut -d ' ' -f 6,7 | uniq -c | grep -C 10 version2.php -
当前进度
192.168.20.1 Network@2020 index.php?user-app-register flag1{Network@_2020_Hack} version2.php
六、找flag2
-
查看历史命令中进行编辑文件的操作
history | grep vi![]()
-
依次寻找上述提到过的文件/文件夹
在.api中cat到flag
![]()
-
当前进度
-
192.168.20.1 Network@2020 index.php?user-app-register flag1{Network@_2020_Hack} version2.php flag2 = "flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}
七、找flag3
-
之前history命令中看到过好多遍
flag3
-
当前进度
192.168.20.1 Network@2020 index.php?user-app-register flag1{Network@_2020_Hack} version2.php flag2 = "flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9} flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
通关知攻善防linux(2)靶场,day1完结撒花
总结
这个靶场的思路可以概括为:
-
找 Web 服务:
netstat、lsof -
找日志目录:
/www/wwwlogs -
分析访问日志,过滤本地 IP,找攻击者 IP
-
看宝塔面板、数据库,找被改的管理员密码
-
分析流量包,找 Webshell URL、连接密码、flag1
-
查日志找后续上传木马
version2.php -
查历史命令、隐藏文件,找 flag2、flag3



























浙公网安备 33010602011771号