靶机:DriftingBlues: 1 DriftingBlues: 1 ~ VulnHubhttps://www.vulnhub.com/entry/driftingblues-1,625/
攻击机:kail linux 2024
1,将两台虚拟机网络连接都改为NAT模式,并查看靶机的MAC地址
2,攻击机上做主机扫描发现靶机
靶机IP地址192.168.23.136,攻击机IP地址192.168.23.128
3,对靶机做更精细的扫描
22/tcp open ssh OpenSSH 7.2p2
80/tcp open http Apache httpd 2.4.18
4,访问web网页,查看页面源码发现一串base64编码
L25vdGVmb3JraW5nZmlzaC50eHQ=解码得到/noteforkingfish.txt
5,访问192.168.23.136/noteforkingfish.txt
6,访问该文件,发现大量 Ook! 编码,解码之
Ook! 在线解码地址:Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]
解码得到:
my man, i know you are new but you should know how to use host file to reach our secret location. -eric
7,得到一串提示信息。通过对提示的分析,要求通过hosts文件的方式访问地址,此时需要一个域名(这里就需要上面提到的两个邮箱,两个邮箱都是同一个域名)driftingblues.box
8,将靶机ip地址以及对应的域名 driftingblues.box 写入hosts文件内,重新使用域名访问网站进行信息收集发现与之前收集到的信息一致
9,使用gobuster工具进行爆破,尝试爆破子域名,得到子域名test.driftingblues.box
gobuster dns -d "driftingblues.box" --wordlist /usr/share/wordlists/dirb/common.txt --no-error -z
dns 使用DNS枚举子域名(域名爆破模式)
-d 目标域(指定目标域名)
--wordlist 字典列表的路径
--no-error 不显示错误
-z 不显示进度
9,将子域名也加入到 hosts 表内,访问网页进行信息收集,发现页面没有什么有用的回显信息(注意页面经常出现的eric,后面ssh暴力破解时候用得到)
10,使用dirb工具扫描网站目录,发现robots.txt文件,访问该文件,获得 /robots.txt 文件
11,访问 /ssh_cred.txt 文件得到一个密码,用于ssh登录
获得提示:1mw4ckyyucky需要最后一位加一个数字才真的密码,这样的话就有十种可能
12,直接编写十种可能的密码,用户名eric,再利用工具爆破
hydra -l eric -P password.txt 192.168.23.136 ssh
-l 指定用户名
-P 指定密码字典的路径
ssh 用于暴力破解SSH服务器
如此得到账户/密码:eric/ 1mw4ckyyucky6
13,使用得到的账户密码进行登录
使用ls命令,查看一下当前目录下有啥文件 发现了 user.txt找到了第一个FLAG。
14,接下来的思路就是提权,使用find命令寻找suid程序,尝试进行提权,没有发现可利用的漏洞程序
find / -perm -4000 2>/dev/null
使用sudo运行命令提示无法运行
15,换个思路找靶机内存在root权限执行的文件或者脚本,在查看/tmp目录时发现目录下存在备份文件,查看/var目录,果然有一个backups文件夹,查看文件夹里的文件内容,有一个备份文件脚本backup.sh,该文件执行的命令是root权限的
在Linux系统中,默认的备份文件路径通常是/var/backups。这个目录通常用来存放系统自动备份的文件,比如日志、配置文件等。不过需要注意的是,具体的备份路径可能会因不同的发行版和配置而有所不同。
16,查看backup.sh文件的内容,发现提示说有一个backdoor,且用sudo命令执行了/tmp/emergency文件。
17,再次查看/tmp目录,发现没有emergency这个文件,我们可以自行创建
18,创建emergency文件,并向其中写入命令,给该文件执行命令。等待backup.sh执行,生成backdoor文件
echo "cp /bin/bash /tmp/backdoor;chmod +s /tmp/backdoor" > /tmp/emergency
chmod +x emergency
因为emergency文件依旧是eric用户创建的,我们需要一个root用户创建还拥有特殊权限的执行文件去执行提权命令。所以我们利用备份文件会以root权限执行/tmp/emergency文件的漏洞去创建一个backdoor文件(这个命名单纯是根据提示来创建的,可以随意创建一个喜欢的文件名),来执行提权命令,并给该文件赋予特殊权限。赋予emergency文件执行权限是为了能让其执行写入命令。
19,发现成功生成backdoor文件,执行该文件,成功提权至root权限
./backdoor -p 提权命令
-p 以root权限执行命令
此时的backdoor文件内的内容实际就是/bin/bash文件内的内容,且该文件为root用户创建,拥有SUID权限的文件,因此我们可以进行提权操作。但是由于Linux系统中出于安全考虑,普通用户无法直接提升为root用户,所以我们要加 "-p" 参数,可以实现以root权限执行命令
20,得到flag2/2
总结:
1.多注意网页源代码 思路不能只限于扫描后台
2.学习了Gobuster工具的使用(第一次用)
3.了解了一些编码ok码 或者base64 等
4.学会结合脚本给的提示 利用sudo 提权
声明:部分内容来自于网络,如有侵权联系删除