【勒索来袭】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文件替换为勒索界面
你好!针对Ubuntu 16.04系统存在可疑账户的应急响应排查工作,你可以采取以下步骤: 1. 确认是否存在可疑账户:使用命令&quot;sudo cat /etc/passwd&quot;列出系统中的所有用户账户,查看是否有未知或可疑账户。特别注意root账户和其他具有管理员权限的账户。 2. 检查登录日志:使用命令&quot;sudo cat /var/log/auth.log&quot;或&quot;sudo cat /var/log/secure&quot;查看登录日志,特别关注与可疑账户相关的登录记录。检查登录时间、来源IP、登录方式等信息。 3. 检查进程和网络连接:使用命令&quot;ps -ef&quot;查看当前运行的进程,特别关注与可疑账户相关的进程。使用命令&quot;netstat -antp&quot;查看当前的网络连接,检查是否有与可疑账户相关的异常连接。 4. 分析系统日志:使用命令&quot;sudo cat /var/log/syslog&quot;或&quot;sudo journalctl -xe&quot;查看系统日志,寻找与可疑账户相关的异常行为或错误信息。 5. 检查系统文件和目录:使用命令&quot;sudo find / -user &lt;可疑账户&gt;&quot;检查系统中与可疑账户相关的文件和目录。特别关注是否有异常的脚本、工具或文件被创建或修改。 6. 安全漏洞和补丁检查:确保系统已经安装了最新的安全补丁,并检查是否存在已知的安全漏洞。可使用工具如OpenVAS或Nessus进行系统漏洞扫描。 7. 隔离和清除可疑账户:如果确认存在可疑账户,立即隔离该账户,并清除其访问权限。可以使用命令&quot;sudo userdel -r &lt;可疑账户&gt;&quot;删除账户及其相关文件。 8. 收集取证信息:在排查过程中,及时收集相关的取证信息,包括日志、进程信息、文件修改记录等,以便后续的调查和分析。 9. 安全加固和监控:加强系统的安全配置,更新密码策略、限制远程登录、启用防火墙等措施。同时建议安装和配置安全监控工具,定期检查系统安全状态。 请注意,这只是一个简要的应急响应排查工作指南,并不能覆盖所有情况。在进行操作前,请确保你具备足够的经验和权限,如果需要进一步的帮助,建议咨询专业的安全团队或咨询服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值