一起学习Metasploit的SOCKS代理吗_

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. Proxychains

ProxyChains是Linux下的代理工具,kali默认已经安装,配置后可直接调用,它可以使任何程序通过代理上网,允许TCP和DNS通过代理隧道,支持HTTP、SOCKS4和SOCKS5类型的代理服务器,并且可配置多个代理。

3. Msfvenom

Msfvenom的前身是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. Hydra

Hydra是一款非常专业的密码爆破工具,它一般工作在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 -从洁白的雪花上复制快乐