No.6-VulnHub-Lord Of The Root: 1.0.1-Walkthrough渗透学习

**

VulnHub-Lord Of The Root: 1.0.1-Walkthrough

**

靶机地址:https://www.vulnhub.com/entry/lord-of-the-root-101,129/
靶机难度:中等(CTF)
靶机发布日期:2015年9月23日
靶机描述:这是KoocSec为黑客练习准备的另一个Boot2Root挑战。他通过OSCP考试的启发准备了这一过程。它基于伟大的小说改制电影《指环王》的概念。
目标:得到root权限&找到flag.txt
作者:大余
时间:2020-1-1

请注意:对于所有这些计算机,我已经使用VMware运行下载的计算机。我将使用Kali Linux作为解决该CTF的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:

在这里插入图片描述
使用命令:nmap -sP 192.168.182.0/24
我们已经找到了此次CTF目标计算机IP地址:192.168.182.146
我们开始探索机器。第一步是找出目标计算机上可用的开放端口和一些服务。因此我在目标计算机上启动了nmap扫描:
在这里插入图片描述
使用命令:nmap -sS -sV -T5 -A -p- 192.168.182.146
扫描出仅开放一个22端口,尝试通过SSH连接…
在这里插入图片描述
Easy as 1,2,3
端口碰撞: 端口上的防火墙通过产生一组预先指定关闭的端口进行连接尝试,一旦接收到正确的连接尝试序列,防火墙规则就会动态修改,以允许发送连接尝试的主机通过特定端口进行连接。
这边使用ping命令冲撞三次试试1,2,3
在这里插入图片描述
命令:hping3 -S 192.168.182.146 -p 1 -c 1
通过ping冲撞之后,防火墙规则会修改,重新扫描一次试试
在这里插入图片描述
扫出了1337端口,直接访问试试
在这里插入图片描述
打开就一张图,然后我还检查了源代码,没有找到有用信息…
以后在渗透任何系统时,都要查看下robots.txt文件…
在这里插入图片描述
查看源代码
在这里插入图片描述
找到base64值:THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh,去网上解密
在这里插入图片描述
或者在kali里面进行解密
在这里插入图片描述
输出Lzk3ODM0NTIxMC9pbmRleC5waHA= Closer!
输出还是base64值…继续进行二次解码!!!Lzk3ODM0NTIxMC9pbmRleC5waHA=
在这里插入图片描述
输出:/978345210/index.php
一看就知道是目录,继续访问
在这里插入图片描述
目前不知道确切的用户名和密码,可以使用SQLMAP进行基于登录表单的注入查看,检索数据库名称和登录凭据
在这里插入图片描述
命令:sqlmap -o -u “http://192.168.182.146:1337/978345210/index.php” --forms --dbs
继续获取webapp数据表信息
在这里插入图片描述
命令:sqlmap -o -u “http://192.168.182.146:1337/978345210/index.php” --forms -D Webapp --tables
这里可以看到Users数据表,继续查看数据表信息
在这里插入图片描述
命令:sqlmap -o -u “http://192.168.182.146:1337/978345210/index.php” --forms -D Webapp -T Users --columns
这里看到了一些专栏,进行转储选出最终结果
在这里插入图片描述
命令:sqlmap -o -u “http://192.168.182.146:1337/978345210/index.php” --forms -D Webapp -T Users -C id,username,password --dump
获得了这些用户名密码
将这些用户名和密码保存在两个不同的文本中,使用msfconsole 来破解SSH正确的账号密码
在这里插入图片描述
在这里插入图片描述
账号密码:smeagol、MyPreciousR00t
**

二、三种提权方式

Linux内核提权

SSH登录
在这里插入图片描述
命令:ssh [email protected]
在这里插入图片描述
查看到ubuntu 14.04 的版本
在这里插入图片描述
在这里插入图片描述
我们使用39166.c进行提权
在这里插入图片描述
提取shell到本地,开启服务,准备上传shell
在这里插入图片描述
通过python开启服务上传shell,并进行gcc编译,继续提权
在这里插入图片描述
执行shell后,提权成功,并完成任务!!!

以root身份运行MySQL提权

早先查看正在运行的进程时,发现mysql以root身份运行,同时检查数据库版本是5.5.44…
在这里插入图片描述
命令:ps aux | grep mysql
命令:mysql --version
有了以上信息,需要exploit进行反弹shell提权,继续有所数据库信息看看有哪些,我这边进行范围缩小搜索(例如:删除针对Windows,远程或拒绝服务的漏洞利用的shell)
在这里插入图片描述
在这里插入图片描述
将1518.c的shell上传到smeagol用户下
在这里插入图片描述
在这里插入图片描述
我们参考1518.c脚本内容进行输入命令,制作反弹shell
命令:gcc -g -c raptor_udf2.c
命令:gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
这边需要在数据查找到mysql的root密码!!
在这里插入图片描述
查看www目录下的文件…(一般都在这儿找)
在这里插入图片描述
找了10多分钟在login.php中找到了root的登录密码darkshadow(这是数据库的登录…)
在这里插入图片描述
继续参考shell命令进行渗透提权
在这里插入图片描述
最后 ! sh执行完就获得了root权限!!

缓冲区溢出提权

学过缓冲区溢出提权,都会了解到SECRET文件夹目录,我们来找找
在这里插入图片描述
命令:find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} ; 2>/dev/null

-rwsr-xr-x 1 root root 7370 Sep 17 2015 /SECRET/door2/file
-rwsr-xr-x 1 root root 7370 Sep 17 2015 /SECRET/door1/file
-rwsr-xr-x 1 root root 5150 Sep 22 2015 /SECRET/door3/file
每个文件夹都有一个可执行文件,需要输入字符串才能执行
在这里插入图片描述
尝试是否在这里可以利用缓冲区溢出提权
易受攻击的文件会文件夹之间随机移动,要确认是哪个文件,可以使用file命令来比较每个文件的哈希值
在这里插入图片描述
命令:file door1/file door2/file door3/file
还可以比较使用ls -lahR创建的文件大小和日期
在这里插入图片描述
命令:ls -laR
还可以比较文件大小为du -b字节在这里插入图片描述
命令:du -b door1/file door2/file door3/file
目前是door3
g.cn/20200101173059593.png)
命令:cp door3/file /home/smeagol/bof
将文件复制到bof目录下,方便进行进一步测试
为了确认是否受到攻击,使用python命令快速模糊找出崩溃的字符数
首先发送100个“ A”不会执行任何操作
在这里插入图片描述
命令:./bof $(python -c ‘print “A” * 数字’)
但是200个会导致分段错误,继续往回看,我们发现171是崩溃的确切位置
在这里插入图片描述
命令:base64 bof
二进制文件的快速替代方法是使用base64,使用base64的fileName编码二进制文件,将值复制到一个文本里即可!
在这里插入图片描述
然后将base64.txt文件读入base64命令并解码为输出文件
在这里插入图片描述
命令:cat base64.txt | base64 -d > bof
命令:file bof
要继续进行下一步,检查下文件类型之前file door1/file…查看到的哈希值一样
在这里插入图片描述
还可以使用命令:objdump -d –no-show-raw-insn bof
从文件中获取更多信息,有几个值得注意的c关键字,特别是strcpy
下一步是创建基本的框架脚本,使用前面收集的171崩溃信息,用python脚本,EIP框架分析等等,这里是我目前的弱项,我没继续下去,我看了3个小时没有任何头绪,思路应该没错,无奈的学得还不够多知识点缺乏啊!!后期会补上缓冲区溢出的方法过程,这是比较难的一种提权!!

我们进入root根目录查看
在这里插入图片描述
有几个文件阻碍了SECRET目录下提权的难度!!
在这里插入图片描述
python脚本下switcher.py每三分钟变换一次值…
在这里插入图片描述
还会打乱缓冲区溢出的“ buf”文件,因此让缓冲区溢出难度加大,做到这里头很痛了…

扫描二维码关注公众号,回复: 8517793 查看本文章

由于OSCP考试限制了只能用一次MSFconsole,所以真多多钟提权需要巩固和加深,最近觉得比较难的还是缓冲区溢出提权…继续脑补!!!指环王还是不错的,花了我10个小时才写完,主要花了5个小时在缓冲区溢出,还没提权成功,脑补脑补!!!加油

由于我们已经成功得到root权限&找到flag.txt,因此完成了CTF靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
在这里插入图片描述

发布了12 篇原创文章 · 获赞 2 · 访问量 703

猜你喜欢

转载自blog.csdn.net/qq_34801745/article/details/103792018