红队打靶: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

下载链接见:

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

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

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

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

bash 复制代码
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了。再使用默认脚本扫描,并探测开放服务和操作系统版本如下:

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

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

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

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

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

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

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

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

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

bash 复制代码
./lotusRCE.sh http://10.10.10.136/

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

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

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

第三步:敏感信息搜索

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

bash 复制代码
python -c "import pty;pty.spawn('/bin/bash')"

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

查看/etc/passwd试试:

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

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

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

bash 复制代码
mysql -u root -p
fuckeyou

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

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

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

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

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

bash 复制代码
john hash --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt

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

可以查看这个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博客

bash 复制代码
ssh dreg@10.10.10.136 -oHostKeyAlgorithms=ssh-rsa,ssh-dss

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

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

bash 复制代码
ssh loneferret@10.10.10.136 -oHostKeyAlgorithms=ssh-rsa,ssh-dss 
starwars

也登录成功了:

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

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

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

bash 复制代码
sudo /usr/local/bin/ht

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

bash 复制代码
export TERM=xterm-color

再次sudo运行ht试试 :

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

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

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

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

bash 复制代码
sudo /bin/bash

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

至此打靶完成。

总结与思考

靶机并不是很难,但还是有很多细节的点需要思考。思路的核心还是发现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编辑器修改系统配置文件即可提权。

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

相关推荐
liann1195 小时前
3.2_红队攻击框架--MITRE ATT&CK‌
python·网络协议·安全·网络安全·系统安全·信息与通信
德迅云安全杨德俊7 小时前
DDoS 解析与防御体系
网络·安全·web安全·ddos
电子科技圈8 小时前
芯科科技在蓝牙亚洲大会展示汽车与边缘AI前沿蓝牙创新技术, 解锁车用、家居、健康及工商业等应用场景
人工智能·科技·嵌入式硬件·mcu·物联网·网络安全·汽车
王大傻092810 小时前
WASC 团队报告的安全威胁分类
网络·安全·web安全
大方子10 小时前
【好靶场】有点儿用的图形验证码
网络安全·好靶场
能年玲奈喝榴莲牛奶10 小时前
记一次挖矿病毒应急
网络安全·应急响应
橘子海全栈攻城狮10 小时前
【最新源码】养老院系统管理A013
java·spring boot·后端·web安全·微信小程序
网络安全许木11 小时前
自学渗透测试第30天(第一阶段总结与Metasploitable3部署)
网络安全·渗透测试
王大傻092813 小时前
注入攻击的概念
web安全·网络安全
txg66614 小时前
MDVul:用语义路径重塑漏洞检测的图模型能力
人工智能·安全·网络安全