Apache日志分析

靶场简介:

账号密码 root apacherizhi
ssh root@IP
1、提交当天访问次数最多的IP,即黑客IP:
2、黑客使用的浏览器指纹是什么,提交指纹的md5:
3、查看index.php页面被访问的次数,提交次数:
4、查看黑客IP访问了多少次,提交次数:
5、查看2023年8月03日8时这一个小时内有多少IP访问,提交次数:

apache的日志放在/var/log/apache目录下面

image-20240710153749475

然后用下面指令筛选出访问的ip次数

cut -d- -f 1 access.log.1|uniq -c | sort -rn | head -20 
#----------
cut命令用于剪切并分割文件中的行。
-d-指定分隔符为"-",即以连字符作为字段的分隔符。
-f 1指定只提取每个字段的第一个部分,也就是行的第一个元素。

sort命令用于对文本行进行排序。
-r选项表示以逆序(从大到小)排序。
-n选项表示按照数值大小进行排序。

image-20240710155027635

flag{192.168.200.2}

浏览器指纹就过滤一下看看具体的信息

cat access.log.1 | grep 192.168.200.2

image-20240710155145579

//浏览器指纹
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36

flag{2d6330f380f44ac20f3a02eed0958f66}

找index.php页面被访问的次数

cat access.log.1 | grep "/index.php" | wc -l
# wc -l命令用于计算匹配到的行数,flag{27}

image-20240711125509920

查找黑客ip访问的次数,我们只要把去掉重复行改成计算匹配行数即可

cat access.log.1 | grep "192.168.200.2 - -" | wc -l
#flag{6555}

查看2023年8月03日8时这一个小时内有多少IP访问,把第一个查看访问ip改成时间即可

cat access.log.1 | grep "03/Aug/2023:08:" | awk '{print $1}' | sort -nr| uniq -c
# 我们要用ip来匹配才能正确去掉重复行,所以要先awk打印第一个字段也就是ip

image-20240711130832864

flag{5}

mysql应急响应

靶机简介

mysql应急响应 ssh账号 root  密码 xjmysql
ssh env.xj.edisec.net -p xxxxx
1.黑客第一次写入的shell flag{关键字符串}
2.黑客反弹shell的ip flag{ip}
3.黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx
4.黑客获取的权限 flag{whoami后的值}

先去看一下mysql的日志,在/var/log/mysql下面

image-20240711182807349

image-20240711182925627

看看web目录下有没有被写shell,毕竟一般都是从网站开始渗透的

image-20240711183039409

果然有,flag{ccfda79e-7aa1-4275-bc26-a6189eb9a20b}

也可以直接使用河马查杀,刚学到的,下载也很快,这是官网:https://www.shellpub.com/doc/hm_linux_usage.html

用法也很简单

# 下载解压缩
wget -O /opt/hm-linux.tgz http://dl.shellpub.com/hm/latest/hm-linux-amd64.tgz?version=1.7.0
cd /opt
tar xvf hm-linux.tgz
# 使用
./hm deepscan <要扫描的目录> # 深度扫描,扫描完成之后结果会保存为result.csv文件
./hm scan <要扫描的目录> #扫描完成之后结果会保存为result.csv文件,使用记事本或者excel打开查看

image-20240711183620135

查找反弹shell的地址,我们可以看看error.log有没有什么异常的地方

image-20240711183935052

感觉/tmp/1.sh有点奇怪,去看一下

image-20240711184013639

可以发现是一个bash的反弹shell指令,找到反弹的地址,flag{192.168.100.13}

这个文件在/var/lib/mysql/下也有

image-20240712001549368

寻找黑客提权的完整路径,这里能够提权应该泄露了一些用户信息,我们发现在web目录下的common.php里面有root用户的信息

image-20240712002457267

mysql常规的提权套路就是udf提权,如果是的话那么应该就会在 /usr/lib/mysql/plugin/留下文件痕迹,我们去看一下

image-20240711184502176

那提权路径就是/usr/lib/mysql/plugin/udf.so,flag{b1818bde4e310f3d23f1005185b973e7}

查看提权后的权限,看一下进程详细信息

ps -aux

image-20240711184705362

可以看到应该是那个mysql的用户,那么权限就是flag{mysql}

或者进入到mysql里面用**select sys_eval(“whoami”);**查看当前用户

参考文章:https://blog.csdn.net/JACKBREAK/article/details/139037618

redis应急响应

靶机介绍

服务器场景操作系统 Linux
服务器账号密码 root xjredis

任务环境说明
注:样本请勿在本地运行!!!样本请勿在本地运行!!!样本请勿在本地运行!!!
应急响应工程师小王某人收到安全设备告警服务器被植入恶意文件,请上机排查

步骤

通过本地 PC SSH到服务器并且分析黑客攻击成功的 IP 为多少,将黑客 IP 作为 FLAG 提交;
通过本地 PC SSH到服务器并且分析黑客第一次上传的恶意文件,将黑客上传的恶意文件里面的 FLAG 提交;
通过本地 PC SSH到服务器并且分析黑客反弹 shell 的IP 为多少,将反弹 shell 的IP 作为 FLAG 提交;
通过本地 PC SSH到服务器并且溯源分析黑客的用户名,并且找到黑客使用的工具里的关键字符串(flag{黑客的用户-关键字符串} 注关键字符串 xxx-xxx-xxx)。将用户名和关键字符串作为 FLAG提交
通过本地 PC SSH到服务器并且分析黑客篡改的命令,将黑客篡改的命令里面的关键字符串作为 FLAG 提交;

那就先去看一下redis的日志在/var/log下面

image-20240712004115278

这里找到一张主从复制时的通信过程图,所以有Master replied to PING的字段即为连接成功

image-20240712011533382

image-20240712004200679

这里很明显应该是一个redis的主从复制,但是都是失败连接,再往下还有尝试其他ip的连接,最后成功的是20的ip

image-20240712004754137

flag{192.168.100.20}

既然是主从复制那一般就会上传有so文件,我们用命令查看so文件在哪里

find / -name 'exp.so' 2>/dev/null

image-20240712005221837

可以看到在根目录下,我们查看内容里面有flag

xxd /exp.so

image-20240712005512837

flag{XJ_78f012d7-42fc-49a8-8a8c-e74c87ea109b}

看一下定时任务找反弹shell

corntab -l

image-20240712005613810

flag{192.168.10.13}

溯源可以去看一下.ssh下的authorized_keys

image-20240712005919183

找到了他的用户名

xj-test-user,然后去github上看一下该用户,可以找到他使用的工具

image-20240712010113376

再去找他的历史commit

image-20240712010420376

在first commit里面

image-20240712010539821

flag{xj-test-user-wow-you-find-flag}

最后查找篡改的命令,可以直接去/usr/bin目录下查看,这里改的是ps命令,我就说一开始用ps命令为什么怪怪的

image-20240712011217461

flag{c195i2923381905517d818e313792d196}