HackTheBox。正斜杠演练。LFI,备份和加密卷



我将继续发布用于最终完成HackTheBox平台上的计算机的解决方案



在本文中,我们列出了站点上的目录和子域,利用LFI,对无法访问的文件进行了备份,还安装了加密卷。



到实验室的连接是通过VPN。建议您不要从工作计算机或有重要数据的主机连接,因为您会发现自己与某个对信息安全有所了解的人处于私有网络中。



组织信息
, , Telegram . , , .



. , - , .



侦察



这台机器的IP地址为10.10.10.183,我将其添加到/ etc / hosts中。



10.10.10.183    forwardslash.htb


首先,我们扫描打开的端口。由于使用nmap扫描所有端口会花费很长时间,因此我将首先使用masscan进行扫描。我们以每秒500个数据包的速度扫描来自tun0接口的所有TCP和UDP端口。

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.183    --rate=500






现在,要获取有关在端口上运行的服务的更多详细信息,请使用-A选项运行扫描。

nmap -A forwardslash.htb -p22,80






该服务器运行SSH服务和Web服务器。我们转到Web服务器,看看他们可以为我们提供什么。







这是通知我们有关主机黑客的方式,其中提到了XML和FTP。让我们用gobuster遍历目录。在参数中,我们指定流128(-t),URL(-u),字典(-w)和我们感兴趣的扩展(-x)的数量。

gobuster dir -t 128 -u http://forwardslash.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,xml,txt






我们找到了note.txt。让我们读。







据报道,有一个黑客入侵了该站点,并且存在备份。让我们搜索子域。将字符数设置为不等于0的过滤器。

wfuzz -H 'HOST:FUZZ.forwardslash.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u forwardslash.htb --hh 0






然后我们转到备份子域。让我们将其添加到/ etc / hosts文件中。

10.10.10.183    backup.forwardslash.htb

让我们也浏览该域的目录。

gobuster dir -t 128 -u http://backup.forwardslash.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,xml,txt






我们去了这个地址。



入口点



授权表格向我们致意。







还有注册的可能性。让我们注册,然后我们将登录。







通过链接,我们找到了用于更改名称,密码的表格,您还可以设置个人资料图片。让我们继续讲下去。







据报道,此功能已被黑客禁用。在这种情况下,输入字段不可用,很可能在HTML中被禁用。







我们从两个元素中都删除了此属性。我在本地计算机上启动了Web服务器,并在字段中指示了指向test.txt文件的链接。







由于没有过滤器,让我们尝试一个LFI向量。为了方便商务,此服务位于Burp Suite中。







还有LFI!



用户



让我们检查一下Apache配置。







但是,如果您尝试读取php文件,则不会以文本形式显示给您。相反,它将被执行。







但是我们可以使用php过滤器,例如base64。这是php文件首先被编码然后在页面上显示的方式。因此,它将不会被执行。

php://filter/convert.base64-encode/resource=../../../../var/www/backup.forwardslash.htb/index.php





选择所需的片段,然后按Ctrl + Shift +B。







我们得到解码的代码。让我们使用此方法读取扫描过程中找到的所有文件。在config.php文件中找到用于连接数据库的密码。







我们也来看看/dev/index.php。在那里,我们找到了用户chiv的身份验证数据。







该用户在系统中,我们从/ etc / passwd学习。让我们尝试这些数据通过SSH连接。







USER2



为了收集系统中的数据,我们使用LinPEAS脚本。我们在备份中发现了一些注意事项。











因此,备份具有带密码的旧配置。它属于痛苦。







因此,备份程序具有一个SUID位。也就是说,我们可以在用户痛苦的情况下执行该程序。







我们可以备份,但只能备份某个随机文件。







通过命名备份程序中显示的配置备份,我们可以建立一个链接。但是我们必须在几秒钟内完成。因此,我们将编写一个脚本。首先,让我们获取文件名。







现在,让我们添加链接创建和重新备份。







让我们从用户的主目录运行并获取文件。







通过输入此密码来更改用户。









让我们看一下在没有密码的情况下执行命令的法庭设置。







因此,我们有一个加密的卷。要解密并挂载它,我们需要一个密码。







我们有一个密文和一个程序。







对于解密,我们使用以下代码。

def decrypt(key, msg):
key = list(key)
	msg = list(msg)
	for char_key in reversed(key):
		for i in reversed(range(len(msg))):
			if i == 0:
				tmp = ord(msg[i]) - (ord(char_key) + ord(msg[-1]))
			else:
				tmp = ord(msg[i]) - (ord(char_key) + ord(msg[i-1]))
			while tmp < 0:
				tmp += 256
			msg[i] = chr(tmp)
	return ''.join(msg)

ciphertext = open('ciphertext', 'r').read().rstrip()
for i in range(1, len(ciphertext)):
	for j in range(256):
		key = chr(j) * i
		text = decrypt(key, ciphertext)
		if ' the ' in text or ' to ' in text:
			print(key)
			print(text)
			exit()


并且我们成功解密了消息。







让我们看看所指示路径上的内容。







让我们解密该卷。







然后我们将其安装。







SSH密钥位于此处。







我们连接并接旗。







您可以通过Telegram加入我们在这里,您可以找到有趣的资料,泄漏的课程和软件。让我们建立一个社区,在这个社区中,将有很多精通IT领域的人,然后我们随时可以在任何IT和信息安全问题上互相帮助。



All Articles