玄机 第九章-blueteam 的小心思

(一)查看黑客的登录账号密码

思路:(1)查看日志

cat /var/log/apache2/access.log | grep "POST /login"

(2)查看数据库的信息 在config.inc.php(在php当中)

find / -name config.inc.php
cat var/www/html/include/config.inc.php

但是进入数据库后没有收获

(3)目录下面还存在着流量包
查看访问login.php目录的数据包

find / -name "*.pcap"
http contains "login.php" wireshark

(二)攻击者在哪个PHP页面中成功上传了后门文件

查看上传文件的数据包,上传文件的数据包格式
当文件通过 multipart/form-data 上传时,每个部分用 boundary 分隔。通过识别 boundary,可以分离出文件内容和其他表单数据。
在wireshark查看

http contains "boundary"

image
右键点击跟踪流
image

(三)攻击者上传的木马文件

判断上传了cpg.php发木马文件,这边也解出了第三题

四)攻击者后续又下载了一个可执行的后门程序,提交该文件的小写md5值

题目问我们黑客下载的列一个可执行后面程序是什么并且进行MD5加密,那这里我们可以有两个方法来进行查找,第一种,上题已查出了一个webshell“cpg.php”,那我们就完全可以根据黑客上传的第一个webshell的时间来筛选前后下载的文件,因为来猜测黑客上传的时间肯定不会间隔太久,所以我们只需要查到第一次上传webshell的时间即可;

第二种,我们不是导出一个“wireshark.pcap”嘛,仔细分析一下也是可以发现黑客下载的可执行后门程序,毕竟我们之前就在里面查出过文件“cpg.php”,所以同样的道理我们也是可以从里面发现;
stat可以查看文件的修改情况
Access 最后访问时间(读取文件内容)
Modify 最后修改时间(文件内容被更改)
Change 最后状态改变时间(如权限、所有者、链接数等元数据变化)

stat cpg.php

image

使用这条命令查看www-data用户的情况

find / -newerct '2023-11-18 07:30:00' ! -newerct '2023-11-19 07:30:00' ! -path '/proc/*' ! -path /'sys/*' ! -path '/run/*' -type f -exec ls -lctr --full-time {} \+ 2>/dev/null | grep www-data

newerct ‘2023-11-18 07:30:00’
查找在2023年11月18日07:30:00之后创建或修改的文件。
! -newerct ‘2023-11-19 07:30:00’
查找在2023年11月19日07:30:00之前创建或修改的文件。
! -path ‘/proc/’ ! -path '/sys/’ ! -path ‘/run/*’
排除路径为/proc、/sys和/run的文件。这些目录包含系统和内核相关的虚拟文件系统,不需要搜索。
-type f
仅查找普通文件(不包括目录、链接等)。
-exec ls -lctr --full-time {} +
对找到的每个文件执行ls -lctr --full-time命令,显示文件的详细信息:
-l:使用长格式列出文件。
-c:根据文件的状态更改时间排序。
-t:根据时间排序。
-r:逆序排列。
--full-time:使用完整的时间戳格式显示。
2>/dev/null

将错误输出重定向到/dev/null,即忽略错误信息。
| grep www-data
过滤出包含www-data的行。这将显示所有由www-data用户拥有或修改的文件。
image

法二 在wireshark里面进行查找
查看http的数据包,一个个翻看
image

(五)攻击者创建了后门用户的名称是?例如attack恶意用户,上传字符串"attack"的小写md5值,格式flag

直接查看创建的用户

cat /etc/passwd

image
最下面的用户非常的可疑 他的权限是0:0y 与root用户一样,并且
/bin/bash 是这个用户的默认 shell,允许用户执行命令,这进一步表明这是一个高权限用户

(六)攻击者创建了一个持久化的配置项,导致任意用户登录就会触发后门的连接。提交该配置项对应配置文件的小写md5值,格式flag

黑客可以修改用户的 Shel 配置文件,这些文件在用户登录时被执行。常见的文件包括:

1、”~/.bashrc“:用于 Bash Shell,会在每次打开新的终端或登录 Shell 时执行。
2、”/.bash_profile“或”/.profile“:这些文件在用户登录时执行。
3、”~/.zshrc“:用于Zsh Shell,与”~/.bashrc“类似。
4、”/etc/profile“:为所有用户提供的系统级别的配置文件,
5、”/etc/bash.bashrc“:为所有用户提供的系统![image]

在 etc/profile 中发现了
image

还有一种做法就是,在etc目录下面查找存在is.wprld的文件

grep -Er "is.world" /etc

-E: 表示启用扩展的正则表达式(Extended Regular Expression)模式。这使得 grep 可以识别更多的正则表达式语法。
-r: 表示递归地在指定目录及其子目录中搜索。
image

(七)攻击者创建了一个持久化的配置项,导致只有root用户登录才会触发后门的连接。提交该配置项对应配置文件的小写md5值

下面是root用户回触发的

1、“/root/.bashrc”:在root用户登录Bash Shell时执行;
2、“/root/.bash_profile”:在root用户登录时执行。
3、“/root/.profile”:在root用户登录时执行。
4、“/etc/profile”:所有用户登录时执行,但可以通过特定的条件使其仅在root用户登录时触发。(这个概率就非常大,且也符合我们的猜测)
5、“/etc/rc.local”:系统启动时执行,可以包含条件逻辑

在cat /root/.bashrc 中发现了
image

(八)攻击者加密了哪个数据库?提交数据库的文件夹名,例如user数据库对应存放位置为user文件夹,上传字符串"user"的小写md5值

我们这边在config.inc.php中找到了数据库的配置信息
然后可以使用navicat进行连接,连接完成后去数据库中进行查看。看那个数据库不能访问或者访问报错
image
我们返回服务器当中查看

find / -name JPMorgan@0020Chase
echo -n "JPMorgan@0020Chase" | md5sum

(九)解密数据库,提交Harper用户对应Areer的值。提交Areer值的小写md5值,格式flag{md5}。

find / -type f -newer /var/www/html/plugins/cpg.php ! -newer /var/lib/mysql/JPMorgan@0020Chase/Balance.frm

题目让我们解密数据库,提交Harper用户对应的Areer的值并且进行MD5加密,那这里黑客肯定是对表“Balance”进行了什么操作才导致进不去,那我们就尝试查找一下黑客比文件“cpg.php“新,又比闻文件“Balance.frm”旧的所有文件;
image

后续是发现了加密的脚本就是这个clockup.php,后面就是将其丢给chatGPT
进行解密,vim 1.php php 1.php
运行完成代码后重启数据库就可以了

sudo systemctl restart mysql

image

(十)因为什么文件中的漏洞配置,导致了攻击者成功执行命令并提权。提交该文件的小写md5值,格式

题目让我们找到黑客提权所使用的文件并且进行MD5加密,既然说了提权那我们就可以直接使用命令查找系统中以 root 用户身份拥有并设置了 SUID(Set User ID)权限的文件

find / -user root -perm -4000 2>/dev/null

image
发现/usr/bin/sudo:Sudo 是一个常见的提权工具,肯定会被滥用。

/etc/sudoers 包含了系统上 sudo 的配置和权限设置
cat /etc/sudoers
image
www-data ALL=(root) NOPASSWD: /bin/systemctl status apache2.service:www-data 用户可以以 root 身份执行 /bin/systemctl status apache2.service 命令,并且无需输入密码。

如果 web 应用程序允许上传和执行任意文件,黑客可以上传恶意脚本,利用 systemctl 命令的执行权限来进一步渗透系统
参考内容:https://blog.csdn.net/administratorlws/article/details/140471298

posted @ 2025-08-30 17:20  JuneCy  阅读(33)  评论(0)    收藏  举报