前面几期的文章中说过,如何利用花生壳等工具搭建内网映射。实现外网访问我们的内网,但是由于花生壳等软件不稳定而且慢最重要的是还有点小贵。由于笔者运维着几天服务器,就想着利用frp搭建内网穿透。
frp

原理

原理

前期准备

  • vps服务器(必须)
  • 路由器(可选)
  • 树莓派(可选)

    下载安装服务端- frps

    首先到 frp 的 releases 页面下载最新版的对应 VPS 的处理器架构的压缩包
    https://github.com/fatedier/frp/releases
    如何知道 VPS 的处理器架构?在 VPS 上运行这个命令:

    arch

    如果输出x86_64则需要下载带linux_amd64的那个压缩包;
    如果输出的是其他的,则在文件列表中找 linux 的对应架构的压缩包

    以x86_64架构举例
    如果下载比较慢可以到https://file.kskxs.com/?dir=frp/frp-v0.32.1这里去下载
    下载后,上传到服务器并解压,或者利用下面方式解决。

cd /root
#下载
wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
#解压
tar -xzvf frp_0.33.0_linux_amd64.tar.gz
#文件夹名改成 frp,不然目录太长了不方便
mv frp_0.18.0_linux_amd64 frp
cd frp
#确保 frps 程序具有可执行权限
chmod +x frps

测试./frps --help

配置服务器端程序

参考以下配置文件frps.ini

#下面这句开头必须要有,表示配置的开始
[common]
#frp 服务端端口(必须)
bind_port = 7000
#frp 服务端密码(必须)
token = 12345678
#认证超时时间,由于时间戳会被用于加密认证,防止报文劫持后被他人利用
#因此服务端与客户端所在机器的时间差不能超过这个时间(秒)
#默认为900秒,即15分钟,如果设置成0就不会对报文时间戳进行超时验证
authentication_timeout = 900
#仪表盘端口,只有设置了才能使用仪表盘(即后台)
dashboard_port = 7500
#仪表盘访问的用户名密码,如果不设置,则默认都是 admin
dashboard_user = admin
dashboard_pwd = admin
#如果你想要用 frp 穿透访问内网中的网站(例如路由器设置页面)
#则必须要设置以下两个监听端口,不设置则不会开启这项功能
vhost_http_port = 10080
vhost_https_port = 10443
#此设置需要配合客户端设置,仅在穿透到内网中的 http 或 https 时有用(可选)
#假设此项设置为 example.com,客户端配置 http 时将 subdomain 设置为 test,
#则你将 test.example.com 解析到服务端后,可以使用此域名来访问客户端对应的 http
subdomain_host = example.com

到处,我们服务器端就配置完成了。

启动frp

./frps -c frps.ini
#后台运行
nohup /root/frp/frps -c /root/frp/frps.ini &
#结束
pkill frps

客户端 - frpc

下载Windows客户端,打开frpc.ini开始配置

配置ssh

这里我们开始映射路由器的22端口
配置如下:

[common]
server_addr = xxx.xxx.xxx.xxx #公网服务器IP
server_port = 7000  #(和frps一致)
token = 12345678  #(和frps一致)

[ssh]
type = tcp
local_ip = 192.168.123.1 #内网IP
local_port = 22 #内网端口
use_encryption = false
use_compression = false
remote_port = 6000 #自定义转发端口

配置完成后,切换到cmd命令
执行frpc.exe命令

这时,我们可以利用 xxx.xxx.xxx.xxx:6000(xxx为公网IP)登录到我们的ssh服务器了。

配置http

[router-web]
type = http
local_ip = 192.168.123.1
local_port = 80
remote_port = 10080
custom_domains = xxx.xxx.xxx.xxx

如上,我们可以利用公网IP:10080访问路由器的登录界面

需要注意的是,凡是上述的端口都需要在防火墙中开启。

配置路由器

上述的方法,需要我们的pc(即客户端一直在线),但是现实中有点不允许,因为你的电脑不可能长时间开着,所以我们可以配置我们的路由器。

老毛子固件配置方案

登录路由器,在frp选项中开启并配置参数即可。

并在外部网络——端口转发添加规则即可

这样,我们便不需要长期开着电脑,从而可以实现端口转发。当然本文是将所有的功能转发到路由器上,当然你可以转发到局域网内的任意一台设备上。

生成msf外网shell

因为我在路由器中直接配好了端口转发,所以无需在kali中配置端口转发,直接生成外网木马。成功得到shell

需要注意的是,在生成shell时填写的是外网的IP和端口,本地配置msf时填写的内网的IP

最后修改:2023 年 08 月 04 日
如果觉得我的文章对你有用,请随意赞赏