红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)

目录

写在开头

第一步:主机发现和端口扫描 

第二步:Web渗透与CMS漏洞利用

第三步:敏感信息搜索 

第四步:SSH登录与提权

总结与思考

写在开头

 本篇博客根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非复现writeup,读者耐心看完,定会有所收获。本靶机的难度也不高,但还是有很多值得思考的地方,尤其是对php代码的理解。本文的打靶过程涉及到关于cms漏洞利用、敏感信息搜索、john破解密码哈希、sudoers文件提权等。打完这个靶机还有一个启发:信息搜集如果能更加完整,会省很多兜圈子的操作。完整打靶思路详见:
「红队笔记」靶机精讲:Kioptrix1.2 - LotusCMS公开漏洞利用,配置文件敏感信息枚举,mysql数据库信息搜集,使用john暴力破解md5哈希_哔哩哔哩_bilibili

 本文针对的靶机源于vulnhub,详情见:

Kioptrix: Level 1.2 (#3) ~ VulnHub 

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第1张图片

  下载链接见:

 http://www.kioptrix.com/dlvm/KVM3.rar

 本靶机的目标是拿到root权限,并查看/root目录下的flag。下载成功后用vmware打开,将网络链接设置为NAT模式。靶机打开之后如下: 

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第2张图片

第一步:主机发现和端口扫描 

 常规思路,不细讲了。有关主机发现和端口扫描的命令详见我的这篇博客中关于nmap的部分:渗透测试:主机发现和端口扫描的思路方法总结(nmap+ping命令+nc.traditional+伪设备连接)

nmap -sn 10.10.10.0/24
nmap --min-rate 10000 -p- 10.10.10.136
nmap -sT -sV -O -sC -p22,80 10.10.10.136
nmap -sU --min-rate 10000 -p- 10.10.10.136
nmap --script=vuln -p22,80 10.10.10.136

 扫出来靶机的ip是10.10.10.136,也是仅仅开放了22和80端口,入口点应该就是Web了。再使用默认脚本扫描,并探测开放服务和操作系统版本如下:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第3张图片

 漏洞扫描也有一些收获,貌似有一些SQL注入的漏洞,还有目录枚举,可能会有一些敏感信息。至于暴露出来的Dos、CSRF等漏洞我们相对不太关注

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第4张图片

第二步:Web渗透与CMS漏洞利用

 打开浏览器访问靶机ip,可看到如下界面:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第5张图片

 注意url中有page参数,可以尝试文件包含,我试了一下发现没啥收获。这个页面大概就是说开发者搭建了一个新的名为gallery的CMS,同时对这个CMS的安全性很自信。具体信息可以看Blog模块,我们看了看Blog中的信息,其实也看不出什么对渗透有用的信息。点击最后一个Login模块,跳转花费了一些时间,最后看到了如下的登录界面:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第6张图片

 这个界面应该就是CMS后台的登录界面了。同时我们可以从标签的title和下部的banner中看到这个界面的cms名为LotusCMS,既然是正经的cms,我们可以先去searchspoit搜索一下这个CMS有啥漏洞:

 其中第一个18565是msf框架下的利用,我们暂时忽略,第二个16982下载下来发现主要是关于CSRF和XSS的漏洞,构造起来比较麻烦,因此我们尝试再去互联网搜索搜索LotusCMS exploit,发现在github中存在LotusCMS的漏洞利用脚本:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第7张图片

 其中漏洞利用的脚本是lotusRCE.sh,链接为:LotusCMS-Exploit/lotusRCE.sh at master · Hood3dRob1n/LotusCMS-Exploit · GitHub

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第8张图片

 把这个代码下载到kali中,vim查看:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第9张图片

 可以看到大致的用法就是这个脚本后接lotusCMS的路径,因此我们运行:

./lotusRCE.sh http://10.10.10.136/

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第10张图片

 提示确实存在代码注入的位置,还问我们要用哪个IP进行利用,那应该就是反弹shell的ip,我们在kali中开启nc监听1234端口,然后在这个漏洞利用脚本中输入kali的ip和端口即可:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第11张图片

 红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第12张图片

 漏洞脚本又让我们选择连接模式,我们直接选择常见的NetCat -e即可,输入1,再回车

可以看到nc监听的终端已经收到了shell:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第13张图片

第三步:敏感信息搜索 

已经拿到了初始shell,尝试提权。先用python映射一个端口增加交互性:

python -c "import pty;pty.spawn('/bin/bash')"

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第14张图片

 sudo -l查看当前权限,结果要求输入密码,咱不知道密码是啥。

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第15张图片

 查看/etc/passwd试试:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第16张图片

 可以看到除了root之外,还有两个用户loneferret和dreg是有bash的,应该是关键的账户。尝试读取/etc/shadow发现权限不够。那我们就尝试搜索看看有啥敏感文件吧,手下看看当前目录有啥东西:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第17张图片

 有几个文件夹的名字会吸引我们关注。包括缓存cache,内核core,数据data,已经最初在浏览器访问靶机ip中显示开发者开发的cms名称gallery。一番查找最后发现了一个数据库的登录密码,在gallery目录下的gconfig.php:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第18张图片

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第19张图片

 mysql的root账号密码为fuckeyou,这个密码还挺骂人的。那我们就尝试登录mysql吧

mysql -u root -p
fuckeyou

 登录成功,查找有什么数据库:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第20张图片

 显然我们最关注的是gallery这个数据库,选中它再看看里面有啥表:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第21张图片

 里面有两张表是我们关注的,关于账户的accounts和关于用户的users,先查看dev_accounts:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第22张图片

 成功搞到了两个密码的hash,由/etc/passwd可以判断者就是那两个有bash的账户,密码加密应该是md5,我们把这个密码的hash复制下来存为一个文件,文件名就叫hash好了:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第23张图片

 然后用john破解这俩md5,一般靶机中的md5的常用字典是rockyou.txt

john hash --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第24张图片


这里插叙一下,重复用john破解相同的密码哈希是无法显示结果的,而john会将破解结果存在john.pot中,路径如下:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第25张图片

 可以查看这个john.pot来查看历史破解结果,总之我们得到了dreg用户的密码是Mast3r,loneferret 用户的密码是starwars(注意md5值的对应关系),可以尝试ssh登录了。


  另外还可以查看gallarific_users这张表,也发现了一个用户和密码。经过尝试,这个密码(n0t7t1k4) 正是Login后天的admin登录密码。

  这个密码也很有用,不过鉴于此时我们已经拿到了ssh的两个登录账号,不妨先试试ssh登录。

第四步:SSH登录与提权

尝试用户dreg,密码Mast3r登录:

 提示没有匹配的host key,老问题了,添加参数-oHostKeyAlgorithms=ssh-rsa,ssh-dss即可,第一次出现这个问题是在红队打靶:LampSecurity:CTF4打靶思路详解(vulnhub)_Bossfrank的博客-CSDN博客

ssh [email protected] -oHostKeyAlgorithms=ssh-rsa,ssh-dss

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第26张图片

 登录成功了!sudo -l查看权限试试:

 这个账号没有运行sudo的权限,然后查找了一番定时任务和当前目录的信息,也没有啥收获,干脆看看另外一个账号loneferret登录:

ssh [email protected] -oHostKeyAlgorithms=ssh-rsa,ssh-dss 
starwars

也登录成功了:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第27张图片

 查看loneferret用户的权限,如下:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第28张图片

 发现我们可以免密运行两个程序,先试试su:

 很遗憾,提示我们loneferret用户不允许以root执行su,那再试试sudo运行ht吧:

sudo /usr/local/bin/ht

 再度失败了,提示是终端tmux的问题,那么我们再添加一下终端的环境变量:

export TERM=xterm-color

再次sudo运行ht试试 :

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第29张图片

 可以发现这是个编辑器,既然我们可以sudo启动这个编辑器,那么这个编辑器应该是具有root权限的,我们可以用这个ht编辑器修改系统的配置实现提权,最简单的思路便是修改/etc/sudoers这个文件,我们先尝试打开这个文件,按F3,输入/etc/sudoers即可编辑:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第30张图片

 我们尝试在最后一行追加loneferret ALL=(ALL)NOPASSWD:ALL,应该就可以修改当前用户为最高权限了:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第31张图片

 然后按F10退出,再次运行sudo -l查看权限,可以看到已经有ALL权限了:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第32张图片

 那么我们sudo启动一个bash即可提权:

sudo /bin/bash

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第33张图片

 然后我们查看/root目录,发现有一个Congrats.txt:

红队打靶:KIOPTRIX1.2打靶思路详解(vulnhub)_第34张图片

 至此打靶完成。

总结与思考

 靶机并不是很难,但还是有很多细节的点需要思考。思路的核心还是发现CMS的类型以及漏洞,在searchspoit搜索并未发现特别好的漏洞利用脚本的时候,不妨去github再进行搜索,关键点还是利用这个LotusCMS的漏洞获取反弹shell,然后就是一些敏感信息搜索的工作。在进行提权时,发现ht编辑器具有root权限,立刻就应该想到可以用这个编辑器编辑一些系统配置,从而实现提权,不一定非要像我这样在/etc/sudoers中追加loneferret ALL=(ALL)NOPASSWD:ALL,也可以通过直接修改/etc/passwd中root的密码等方法。最后还是总结一下打靶过程:

1.主机发现和端口扫描

2.Web渗透,发现LotusCMS,最终通过github搜索获得漏洞利用脚本,运行后获得反弹shell。

3.敏感信息搜索:发现数据库root的密码,成功登录数据库,查找到了ssh登录账号的密码hash,用john破解后获得密码。

4.ssh登录与提权:SSH登录后发现loneferret用户具有sudo /usr/local/bin/ht的权限,利用ht编辑器修改系统配置文件即可提权。

 到此这个靶机就讲解完毕了。靶机不难,总结不易,也有很多自己的思考,希望读者能够点赞关注多多支持!如果读者有什么打靶的问题也欢迎评论区留言指出,我一定知无不言!

 

你可能感兴趣的:(红队打靶,网络安全,web安全,kali,渗透测试,vulnhub)