今天继续给大家带来一篇Linux的应急响应文章;本篇文章与Linux-1的主要区别就是加上了一点流量的分析;
文章目录
靶场介绍
背景
前景需要:看监控的时候发现webshell告警,领导让你上机检查你可以救救安服仔吗!!
- 提交攻击者IP
- 提交攻击者修改的管理员密码(明文)
- 提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
- 提交Webshell连接密码
- 提交数据包的flag1
- 提交攻击者使用的后续上传的木马文件名称
- 提交攻击者隐藏的flag2
- 提交攻击者隐藏的flag3
关于靶机启动
关于靶机启动解压后双击ovf导入虚拟机打开即可。
相关账户密码
root/Inch@957821.
关于解题
root下,运行"./wp"即可
附:靶场为知防善攻实验室搭建如想查看更多靶场可移步至知防善攻实验室公众号!
(本次靶机我还是不会按照上述的顺序去寻找,这样有利于更加接近真实情况,话不多说,我们直接开始。)
应急过程
提交攻击者IP
首先我们打开靶机,输入账号密码,显示页面如下:

随后我们发现了一个流量包,所以我们将其下载到本地并进行查看:
不熟悉的师傅可以先看这篇文章:Wireshark流量分析案例篇(手把手教学基础篇)
我们打开流量包,首先查看"统计" ------> "IPv4" ------> "All address":

随后发现了有两个IP数量十分异常:192.168.20.1 和192.168.20.144

(这个时候我们就要去分辨哪个才是真正的攻击IP)
输入过滤命令:http

可以发现大多数是92.168.20.1 向192.168.20.144发送POST请求,而192.168.20.144则是响应请求;
所以攻击者IP很有可能就是
192.168.20.1
第一次Webshell的连接URL和连接密码
接下来我们继续查看流量包还有什么可利用的信息:
- 查找攻击者是否留有攻击路径流量
- 进行了什么类型的攻击
bash
http and ip.src==192.168.20.1
我们得到了所有攻击者IP发送的请求:

所以我们分别点击进去查看,也是发现了一些线索:

看了几个流量包,我们很容易得到信息:
(1)首先攻击者使用的是蚁剑对受害主机进行的Webshell连接,并且密码是Network2020
(2)Web服务器存在漏洞路径为:/index.php?user-app-register

所以URL:index.php?user-app-register
连接密码:Network2020
补充知识:如果蚁剑的请求中包含了多个参数,那个该参数的值为前两位为混淆字符,需要删除前两位才能进行base64解码
(1)攻击路径

(2)上传连接shell文件名字

(3)上传一个version2.php文件

提交数据包的flag1
随后我们往下看,也是发现了flag1字样:

很容易得到结果:

得到结果
flag1{Network@_2020_Hack}
攻击者使用的后续上传的木马文件名称
接着往下,我们发现攻击者尝试访问几个文件:version.php 和version2.php

(version.php不存在)
随后都是清一色的version2.php文件了:

点进去查看,发现流量都是经过编码加密的:


结合之前的分析,我们几乎可以确定version2.php就是攻击者进行横向的Webshell文件
(shell.php文件则是用来连接蚁剑的一句话木马)
之后我也去靶机相关目录查询了一下,并没有发现相应的文件(可能是被攻击者进行痕迹清除了)
bash
find / -name 'shell.*' 2>/dev/null

所以攻击者的木马文件名称:version2.php
提交攻击者隐藏的flag3
之后又花了点时间在流量包里寻找,并没有发现任何有用的东西,所以只能回归靶机进行查找了;
于是我就先对机器的历史命令history排查:

意外发现了一个flag以及可能存在的后门程序;
flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
提交攻击者隐藏的flag2
通过history命令,发现攻击者在环境变量中写入了第三个flag,并且攻击者在/www/wwwroot/127.0.0.1/中创建了文件夹.api隐藏文件,然后复制了api下的文件,并修改了其中的alinotify.php文件。查看一下这个文件,看看攻击者干了什么。

查看两个文件存放位置:
bash
find / -name mpnotify.* 2>/dev/null
find / -name alinotify.* 2>/dev/null


注意:进入的是.api目录,不是api
返回结果,分别查看两个文件的内容:

在alinotify.php文件的最后一行发现了flag2,而 mpnotify.php无发现;
flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}
至此,所有flag均已找到;
重点------提交攻击者修改的管理员密码(明文)
之后我又去Web服务器的日志目录进行排查,发现机器安装了Apache和Nginx两个中间件,所以我们对其一一进行排查:
不熟悉的师傅可以看这篇文章:Apache和Linux日志分析
- 排查攻击IP次数:
awk '{print $1}' access.log |uniq -c |sort -n

-
扫描器 / 目录爆破行为(404 特别多):
awk '$9==404 {print $7}' access.log | sort | uniq -c | sort -nr | head -
Web 攻击 payload 排查(核心) :
grep -Ei 'union|select|insert|update|delete|drop|--|#|/etc/passwd|cmd=|exec=|system\(|\.\./' access.log

发现攻击者曾经对phpmyadmin进行过访问(服务可能存在数据库!)
接下来我们可以观察进程以及开启了哪些端口服务
输入命令:netstat -antlp

进行分析:
| 端口 | 协议 | 进程 | 服务 | 关键信息 / 安全意义 |
|---|---|---|---|---|
| 80 | TCP | nginx | Web 服务 | 对外 HTTP,重点审计 access.log / WAF |
| 888 | TCP | nginx | Web 管理/二站 | 非常敏感,常见为管理后台 |
| 12485 | TCP | python3 | 自定义 Python 服务 | 异常端口,需重点关注 |
| 21 | TCP | pure-ftpd | FTP 服务 | 明文协议,易被爆破 |
| 22 | TCP | sshd | SSH | root 正在登录 |
| 25 | TCP | postfix(master) | SMTP | 本地邮件服务 |
| 3306 | TCP6 | mysqld | MySQL | 对外监听(:::) |
(1)发现开着3306服务,尝试登陆:mysql -u root -p

(尝试登陆失败)
(2)888端口,禁止访问

(3)12485 端口:宝塔页面
- 访问192.168.44.171:12485页面

成功发现宝塔页面,不知道账号密码?
bash
# 靶机里进入宝塔页面
bt
# 修改密码


成功进入:

得到账号密码后,点击"管理"进入数据库:
- 账号:kaoshi
- 密码:
5Sx8mK5ieyLPb84m


进入数据库后搜索user相关的表:

可以x2_user_group看到id=1为管理员权限,而x2_user表中只有peadmin为管理员:

bash
密码为:f6f6eb5ace977d7e114377cc7098b7e3
放到网上在线解密,可得到结果:Network@2020

明文密码:Network@2020
总结
执行wp脚本,提交题解:
bash
[root@web-server ~]# ./wp
提交攻击者IP?
192.168.20.1
回答正确!
提交攻击者修改的管理员密码(明文)
Network@2020
回答正确!
提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)
index.php?user-app-register
回答正确!
提交Webshell连接密码
Network2020
回答正确!
提交数据包的flag1
flag1{Network@_2020_Hack}
回答正确!
提交攻击者使用的后续上传的木马文件名称
version2.php
回答正确!
提交攻击者隐藏的flag2
flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}
回答正确!
提交攻击者隐藏的flag3
flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
回答正确!
[root@web-server ~]#
相对于上一篇Linux-1靶场,难度稍微提升,但整体排查应急的思路是差不多的,只不过添加了一点Web服务流量分析;
攻击路径还原
攻击手法猜测应该是从PHPEMS框架 利用peadmin:peadmin弱口令登录后,上传了蚁剑webshell:

(上传的路径)
期待下次再见;