模拟全球化勒索病毒——应急响应和取证分析案例

2024-06-15 361 0

一、前言

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

vulntarget-n是一个模拟全球化勒索病毒高发环境下的应急响应和取证分析案例,其模拟了一个正常运行的业务服务被勒索病毒攻击的情景:
● 客户在阿里云部署的业务环境
● 今天突然发现首页变成了一个勒索的界面,要求用户支付赎金以解密数据。
● 客户发现其中部分重要文件被加密为.vulntarget结尾。

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

具体要求如下:
● 分析攻击事件是如何发生的,请给出攻击画像
● 恢复原来的index.jsp页面,恢复正常的web服务
● 找到隐藏在其中的3个flag

已知服务器账号密码:
账号:root 
密码:Vulntarget@123

二、排查

查看系统日志,尤其是认证日志(如/var/log/auth.log)和系统日志(如/var/log/syslog/var/log/messages)。查找有关登录尝试、sudo命令、异常进程启动等的记录。

还有还有一个是"/root/.bash_history"文件,一个位于Linux系统中的文件,用于存储用户在命令行终端中输入的历史命令记录。每当用户在命令行终端中输入并执行一个命令时,该命令都会被记录到".bash_history"文件中,以便用户可以随时查看和重新执行之前执行过的命令。这对于追踪和管理命令历史非常有用。

三、/root/.bash_history 命令历史分析

模拟全球化勒索病毒——应急响应和取证分析案例插图

这些整个"/root/.bash_history"文件具体操作包括以下内容,按照顺序操作:

  1. 更新apt源并安装openjdk-8-jdk和unzip软件包。

  2. 使用vim编辑/etc/profile文件。

  3. 执行source命令以使更改生效。

  4. 使用wget下载Apache Tomcat 7.0.79版本。

  5. 使用unzip解压下载的Tomcat压缩文件。

  6. 将解压后的Tomcat文件夹移动到/opt目录下。

  7. 为Tomcat的可执行脚本添加执行权限。

  8. 查看当前目录下的文件列表。

  9. 查看命令历史记录。

  10. 输出"flag{vulntarget_very_G00d}"。

  11. 启动Tomcat服务器。

  12. 备份Tomcat的server.xml配置文件。

  13. 使用vim编辑Tomcat的server.xml配置文件。

  14. 查看正在运行的Tomcat进程。

  15. 杀死指定的Tomcat进程。

  16. 再次启动Tomcat服务器。

  17. 备份web.xml配置文件。

  18. 查看当前工作目录的绝对路径。

  19. 切换到上一级目录。

  20. 列出当前目录下的文件列表。

  21. 切换到/opt目录。

  22. 列出/opt目录下的文件列表。

  23. 切换到Tomcat目录。

  24. 列出Tomcat目录下的文件列表。

  25. 切换到Tomcat的conf目录。

  26. 备份web.xml配置文件。

  27. 使用vim编辑web.xml配置文件。

  28. 再次查看正在运行的Tomcat进程。

  29. 再次杀死指定的Tomcat进程。

  30. 再次启动Tomcat服务器。

  31. 查看当前工作目录的绝对路径。

  32. 切换到上一级目录。

  33. 列出当前目录下的文件列表。

  34. 切换到webapps目录。

  35. 列出webapps目录下的文件列表。

  36. 切换到ROOT目录。

  37. 列出ROOT目录下的文件列表。

  38. 删除favicon.ico文件。

  39. 备份index.jsp文件。

  40. 再次查看当前目录下的文件列表。

  41. 使用vim编辑index.jsp文件。

  42. 删除index.jsp文件。

  43. 再次使用vim编辑index.jsp文件。

  44. 编辑cron任务。

  45. 查看命令历史记录。

  46. 再次列出当前目录下的文件列表。

  47. 将vulntargetn.jsp文件重命名为404.jsp。

  48. 再次列出当前目录下的文件列表。

  49. 删除index.jsp.bak文件。

  50. 使用pip3安装rsa包。

  51. 再次列出当前目录下的文件列表。

  52. 列出当前目录下的所有文件,并显示详细信息。

  53. 创建.vulntarget隐藏目录。

  54. 进入.vulntarget目录。

  55. 列出.vulntarget目录下的文件列表。

  56. 创建keys目录。

  57. 再次列出.vulntarget目录下的文件列表。

  58. 查看命令历史记录。

  59. 再次列出当前目录下的文件列表。

  60. 使用vim编辑get_pem.py文件。

  61. 运行get_pem.py文件。

  62. 再次列出当前目录下的文件列表。

  63. 删除get_pem.py文件。

  64. 再次列出当前目录下的文件列表。

  65. 返回上一级目录。

  66. 列出当前目录下的文件列表。

  67. 将.pubkey.pem文件复制到当前目录。

  68. 再次列出当前目录下的文件列表。

  69. 使用grep命令查找包含"jsp"的文件。

  70. 使用vim编辑encrypt_vulntarget.py文件。

  71. 再次列出当前目录下的文件列表。

  72. 使用vim编辑flag.jsp文件。

  73. 再次查找包含"jsp"的文件。

  74. 运行encrypt_vulntarget.py文件。

  75. 再次列出当前目录下的文件列表。

  76. 进入.vulntarget目录。

  77. 列出.vulntarget目录下的文件列表。

  78. 进入keys目录。

  79. 列出keys目录下的文件列表。

  80. 查看pubkey.pem文件的内容。

  81. 查看privkey.pem文件的内容。

  82. 返回上一级目录。

  83. 列出当前目录下的文件列表。

  84. 返回上一级目录。

  85. 列出当前目录下的文件列表。

  86. 返回上一级目录。

  87. 删除encrypt_vulntarget.py文件。

  88. 删除pubkey.pem文件。

  89. 再次列出当前目录下的文件列表。

  90. 使用vim编辑index.jsp文件。

  91. 再次列出当前目录下的文件列表。

  92. 返回上一级目录。

  93. 列出当前目录下的文件列表。

  94. 返回上一级目录。

  95. 列出当前目录下的文件列表。

  96. 进入logs目录。

  97. 列出logs目录下的文件列表。

  98. 查看localhost_access_log.2024-06-04.txt文件的内容。

  99. 使用vim编辑localhost_access_log.2024-06-04.txt文件。

  100. 再次列出当前目录下的文件列表。

  101. 再次使用vim编辑localhost_access_log.2024-06-04.txt文件。

  102. 再次列出当前目录下的文件列表。

  103. 查看命令历史记录。

  104. 使用curl访问本地主机。

  105. 再次列出当前目录下的文件列表。

  106. 返回主目录。

  107. 列出主目录下的文件列表。

  108. 列出主目录下的所有文件,并显示详细信息。

  109. 查看.bashrc文件的内容。

  110. 再次列出主目录下的文件列表。

  111. 将命令历史记录保存到.bash_history文件中。

第一个Flag:

在"/root/.bash_history"文件中也就是11行,输出了第一个:flag{vulntarget_very_G00d}

模拟全球化勒索病毒——应急响应和取证分析案例插图1

第二个Flag:

root@iZj6c6hytildlalnu0cwt4Z:/opt/tomcat/webapps/ROOT# ls
404.jsp.vulntarget  bg-button.png  bg-nav-item.png  bg-upper.png         index.jsp             RELEASE-NOTES.txt  tomcat.gif  tomcat-power.gif  vulntarget.jsp.vulntarget
asf-logo-wide.svg   bg-middle.png  bg-nav.png       flag.jsp.vulntarget  index.jsp.vulntarget  tomcat.css         tomcat.png  tomcat.svg        WEB-INF

这里一共发现三个被加密的文件,分别是404.jsp.vulntarget、vulntarget.jsp.vulntarget、flag.jsp.vulntarget、index.jsp.vulntarget(其中的第二个Flag文件被加密)。返回"/root/.bash_history"文件第51行,安装了rsa

51  pip3 install rsa

创建一个.vulntarget隐藏目录

54  mkdir .vulntarget
55  cd .vulntarget/

储存了私钥和公钥

79  cd keys/
80  ls
81  cat pubkey.pem 
82  cat privkey.pem

根据命令历史目录和秘钥的路径,获取私钥进行解密

root@iZj6c6hytildlalnu0cwt4Z:/opt/tomcat/webapps/ROOT# cat flag.jsp.vulntarget
Au+XkLqSjNieysLjjYxz9/XKnZ0l5iyhvBi4/zXw7LBBD/LykamEm5MrEIboYoL/zYE+AhvCf2a84e9ApJxsBrzcwCLSxv77dbkqzLy9+W127e1k0iz+1SM60W2315Yq1aYeEWcznVrzY9qrjtv/eXXOVEMUHONm3VLCs3mHDc0=

flag{https://github.com/crow821/vulntarget}

第三个flag:

在/opt/tomcat/logs文件下的localhost_access_log.2024-06-04.txt文本中,第544行发现第三个Flag。

四、恢复原来的index.jsp页面

先访问原始的页面:

解密环节:在/opt/tomcat/webapps/ROOT目录下的一个index.jsp.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>

五、分析攻击事件

在/opt/tomcat/webapps/ROOT目录下有一个404.jsp.vulntarget文件,解密之后发现是JSP马!解密复原一下命令执行的操作!

首先我是想到了日志localhost_access_log.2024-06-04.txt,木马 404.jsp.vulntarget 是在 2024 年 6 月 4 日下午 2 点 27 分 15 秒被上传到服务器上,所以暂时用这个思路。发现全是API扫描,并没有发现其它的动作,然后在最下面找了第三个Flag!

123.123.123.123 - - [04/Jun/2024:14:33:57 +0800] "GET /vulntargetn.jsp?pwd=vulntarget&i=whoami HTTP/1.1" 200 2060

2024年6月4日的14:33:57时,通过GET请求访问了/vulntargetn.jsp页面,并附带了参数pwd=vulntarget&i=whoami。服务器返回了状态码200,请求成功,并且返回的内容大小为2060字节。这里可以判断vulntargetn.jsp就是404.jsp.vulntarget文件,在命令历史分析的第47:将vulntargetn.jsp文件重命名为404.jsp,然后在进行对文件进行加密。

然后在第144行中发现了一个PUT标头,响应为201的状态码,通过当前的Apache Tomcat/7.0.79是存在Tomcat代码执行漏洞(CVE-2017-12615)漏洞。

123.123.123.123 - - [04/Jun/2024:14:31:18 +0800] "PUT /vulntarget.jsp/ HTTP/1.1" 201 -

利用过程复现:

版本查询,输入不存的文件路径,会返回包含版本信息的错误页面。


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论