
ペンテスター向けマルチホッププロキシツール。複数ノードを介したトラフィックルーティング、SOCKS5/SSHトンネリング、ポートフォワーディング、リモートシェル、暗号化ノード通信を実現します。

Stowawayは、Go言語で記述され、ペネトレーションテスター向けに作られたマルチレベルプロキシツールです。
ユーザーはこのプログラムを使用して、外部トラフィックを複数のノードを介して内部ネットワークにプロキシし、内部ネットワークアクセスの制限を突破し、ツリー状のノードネットワークを構築し、管理機能を簡単に実現できます。
皆様のスターに感謝します。また、ご使用後に問題やバグをお寄せいただくことを歓迎します 😘
使用前に必ず使用方法と文末の注意事項をよくお読みください。
このプロジェクトは、ネットワークセキュリティの研究と教育目的のみに提供されており、いかなる違法目的にも使用しないでください。このツールを使用してテストを実行する前に、対象システムの明確な許可を得て、お住まいの国/地域の関連法規を厳守してください。 このツールの使用によって生じる直接的または間接的な結果(データ損失、システム障害、法的責任など)は、すべて利用者が負うものとし、プロジェクトの作者は乱用行為またはそれによって生じる法的責任について一切の責任を負いません。 このツールを使用することにより、本免責事項のすべての内容を読み、理解し、同意したものとみなされます。
makeを使用して直接マルチプラットフォームの完全なプログラムをビルドするか、Makefileを参照して特定のプログラムをビルドしますStowawayには2つの役割があります:
admin ペネトレーションテスターが使用するマスター側agent ペネトレーションテスターが展開する被制御側以下のコマンドで、最もシンプルなStowawayインスタンスをすばやく起動できます。
./stowaway_admin -l 9999./stowaway_agent -c <stowaway_adminのIP>:9999パラメータ:
-l パッシブモードでのリッスンアドレス[ip]:<port>
-s ノード通信暗号化キー、すべてのノード(admin&&agent)で同一である必要があります
-c アクティブモードでのターゲットノードアドレス
--socks5-proxy socks5プロキシサーバーアドレス
--socks5-proxyu socks5プロキシサーバーユーザー名(オプション)
--socks5-proxyp socks5プロキシサーバーパスワード(オプション)
--http-proxy HTTPプロキシサーバーアドレス
--down 下流プロトコルタイプ、デフォルトは生のTCPトラフィック、HTTP/WSを選択可能
--tls-enable ノード通信にTLSを有効にします。TLSを有効にするとAES暗号化は無効になります
--domain TLS SNI/WebSocketドメインを指定します。空の場合はデフォルトでターゲットノードアドレスになります
--heartbeat ハートビートパケットを有効にします
パラメータ:
-l パッシブモードでのリッスンアドレス[ip]:<port>
-s ノード通信暗号化キー
-c アクティブモードでのターゲットノードアドレス
--socks5-proxy socks5プロキシサーバーアドレス
--socks5-proxyu socks5プロキシサーバーユーザー名(オプション)
--socks5-proxyp socks5プロキシサーバーパスワード(オプション)
--http-proxy HTTPプロキシサーバーアドレス
--reconnect 再接続間隔
--rehost ポート多重化時のIPアドレス
--report ポート多重化時のポート番号
--up 上流プロトコルタイプ、デフォルトは生のTCPトラフィック、HTTP/WSを選択可能
--down 下流プロトコルタイプ、デフォルトは生のTCPトラフィック、HTTP/WSを選択可能
--cs 実行プラットフォームのシェルエンコードタイプ、デフォルトはutf-8、gbkを選択可能
--tls-enable ノード通信にTLSを有効にします。TLSを有効にするとAES暗号化は無効になります
--domain TLS SNI/WebSocketドメインを指定します。空の場合はデフォルトでターゲットノードアドレスになります
このパラメータはadminとagentで同じ使い方で、パッシブモードのみで使用します。
IPアドレスを指定しない場合、デフォルトで0.0.0.0でリッスンします。
admin: ./stowaway_admin -l 9999 または ./stowaway_admin -l 127.0.0.1:9999
agent: ./stowaway_agent -l 9999 または ./stowaway_agent -l 127.0.0.1:9999
このパラメータはadminとagentで同じ使い方で、アクティブ/パッシブモードの両方で使用できます。
オプションです。空の場合は通信は暗号化されません。指定すると、指定されたキーで通信が暗号化されます。
admin: ./stowaway_admin -l 9999 -s 123
agent: ./stowaway_agent -l 9999 -s 123
このパラメータはadminとagentで同じ使い方で、アクティブモードのみで使用します。
接続先のノードのアドレスを指定します。
admin: ./stowaway_admin -c 127.0.0.1:9999
agent: ./stowaway_agent -c 127.0.0.1:9999
これら4つのパラメータはadminとagentで同じ使い方で、アクティブモードのみで使用します。
--socks5-proxyはsocks5プロキシサーバーアドレス、--socks5-proxyuと--socks5-proxypはオプションです。
--http-proxyはHTTPプロキシサーバーアドレスで、socks5と同じように使用します。
ユーザー名とパスワードなし:
admin: ./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx
agent: ./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx
ユーザー名とパスワードあり:
admin: ./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx
agent: ./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx
これら2つのパラメータはadminとagentで同じ使い方で、アクティブ/パッシブモードの両方で使用できます。
ただし、adminには--upパラメータはありません。
これらのパラメータはオプションです。空の場合、上流/下流トラフィックは生のTCPトラフィックです。
上流/下流トラフィックをHTTP/WSトラフィックにしたい場合は、これらのパラメータをhttpまたはwsに設定します。
admin: ./stowaway_admin -c 127.0.0.1:9999 --down ws
agent: ./stowaway_agent -c 127.0.0.1:9999 --up ws または ./stowaway_agent -c 127.0.0.1:9999 --up ws --down ws
さらに2点注意が必要です。
第一に、あるノードの上流/下流をTCP/HTTP/WSトラフィックに設定した場合、接続されている親/子ノードの下流/上流トラフィックも同じに設定する必要があります。例:
admin: ./stowaway_admin -c 127.0.0.1:9999 --down ws
agent: ./stowaway_agent -l 9999 --up ws
上記の場合、agentは--upをwsに設定する必要があります。そうしないとネットワークエラーが発生します。
agent間でも同様です。
agent-1が127.0.0.1:10000ポートで子ノードの接続を待ち、--down wsを設定しているとします。
その場合、agent-2も--upをwsに設定する必要があります。そうしないとネットワークエラーが発生します。
./stowaway_agent -c 127.0.0.1:10000 --up ws第二に、httpは半二重プロトコルであり、Stowawayの全二重通信にはあまり適していません。そのため、ここでのhttpプロトコルはhttpメッセージ形式のみを実装しており、完全な機能を持つhttpワークフローではありません。したがって、このプロトコルを使用することは可能ですが、Stowaway間のトラフィックがhttpメッセージ形式で転送される場合、nginxを介して転送することはできません。このコードと機能は、一方では特定の状況でのhttpプロトコルの使用のために保持されており、他方ではカスタムプロトコルのテンプレートとしても提供され、ユーザーがカスタムプロトコルを定義する際の参考になります。
nginxなどのリバースプロキシを介して通信する場合は、wsプロトコルを使用し、TLSを併用してください。
このパラメータはagentのみで使用し、アクティブモードのみで使用します。
オプションです。設定しない場合、ノードはネットワーク接続が切断されても能動的に再接続しません。設定すると、ノードはx(設定した秒数)秒ごとに親ノードへの再接続を試みます。
admin: ./stowaway_admin -l 9999
agent: ./stowaway_agent -c 127.0.0.1:9999 --reconnect 10
上記の場合、agentとadmin間の接続が切断されると、agentは10秒ごとにadminへの再接続を試みます。
agent間でも同様です。
また、--reconnectパラメータは--socks5-proxy/--socks5-proxyu/--socks5-proxyp/--http-proxyと一緒に使用でき、agentは起動時の設定に従ってプロキシ経由で再接続を試みます。
これらのパラメータは特にagent側でのみ使用されます。詳細は下記の「ポート多重化メカニズム」を参照してください。
このパラメータはagentのみで使用し、アクティブ/パッシブモードで使用できます。
主に'shell'機能の文字化けを解決するためのものです。agentがコンソールエンコードがgbkのプラットフォーム(一般的なWindowsなど)で動作し、同時にadminがコンソールエンコードがutf-8のプラットフォームで動作する場合、このパラメータを'gbk'に設定する必要があります。
./stowaway_agent -c 127.0.0.1:9999 -s 123 --cs gbkこれらのパラメータはadminとagentで同じ使い方で、アクティブ/パッシブモードで使用できます。
このオプションを設定すると、ノード間のトラフィックをTLSで暗号化できます。
例:
./stowaway_admin -l 10000 --tls-enable -s 123./stowaway_agent -c localhost:10000 --tls-enable -s 123注意:このパラメータを有効にすると、aes暗号化はデフォルトで無効になり、-sパラメータはノード間の相互認証およびポート多重化機能にのみ使用されます。
また、このパラメータを有効にする場合、ネットワーク内のすべてのノード(adminを含む)でこのパラメータを有効にしてください。
これらのパラメータはadminとagentで同じ使い方で、アクティブモードのみで使用できます。
このオプションを設定すると、現在のノードのTLSネゴシエーション時のSNIオプションまたはWebSocketのターゲットHostを設定できます。
例:
./stowaway_admin -l 10000 --tls-enable -s 123./stowaway_agent -c xxx.xxx.xxx.xxx:10000 --tls-enable -s 123 --domain xxx.comこのパラメータはadmin側のみで使用し、アクティブ/パッシブモードで使用できます。
このオプションを設定すると、adminが最初のノードに継続的にハートビートパケットを送信し、途中にリバースプロキシがある場合でも長期間の接続を維持できます。
adminとagentの間にnginxのようなリバースプロキシデバイスがあり、8080ポートを8000ポートにプロキシしていると仮定します。例:
./stowaway_admin -l 8000 --tls-enable -s 123 --down ws --heartbeat./stowaway_agent -c xxx.xxx.xxx.xxx:8080 --tls-enable -s 123 --domain xxx.com --up ws現在のStowawayは、SO_REUSEPORTとSO_REUSEADDRの機能に基づくポート多重化機能と、IPTABLESに基づくポート多重化機能を提供しています。
SO_REUSEPORTおよびSO_REUSEADDRモード
agent側がポート多重化メカニズムを使用して80ポートを多重化すると仮定します。
この場合、agent側は--rehost、--report、-sパラメータを設定する必要があります。
--rehost: 多重化したいIPアドレス。0.0.0.0は不可で、通常はネットワークカードの外部アドレスです。
--report: 多重化したいポート。
-s: 通信キー。
主にWindows、Mac環境での多重化をサポート。Linuxでも可能ですが、制限が多いです。
./stowaway_admin -c 192.168.0.105:80 -s 123./stowaway_agent --report 80 --rehost 192.168.0.105 -s 123IPTABLESモード
agent側がポート多重化メカニズムを使用して22ポートを多重化すると仮定します。
この場合、agent側は-l、--report、-sパラメータを設定する必要があります。
-l: 通常アクセスできないポート、つまりagentが実際にリッスンして接続を受け付けるポート。
上記の例はadminとagent間の接続のみを示していますが、agentとagent間の接続も同様で違いはありません。
agentがctrl-cまたはkillコマンドで強制終了された場合、プログラムは自動的にiptablesルールをクリーンアップします。ただし、kill -9で強制終了された場合は自動的にクリーンアップできません。
そのため、agentが異常終了した際にiptablesルールがクリーンアップされず、多重化されたサービスにアクセスできなくなるのを防ぐため、
クローズが必要な場合は、以下を実行します:python reuse.py --stop --rhost xxx.xxx.xxx.xxx --rport xxx
これにより転送ルールが無効になり、元のサービスに正常にアクセスできるようになります。
IPTABLESモードのポート多重化を使用する場合、強制的に0.0.0.0でリッスンすることになり、-lパラメータでIPを指定することはできません。
上記の例では、adminと1つのagentのみが登場しています。
マルチレベルネットワークが核心です。
Stowawayでマルチレベルネットワークを構成するには、adminのlisten、connect、sshtunnelコマンドを使用する必要があります。
簡単な例を示します。
./stowaway_admin -l 9999 -s 123この時点でagent-1がadminに接続しています。
./stowaway_agent -c 127.0.0.1:9999 -s 123ここでさらにagent-2を接続したい場合、以下のようにします。
./stowaway_agent -l 10000 -s 123すると、adminでuse 0 -> connect agent-2のIP:10000と入力することで、agent-2をネットワークに追加し、agent-1の子ノードにできます。
さらにagent-3を接続したいが、agent-1からはagent-3にアクセスできないと仮定します。
その場合、adminでuse 0 -> listen -> 1.Normal Passiveを選択 -> 10001と入力することで、agent-1が10001ポートでリッスンし、子ノードの接続を待つようになります。
adminの操作が完了したら、agent-3を以下のように起動します。
./stowaway_agent -c 127.0.0.1:10001 -s 123これでagent-3をagent-1のもう一つの子ノードとしてネットワークに追加できます。
listenおよびsshtunnelの詳細については、下記の「コマンド解説」を参照してください。
Stowawayは現在、複数の方法での再接続をサポートしています。簡単にまとめると以下の通りです。
まず、親ノードが切断された場合、能動的に終了するノードは1種類のみです。それは、起動時にアクティブモードで再接続が設定されていないノードです。
再接続が設定されている場合、ノードは指定された間隔で再接続を試みます。
また、パッシブモードで起動したすべてのノードは能動的に終了せず、起動時のパラメータに基づいて指定されたポートで再リッスンします。この場合、ユーザーはconnect、sshtunnelを使用してこれらのノードをネットワークに再接続できます。
ネットワークの変動や中間ノードの切断により、特定のブランチが切断された場合、能動的な再接続時には必ず欠落したチェーンの先頭ノードに接続してください。例:adminの後にnode1があり、node1から2つのブランチに分かれています。1つはnode1->node2->node3->node4、もう1つはnode1->node5->node6です。node2が切断された場合、node3とnode4は切断されず、生き続けます。この場合、ユーザーがnode3とnode4をネットワークに再接続するには、2つの選択肢があります。1つは、node1がnode3に直接アクセスできる場合、node1でconnectまたはsshtunnelコマンドを使用してnode3をいつでもネットワークに再追加できます(注意:node1が同時にnode4にもアクセスできる場合でも、node4に直接接続せず、欠落したチェーン全体(node3->node4)の先頭ノードであるnode3に接続してください)。これにより、node3とnode4をネットワークに再接続できます。もう1つの選択肢は、node1がnode3に直接アクセスできない場合(つまりnode2を経由する必要がある場合)、まずnode2を再起動してネットワークに追加し、その後node2でconnectまたはsshtunnelコマンドを使用してnode3に接続し、node3とnode4をネットワークに追加します。
ノードが切断された場合、そのノードとその子ノードに関するすべてのsocks、backward、forwardサービスが強制的に停止されます。
adminコンソールでは、Tabキーでコマンドを補完し、方向キーで履歴の検索/カーソル移動ができます。
adminコンソールは2つの階層に分かれています。最初の階層はメインパネルで、以下のコマンドがあります。
help: メインパネルのヘルプ情報を表示(admin) >> help
help Show help information
detail Display connected nodes' detail
topo Display nodes' topology
use <id> Select the target node you want to use
exit Exit Stowaway
detail: オンラインノードの詳細情報を表示(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000 Hostname: ph4ntoms-MBP.lan User: ph4ntom
Memo:
topo: オンラインノードの親子関係を表示(admin) >> topo
Node[0]'s children ->
Node[1]
Node[1]'s children ->
use: 特定のagentを使用(admin) >> use 0
(node 0) >>
exit: Stowawayを終了(admin) >> exit
[*] Do you really want to exit stowaway?(y/n): y
[*] BYE!
ユーザーがuseコマンドでagentを選択すると、第2階層のノードパネルに入ります。以下のコマンドがあります。
help: ノードパネルのヘルプ情報を表示(node 0) >> help
help Show help information
status Show node status,including socks/forward/backward
listen Start port listening on current node
addmemo <string> Add memo for current node
delmemo Delete memo of current node
ssh <ip:port> Start SSH through current node
shell Start an interactive shell on current node
socks <lport> [username] [pass] Start a socks5 server
stopsocks Shut down socks services
connect <ip:port> Connect to a new node
sshtunnel <ip:sshport> <agent port> Use sshtunnel to add the node into our topology
upload <local filename> <remote filename> Upload file to current node
download <remote filename> <local filename> Download file from current node
forward <lport> <ip:port> Forward local port to specific remote ip:port
stopforward Shut down forward services
backward <rport> <lport> Backward remote port(agent) to local port(admin)
stopbackward Shut down backward services
shutdown Terminate current node
back Back to parent panel
exit Exit Stowaway
status: 現在のノードのsocks/forward/backward状態を表示(node 0) >> status
Socks status:
ListenAddr: 0.0.0.0:10000 Username: Password:
-------------------------------------------------------------------------------------------
Forward status:
[1] Listening Addr: [::]:20000 , Remote Addr: 192.168.1.1:22 , Active Connections: 0
[2] Listening Addr: [::]:30000 , Remote Addr: 192.168.1.1:22 , Active Connections: 0
-------------------------------------------------------------------------------------------
Backward status:
[1] Remote Port: 40000 , Local Port: 50000 , Active Connections: 0
listen: agentに特定のポートでリッスンさせ、子ノードの接続を待つよう指示(node 0) >> listen
[*] MENTION! If you choose IPTables Reuse or SOReuse, you MUST CONFIRM that the node was initially started in the corresponding way!
[*] When you choose IPTables Reuse or SOReuse, the node will use the initial config(when node started) to reuse port!
[*] Please choose the mode(1.Normal passive / 2.IPTables Reuse / 3.SOReuse): 1
[*] Please input the [ip:]<port> : 10001
[*] Waiting for response......
[*] Node is listening on 10001
注意:listenはかなり特殊なコマンドです。ご覧の通り、listenコマンドには3つのモードがあります。
Normal passive: このオプションは、agentが通常の方法でターゲットポートでリッスンし、子ノードの接続を待つことを意味します。IPTables Reuse:このオプションは、agentがIPTables Reuseの方法でポートを多重化し、子ノードの接続を待つことを意味します。SOReuse:このオプションは、agentがSOReuseの方法でポートを多重化し、子ノードの接続を待つことを意味します。最初のモードが最も一般的に使用されます。親ノードがこの方法でリッスンする場合、子ノードは-c 親ノードのip:portとするだけでネットワークに参加できます。
2番目と3番目のモードは特殊です。ユーザーが2番目または3番目のモードを選択する場合、操作中のノード自体がポート多重化方式で起動していることを確認する必要があります。そうでない場合、これらのモードは使用できません。
2番目と3番目のモードでは、ユーザーは何も入力する必要はありません。ノードは自動的に自身の起動時パラメータを使用してポートを多重化し、子ノードの接続を受け付ける準備をします。
また、listenは一度に1つの子ノードのみを受け入れます。複数の子ノードを接続する必要がある場合は、対応する回数だけlistenコマンドを実行してください。
addmemo: 現在のノードにメモを追加(node 0) >> addmemo test
[*] Memo added!
(node 0) >> exit
(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000 Hostname: ph4ntoms-MBP.lan User: ph4ntom
Memo: test
delmemo: 現在のノードのメモを削除(node 0) >> delmemo
[*] Memo deleted!
(node 0) >> exit
(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000 Hostname: ph4ntoms-MBP.lan User: ph4ntom
Memo:
ssh: ノードにSSHでターゲットマシンに接続するよう指示(node 0) >> ssh 127.0.0.1:22
[*] Please choose the auth method(1.username&&password / 2.certificate): 1
[*] Please enter the username: ph4ntom
[*] Please enter the password: *****
[*] Waiting for response.....
[*] Connect to target host via ssh successfully!
# ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:03:56]
$ whoami
ph4ntom
# ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:04:16]
$
このモードでは、Tabキーは無効になります。
shell: 現在のノードのシェルを取得(node 0) >> shell
[*] Waiting for response.....
[*] Shell is started successfully!
bash: no job control in this shell
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
bash-3.2$ whoami
ph4ntom
bash-3.2$
このモードでは、Tabキーは無効になります。
socks:現在のノードでsocks5サービスを起動(node 0) >> socks 7777
[*] Trying to listen on 0.0.0.0:7777......
[*] Waiting for response......
[*] Socks start successfully!
(node 0) >>
注意:ここでの7777ポートはagent側ではなく、admin側で開かれます。
ユーザー名とパスワードを設定する必要がある場合は、上記のコマンドをsocks 7777 <your username> <your password>に変更してください。
リッスンするインターフェースを指定する必要がある場合は、上記のコマンドをsocks xxx.xxx.xxx.xxx:7777に変更してください。
stopsocks: 現在のノードのsocks5サービスを停止(node 0) >> stopsocks
Socks Info ---> ListenAddr: 0.0.0.0:7777 Username: <null> Password: <null>
[*] Do you really want to shut down socks?(yes/no): yes
[*] Closing......
[*] Socks service has been closed successfully!
(node 0) >>
connect: 現在のノードに別の子ノードへ接続するよう指示agent-1: ./stowaway_agent -l 10002
(node 0) >> connect 127.0.0.1:10002
[*] Waiting for response......
[*] New node online! Node id is 1
(node 0) >>
sshtunnel: 現在のノードにSSHトンネル経由で別の子ノードに接続するよう指示agent-2: ./stowaway_agent -l 10003
(node 0) >> sshtunnel 127.0.0.1:22 10003
[*] Please choose the auth method(1.username&&password / 2.certificate): 1
[*] Please enter the username: ph4ntom
[*] Please enter the password: ******
[*] Waiting for response.....
[*] New node online! Node id is 2
(node 0) >>
厳しいネットワーク環境下では、SSHトンネルを使用してStowawayのトラフィックをSSHトラフィックに偽装し、ファイアウォールの制限を回避できます。
upload: 現在のノードにファイルをアップロード(node 0) >> upload test.7z test.xxx
[*] File transmitting, please wait...
136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s
download: 現在のノードからファイルをダウンロード(node 0) >> download test.xxx test.xxxx
[*] File transmitting, please wait...
136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s
forward: admin上のポートをリモートポートにマッピング(node 0) >> forward 9000 127.0.0.1:22
[*] Trying to listen on 0.0.0.0:9000......
[*] Waiting for response......
[*] Forward start successfully!
(node 0) >>
$ ssh 127.0.0.1 -p 9000
Password:
# ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:19:51]
$
stopforward: 現在のノードのリモートマッピングを閉じる(node 0) >> stopforward
[0] All
[1] Listening Addr : [::]:9000 , Remote Addr : 127.0.0.1:22 , Active Connections : 1
[*] Do you really want to shut down forward?(yes/no): yes
[*] Please choose one to close: 1
[*] Closing......
[*] Forward service has been closed successfully!
backward: 現在のagent上のポートをadminのローカルポートに逆マッピング(node 0) >> backward 9001 22
[*] Trying to ask node to listen on 0.0.0.0:9001......
[*] Waiting for response......
[*] Backward start successfully!
(node 0) >>
$ ssh 127.0.0.1 -p 9001
Password:
# ph4ntom @ ph4ntoms-MBP in ~ 🌈 [17:22:14]
$
stopbackward: 現在のノードの逆マッピングを閉じる(node 0) >> stopbackward
[0] All
[1] Remote Port : 9001 , Local Port : 22 , Active Connections : 1
[*] Do you really want to shut down backward?(yes/no): yes
[*] Please choose one to close: 1
[*] Closing......
[*] Backward service has been closed successfully!
shutdown: 現在のノードをオフラインにする(node 1) >> shutdown
(node 1) >>
[*] Node 1 is offline!
back: メインパネルに戻る(node 1) >> back
(admin) >>
exit: Stowawayを終了(node 1) >> exit
[*] Do you really want to exit stowaway?(y/n): y
[*] BYE!
ansicon.exe -iを実行してください。そうしないと、admin側で文字化けが発生します。UDP ASSOCIATEのみをサポートしています。socks5 UDPプロキシを使用する場合は、使用するプログラム(スキャナなど)が標準のRFC1928に従ったパケット構造であることを確認し、パケットロスを自分で処理する必要があります。
Stowaway は 404星链计划 に参加しました。
Stowaway開発における以下の先輩方とプロジェクトに感謝します。
--report: 多重化したいポート。
-s: 通信キー。
Linux環境のみでの多重化をサポート。agentが自動的にIPTABLESを変更します。root権限が必要です。
agent側: ./stowaway_agent --report 22 -l 10000 -s 123
agent起動後、scriptディレクトリのreuse.pyを使用してください。
まずSECRETの値を設定します(SECRETの値は各ノード起動時に設定した通信キーです)。
その後、以下を実行します:python reuse.py --start --rhost xxx.xxx.xxx.xxx --rport xxx
--rhost: agentのアドレス
--rport: 多重化されるポート。この例では22です。
これでadmin側が接続できます:./stowaway_admin -c 192.168.0.105:22 -s 123