专栏名称: 合天网安实验室
为广大信息安全爱好者提供有价值的文章推送服务!
目录
相关文章推荐
药安食美诚信河北  ·  安全用药 | 这些药品不良反应小常识,一定要知道! ·  7 小时前  
药安食美诚信河北  ·  安全用药 | 这些药品不良反应小常识,一定要知道! ·  7 小时前  
护肤问莫嫡  ·  由于我不停的热敷、热敷… ·  昨天  
郓城融媒体中心  ·  家里换包盐,或许能省很多看病钱! ·  2 天前  
51好读  ›  专栏  ›  合天网安实验室

vulntarget-n靶场搭建 & write up

合天网安实验室  · 公众号  ·  · 2024-07-02 16:30

正文

vulntarget 靶场系列仅供安全专业人员练习渗透测试技术,此靶场所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用靶场中的技术资料对任何计算机系统进行入侵操作。利用此靶场所提供的信息而造成的直接或间接后果和损失,均由使用者本人 负责。

vulntarget 靶场系列拥有对此靶场系列的的修改、删除和解释权限,未经授权,不得用于其他!!!

靶场地址: https://github.com/crow821/vulntarget



1. 靶场描述

在面对勒索病毒这样的网络威胁时,我们需要了解攻击的原理和过程,熟练掌握应急响应和取证分析的技术,以便在面对真实的威胁时能够迅速有效地应对。

vulntarget-n 是一个模拟全球化勒索病毒高发环境下的应急响应和取证分析案例,其模拟了一个正常运行的业务服务被勒索病毒攻击的情景:

  • 客户在阿里云部署的业务环境
  • 今天突然发现首页变成了一个勒索的界面,要求用户支付赎金以解密数据
  • 客户发现其中部分重要文件被加密为 .vulntarget 结尾

随即客户要你进行应急响应并取证分析,因为是阿里云的 ECS ,客户将阿里云 ECS 实例镜像导出到本地,要求你在明天分析出结果。

具体要求如下:

  • 分析攻击事件是如何发生的,请给出攻击画像
  • 解密勒索
  • 恢复原来的 index.jsp 页面,恢复正常的 web 服务
  • 找到隐藏在其中的 3 flag

已知服务器系统为 Ubuntu20.04 ,账号密码:
账号: root
密码: Vulntarget@123

ps:在本次攻击中少了一次反弹 shell 的操作,主要是防止 ip 出现泄露,在攻击路径中可以不对此进行说明

2. 环境配置

2.1 阿里云ECS购买

在阿里云上选择:云服务器 ECS

选择立即购买,配置 ip 和相关信息之后,服务器配置完成,密码: Vulntarget@666

2.2 tomcat环境配置

安装 java 环境,在这里安装 java1.8

apt update && apt install openjdk-8-jdk && apt install unzip -y

当然也要顺带安装 unzip ,方便解压 tomcat 的环境包:



  1. 打开环境变量文件:
vim /etc/profile
  1. 在文件末尾添加以下行:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

  1. 保存并关闭文件,然后使更改生效:
source /etc/profile

2.3 安装Tomcat 7

现在 Java 环境已经配置好了,接下来我们安装 Tomcat 。下载 Tomcat 7

wget https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.79/bin/apache-tomcat-7.0.79.zip
  1. 解压Tomcat压缩包:
unzip apache-tomcat-7.0.79.zip

  1. 移动Tomcat到一个合适的目录(例如:/opt/tomcat):
mv apache-tomcat-7.0.79 /opt/tomcat
  1. 为Tomcat脚本赋予执行权限:
chmod +x /opt/tomcat/bin/*.sh

2.4 设置Tomcat靶标环境

  1. 启动Tomcat:
/opt/tomcat/bin/startup.s

  1. 验证Tomcat是否启动成功: 打开浏览器,访问以下地址:
http://8.*.*.136:8080/

如果看到 Tomcat 的欢迎页面,说明 Tomcat 安装和配置成功:


2.5 修改8080端口到80

cp /opt/tomcat/conf/server.xml /opt/tomcat/conf/server.xml.bak
vim /opt/tomcat/conf/server.xml

修改之后,需要重启服务,先把原来的服务关掉,然后再重启:



2.6  修改配置文件创造漏洞条件

此时需要修改 web.xml 文件:

cp web.xml web.xml.bak
vim web.xml


        readonly
        false

然后重启服务之后,漏洞搭建成功:



2.7 修改首页&&删除ico文件

修改后台页面为 vulntarget 后台登录界面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
html>
<html>
<head>
    <meta charset="UTF-8">
    <title>vulntarget后台管理系统title>
    <style>
        @keyframes gradient {
            0% {
                background-position0% 50%;
            }
            50% {
                background-position100% 50%;
            }
            100% {
                background-position0% 50%;
            }
        }
        body {
            font-family: Arial, sans-serif;
            margin0;
            padding0;
            backgroundlinear-gradient(-45deg, #EE7752, #E73C7E, #23A6D5, #23D5AB);
            background-size400% 400%;
            animation: gradient 15s ease infinite;
        }
        .login-container {
            max-width300px;
            margin0 auto;
            padding-top100px;
            box-sizing: border-box;
        }
        .login-container h1 {
            text-align: center;
            padding15px 0;
        }
        .login-container form {
            background-color#fff;
            padding20px;
            border-radius5px;
            box-sizing: border-box;
        }
        .login-container form input {
            width100%;
            padding10px;
            margin-bottom10px;
            border-radius5px;
            border1px solid #ccc;
            box-sizing: border-box;
        }
        .login-container form input[type="submit"] {
            background-color#4CAF50;
            color: white;
            cursor: pointer;
        }
        .login-container form  input[type="submit"]:hover {
            background-color#45a049;
        }
    
style>
head>
<body>
    <div class="login-container">
        <h1>登录h1>
        <form action="https://github.com/crow821/vulntarget" method="post">
            <input type="text" name="username" placeholder="用户名" required="required" />
            <input type="password" name="password" placeholder="密码" required="required" />
            <input type="submit" value="登录" />
        form>
    div>
body>
html>

当输入账号密码之后,跳转到 vulntarget



2.8 设置tomcat自启动

crontab 里面设置:先安装 cron

apt-get install cron
@reboot /opt/tomcat/bin/startup.sh

重启服务器看下服务能否正常起来:


服务正常启动。

2.9 攻击

现在的日志并不多,直接放一个大马吧:


直接连接:

http://8. . .6/404.jsp?pwd=vulntarget&i=whoami

在这里已经可以执行命令了,在这里就不进行反弹了,会暴露 ip ,直接在原机器上进行操作。

3. 放置flag

3.1  flag1-history

history 里面放一个:

flag{vulntarget_very_G00d}

3.2 flag2-勒索

在这里对 tomcat 下的 index.jsp jsp 后缀的文件都勒索掉:路径: /opt/tomcat/webapps/ROOT 先生成公私钥,直接在 tmp 目录下做。

3.2.1 生成公私钥

在这里注意,命令都不能少,考察历史命令分析的能力:

import rsa

pub, priv = rsa.newkeys(1024)

pub = pub.save_pkcs1()
with open(f"./keys/pubkey.pem", mode="wb"as file:
    file.write(pub)

priv = priv.save_pkcs1()
with open(f"./keys/privkey.pem", mode="wb"as file:
    file.write(priv)

在这里使用 rsa 生成 1024 位的公私钥:

3.2.2 加密demo版

把公钥复制过去:

cp keys/pubkey.pem /opt/tomcat/webapps/ROOT

生成一个 flag.jsp 文件,然后准备加密:

编辑加密: vim encrypt_vulntarget.py (暂不提供)

在这里实现的是对当前目录下的文件进行加密操作:

此时文件加密完成,删除公钥和加密代码:

此时的界面就没了:

3.3 flag3:日志文件

找到 tomcat 的日志文件,然后放一个 flag ,在这里需要把文件编辑下,把我的本地 ip 修改掉,然后再放 flag

通过命令:

:%s/\(\d\+\.\d\+\.\d\+\.\d\+\)/123.123.123.123/g

将里面的所有 ip 进行替换:

再添加一个 flag

flag{Welcome_t0_join_Us}
此时结束。

3.4 修改index.jsp文件

在这里生成一个狠话版的 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>



    "UTF-8">
    Your Files Have Been Encrypted!
    


    

Your files have been encrypted!


    

To decrypt your files, please send 1 vulntarget coin to the following address:


    

"https://github.com/crow821/vulntarget" style="color: red;">https://github.com/crow821/vulntarget


    

Once the payment is confirmed, your files will be decrypted.


    

Remember, don't try to fool us. If you do, you will lose your files forever.




4. 云端镜像取证前准备工作

4.1 创建自定义镜像

在这里点击更多,搜索创建自定义镜像:


点击确认之后,在镜像栏等待创建成功:

过一段时间之后,刷新一下界面,如果显示可用,即代表创建成功:

4.2 镜像导出

在选择导出镜像的时候,会使用 oss oss 是一项收费的服务(创建自定义镜像也是收费的):

如果没有 oss ,需要新增:


此时看到暂时未授权 ECS OSS 资源的访问权限,直接根据这个提示来打开以下链接:

点击同意授权即可:

授权之后,可以看到概览:

此时回到刚刚的导出镜像页面,继续下一步:

此时导出的时候,会让你选择 OSS Bucket ,这一些列操作结束之后(此处省略,东西太多),回到对象存储的界面,找到你的 Bucket 列表,然后找到碎片管理,再点击统计:

等待一会,这个 40G 的镜像,压缩完之后,大概是 4G 左右,所以多等会。此时显示没有碎片的时候,就已经完成了:

从这里可以看到当前显示的文件名和大小:

此时点击一下详情,修改下读写权限:

此时直接使用URL进行下载,在这里可以直接复制链接在浏览器里面下载,也可以使用迅雷下载,看了很多文章,都推荐使用迅雷下载(断点续传):

https://vulntarget.oss-cn-hongkong.aliyuncs.com/vuln_m-j_system.raw.tar.gz

5. 本地环境打开镜像

将镜像导出到本地之后,需要对镜像转换,将 raw 的格式转换为 wmdk 的文件,使用 VMware 打开。

5.1 qemu格式转换

这个步骤你可以在 mac 上的 vm 虚拟机里面用 Windows 的机器来操作,也可以选择使用实体 Windows 系统的机器来操作,效果是一样的。

下载下来的文件是压缩过的,在这里将其解压:

文件解压之后,有 40 多个 G ,目前是 raw 格式,需要将其转化为 vmdk 的格式,使用 VMware 打开,在这里下载 qemu-img 软件:

下载地址:https://qemu.weilnetz.de/

在这里看到只有 win 版本的,所以在这直接选择 64 位的下载下来:

直接双击安装:

安装完成之后,需要配置相应的环境变量,如果不配置其实也可以:

新建 cmd 打开,看下 qemu-img 命令是否生效:

此时在解压之后的那个文件夹中使用该命令将 raw 格式转换为 vmdk

qemu-img convert -f raw raw文件名 -O vmdk 保存的vmdk文件名

qemu-img convert -f raw vulntarget.raw -O vmdk 123.vmdk

转换需要时间,等待转换完成:

转换完成的文件大概是 10g ,这时候准备使用 VMware 打开看下。







请到「今天看啥」查看全文