Load of The Root
一、信息收集
1.主机探测
探测到主机IP:192.168.88.159
2.端口扫描
扫描到端口只开放了一个22端口
尝试使用SSH连接
Easy as 1,2,3
端口碰撞:端口上的防火墙通过产生一组预先指定关闭的端口进行连接尝试,一旦接收到正确的连接尝试序列,防火墙规则就会动态修改,以允许发送连接尝试的主机通过特定端口进行连接
这里我们使用ping命令冲撞三次试试1,2,3
命令:
hping3 -S 192.168.88.159 -p 1 -c 1
hping3 -S 192.168.88.159 -p 2 -c 1
hping3 -S 192.168.88.159 -p 3 -c 1
通过ping碰撞后,防火墙规则会修改,再次端口扫描一次试试
发现1337端口已经打开,访问试试
发现这里面并没有什么线索,查看一下robots.txt文件
查看一下源代码
发现一串用Base64加密的值,我们解码查看一下
THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh
Lzk3ODM0NTIxMC9pbmRleC5waHA= Closer!
发现还是一串base64加密的值,二次解码查看
/978345210/index.php
一看就知道是目录,我们访问试试
目前不知道账户和密码,我们使用sqlmap进行基于登录表单的注入查看,检索数据库名称和登录凭证
sqlmap -o -u "http://192.168.88.159:1337/978345210/index.php" --forms --dbs
查看webapp数据库中数据
sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T --tables
sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users --columns
sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users -C id,username,password --dump
将这些用户名和密码保存在两个不同的文本中,使用msfconsole来破解SSH正确的账户密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNt7RRl1-1663660394270)(Load of The Root-image/Load of The Root/image-20220723195629747.png)]
结果
账号密码:smeagol:MyPreciousR00t
二、提权方式
1.Linux内核提权
SSH登录
查看内核版本
查看到ubuntu 14.04的版本
我们使用39166.c进行提权
提取shell到本地,开启服务,准备上传shell
通过python开启服务上传shell,并进行gcc编译,继续提权
成功提权到root
2.以root身份运行Mysql提权
在我们查看进程的时候,发现mysql是以root权限在运行,同时查看到数据库的版本是5.5.44
根据这个信息我们使用exploit进行反弹shell提权,继续所有数据库信息看看有哪些,咱们筛选一下信息
准备开始上传shell到smeagol用户下
我们参考1518.c脚本内容进行命令输入,制作反弹shell
在这里我们在数据中找mysql的root密码,一般都在/var/www目录下查找配置文件
发现数据库密码是darkshadow,接下来按照步骤进行
这样就拿到root权限了
缓冲区溢出提权
学过缓冲区溢出提权,都会了解到SECRET文件夹目录,我们来找找
find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null
每个文件夹都有一个可执行文件,需要输入字符串才能执行
尝试是否在这里可以利用缓冲区溢出提权
易受攻击的文件会文件夹之间随机移动,要确认是哪个文件,可以使用file命令来比较每个文件的哈希值
file door1/file door2/file door3/file
还可以比较使用ls -lahR创建的文件大小和日期
还可以比较文件大小为du -b字节
目前是door3
将文件复制到bof目录下,方便进行进一步测试
为了确认是否受到攻击,使用python命令快速模糊找出崩溃的字符数
首先发送100个“A”不会执行任何操作
经过测试发现,171是崩溃的确切位置
二进制文件的快速替代方法是使用base64,使用base64的fileName编码二进制文件,将值复制到一个文本即可
然后将base64.txt文件读入base64命令并解码为输出文件
要进行下一步,检查下文件类型之前file door1/file 查看到的哈希值一样