Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4Mobile wallpaper 5
1080 字
5 分钟
vulnhub靶机-LupinOne(深度ffuf模糊匹配+私钥解密+pip提权)

vulnhub靶机-LupinOne(深度ffuf模糊匹配+私钥解密+库劫持+pip提权)#

声明#

  1. 本文为个人跟随b站up主红队笔记学习vulnhub的LupinOne靶机的复现通关记录,旨在分享靶机和记录学习心得体会,讲解若有谬误之处欢迎指正。
  2. 该靶机下载地址为’https://www.vulnhub.com/entry/empire-lupinone,750/‘

渗透流程#

  1. 在vmware部署靶机并开机后,打开kali对靶机进行信息收集,使用nmap执行nmap -sn 192.168.130.0/24(请替换成你的网段)进行主机发现,发现图中的192.168.130.137为靶机。(192.168.130.128为我的kali虚拟机的地址)并进行端口发现,执行nmap --min-rate 10000 -p- 192.168.130.137,开放22,80端口。 scan&ports
  2. 进行详细端口扫描,收集更多信息。 details
  3. 对于robots.txt进行搜集看看也没有敏感路径。 rb
  4. 无法访问这个路径,给出ERROR404错误。 404
  5. gobuster爆破没有结果,但是根据之前/myfiles这样的命名,我们有理由用FUZZ进行尝试,按照如图指令,指定字典进行爆破,发现一个/~secret,提示用户icex64在这里创建的秘密目录,里面可能有ssh私钥。 fuff
  6. ffuf -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.130.137/.FUZZ -t 64 -fs 280 -e .txt,.php,.html,.key爆破无果,想起可能在~secret目录下,重新修改ffuf -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.130.137/~secret/.FUZZ -t 64 -fs 280 -e .txt,.php,.html,.key,这次发现了.mysecret.txt。 mysecret
  7. 在大段字符中未见’=’、‘O’的字样,特征更像base58编码,经过解密发现是私钥内容,保存为id_rsa(一定注意格式),并且chmod 600 id_rsa,尝试ssh连接未果,应该是私钥存在加密,然后用ssh2john将私钥元数据提取供后续破解。 ssh2john
  8. 用john指定字典提取(这里根据前面/~secret内容提示选用了字典fasttrack.txt),破解出来密码P@55w0rd!john
  9. 使用私钥文件,以及破解出来的值连接,获得初始立足点。 shell

提权过程#

  1. 进行初步环境探测,sudo -l特权,可以以arsene身份免密执行/usr/bin/python3.9 /home/arsene/heist.py,这里有个import webbrowser,可以尝试能不能劫持该库。 sudol
  2. 很好,这个库我们可以进行修改。 py
  3. 通过echo写入这句,尝试新开一个shell。 ossystem
  4. 按照sudo -l给出的格式执行,我们拿到了arsene的shell。 shell
  5. 该用户有pip的sudo权限。 pip
  6. 在.secret找到一个密码,应该是arsene用户的ssh密码。 kw
  7. 去GTFOBINS搜索pip提权利用方式,详细可看图中介绍。 shell
  8. 稍作修改,将两句分别执行,拿到了root的权限。 rooted

其它补充与收获总结#

  1. 在破解ssh密钥加密时,这次使用了John the Ripper中的ssh2john将密钥转化为可供john破解的内容,那么ssh2john做了什么?
  • 对于新格式私钥中,算法的相关参数和校验数据不再以明文形式写在文件头部,而是被封装进了一个结构化的二进制数据包中。在过程中,ssh2john没有进行任何破解,只是解析这些数据,提取出校验用的信息和密文,连同KDF参数一起打包形成John可以攻击的哈希串。
  1. ssh是如何加密的 当你用密码保护一个SSH私钥时,OpenSSL会执行以下步骤:
  • 派生密钥:使用你设置的密码aaa,结合一个随机生成的盐,通过一个密钥派生函数,该函数内部使用MD5进行多次哈希迭代,(这里说的MD5是旧的PEM格式,而如本靶机新OpenSSH格式使用更安全的bcrypt或PKCS#5等)生成了一个真正的加密密钥。
  • 加密私钥:使用上一步生成的密钥,通过对称加密算法将你的私钥明文加密成密文。
  • 存储校验和:为了在用户输入密码时能快速判断密码是否正确(因此不必解密整个文件),SSH私钥文件中会存储一段校验数据。
  1. 在GTFOBins上,pip提权还有其它payload如:
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh')" > $TF/setup.py
sudo pip install $TF
  • 本靶机利用的pip提权方式旨在构造一个自定义包(包含新建shell的指令),在pip install时则会执行setup.py中的代码,且以调用者权限执行(这里是root)。
vulnhub靶机-LupinOne(深度ffuf模糊匹配+私钥解密+pip提权)
http://124.70.202.140/posts/post-25/25/
作者
Ne+N3k_O
发布于
2026-04-15
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时