Load of The Root
一、信息收集
1.主机探测
探测到主机IP:192.168.88.159
![image-20220723191329029](https://img-blog.csdnimg.cn/img_convert/0cb775aedc332b128d5c9c2f58e0b406.png)
2.端口扫描
扫描到端口只开放了一个22端口
![image-20220723191406182](https://img-blog.csdnimg.cn/img_convert/c75dab7f1205ddc862938472577d1c04.png)
尝试使用SSH连接
![image-20220723191545226](https://img-blog.csdnimg.cn/img_convert/11997770ab2b220d9a98102e816c2147.png)
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
![image-20220723191913693](https://img-blog.csdnimg.cn/img_convert/ab56dcf4ac37d7e775aa741f186747ab.png)
通过ping碰撞后,防火墙规则会修改,再次端口扫描一次试试
![image-20220723192208893](https://img-blog.csdnimg.cn/img_convert/ac3c2590de45c66dda1c8a2c9a22e5b8.png)
发现1337端口已经打开,访问试试
![image-20220723192250913](https://img-blog.csdnimg.cn/img_convert/0f64887f2785a2e2a3cfade0e1b01daf.png)
发现这里面并没有什么线索,查看一下robots.txt文件
![image-20220723192601543](https://img-blog.csdnimg.cn/img_convert/8ecee1b2479b475a2a41411c40718280.png)
查看一下源代码
![image-20220723192625210](https://img-blog.csdnimg.cn/img_convert/a3b8518513e29082ec62c08c9d551305.png)
发现一串用Base64加密的值,我们解码查看一下
THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh
![image-20220723192707662](https://img-blog.csdnimg.cn/img_convert/8f5cb3344d3658d1451ec3b93a05466d.png)
Lzk3ODM0NTIxMC9pbmRleC5waHA= Closer!
发现还是一串base64加密的值,二次解码查看
![image-20220723192750329](https://img-blog.csdnimg.cn/img_convert/0b8e4505fd9b022a2331b0a6684056ee.png)
/978345210/index.php
一看就知道是目录,我们访问试试
![image-20220723192850905](https://img-blog.csdnimg.cn/img_convert/91266685f00cdf8140d4b1bc28496bd2.png)
目前不知道账户和密码,我们使用sqlmap进行基于登录表单的注入查看,检索数据库名称和登录凭证
sqlmap -o -u "http://192.168.88.159:1337/978345210/index.php" --forms --dbs
![image-20220723193552151](https://img-blog.csdnimg.cn/img_convert/ce49a78cb5c0793fd4ad8b3e84edec28.png)
查看webapp数据库中数据
sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T --tables
![image-20220723194155880](https://img-blog.csdnimg.cn/img_convert/70dea652806aa8411b4f13a73dc5d563.png)
sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users --columns
![image-20220723194602032](https://img-blog.csdnimg.cn/img_convert/9c3cf66f63c35ff69a3fc3b1daf441ce.png)
sqlmap -o -u "http://192.168.88.159:1337//978345210/index.php" --forms -D Webapp -T Users -C id,username,password --dump
![image-20220723195315750](https://img-blog.csdnimg.cn/img_convert/29f402802aab30aa7ba35845592aaf3f.png)
将这些用户名和密码保存在两个不同的文本中,使用msfconsole来破解SSH正确的账户密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNt7RRl1-1663660394270)(Load of The Root-image/Load of The Root/image-20220723195629747.png)]
![image-20220723195810772](https://img-blog.csdnimg.cn/img_convert/a7becd9aa6db6ffe9b82f73777be02a6.png)
![image-20220723200025171](https://img-blog.csdnimg.cn/img_convert/dea7bf1568424704a402884d04df9a92.png)
结果
![image-20220723200101648](https://img-blog.csdnimg.cn/img_convert/974ecf69617a707fd5826e40de7bc307.png)
账号密码:smeagol:MyPreciousR00t
二、提权方式
1.Linux内核提权
SSH登录
![image-20220723200323161](https://img-blog.csdnimg.cn/img_convert/0f3ff4bdde8224b6a7f035da86947249.png)
查看内核版本
![image-20220723200444924](https://img-blog.csdnimg.cn/img_convert/f72b20bba1cfeceed331fb813b19f901.png)
查看到ubuntu 14.04的版本
![image-20220723200757166](https://img-blog.csdnimg.cn/img_convert/8943d45de733d8ace6490d3430a9e391.png)
我们使用39166.c进行提权
![image-20220723200950511](https://img-blog.csdnimg.cn/img_convert/3259906cb3a167cf9c1d6813a0609a6b.png)
提取shell到本地,开启服务,准备上传shell
![image-20220723201105558](https://img-blog.csdnimg.cn/img_convert/38add9a8de374806c6b74264657773aa.png)
通过python开启服务上传shell,并进行gcc编译,继续提权
![image-20220723201314663](https://img-blog.csdnimg.cn/img_convert/742c38bde9a9474e6eab7e4d28469657.png)
成功提权到root
2.以root身份运行Mysql提权
在我们查看进程的时候,发现mysql是以root权限在运行,同时查看到数据库的版本是5.5.44
![image-20220724204011042](https://img-blog.csdnimg.cn/img_convert/b7092bb9242bdc792521d3c8ac52a222.png)
根据这个信息我们使用exploit进行反弹shell提权,继续所有数据库信息看看有哪些,咱们筛选一下信息
![image-20220724204213388](https://img-blog.csdnimg.cn/img_convert/019a50f6b4ca60704a615d84d26bc189.png)
![image-20220724204305804](https://img-blog.csdnimg.cn/img_convert/2ff334093b22f90b0d4d009b3020683e.png)
准备开始上传shell到smeagol用户下
![image-20220724204707966](https://img-blog.csdnimg.cn/img_convert/88323c9829a15ba3d707fb6782fd5ce9.png)
我们参考1518.c脚本内容进行命令输入,制作反弹shell
![image-20220724204851476](https://img-blog.csdnimg.cn/img_convert/7e42bccf4ff445c55dfa69c0cd4241bc.png)
在这里我们在数据中找mysql的root密码,一般都在/var/www目录下查找配置文件
![image-20220724205043372](https://img-blog.csdnimg.cn/img_convert/d1c3414c02513324eb49d122387c9d29.png)
发现数据库密码是darkshadow,接下来按照步骤进行
![image-20220724205154325](https://img-blog.csdnimg.cn/img_convert/dece125f786a1dc14ee6b91d20332172.png)
![image-20220725124127789](https://img-blog.csdnimg.cn/img_convert/bc641b33e1adfa63ad17c8a86b067a31.png)
![image-20220725125056666](https://img-blog.csdnimg.cn/img_convert/3a9c4ea368ac3ca278d95347ce6be7b1.png)
这样就拿到root权限了
![image-20220725125106276](https://img-blog.csdnimg.cn/img_convert/1c05f1550a262e111a94544ad99ca4b4.png)
缓冲区溢出提权
学过缓冲区溢出提权,都会了解到SECRET文件夹目录,我们来找找
find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null
![image-20220725125354756](https://img-blog.csdnimg.cn/img_convert/b64763c0675ab783daaea4d3907041ae.png)
每个文件夹都有一个可执行文件,需要输入字符串才能执行
![image-20220725125559405](https://img-blog.csdnimg.cn/img_convert/433077a6a785965663aa4d3a9e4fe6b7.png)
尝试是否在这里可以利用缓冲区溢出提权
易受攻击的文件会文件夹之间随机移动,要确认是哪个文件,可以使用file命令来比较每个文件的哈希值
file door1/file door2/file door3/file
![image-20220725125814889](https://img-blog.csdnimg.cn/img_convert/eb84b99302371d07d7ba09c4436b90b6.png)
还可以比较使用ls -lahR创建的文件大小和日期
![image-20220725130032895](https://img-blog.csdnimg.cn/img_convert/b92b62e8040305eebbeeb0350f236eb6.png)
还可以比较文件大小为du -b字节
![image-20220725130114114](https://img-blog.csdnimg.cn/img_convert/7ce25dfa14ac485d46e731476447366f.png)
目前是door3
![image-20220725130200411](https://img-blog.csdnimg.cn/img_convert/bd4a96937602c52f2a09bfeda127d03a.png)
将文件复制到bof目录下,方便进行进一步测试
为了确认是否受到攻击,使用python命令快速模糊找出崩溃的字符数
首先发送100个“A”不会执行任何操作
![image-20220725130501673](https://img-blog.csdnimg.cn/img_convert/25f2af22d5fb0614c2513393a76a9816.png)
经过测试发现,171是崩溃的确切位置
![image-20220725130559180](https://img-blog.csdnimg.cn/img_convert/322a0c035000ce698b8e56183676a244.png)
二进制文件的快速替代方法是使用base64,使用base64的fileName编码二进制文件,将值复制到一个文本即可
![image-20220725130919141](https://img-blog.csdnimg.cn/img_convert/6e17a0fb651339c7cb8ca619f4dde133.png)
然后将base64.txt文件读入base64命令并解码为输出文件
![image-20220725130858242](https://img-blog.csdnimg.cn/img_convert/cdc9a3b04fe901f29d9afdc4a147c0e4.png)
要进行下一步,检查下文件类型之前file door1/file 查看到的哈希值一样