玄机——第五章 linux实战-CMS01 wp

文章目录

      • 一、前言
      • 二、概览
        • 简介
      • 三、参考文章
      • 四、步骤(解析)
        • 准备步骤#1.0
        • 步骤#1.1
          • 通过本地 PC SSH到服务器并且分析黑客的 IP 为多少,将黑客 IP 作为 FLAG 提交;
        • 步骤#1.2
          • 通过本地 PC SSH到服务器并且分析黑客修改的管理员密码(明文)为多少,将黑客修改的管理员密码(明文) 作为 FLAG 提交;
          • 拓展#1.1
        • 步骤#1.3
          • 通过本地 PC SSH到服务器并且分析黑客第一次Webshell的连接URL为多少,将黑客第一次Webshell的连接URL作为 FLAG 提交(无需域名flag{xxx.php?abc-app-upload});
        • 步骤#1.4
          • 通过本地 PC SSH到服务器并且分析黑客Webshell连接密码多少,将黑客Webshell连接密码 作为 FLAG 提交;
        • 步骤#1.5
          • 通过本地 PC SSH到服务器并且分析黑客使用的后续上传的木马文件名称为多少,将黑客使用的后续上传的木马文件名称 作为 FLAG 提交;
        • 步骤#1.6
          • 通过本地 PC SSH到服务器并且分析黑客隐藏的flag2,将黑客使隐藏的flag2 作为 FLAG 提交;
        • 步骤#1.7
          • 通过本地 PC SSH到服务器并且分析黑客隐藏的flag3,将黑客使隐藏的flag3 作为 FLAG 提交;
      • 五、总结

一、前言

题目链接:第五章 linux实战-CMS01

三连私信免费送玄机注册邀请码私信!!!看见就回!!注意私信!!

友情提示:题目这么多虽然看着吓人,其实也就看着多;

简单介绍一下什么是“CMS01”;

简单来说就是在“Linux实战”这种上下文中,“CMS01”通常指的是一个内容管理系统(CMS)的实例或配置。CMS(Content Management System)是一种用于创建和管理数字内容的软件应用程序,常用于网站内容管理。

具体分析

在“Linux实战”中,CMS01是一个具体的内容管理系统实例,我们进一步分析如下:

  1. 安装和配置

    • CMS01可能是安装在Linux服务器上的内容管理系统,如WordPress、Joomla、Drupal等。
    • 安装过程可能涉及下载CMS软件包、解压、配置数据库和Web服务器(如Apache或Nginx)。
  2. 管理和操作

    • 通过Web界面登录,进行内容创建、编辑和发布。
    • 管理用户权限、插件、主题等。
  3. 安全性和维护

    • 定期更新CMS软件和插件,确保系统安全。
    • 配置备份和恢复机制,以防数据丢失。

总结;

“CMS01”是一个内容管理系统实例的代号或名称,通过安装、配置和维护,可以实现内容管理的功能。具体的CMS系统可以根据需求选择,并在Linux环境中进行部署和管理。

友情提示;

这题题目较多,金币预算不是很多的师傅,可以直接本地下载环境(省些金币),这里提供下载环境链接:夸克网盘分享

用户:administrator

密码:Zgsf@qq.com

下载完成,我们打开“VM”虚拟机,选择“打开虚拟机”,最后找到下载的对应文件即可;

在这里插入图片描述

接着打开“Liunx-Web-02.ovf"即可;

在这里插入图片描述

二、概览

简介

服务器场景操作系统 Linux
服务器账号密码 root Inch@957821.
题目来源公众号 知攻善防实验室
请点击下载附件,获取私钥文件后连接 ssh
https://mp.weixin.qq.com/s/5ibP6E8R-GPtOEJeFK8qZA
任务环境说明
注:样本请勿在本地运行!!!样本请勿在本地运行!!!样本请勿在本地运行!!!
应急响应工程师小王某人收到安全设备告警服务器被植入恶意文件,请上机排查
开放题目
漏洞修复
参考
https://mp.weixin.qq.com/s/5ibP6E8R-GPtOEJeFK8qZA

题目;
1、通过本地 PC SSH到服务器并且分析黑客的 IP 为多少,将黑客 IP 作为 FLAG 提交;
2、通过本地 PC SSH到服务器并且分析黑客修改的管理员密码(明文)为多少,将黑客修改的管理员密码(明文) 作为 FLAG 提交;
3、通过本地 PC SSH到服务器并且分析黑客第一次Webshell的连接URL为多少,将黑客第一次Webshell的连接URL作为 FLAG 提交(无需域名flag{xxx.php?abc-app-upload});
4、通过本地 PC SSH到服务器并且分析黑客Webshell连接密码多少,将黑客Webshell连接密码 作为 FLAG 提交;
5、通过本地 PC SSH到服务器并且分析黑客使用的后续上传的木马文件名称为多少,将黑客使用的后续上传的木马文件名称 作为 FLAG 提交;
6、通过本地 PC SSH到服务器并且分析黑客隐藏的flag2,将黑客使隐藏的flag2 作为 FLAG 提交;
7、通过本地 PC SSH到服务器并且分析黑客隐藏的flag3,将黑客使隐藏的flag3 作为 FLAG 提交;

三、参考文章

知攻善防Linux Web2靶场入侵排查

知攻善防应急靶场-Linux(2)

应急响应靶机训练-Linux2

四、步骤(解析)

准备步骤#1.0

使用Xshell新建或者SSH连接靶机都可;(本地下载环境的师傅,直接输入账号密码登录即可,具体操作不再多述)

新建连接,输入靶机IP进行连接即可;(这里如一直连不上,看看自己是不是校园网,是的话建议换手机热点,接着再尝试进行连接)

在这里插入图片描述

输入账号密码进行连接即可;(注意这里默认是“Public Key”秘钥链接)

所以这里需要下载附件;(就是秘钥)

在这里插入图片描述

选择浏览“文件”,接着打开刚刚下载好的附件确定即可;

在这里插入图片描述

最后成功连接;

在这里插入图片描述

这里总结一下注意几点;

1、靶机一直连不上的,看看自己的网络有没有问题(一些校园网出口流量会进行限制),这时候换个手机热点即可;
2、秘钥登录,需下载附件,导入才能登录,注意下载附件;

步骤#1.1
通过本地 PC SSH到服务器并且分析黑客的 IP 为多少,将黑客 IP 作为 FLAG 提交;

解题思路

题目让我们提交黑客的IP,老题目了,想要确定黑客的IP,我们可以通过分析/var/log/secure日志文件中记录的成功SSH登录条目,“/var/log/secure”通常是记录系统的安全相关日志,包括SSH登录尝试;

那这里我们可以使用命令;

grep "Accepted " /var/log/secure | awk '{print $11}'

这个命令会输出所有成功SSH登录的IP地址。

具体分析;

"Accepted ":这是grep命令要搜索的模式。SSH服务在成功认证登录后,会在日志文件中记录包含“Accepted”字样的行。

awk '{print $11}'

  • awk:一种强大的文本处理工具,用于处理格式化的文本数据。
  • '{print $11}':这是awk的操作部分,表示打印每行的第11个字段。

结合就是,这个命令的整体功能是从/var/log/secure文件中查找包含“Accepted”字样的行,然后打印这些行的第11个字段(即登录成功的IP地址)。

得到;

在这里插入图片描述

可以看见“192.168.20.1”这个IP较多,那我们就尝试提交,发现正确;

至此;

flag{192.168.20.1}

还有一个命令同样也是可以查出;

 grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

简单分析;

  • grep "Accepted " /var/log/secure

    • "Accepted "是要搜索的字符串,代表SSH连接成功的日志条目,通常包含这个字符串。
  • awk '{print $1,$2,$3,$9,$11}'

    • awk是一种强大的文本处理工具,可以对输入的文本数据进行格式化和提取。
    • {print $1,$2,$3,$9,$11}指定要提取并打印的字段:
      • $1:第一列,表示月份。
      • $2:第二列,表示日期。
      • $3:第三列,表示时间(小时:分钟:秒)。
      • $9:第九列,表示登录的用户名。
      • $11:第十一列,表示登录的客户端IP地址。

综合分析

这个命令的作用是从/var/log/secure日志文件中查找所有包含“Accepted ”字符串的行(即成功的SSH登录记录),然后使用awk提取并打印出以下信息:

  • 月份
  • 日期
  • 时间
  • 登录的用户名
  • 登录的客户端IP地址

得到;

在这里插入图片描述

同样也是可以,方法不唯一,仅供参考;

步骤#1.2
通过本地 PC SSH到服务器并且分析黑客修改的管理员密码(明文)为多少,将黑客修改的管理员密码(明文) 作为 FLAG 提交;

解题思路

题目让我们提交黑客修改的管理员密码(明文),通常来说要找到黑客修改的管理员密码,我们需要查找系统日志文件中涉及用户账号和密码更改的记录,但是我筛选了一下发现没有,那就是方向错了,不过没关系,我们可以检查一些系统有没有运行什么可疑的程序,如果有的话那就应该是运行在该机器上的某个系统的管理员密码。

我们使用命令查看当前所有网络连接和监听端口的详细信息;

netstat -anlupt

得到;

在这里插入图片描述

得到;

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:12485           0.0.0.0:*               LISTEN      2414/python3        
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      1492/sshd           
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1673/nginx: master  
tcp        0      0 0.0.0.0:8821            0.0.0.0:*               LISTEN      1673/nginx: master  
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1515/pure-ftpd (SER 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1492/sshd           
tcp        0      0 0.0.0.0:888             0.0.0.0:*               LISTEN      1673/nginx: master  
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1498/master         
tcp        0     36 10.0.10.1:22            39.144.153.252:32511    ESTABLISHED 2815/sshd: root@pts 
tcp6       0      0 :::3306                 :::*                    LISTEN      2339/mysqld         
tcp6       0      0 :::2222                 :::*                    LISTEN      1492/sshd           
tcp6       0      0 :::21                   :::*                    LISTEN      1515/pure-ftpd (SER 
tcp6       0      0 :::22                   :::*                    LISTEN      1492/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1498/master         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1032/dhclient  

发现了靶机上运行着nginxmysql,那我们目录就明确了,就是先获取到数据库的密码;

接着我们又在根目录下发现www目录,跟进分析又发现了access.log日志,打开日志大概扫一下就发现了最明显的路由phpmyadmin

发现“www”目录,跟进分析;

在这里插入图片描述

发现access.log日志,打开查看;

在这里插入图片描述

日志最上面就发现了清一色路由phpmyadmin;

在这里插入图片描述

那就说明搭建网站数据库的时候是使用了“phpmyadmin”的,那我们直接去找相应的配置文件“config.inc.php”即可,但是这里按照常规的按照路径查找路径发现没有找到配置文件,那这里肯定就是自定义安装的了,那就没办法,我们只能多翻翻了,最后也是在“www/wwwroot/127.0.0.1/lib/config.inc.php”下发现了配置文件;

找到配置文件“config.inc.php”;

在这里插入图片描述

简单查看分析一下;

也是成功找到了密码,这时候我们登录mysql服务器,找到id为1的就是管理员;(别问我为什么知道找到ID为1的管理员,因为题目让我们找的就是管理员的密码)

在这里插入图片描述

得到;

数据库名:kaoshi
密码:5Sx8mK5ieyLPb84m

那我们直接登录数据库;

 mysql -ukaoshi -p5Sx8mK5ieyLPb84m

登录成功;

在这里插入图片描述

那既然进了mysql服务器,那我们肯定先查查里面有什么可用的数据库啦;

使用命令;

show databases;

得到;

在这里插入图片描述

一眼就看见了我们要找的“kaoshi”,那就切到这个数据库嘛;(可能有些师傅第一次这样接触数据库,不知道切库)

使用命令;

use kaoshi;

得到;

在这里插入图片描述

返回“Database changed”代表成功;

那查完库,,切完库,接着那肯定就是查表了,看看里面有没有让我们一眼心动的表;

使用命令;

show tables;

得到;

在这里插入图片描述

发现底下有一个“x2_user_group ”表和“x2_user”表,怀疑里面有用户信息,我们可以查询一下;

使用命令;

SELECT * FROM x2_user_group;

得到;

在这里插入图片描述

也是得到了管理员ID为1,那我们就可以顺着继续查询账号密码信息;(注意:数据库里面的账号密码一般都是经过MD5加密的,所以我们找的时候需要进行MD5解密一下)

这里我们使用命令;(这里大小写区分没啥,刚刚不是查完“x2_user_group”表嘛,它的上面还有一个“x2_user”这里才是重头戏)

select * from x2_user;

得到;

在这里插入图片描述

这里密密麻麻的,或许别的你可以不认识,但是刚刚不是已经强调了嘛,管理员的ID为1,所以进去直接找“1”所在的那一排分析过去即可,而且数据库中,一些密码都会使用MD5进行加密,所以,这个就是所要找的管理员“密码”,就是MD5;

|      1 |            | NULL        | peadmin         | 958074@163.com | f6f6eb5ace977d7e114377cc7098b7e3 |      279 | 127.0.0.1      |  1471795200 |           0 |         

随便找一个MD5在线解密即可;(这个比较麻烦需要大家注册一个账号,注意注册完成邮箱激活即可使用)

在线MD5解密

得到;

在这里插入图片描述

所以这绕来绕去,终于是找到了黑客修改过来的管理员密码,这一套操作下来呢,简单来说就是,我们自己找到账号密码,接着进入数据库,最后找到修改过来的管理员登录密码(MD5加密后的密码),最后进行MD5解密就成功得出了flag,不过呢,这是一种解法,同时呢,也还有一种解法,而且这种解法相对我们第一种来说便捷了很多;

flag{Network@2020}
拓展#1.1

不知道还有没有师傅注意root目录下是有一个"数据包1.pcapng"文件的,那这个肯定就是截获的黑客流量,我们可以通过分析这个流量包同样也是可以得出黑客修改过的管理员密码;

那想要把这个数据包丢进“Wireshark”进行分析,那肯定就少不了导出对吧,那就导呗,这里我还是以为像之前一样,直接连的“Xftp”传输文件,想直接传出来,但奇怪的是,数据包好像是被限制了一样,死活导不出,当时我就奇怪了,想。。了都,反正也不知道“Xftp”在搞什么东西反正,那实在没办法了嘛,事已至此我们就只能考虑试试其它工具导出了,最后实在没办法了在玄机榜一请教了“Mr.Dang”师傅,师傅跟我说了一个真香的工具“FinalShell”SSH工具;

使用"Xftp"导出失败;

在这里插入图片描述

FinalShell官网下载链接

工具简单来说就是结合了“Xshell”以及“Xftp”的常用功能;

详解介绍;

FinalShell是一款集成多功能的远程管理工具,广泛应用于服务器管理、运维和开发等领域。它不仅仅是一个SSH客户端,还提供了丰富的功能和用户友好的界面,使得服务器管理变得更加高效和便捷。

主要特点

  1. 多协议支持:支持SSH、SFTP、RDP等多种远程连接协议。
  2. 多平台支持:可在Windows、MacOS和Linux等操作系统上运行。
  3. 图形化界面:提供直观的用户界面,简化了远程服务器管理的复杂操作。
  4. 多标签管理:支持多标签页,方便同时管理多个远程会话。
  5. 多功能集成:集成了终端、文件管理、性能监控、隧道转发等多种功能。

主要功能

  1. 终端管理:提供强大的SSH终端功能,支持自动补全、语法高亮、快捷命令等,提高了操作效率。
  2. 文件传输:内置SFTP功能,支持拖拽上传下载文件,方便快速传输和管理远程服务器文件。
  3. 性能监控:实时监控服务器的CPU、内存、磁盘和网络等资源使用情况,帮助快速定位性能瓶颈。
  4. 隧道转发:支持SSH隧道转发功能,可用于本地端口转发、远程端口转发和动态端口转发,方便穿透防火墙访问内部网络服务。
  5. 脚本管理:支持保存常用脚本和命令,方便一键执行,提高运维效率。
  6. 安全管理:支持密钥管理、双因素认证等多种安全认证方式,保障远程连接的安全性。

使用场景

  1. 服务器运维:通过FinalShell,可以轻松管理多个远程服务器,执行日常运维操作,如监控资源使用情况、管理文件和目录、执行脚本等。
  2. 开发调试:开发人员可以使用FinalShell连接远程开发环境,进行代码调试、日志查看、文件同步等操作。
  3. 远程办公:通过FinalShell的RDP功能,可以远程连接和控制Windows桌面,适用于远程办公和桌面支持。

总之就是;

FinalShell是一款功能强大且使用便捷的远程管理工具,集成了多种远程连接和管理功能,广泛应用于服务器运维和开发等场景。其图形化界面和多功能集成使得远程管理变得更加高效和便捷。

下载进入成功之后界面是这样的;

在这里插入图片描述

老规矩那就是新建嘛,点击新标签页旁边那个文件夹,点击SSH连接(Liunx);

在这里插入图片描述

输入靶机IP,认证方法选择公钥,接着点击“浏览”,点击“导入”,找到下载的附件,名称随便,最后“选中”再!点击确认;

在这里插入图片描述

最后返回标签页,点击刚刚创建好的,输入一个用户“root”即可连接成功;

在这里插入图片描述

连接成功,从这张图中也不难看出,上面是lliunx,下面是正常的文件管理;

在这里插入图片描述

最后的最后,右键选择文件“数据包1.pcapng”,点击下载,接着返回桌面就可以看见下载好的数据包啦!(返回桌面找不到数据包的,注意看路径是什么地方)

在这里插入图片描述

正常丢进“Wireshark”分析即可;

在这里插入图片描述

简单使用命令过滤一下黑客的IP或者http都行,反正咋看着舒服咋来;

这里比较懒,我就直接过滤了一下http,还是喜欢按数据包大小进行排序进行分析;

最后在635大小的包右键追踪一下http,你就能发现它把flag写在这里面。。。。(包外面显示的就是flag1)

在这里插入图片描述

所以也是可以分析数据包得出修改过的管理员密码,就这随便翻翻数据包不比我们之前死命翻数据库便捷多了?所以后面的题目基本能在数据包里面分析的,我是一点都不想在Liunx里面翻;

步骤#1.3
通过本地 PC SSH到服务器并且分析黑客第一次Webshell的连接URL为多少,将黑客第一次Webshell的连接URL作为 FLAG 提交(无需域名flag{xxx.php?abc-app-upload});

解题思路

让我们提交黑客第一次Webshell的连接URL是多少,那刚刚在筛选http的时候,我们就已经可以看见有较多的index.php?user-app-registerversion2.php包,那我们可以追踪简单分析一下;

那有一些师傅就不明白了,为什么看见很多的index.php?user-app-registerversion2.php就知道跟黑客第一次连接webshell有关系呢?

简单分析;

  1. index.php?user-app-register

这个URL路径是一个包含恶意参数的注册请求。

  • 恶意参数注入:黑客通过这个路径注入恶意代码。例如,URL参数可能包含被编码的PHP代码(如eval(base64_decode(...))),用于在服务器上执行任意代码。
  • 注册接口被滥用:黑客可能利用一个开放的注册接口来上传或执行恶意代码。
  1. version2.php

这个文件是服务器上另一个被利用的脚本。

  • 上传脚本:黑客利用这个脚本上传Webshell文件。
  • 直接访问Webshell:如果这个文件本身就是一个Webshell,黑客可以直接通过访问这个URL来控制服务器

那就随便点一个差不多大小的包来分析呗(为什么说不能很大也不能很小,简单来说,包太多信息有时候分析不过来,小了,包里没什么信息,所以挑一个差不多大小的追踪http分析即可,当然特别情况除外),这里我选的是“index.php?user-app-register”的包来分析的(因为点击“time”进行分析时,刚刚好664的包排第一位);

这里其实也有个小技巧,题目不是说让我们提交第一次连接的webshell嘛,那我们就可以直接点击“time”进行一个简单的排序,以此类推进行分析;

在这里插入图片描述

右键追踪http”翻到最底下返回包,也是成功发现了路径,还有内核版本还有当前用户名;

在这里插入图片描述

那么我们就可以依次来断定黑客肯定是请求执行了某些命令,进行URL解码看看请求包中的内容是什么。

在这里插入图片描述

URL在线解码

得到;

@ini_set("display_errors", "0");
@set_time_limit(0);
$opdir = @ini_get("open_basedir");
if ($opdir) {$ocwd = dirname($_SERVER["SCRIPT_FILENAME"]);$oparr = preg_split(base64_decode("Lzt8Oi8="), $opdir);@array_push($oparr, $ocwd, sys_get_temp_dir());foreach ($oparr as $item) {if (!@is_writable($item)) {continue;}$tmdir = $item . "/.fd491f470fb7";@mkdir($tmdir);if (!@file_exists($tmdir)) {continue;}$tmdir = realpath($tmdir);@chdir($tmdir);@ini_set("open_basedir", "..");$cntarr = @preg_split("/\\\\|\\//", $tmdir);for ($i = 0; $i < sizeof($cntarr); $i++) {@chdir("..");}@ini_set("open_basedir", "/");@rmdir($tmdir);break;}
}
function asenc($out) {return $out;
}
function asoutput() {$output = ob_get_contents();ob_end_clean();echo "4a0c" . "dc70";echo @asenc($output);echo "db6" . "da5";
}
ob_start();
try {$D = dirname($_SERVER["SCRIPT_FILENAME"]);if ($D == "") $D = dirname($_SERVER["PATH_TRANSLATED"]);$R = "{$D}\t";if (substr($D, 0, 1) != "/") {foreach (range("C", "Z") as $L) if (is_dir("{$L}:")) $R .= "{$L}:";} else {$R .= "/";}$R .= "\t";$u = (function_exists("posix_getegid")) ? @posix_getpwuid(@posix_geteuid()) : "";$s = ($u) ? $u["name"] : @get_current_user();$R .= php_uname();$R .= "\t{$s}";echo $R;
} catch (Exception $e) {echo "ERROR://".$e->getMessage();
}
asoutput();
die();
x0b6b31b98f31d=TtL3d3dy93d3dyb290LzEyNy4wLjAuMS8=

简单分析一下;

  • 禁用错误显示 (@ini_set("display_errors", "0")) 以及设置脚本超时时间为无限 (@set_time_limit(0))。
  • 检查并修改 open_basedir 限制
    • 获取当前的 open_basedir 设置,并尝试在可写目录中创建一个临时目录。
    • 修改 open_basedir 设置,绕过目录限制。
  • 输出缓冲与处理
    • 启动输出缓冲 (ob_start()),捕获输出内容。
    • 在缓冲区内容输出之前,添加特定的标记 (4a0cdc70db6da5)。
  • 尝试获取并输出系统信息
    • 获取脚本当前目录及相关的系统信息(如主机名、用户名、系统信息)。

与黑客第一次连接 Webshell 的关系

  1. 绕过 open_basedir 限制

黑客通过该脚本绕过 open_basedir 安全机制,获取对服务器文件系统的更大访问权限。这是黑客在首次连接 Webshell 时进行的一部分操作。

  1. 系统信息泄露

脚本输出服务器的目录结构、系统信息及当前用户信息。这些信息对于黑客进一步攻击服务器非常有用。

  1. 标记与输出处理

通过在输出中添加标记 (4a0cdc70db6da5),黑客可以更方便地在抓包或日志中识别出其恶意脚本的输出。

题目让我们提交黑客第一次连接webshell的url,所以;

URL:index.php?user-app-register

至此;

flag{index.php?user-app-register}
步骤#1.4
通过本地 PC SSH到服务器并且分析黑客Webshell连接密码多少,将黑客Webshell连接密码 作为 FLAG 提交;

解题思路

让我们提交黑客webshell连接密码,做了第六章那么多蚁剑流量分析,我们也不难看出这些webshell里面其实有很多的蚁剑流量,那蚁剑流量特征最明显的就是;

蚁剑webshell流量特征示例;

POST /shell.php HTTP/1.1
Host: target.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Content-Length: 100pass=secretpassword&cmd=echo%20hello

在这个示例中:

  • 请求的 URL 是 shell.php
  • 使用 POST 请求。
  • pass 参数传递 Webshell 的密码。
  • cmd 参数传递要执行的命令,这里是 echo hello

所以;(数据包甚至都不需要换,用的上一题的)

在这里插入图片描述

至此;

flag{Network2020}
步骤#1.5
通过本地 PC SSH到服务器并且分析黑客使用的后续上传的木马文件名称为多少,将黑客使用的后续上传的木马文件名称 作为 FLAG 提交;

解题思路

题目让我们提交黑客后续上传的木马名称,刚刚URL解码蚁剑包的时候最后一句“x0b6b31b98f31d=TtL3d3dy93d3dyb290LzEyNy4wLjAuMS8=”,因为蚁剑会将参数进行base64编码,然后在最前面随机添加两个字母,所以;

base解码

在这里插入图片描述

由此我们就可以分析,再结合x0b6b31b98f31d变量名的位置,得知攻击者做了查看当前目录下文件的操作,从返回包的内容也可以猜出来。

简单来说就是黑客在/www/wwwroot/127.0.0.1/目录下创建了flag1 文件并写入flag,接着写入一个新的木马文件“shell.php”,所以后续访问的“vsersion2.php”的流量包可能就是后续上传木马的文件了,

发现flag1,以及大量的version2.php及vsersion.php;

在这里插入图片描述

那我们追踪一下version2.php简单分析一下;(这里我http追踪的是大小392的包)

在这里插入图片描述

结果很明显就是冰蝎的流量特征;

冰蝎流量特征

那么就可以说明, 文件“version2.php”就是攻击者后续上传的木马进行getshell了;(其实这题还有一种办法就是,仔细看看http流里面的流量包,你会发现文件就那么两个三个“.php”的,学网安这一门的,都知道“.php”是个。。懂的都懂,那干脆直接全部一个一个尝试提交一遍不就行了)

至此;

flag{version2.php}
步骤#1.6
通过本地 PC SSH到服务器并且分析黑客隐藏的flag2,将黑客使隐藏的flag2 作为 FLAG 提交;

解题思路

这里题目就单纯让我们找flag了,这里简单流量包大致都看了一遍,除了就找到一个flag1之外,其它的就没有了,那我们就返回Liunx继续进行分析;

遇到这种问题,我们可以直接查一手history历史命令看看,都做了那些操作,可以简单的推断的一下;(历史命令删了当我没说)

命令;

history

得到;

在这里插入图片描述

又找到一个;

至此;

flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
步骤#1.7
通过本地 PC SSH到服务器并且分析黑客隐藏的flag3,将黑客使隐藏的flag3 作为 FLAG 提交;

解题思路

还是历史命令,仔细看看那些“VIM”过的文件,一个一个进行分析排查即可,也不是很多,就那么几个vim的“.php”文件;

我们去“重点关照”一下;

在这里插入图片描述

得到;

在这里插入图片描述

最后;

[root@ip-10-0-10-1 /]# cd www/wwwroot/
[root@ip-10-0-10-1 wwwroot]# ls -la
total 0
drwxr-xr-x  4 root root  38 Mar  7 12:01 .
drwxr-xr-x  7 root root  99 Mar  7 11:40 ..
drwxr-xr-x 10 www  www  137 Mar 20 14:54 127.0.0.1
drwxr-xr-x  2 root root   6 Mar  7 11:47 default
[root@ip-10-0-10-1 wwwroot]# cd 127.0.0.1/
[root@ip-10-0-10-1 127.0.0.1]# ls -la
total 12
drwxr-xr-x 10 www  www   137 Mar 20 14:54 .
drwxr-xr-x  4 root root   38 Mar  7 12:01 ..
drwxr-xr-x  2 www  www   111 Sep 14  2023 api
drwxr-xr-x  2 root root  111 Mar 20 14:57 .api
drwxr-xr-x 15 www  www   186 Sep 14  2023 app
drwxr-xr-x  4 www  www    33 Mar  7 12:07 data
drwxr-xr-x  4 www  www    34 Sep 14  2023 files
-rwxr-xr-x  1 www  www   176 Jun 25  2023 index.php
drwxr-xr-x  3 www  www  4096 Sep 14  2023 lib
drwxr-xr-x  2 www  www    41 Sep 14  2023 tasks
-rw-r--r--  1 root root   42 Mar  7 12:01 .user.ini
drwxr-xr-x  2 www  www     6 Sep 13  2023 vendor
[root@ip-10-0-10-1 127.0.0.1]# cd .api/
[root@ip-10-0-10-1 .api]# ls
alinotify.php  alireturn.php  mpnotify.php  payjsnotify.php  wxnotify.php
[root@ip-10-0-10-1 .api]# cat alinotify.php 
<?php
namespace PHPEMS;
/** Created on 2013-12-26** To change the template for this generated file go to* Window - Preferences - PHPeclipse - PHP - Code Templates*/define('PEPATH',dirname(dirname(__FILE__)));
class app
{public $G;public function __construct(){$this->ev = \PHPEMS\ginkgo::make('ev');$this->order = \PHPEMS\ginkgo::make('orders','bank');}public function run(){$alipay = \PHPEMS\ginkgo::make('alipay');$orderid = $this->ev->get('out_trade_no');$order = $this->order->getOrderById($orderid);$verify_result = $alipay->alinotify();if($verify_result){if($this->ev->get('trade_status') == 'TRADE_FINISHED' ||$this->ev->get('trade_status') == 'TRADE_SUCCESS'){if($order['orderstatus'] != 2){$this->order->payforOrder($orderid,'alipay');}exit('sucess');}elseif($_POST['trade_status'] == 'WAIT_BUYER_PAY'){exit('fail');}else{exit('fail');}}else{exit('fail');}}
}include PEPATH.'/lib/init.cls.php';
$app = new app(new ginkgo);
$app->run();
$flag2 = "flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}";?>
[root@ip-10-0-10-1 .api]# alinotify.php 

至此;

flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}

简单分析一下;

这段代码实现了一个处理支付宝支付异步通知的 PHP 应用。通过验证支付宝的通知,更新订单状态并响应支付宝的请求。这个过程涉及到从支付宝获取订单信息,验证支付结果,然后更新订单状态,并返回相应的处理结果给支付宝。

五、总结

仅供参考;

  1. 攻击者的IP为192.168.20.1

    • 根据 grep "Accepted " /var/log/secure | awk '{print $11}' 命令分析,攻击者的IP地址从日志中提取到了 192.168.20.1
  2. 攻击方式是通过 /index.php?user-app-register 上传了一个 webshell,然后使用蚁剑管理 webshell 之后再次上传 version2.php 进行提权

    • 从 Wireshark 中观察到很多 /index.php?user-app-registerversion2.php 的数据包,表明攻击者通过这些路径上传和管理 webshell。
    • 蚁剑是一种常见的 webshell 管理工具,可能用于上传和控制 webshell。
    • version2.php 可能是用来进行提权操作的文件。
  3. 攻击者修改了 phpMyAdmin 数据库的管理员密码

    • 通过进入 phpMyAdmin,攻击者可以直接访问和修改数据库,可能修改了管理员的密码来获得进一步的权限。
  4. 攻击者拿到权限之后关闭了防火墙服务,并且删除了提权文件 version2.php 和 flag1,并且修改了 alinotify.php 文件内容

    • 攻击者在获得系统权限后,可能关闭防火墙服务以避免被发现或被阻止进一步的攻击。
    • 删除提权文件 version2.phpflag1,以及修改 alinotify.php 文件,可能是为了清除痕迹和掩盖攻击行为。
    • alinotify.php 文件中的内容显示了包含一个 flag 字符串,可能被攻击者替换或者添加过。
  5. 并没有发现攻击者留下后门

    • 如果没有在系统或应用程序中找到其他可疑文件或进程,且没有发现任何可疑的网络连接或监听端口,则可以初步判断攻击者没有留下后门。
    • 但为了确保系统安全,仍需进行更深入的检查,包括查找隐藏文件、未授权的用户账号以及异常的系统行为。

详细分析与补充:

  • 攻击者上传 webshell 并使用蚁剑进行管理,通常会先通过漏洞或弱口令进入系统。
  • 在拿到权限后,攻击者的常见行为包括关闭安全机制(如防火墙、杀毒软件)、清理攻击痕迹(删除提权文件、修改日志)、和留下后门方便再次访问。
  • config.inc.php 文件的位置可能被攻击者修改过,以便隐藏他们的操作痕迹。
  • 查看攻击者的操作历史记录(如 history 命令输出),可以帮助了解其具体操作步骤,发现和修复系统中的漏洞。

http://www.ppmy.cn/news/1474649.html

相关文章

Perl 语言开发(八):子程序和模块

目录 1. 引言 2. 子程序的基本概念与用法 2.1 子程序的定义和调用 2.2 传递参数 2.3 返回值 2.4 上下文和返回值 3. 模块的基本概念与用法 3.1 模块的定义 3.2 使用模块 3.3 导出符号 3.4 模块的文件结构和命名 4. 实际应用中的子程序与模块 4.1 子程序参数验证与…

省市县下拉框的逻辑以及多表联查的实例

2024.7.12 一. 省市县的逻辑开发。1、准备&#xff1a;1.1. 要求&#xff1a;1.2 数据库表&#xff1a; 2. 逻辑&#xff1a;3. 方法3.1 创建实体类3.2 数据访问层3.3 实现递归方法3.4 控制器实现3.5 前端处理 二、多表联查&#xff08;给我干红温了&#xff09;1. 出现了问题2…

代理详解之静态代理、动态代理、SpringAOP实现

1、代理介绍 代理是指一个对象A通过持有另一个对象B&#xff0c;可以具有B同样的行为的模式。为了对外开放协议&#xff0c;B往往实现了一个接口&#xff0c;A也会去实现接口。但是B是“真正”实现类&#xff0c;A则比较“虚”&#xff0c;他借用了B的方法去实现接口的方法。A…

服务网格新篇章:Eureka与分布式服务网格的协同共舞

服务网格新篇章&#xff1a;Eureka与分布式服务网格的协同共舞 引言 在微服务架构的浪潮中&#xff0c;服务网格&#xff08;Service Mesh&#xff09;技术以其微服务间通信的精细化控制而备受瞩目。Eureka作为Netflix开源的服务发现框架&#xff0c;虽然本身不直接提供服务网…

前端面试题47(在动态控制路由时,如何防止未授权用户访问受保护的页面?)

在Vue中&#xff0c;防止未授权用户访问受保护页面通常涉及到使用路由守卫&#xff08;Route Guards&#xff09;。路由守卫允许你在路由发生改变前或后执行一些逻辑&#xff0c;比如检查用户是否已登录或者有访问某个页面的权限。下面是一些常见的路由守卫类型及其使用方式&am…

C++相关概念和易错语法(19)(继承规则、继承下的构造和析构、函数隐藏)

1.继承规则 继承的本质是复用&#xff0c;是结构上的继承而不是内容上的继承&#xff0c;近似于在子类中声明了父类的成员变量。 &#xff08;1&#xff09;写法&#xff1a;class student : public person 派生类&#xff08;子类&#xff09;&#xff0c;继承方式&…

数据库doris中的tablet底层解析

在Doris中,tablet(数据片)是数据存储和管理的最小单元。理解tablet的底层原理有助于更好地理解Doris的高可用性、负载均衡和查询优化等特性。 Tablet 的概念 Tablet:Tablet是Doris中用于存储数据的最小物理单元。每个tablet通常对应于一个数据分区和一个分桶组合的子集。…

网工内推 | 网络运维、云计算工程师,NP以上认证,平均薪资10K

01 网络运维 &#x1f537;岗位职责 1、至少3年以上的网络运维相关工作经验; 2、熟悉VLAN、STP、OSPF、RIP、BGP等网络技术; 3、熟悉IPsec、SSL等VPN技术; 4、熟悉主流网络安全厂商的各种产品; 5、精通TCP/IP协议&#xff0c;熟悉主流网络产品设备的调试、配置方法: 6、有…

人工智能笔记分享

文章目录 人工智能图灵测试分类分类与聚类的区别&#xff08;重点&#xff09;分类 (Classification)聚类 (Clustering) 特征提取 分类器&#xff08;重点&#xff09;特征提取为什么要进行特征提取&#xff1f;&#xff08;重点&#xff09;分类器 训练集、测试集大小&#x…

Spring Boot与Jenkins的集成

Spring Boot与Jenkins的集成 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、引言 Jenkins作为一个开源的持续集成&#xff08;CI&#xff09;和持续交付…

妙笔生词智能写歌词软件:科技赋能艺术还是冲淡原味?

在当今数字化的时代&#xff0c;科技的触角延伸至艺术创作的各个领域&#xff0c;妙笔生词智能写歌词软件便是其中一个引人瞩目的产物。然而&#xff0c;它的出现引发了一场关于科技与艺术关系的深刻思考&#xff1a;究竟是为艺术创作赋予了新的能量&#xff0c;还是在不经意间…

【NLP】利用 RAG 模分块技术提升文档处理效能

将大型文档划分为较小的部分是一项至关重要但又复杂的任务&#xff0c;它对检索增强生成 (RAG) 系统的性能有重大影响。这些系统旨在通过结合基于检索和基于生成的方法&#xff0c;提高输出的质量和相关性。有效的分块&#xff0c;即将文档拆分为可管理的片段的过程&#xff0c…

【区块链+跨境服务】基于区块链的离岸贸易综合服务平台 | FISCO BCOS应用案例

离岸贸易是一种新型的国际贸易模式&#xff0c;指在一个国家或地区的境内&#xff0c;通过一定的方式&#xff0c;将两个或多个国家或地区 之间的贸易活动&#xff0c;从货物流、资金流和信息流三个方面分离开来&#xff0c;实现货物不经过境内&#xff0c;直接从一个国家或地区…

qt 的表格控件有什么

在Qt中&#xff0c;表格控件主要用于显示和编辑表格数据。以下是Qt中常用的表格控件及其相关信息的详细归纳&#xff1a; QTableWidget 介绍&#xff1a;QTableWidget是Qt框架下的一个表格控件&#xff0c;它是基于QTableView的封装&#xff0c;并提供了更方便的方式来操作和呈…

uboot学习:(二)uboot命令

目录 uboot命令 常见命令 内存操作命令 网络操作命令 EMMC/SD卡操作命令: FAT格式文件系统操作命令: EXT格式文件系统操作命令 NAND操作命令 BOOT操作命令 其他命令 uboot命令 在烧录uboot到板子中后&#xff0c;开机三秒后才会进入系统&#xff0c;在这三秒按enter…

【机器学习】特征选择:精炼数据,提升模型效能

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 特征选择&#xff1a;精炼数据&#xff0c;提升模型效能引言为何进行特征选择&a…

【LeetCode】633. 平方数之和

1. 题目 2. 分析 典型双指针的题了&#xff0c;不知道为啥LeetCode会把这题放到二分类别下&#xff1f; 需要知道math.ceil()是向上取整&#xff1b; 3. 代码 class Solution:def judgeSquareSum(self, c: int) -> bool:upper math.ceil(sqrt(c))print(upper)left, ri…

微信小程序之使用上拉加载实现图片懒加载

在微信小程序中&#xff0c;有2个事件&#xff0c;相信大家都很熟悉 下拉重新加载 上拉加载更多 事件是这么个事件&#xff0c;至于事件触发后干嘛&#xff0c;那就看代码了 首先要在对应得地方xxxxpage.json打开这个 "onReachBottomDistance": 100至于这个值100还是…

SpringSecurity 三更草堂学习笔记

0.简介 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多&#xff0c;因为相比与Spring…

合并pdf的方法,如何合并pdf文件到一个pdf,简单方法

在现代办公和学习中&#xff0c;pdf格式的文件因其跨平台兼容性和安全性得到了广泛应用。然而&#xff0c;有时我们需要将多个pdf文件合并成一个&#xff0c;以便于管理和分享。本文将详细介绍几种合并pdf的方法&#xff0c;帮助读者轻松完成pdf文件的合并工作。 方法一、使用p…