应急响应靶机——linux2

载入虚拟机,打开虚拟机:

居然是没有图形化界面的那种linux,账户密码:root/Inch@957821.(注意是大写的i还有英文字符的.)


查看虚拟机IP,192.168.230.10是NAT模式下自动分配的


看起来不是特别舒服,用连接工具MobaXterm或者Xshell进行连接:


查看当前路径下的文件:

发现有wp和数据包两个看起来挺重要的文件


wp文件有执行权限,先运行wp:

看来wp是个解题程序

1、攻击者IP

2、攻击者修改的管理员密码

3、第一次webshell的连接URL

4、webshell连接密码

5、数据包的flag1

6、攻击者使用的后续上传的木马文件名称

7、攻击者隐藏的flag2

8、攻击者隐藏的flag3


下载数据包1.pcang


上传whoamifuck.sh文件,给予执行权限并运行:

得到两个IP,但应该只有一个IP是攻击者的(题目没说有两个IP),试验一下是哪个IP

看来攻击者IP是192.168.20.1


history命令查看历史命令,发现flag3:

得到flag3:flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}


wireshark打开刚才下载的数据包1.pcang

ip.addr==192.168.20.1,搜索关键词"flag1":

当然也可以追踪tcp流,发现在流20:

得到flag1:flag1{Network@_2020_Hack}


查看开放的服务有哪些:

./whoamifuck.sh -x

发现mysqld和bt服务在运行(这个bt后面再讲)


在/www/wwwlogs/access.log中发现了"GET /phpmyadmin":

说明网站搭建数据库是使用了phpmyadmin,直接去找配置文件config.inc.php


最后在/www/wwwroot/127.0.0.1/lib目录下找到了config.inc.php文件:


查看config.inc.php文件内容:

复制代码
<?php

/** 常规常量设置 */
define('DOMAINTYPE','off');
define('CH','exam_');
define('CDO','');
define('CP','/');
define('CRT',180);
define('CS','1hqfx6ticwRxtfviTp940vng!yC^QK^6');//请随机生成32位字符串修改此处值
define('HE','utf-8');
define('PN',10);
define('TIME',time());
if(dirname($_SERVER['SCRIPT_NAME']))
{
    define('WP','http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/');
}
else
{
    define('WP','http://'.$_SERVER['SERVER_NAME'].'/');
}
define('OPENOSS',false);

/**接口加密设置**/
define('APIKEY','356d9abc2532ceb0945b615a922c3370');
define('APIIV','#phpems90iv*');
/**composer开关**/
define('COMPOSER',0);
/** 数据库设置 */
define('SQLDEBUG',0);
define('DB','kaoshi');//MYSQL数据库名
define('DH','127.0.0.1');//MYSQL主机名,不用改
define('DU','kaoshi');//MYSQL数据库用户名
define('DP','5Sx8mK5ieyLPb84m');//MYSQL数据库用户密码
define('DTH','x2_');//系统表前缀,不用改

/** 微信相关设置 */
define('USEWX',false);//微信使用开关,绑定用户,false时不启用
define('WXAUTOREG',false);//微信开启自动注册,设置为false时转向登录和注册页面,绑定openid
define('WXPAY',false);
//define('FOCUSWX',true);//强制引导关注微信
//define('WXQRCODE','qrcode.png');//微信公众号二维码地址
define('EP','@phpems.net');//微信开启自动注册时注册邮箱后缀
define('OPENAPPID','wx7703aa61284598ea');//开放平台账号
define('OPENAPPSECRET','36745ed4d4ea9da9f25e7b3ccd06d5ef');
define('MPAPPID','wx7703aa61284598ea');//小程序账号
define('MPAPPSECRET','36745ed4d4ea9da9f25e7b3ccd06d5ef');
define('WXAPPID','wx6967d8319bfeea19');//公众号账号
define('WXAPPSECRET','4d462a770aebb7460e2284cbd448cee0');
define('WXMCHID','1414206302');//MCHID
define('WXKEY','72653616204d16975931a46f9296092e');

/** 支付宝相关设置 */
define('ALIPAY',false);
/**MD5**/
define('ALIPART','111171660');
define('ALIKEY','os11111117fmljymmcau');
define('ALIACC','111111@qq.com');
/**RAS2**/
define('ALIAPPID','2016072738');
define('ALIPRIKEY','MIIEogIBAMXsHR2vhl3BqWBbXfDaIcrJgNssIUddVCX6fT9YWiPXCiCeu5M=');
define('ALIPUBKEY','MIIBIjANXRkaDw6wIDAQAB');

/** payjz相关设置 */
define('PAYJSASWX','NO');//使用PAYJZ的微信支付接口代替微信支付,不使用请设置为NO
define('PAYJSMCHID','1551052561');
define('PAYJSKEY','Zz8ks1ZP3UPKeTGi');
?>

数据库账户密码:

kaoshi: 5Sx8mK5ieyLPb84m


登录数据库:

mysql -ukaoshi -p5Sx8mK5ieyLPb84m

show databases;

use kaoshi;

show tables;

select * from x2_user_group;


select * from x2_user where userid=1;

得到管理员密码是Network@2020


再次回到wireshark的报文,由前面的flag1在tcp流的流20中,从1开始查看:

发现在流1是一堆乱码,流2中第一次看到正常的报文,url解码流2的关键代码

复制代码
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."/.fd491f470fb7";
        @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 "4a0c"."dc70";
    echo @asenc($output);
    echo "db6"."da5";
}
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();

丢个AI分析一下:

那就找对了,说明第一次webshell的连接URL是:index.php?user-app-register


此时注意到Network2020=@ini_set("display_errors", "0");

这句代码基本是所有webshell客户端链接PHP类WebShell都有的一种代码

比如蚁剑:

得知webshell连接密码是:Network2020


为了获取webshell木马文件,将http包和POST请求过滤出来:

http && http.request.method==POST

发现POST了一个version2.php,此时回想起history命令得到的结果中显示了删除version2.php的命令记录,version2.php应该是木马文件?

后面追踪了version2.php的tcp流


看到别人说这是冰蝎的webshell特征:


去wp验证一下对不对吧

说明后续上传的木马名称是version2.php


还差一个flag2,再回顾一下history命令:

发现在隐藏目录.api/中修改了mpnotify.php和alinotify.php文件


看看修改了alinotify.php什么内容:

成功得到flag2:flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}


总结一下:

1、192.168.20.1

2、Network@2020

3、index.php?user-app-register

4、Network2020

5、flag1{Network@_2020_Hack}

6、version2.php

7、flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}

8、flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}

成功攻克该靶机!


前面提到的bt是什么,bt是宝塔面板,该靶机是利用宝塔面板管理的


修改宝塔面板密码为root:


查看宝塔面板默认信息:

https://192.168.230.10:12485/5a2ce72d

uysycv5w/root


登录宝塔面板:


在"日志"模块发现基本上都是192.168.20.1的IP地址访问:

当然,在"网站"模块一样能发现异常访问:

攻击者IP:192.168.20.1


在"数据库"模块查看phpMyAdmin管理员密码:


一眼看出是md5加密:

管理员密码:Network@2020


在"网站"模块中添加靶机IP(192.168.230.10)

访问靶机,发现是个PHPEMS模拟考试系统:

利用获取到的管理员账户密码:peadmin/Network@2020进行登录,进入到"后台管理":


在"文件"模块的"内容/标签管理/标签修改"处发现木马,且位置在"注册页面":

得到webshell连接密码:Network2020


注册页面URL:

得知第一次webshell连接的URL:index.php?user-app-register

后续的步骤也基本一致了,这里就不再赘述

相关推荐
知北游天5 分钟前
Linux:多线程---深入互斥&&浅谈同步
linux·运维·服务器
Gappsong8747 分钟前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全
try2find40 分钟前
移动conda虚拟环境的安装目录
linux·运维·conda
码农101号1 小时前
Linux中容器文件操作和数据卷使用以及目录挂载
linux·运维·服务器
PanZonghui1 小时前
Centos项目部署之Nginx 的安装与卸载
linux·nginx
PanZonghui1 小时前
Centos项目部署之安装数据库MySQL8
linux·后端·mysql
PanZonghui1 小时前
Centos项目部署之运行SpringBoot打包后的jar文件
linux·spring boot
PanZonghui1 小时前
Centos项目部署之Java安装与配置
java·linux
程序员弘羽2 小时前
Linux进程管理:从基础到实战
linux·运维·服务器
PanZonghui2 小时前
Centos项目部署之常用操作命令
linux