ばぁどです。
AWSのEC2上に構築した、T-PotのCwrieでキャプチャしたマルウェアをローカルに持ってくるのが凄い苦労しました。
今回は、その苦労話です苦笑
観察日記というよりは、トラブルシューティングです。
最終的なscpコマンド
色々と試行錯誤をしまして下記のscp
コマンドにたどり着きました。
今回は、i
オプションと、P
オプションを使用しました。
オプション | 説明 |
---|---|
i | 接続に使用する公開鍵ファイルを指定 |
P | 接続先のポート番号を指定 |
scp -i "pemのあるURL" -P [port番号] [user名]@[ドメイン]:[サーバー内のURL] [ローカルのURL]
ハマりポイント1. ポート番号を指定していなかった
初期はポート番号を指定せずにコマンドを打っていました。
結果はPermission denied
です。
Permission denied (password,publickey,keyboard-interactive).
まずはここの調査になります。
ここで気になったところは、私が構築しているハニーポットにssh
する時にポート番号を指定しているということ。
ssh
時にポート番号を指定している理由は、 セキュリティ上ssh
する時のポート番号を変更していたためです。
scp
で利用するポート番号を調べたところ、指定しない場合はssh のデフォルトである22
を利用するということだったので、ここはポート番号を指定することで難なく突破。
なんとなくここはエラー見たときに察しはついたんだよなー。
ハマりポイント2. フォルダ・ファイルへのアクセス権限がなかった
次になんとなくscp
できるようにはなったので、Cowire
で取得したマルウェアをローカルに持ってきます。
T-pot上では、Cowire で取得したマルウェアは下記ファイルパスに格納されます。
/data/cowrie
[[ユーザー名]@consciousdesert:/data/cowrie]# ls -la total 11072 drwxrw---- 6 tpot tpot 4096 Oct 29 03:28 . drwxrw---- 18 tpot tpot 4096 Sep 22 19:41 .. drwxrw---- 2 tpot tpot 4096 Oct 29 03:28 downloads -rwxrw---- 1 tpot tpot 0 Oct 28 16:28 downloads.tgz -rwxrw---- 1 tpot tpot 285266 Oct 17 03:28 downloads.tgz.10.gz -rwxrw---- 1 tpot tpot 286941 Oct 16 03:28 downloads.tgz.11.gz -rwxrw---- 1 tpot tpot 285412 Oct 15 03:28 downloads.tgz.12.gz -rwxrw---- 1 tpot tpot 285431 Oct 14 16:28 downloads.tgz.13.gz -rwxrw---- 1 tpot tpot 285271 Oct 14 03:28 downloads.tgz.14.gz -rwxrw---- 1 tpot tpot 285497 Oct 12 03:28 downloads.tgz.15.gz -rwxrw---- 1 tpot tpot 2330 Oct 28 16:28 downloads.tgz.1.gz -rwxrw---- 1 tpot tpot 285492 Oct 27 03:28 downloads.tgz.2.gz -rwxrw---- 1 tpot tpot 285294 Oct 26 03:28 downloads.tgz.3.gz -rwxrw---- 1 tpot tpot 570910 Oct 25 03:28 downloads.tgz.4.gz -rwxrw---- 1 tpot tpot 287426 Oct 24 03:28 downloads.tgz.5.gz -rwxrw---- 1 tpot tpot 285475 Oct 21 16:28 downloads.tgz.6.gz -rwxrw---- 1 tpot tpot 1572707 Oct 21 03:28 downloads.tgz.7.gz -rwxrw---- 1 tpot tpot 5713692 Oct 20 03:28 downloads.tgz.8.gz -rwxrw---- 1 tpot tpot 572817 Oct 19 03:28 downloads.tgz.9.gz drwxrw---- 2 tpot tpot 4096 Sep 22 19:41 keys drwxrw---- 3 tpot tpot 4096 Oct 29 09:09 log drwxrw---- 2 tpot tpot 4096 Sep 22 19:40 misc
上記のように、1日ごとに圧縮して保持してくれています。
ハニーポットのログを15日まで保持するように指定しているので、15日前の分までは保持していますが、それ以降のものは削除してくれています。
また、このファイルパスはroot
権限を持っているユーザーでないと見えません。今回はここがポイントでした。
$ scp -i "pemのあるURL" -P [port番号] [user名]@[ドメイン]:/data/cowire/downloads/downloads.tgz.1.gz ./ scp: /data/cowire/downloads/downloads.tgz.1.gz: Permission denied
root
権限でしかアクセスできないところに、ログインユーザーで取りに行こうとしてもそりゃ権限エラーになるわ。
今回は接続しているユーザー下にフォルダ(downloadsフォルダ)を作成。 そこにroot 権限でコピー。
cp /data/cowire/downloads.tgz.1.gz /home/[ユーザー名]/downloads/
$ cd /home/[ユーザー名]/downloads/ $ ls -la total 12 drwxr-xr-x 2 root root 4096 Oct 29 16:17 . drwxr-xr-x 6 honey honey 4096 Oct 29 14:39 .. -rwxr----- 1 root root 2330 Oct 29 16:16 downloads.tgz.1.gz
ここで注目するべきは、圧縮ファイルの権限。
root
からしか見れないところにあったため最初は710
の状態。
scpで持ってくれるように権限も変更しておきます。
読み取りさえできればいいはずなので、read
権限を付与。
$chmod 714 downloads.tgz.1.gz $ls -la total 12 drwxr-xr-x 2 root root 4096 Oct 29 16:17 . drwxr-xr-x 6 honey honey 4096 Oct 29 14:39 .. -rwx--xr-- 1 root root 2330 Oct 29 16:16 downloads.tgz.1.gz
さぁ、scpだ!!
$scp -i "pemのあるURL" -P [port番号] [user名]@[ドメイン]:/home/[ユーザー名]/downloads/downloads.tgz.1.gz ./ downloads.tgz.1.gz 100% 2330 132.9KB/s 00:00
無事に成功!歓喜!
ローカルに持ってこれた!!
$ ls -la total 568 drwxr-xr-x 5 hatoritakuya staff 160 Oct 29 16:25 . drwxr-xr-x 3 hatoritakuya staff 96 Oct 24 20:14 .. -rwx--xr-- 1 hatoritakuya staff 2330 Oct 29 16:22 downloads.tgz.1.gz
あとは、解凍してマルウェアを解析できる状態にするだけです。
gz
の解凍はgunzip
コマンド。
$ gunzip downloads.tgz.1.gz $ ls -la total 568 drwxr-xr-x 5 hatoritakuya staff 160 Oct 29 16:27 . drwxr-xr-x 3 hatoritakuya staff 96 Oct 24 20:14 .. -rwx--xr-- 1 hatoritakuya staff 2307 Oct 29 16:22 downloads.tgz.1
続いて、tgz
の解凍。
使用するのは、tar
コマンド。
オプションは-xzvf
を使用。
結構-xzvf
はおまじないみたいに使っているので、このタイミングで調査。
オプション | 説明 |
---|---|
x | externalの略。ファイルを抽出する。 |
z | 圧縮する形式としてgzip形式を利用する。圧縮、展開時両方指定可能。(拡張子は「.tar.gz」または「.tgz」) |
v | verbose の略。処理したファイルを詳しく出力。 |
f | ファイル名指定 |
コマンドを実行。
$ tar -xzvf downloads.tgz.1 $ ls -la total 568 drwxr-xr-x 5 hatoritakuya staff 160 Oct 29 16:27 . drwxr-xr-x 3 hatoritakuya staff 96 Oct 24 20:14 .. drwxr-xr-x 3 hatoritakuya staff 96 Oct 29 16:25 data -rwx--xr-- 1 hatoritakuya staff 2307 Oct 29 16:22 downloads.tgz.1
新しくdata
フォルダが作成される。
data
以降のファイルパスは、T-potと同じパスで展開されます。
$ cd data/cowrie/downloads/ $ ls -la total 1224 drwxr----- 3 hatoritakuya staff 96 Oct 29 16:33 . drwxr-xr-x 3 hatoritakuya staff 96 Oct 29 15:01 .. -rwxr----- 1 hatoritakuya staff 625867 Oct 26 03:53 tmpo3Qp_6
今回目的のマルウェアを発見!!
あとはこのマルウェアを焼くなり、煮るなりする (マルウェアの解析は仮想環境でやりましょう)
まとめ
マルウェアをscpで持ってくる方法を今回はまとめました。
やっとマルウェア解析できる。