CTF比赛中,一键将本地运行的EXP反弹到VPS端口
发表于:2023-05-02 |

先看下效果:

本脚本适用于Linux系统和macOS系统,如果你使用Windows系统,建议安装WSL2以使用Linux。

1. 在VPS上安装frps服务端

可以使用 https://github.com/MvsCode/frps-onekey 进行一键安装。

记录安装端口和token,其他配置项默认即可,如果你的VPS想要安装nginx等占用80、443端口的程序记得改掉80和443端口。

image-20230502223442092

注意,你需要在VPS运营商(腾讯云、阿里云)和VPS本机的防火墙(ufw、iptables等)放行frps使用的端口,同时放行你未来反弹端口将会使用的端口。为了未来做题方便,建议直接放行1-65535的所有端口或关闭防火墙。

2. 本地安装frpc客户端

https://github.com/fatedier/frp/releases 下载适合你的系统的最新版frp的安装包(一般人需要下载frp_0.X.0_linux_amd64.tar.gz),

解压后将frpc文件放到/usr/local/bin/下,

并且给予运行权限chmod +x /usr/local/bin/frpc

3. 本地安装一键反弹端口脚本

将以下内容保存到/usr/local/bin/frpi,并且给予运行权限chmod +x /usr/local/bin/frpi

脚本中的变量需要填写:

FRP_SERVER_ADDR对应frps服务器地址(即VPS的IP地址),

FRP_SERVER_PORT对应frps服务器安装端口,

FRP_SERVER_AUTH_TOKEN对应frps服务器的验证秘钥(token),

请根据你的安装情况自行填写。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash -e

FRP_SERVER_ADDR=""
FRP_SERVER_PORT=""
FRP_SERVER_AUTH_TOKEN=""

# frpi: A script to instant forward a local TCP port via FRP
# Author: https://blog.chara.pub/

remote_host_for_display=$FRP_SERVER_ADDR

if [ -z "$1" ] || [ -z "$2" ]
then
echo "Usage: $0 local_ip local_port [remote_port]"
exit 2
fi
if [ -z "$3" ]
then
remote_port=$2
else
remote_port=$3
fi

echo "Publishing $1:$2 to $remote_host_for_display:$remote_port"
echo "Ctrl-C to stop"

more_randomness="$RANDOM"
more_randomness="${more_randomness}${RANDOM}"
session_name="Z_instant_frp_session_${RANDOM}${more_randomness}"
working_dir="/tmp/$session_name/"
mkdir $working_dir
cd $working_dir

cat <<- EOF > ./frpc.ini
[common]
server_addr = $FRP_SERVER_ADDR
server_port = $FRP_SERVER_PORT
auth_token = $FRP_SERVER_AUTH_TOKEN
login_fail_exit = false
auth_timeout = 0
[$session_name]
type = tcp
local_ip = $1
local_port = $2
remote_port = $remote_port
EOF

# make bash not exit on ctrl-c.
trap 'echo Stopped, clearing up.' INT
frpc -c ./frpc.ini
cd ..
rm -rf $working_dir

安装完毕即可使用。

用法:frpi 本地ip地址 本地端口 [VPS对应端口,如果不填写默认和本地端口相同]

image-20230502222721056

下一篇:
在不知道路由器管理密码时嗅探路由器拨号账号密码

由于Valine存在安全问题,我们不会记录您的IP地址。您所填入的内容,和您的User-Agent信息将明文公开存储。