【勒索来袭】vulntarget-n靶场搭建& 打靶流程

更新时间:2024年06月04日22:31:35

vulntarget靶场系列仅供安全专业人员练习渗透测试技术,此靶场所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用靶场中的技术资料对任何计算机系统进行入侵操作。利用此靶场所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
vulntarget靶场系列拥有对此靶场系列的的修改、删除和解释权限,未经授权,不得用于其他!!!
在这里插入图片描述
靶场地址:https://github.com/crow821/vulntarget

1. 靶场描述

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

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

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

image.png

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

具体要求如下:

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

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

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

2. 环境配置

2.1 阿里云ECS购买

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

image.png

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

2.2 tomcat环境配置

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

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

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

image.png

image.png

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

image.png

  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

image.png

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

image.png

2.4 设置Tomcat靶标环境

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

image.png

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

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

image.png

2.5 修改8080端口到80

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

image.png

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

image.png

image.png

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

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

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

image.png

<init-param>
        <param-name>readonly</param-name>
        <param-value>false</param-value>
</init-param>

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

image.png

image.png

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

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

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>vulntarget后台管理系统</title>
    <style>
        @keyframes gradient {
            0% {
                background-position: 0% 50%;
            }
            50% {
                background-position: 100% 50%;
            }
            100% {
                background-position: 0% 50%;
            }
        }
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background: linear-gradient(-45deg, #EE7752, #E73C7E, #23A6D5, #23D5AB);
            background-size: 400% 400%;
            animation: gradient 15s ease infinite;
        }
        .login-container {
            max-width: 300px;
            margin: 0 auto;
            padding-top: 100px;
            box-sizing: border-box;
        }
        .login-container h1 {
            text-align: center;
            padding: 15px 0;
        }
        .login-container form {
            background-color: #fff;
            padding: 20px;
            border-radius: 5px;
            box-sizing: border-box;
        }
        .login-container form input {
            width: 100%;
            padding: 10px;
            margin-bottom: 10px;
            border-radius: 5px;
            border: 1px 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>

image.png

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

image.png

2.8 设置tomcat随服务器重启启动

crontab里面设置:
先安装cron

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

image.png

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

image.png

image.png

服务正常启动。

2.9 攻击

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

image.png

直接连接:

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

image.png

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

image.png

3. 放置flag

3.1 flag1-history

history里面放一个:

flag{vulntarget_very_G00d}

image.png

3.2 flag2-勒索

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

3.2.1 生成公私钥

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

image.png

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位的公私钥:

image.png

3.2.2 加密demo版

把公钥复制过去:

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

image.png

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

image.png

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

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

image.png

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

此时的界面就没了:

image.png

3.3 flag3:日志文件

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

通过命令:

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

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

image.png

再添加一个flag
flag{Welcome_t0_join_Us}
此时结束。

3.4 修改index.jsp文件

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

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Your Files Have Been Encrypted!</title>
    <style>
        body {
            background-color: black;
            color: red;
            font-family: Arial, sans-serif;
            text-align: center;
        }
        h1 {
            margin-top: 20%;
        }
    </style>
</head>
<body>
    <h1>Your files have been encrypted!</h1>
    <p>To decrypt your files, please send 1 vulntarget coin to the following address:</p>
    <p><a href="https://github.com/crow821/vulntarget" style="color: red;">https://github.com/crow821/vulntarget</a></p>
    <p>Once the payment is confirmed, your files will be decrypted.</p>
    <p>Remember, don't try to fool us. If you do, you will lose your files forever.</p>
</body>
</html>

image.png

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

4.1 创建自定义镜像

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

image.png

image.png

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

image.png

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

image.png

4.2 镜像导出

image.png

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

image.png

如果没有oss,需要新增:

image.png

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

点击同意授权即可:

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

image.png

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

image.png

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

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

image.png

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

image.png

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

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

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

image.png

5. 本地环境打开镜像

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

5.1 qemu格式转换

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

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

文件解压之后,有40多个G,目前是raw格式,需要将其转化为vmdk的格式,使用VMware打开,在这里下载qemu-img软件:
下载地址:https://qemu.weilnetz.de/
在这里看到只有win版本的,所以在这直接选择64位的下载下来:

image.png

直接双击安装:

image.png

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

image.png

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

image.png

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

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

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

image.png

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

image.png

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

5.2 VMware Fusion-mac下打开

image.png

创建自定义虚拟机:

image.png

选择操作系统:

image.png

默认:
image.png

选择现有虚拟磁盘:

image.png

image.png

然后存储选择和命令:
image.png

设置好之后,跑一下看看:

image.png

以前做的大概需要好久才可以进入界面,但是这次很快就可以进去了:

image.png

至此,导入到本地成功。

6. 取证分析

打开之后,发现已经被勒索:

image.png

image.png

6.1 history分析

先分析下history,在这里直接将history到处到1.txt里面看:

image.png

此时获取到了第一个flag,再分析下当前root用户做了哪些操作:

在这里看到,对首页进行了备份,然后新增了一个首页:

image.png

vulntarget.jsp修改为了404.jsp,应该是一个后门,到时候结合日志进行分析。

在这里看到生成了一个公私钥,并且使用了一个加密,找下这两个公私钥是否存在:

image.png

从这里看到,当前的公钥还没删,当然私钥也没删,应该是可以恢复数据的(/tmp目录是我自己刚刚复制出来的,忽略):

image.png

在这来看下,先恢复数据吧,把根目录的.vulntarget结尾的文件和公私钥都复制到tmp目录去,然后分析。

6.2 勒索解密

image.png

分析密钥应该是只做了rsa一次加密,在这里尝试解密:
本地做一个程序,然后直接解密试试:

image.png

image.png

解密成功,并且获取的一个关键的flag

6.3 恢复页面

将已经恢复的index.jsp界面恢复到根目录中:

image.png

image.png

此时界面恢复成功。

6.4 分析日志

image.png

将日志文件拷贝,在主机上进行分析:

image.png

image.png

在这里发现了最后一个flag

结合history和日志来进行分析:
在这里发现了一个put了一个vulntarget.jsp文件,然后找到这个文件看下:

image.png

显示信息是:hack by crow

image.png

明显就是攻击信息了,而且写入成功。

后面又写入了一个vulntargetn.jsp文件:

image.png

这个文件后面又经过history里面的命令,将该文件重命名为404.jsp

image.png

看下这个文件:

image.png

这是一个小马文件,从日志里面也可以看到当前执行的命令:

image.png

至此分析完成。

6.5 攻击路径

其实在这里少了一个反弹shell,之所以没有反弹shell,主要是防止靶场制作者信息泄露:
攻击路径如下:

  • 攻击者通过tomcatput漏洞上传了一个shell
  • 通过shell执行了命令
  • 通过shell拿到权限(该条暂时缺失,没有反弹shell
  • 通过命令在受害者机器上生成了rsa的公私钥
  • 通过公钥对于关键数据进行了加密
  • 攻击者忘记删除了生成的公私钥
  • 通过执行命令将index.jsp文件替换为勒索界面
  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您的计算机中了勒索病毒 Milovski-G-c2b7cbb6,推荐您立即断开计算机与互联网的连接,以防止病毒进一步传播。然后,尝试使用专业的病毒清除工具来清除病毒。如果无法清除病毒,可能需要寻求专业的 IT 帮助。如果您的文件已被加密,可能需要使用专业的解密工具或尝试联系勒索组织,但不能保证能够解密成功。此外, 还建议你备份重要数据, 为防止数据丢失, 且勒索病毒可能会毁坏或删除您的文件,因此建议先进行备份。 ### 回答2: 勒索病毒(ransomware)是一种恶意软件,它会将用户的文件加密,并要求支付赎金以解密这些文件。对于中了勒索病毒 milovski-G-c2b7cbb6 的解密方法,以下是一些建议: 第一,切勿支付赎金。虽然支付赎金可能会使文件解密,但这一举措不仅鼓励了勒索者继续进行勒索活动,还不能保证勒索者会履行其承诺。 第二,与网络安全专家联系。如果您中了勒索病毒,应立即联系专业的网络安全团队或IT部门。他们可能具备解密勒索病毒的技术和经验,并能帮助您找到解决方案。 第三,检查是否有备份文件。对于重要的文件,我们应该定期进行备份,并将其存储在不同的物理设备或云端。如果发生勒索病毒攻击,备份文件可能是恢复数据的最佳方式。 第四,检查勒索病毒的特征。有时,安全公司或网络安全社区会发布有关勒索病毒解密工具的信息。您可查询相关的信息,以了解是否有可用的解密工具适用于 milovski-G-c2b7cbb6。 第五,重新安装操作系统。如果您的电脑遭到严重破坏或加密的文件过多,可能需要重新安装操作系统。请注意,在重新安装之前,务必备份重要的文件,并确保系统和软件以最新的安全补丁更新。 总之,对于中了勒索病毒 milovski-G-c2b7cbb6 的解密,最好的办法是与网络安全专家联系,并采取必要的措施以保护您的计算机和文件。同时,定期备份文件以及保持操作系统和软件的安全更新也是预防勒索病毒攻击的重要步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值