目录
0x01 概述
前面文章已经讲过用ew等工具创建SOCKS代理隧道,这次用另外一种方式,使用大家熟悉的Metasploit创建SOCKS代理隧道。
0x02 SOCKS代理的概念以及工作流程
Socks是基于IP:Port套接字进行底层的数据传输,支持多种HTTP、FTP、ICMP等上层协议。
0x03 工具介绍
1. MetasploitMetasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。本篇文章使用的是kali自带的MSF,也可自行下载使用Windows版的MSF。下载链接:https://windows.metasploit.com/
1.1 msf的根目录以及脚本存放位置:/usr/share/metasploit-framework/
1.2 工具常用命令如下:
使用msfconsole启动命令行。
show exploit:显示所有的攻击模块(auxiliary:辅助模块、payloads:攻击荷载 options:显示需要设置的参数)。
search <关键词> :检索所需要的模块。
search <关键词> type:exploit:检索所需要的攻击模块(其余模块同理)。
use <模块名称> 使用该模块(攻击模块或辅助模块)。
options:显示需要配置的参数。
set和unset payload<载荷名称>使用(取消)该攻击载荷。
exploit或者run实施攻击。
2. ProxychainsProxyChains是Linux下的代理工具,kali默认已经安装,配置后可直接调用,它可以使任何程序通过代理上网,允许TCP和DNS通过代理隧道,支持HTTP、SOCKS4和SOCKS5类型的代理服务器,并且可配置多个代理。
3. MsfvenomMsfvenom的前身是Msfencoder和Msfpayload,在kali2.0的环境下,Msfencoder和Msfpayload被整合进了Msfvenom里,常用于生成木马,在本地Metasploit中上线。
3.1 工具常用参数:
-p:指定需要使用的攻击载荷
-e:指定编码方法
-a:指定要使用的payload框架,如x86等
-i:指定编码次数
-f:指定输出格式
-o:指定创建好的payload存放位置
3.2 用法示例:
生成基于linux 64位的tcp的正向连接shell,监听端口为4444,输出可执行的elf文件。
4. HydraHydra是一款非常专业的密码爆破工具,它一般工作在Linux环境下面,不过在Windows版本也有,这款密码爆破工具的功能可谓是非常强大,支持的协议非常之多,比如常见的rdp、ssh、FTP、smb等。
4.1 工具常用参数:
-s:指定非默认的端口
-v/-V:显示详细过程
-L/-l:指定用户名字典/指定特定用户名爆破
-P/-p:指定密码字典/指定密码破解
-o:指定结果输出文件
-t:设置爆破线程,默认为16秒
-w:设置超时时间
-F:一旦成功就停止枚举
-C:使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数
-M:指定目标列表文件一行一条。
-R:继续从上一进度继续爆破
4.2 用法示例:
爆破ip为192.168.111.138的ssh服务,指定用户名字典为User.txt,密码字典为Pass.txt,线程数为20,一旦爆破成功马上停止。
0x04 环境搭建
本次环境共有九台虚拟机,分别为攻击机Kali,百香果沙盘设备:R1、R2、R3、FW3、FW5和DMZ区的win_server_2003,以及服务器区的Ubuntu和windows7 组成。
1. 拓扑如下:2. 地址分配:攻击机:
kali:66.28.6.100
DMZ区:
Win_server_2003:10.10.13.100
总部服务器区:
Ubuntu:10.10.16.100
Windows7:10.10.16.134
3. 配置如下:3.1 FW3的配置如下将Win_server_2003的80端口映射到FW3上面,配置ACL规则和NAT,使得Win_server_2003可以访问攻击机kali和Ubuntu,不能访问Windows7。
3.2 Kali配置如下
打开虚拟网络设置,将网络适配器改成VMnet6。
打开/etc/network/interfaces/设置静态IP,保存并重启网络服务。
3.3 Win_server_2003配置如下
打开虚拟网络设置,将网络适配器改成VMnet13。
3.4 Ubuntu配置如下
打开虚拟网络设置,将网络适配器改成VMnet16。
编辑/etc/network/interfaces,设置静态IP,保存并重启网络服务。
3.5 Windows7配置如下
打开虚拟网络设置,将网络适配器改成VMnet16。
0x05 场景任务
某次斗哥接到领导任务,要求拿下某集团总部内网核心web应用系统(据悉该应用PHPSHE商城管理后台属于集团内部应用不出网,即仅在该集团内网使用),因此首要任务就是要拿到进入内网的“门票”,通过对集团互联网上开放的web资产进行渗透,最终拿下某DMZ区的一台web服务器的webshell,如何拿下webshell这里不再赘述,斗哥今天在主要讲述的是在以拿到内网“门票”(webshell)的基础上,如何找到内网核心应用,在不出网的情况下利用msf搭建socks隧道,从而达到对核心应用(PHPSHE商城管理后台)的进行漏洞挖掘的目的。
0x06 DMZ区的过程
1. kali生成exe木马,用webshell上传(要找可读可写目录上传),然后开启监听。
上传生成的木马。
Msf开启监听。
2. Webshell执行脚本,就会发现,kali已经收到了Meterpreter会话通道。
3. Kali加载mimikatz抓取密码,msf默认加载32位mimikatz,如果小伙伴的目标机器是64位的话,则需要用ps查看一下进程,然后使用migrate <pid值>迁移到64位进程,不然会导致很多功能无法使用。
若这时想要登录远程桌面搞事怎么办?以下介绍两种方法,其余不过多赘述
3.1 第一种方法:开放3389端口之后,将目标3389端口转发到本地端口。
3.1.1 连接远程桌面,命令为 rdesktop 127.0.0.1:6666。
3.2 第二种方法:开通socks隧道
3.2.1 配置路由,这边配置的路由是去往目标网段的路由。
如果只是要登录10.10.13.100的机器则不需要添加此条路由,这边添加该条路由只是为了后续需要扫描10.10.16.0/24这个网段而添加的。
3.2.2 使用run autoroute -p 来查看路由是否配置成功。
3.2.3 路由配置好之后,将Meterpreter会话挂起到后台,选择socks代理模块,这边使用的是socks5,也可以自行选择socks4a模块。
3.2.4 开启socks5服务后,需要配置proxychains.conf。
去掉dynamic_chain注释,该配置项能够通过ProxyList中的每个代理运行流量,如果其中一个代理关闭或者没有响应,它能够自动选择ProxyList中的下一个代理。
在[ProxyList]下面添加代理IP和端口。
3.2.5 连接远程桌面服务。
0x07 服务器区的过程
1. 扫描存活主机以及开放的端口,这边使用的是goby,也可以用msf自带模块进行扫描。
2. 发现一台16.100主机存活,且开放22端口,使用hydra进行爆破ssh服务。
3. 成功爆破出ssh服务的账号密码。
4. 使用msfvenom生成正向连接的shell,因为内网跨网段时目标机器无法连接到攻击者的机器,所以选择 bind_tcp,无需设置LHOST。
5. 利用scp将本地生成的elf马拷贝到ssh服务器上面。
6. 登录ssh服务器。
7. 执行elf马。
8. 使用代理的方式启动msf,然后开启监听,正向连接跟反向连接不同,需要先执行木马在开启监听。
9. 开通socks代理隧道。
10. 修改proxychains配置文件,加上二层socks5代理。
11. 再次扫描16网段,发现存活16.134主机,可见16.134限制比16.100来的多。
12. 由于已经有了服务器的账号密码,所以直接远程登录目标机器。
13. 配置Kali的浏览器代理。
14. 访问目标应用系统web服务。
到这边就已经结束了,可以开始对领导要求的内网核心系统的web应用系统进行渗透任务。
总结
本期基于Metasploit创建SOCKS代理隧道就到这里结束啦,下期斗哥将给继续该大家带来隐蔽通信隧道相关的内容,敬请期待~
圣诞节快乐- MERRY CHRISTMAS -从洁白的雪花上复制快乐