お願い
安全に配慮したつもりではありますが、記事を書くにあたり反省する点もあったため、以降の手順は参考程度に、マネしないで頂けたらなと思います。
はじめに
ある日、プライベートメールに一通のメールが届きました。
それがこちら。
不審な点として、
(1)送信元がamazonドメインではない
(2)所々日本の漢字ではないような漢字が混じっている
フィッシングメールという奴です。
そこで良い機会だと思いリンクを踏んでみました。
検証環境など
USBメモリブートしたUbuntu上でBurp Suiteを使い、フィッシングメールの動作検証を行ってみました。
利用したものはこちら。
(1)Burp Suite(検証用Tool)
https://portswigger.net/burp/communitydownload
・URL先から、download latest versionをクリック
・次画面にて、Burp Suite Commuinity Edition Linux(64-bit)を選択し、ダウンロード
(2)Ubuntu Linux(USBブート)
https://www.ubuntulinux.jp/products/JA-Localized/download
・URL先から、ubuntu-ja-20.04.1-desktop-amd64.isoをダウンロード
(私は通常ダウンロードを行いましたが、torrentを利用した方が早いと思います。)
・Win32 Disk Imageを利用し、USBメモリに起動イメージを書き込み
(3)モバイルルーター
・検証用PCのみが接続されているネットワークを用意
(4)protonvpn
https://protonvpn.com/pricing
・URL先から「GET FREE」を選択。画面に沿ってアカウント登録
(5)任意のクラウドストレージサービス
・プライベートPCからのファイルのやり取りに使用
準備
(1)Ubuntuの起動
・PCのBIOS画面からUbuntuの入ったUSBメモリを選択し、ブート起動
(デスクトップPCの場合USBメモリは「背面ポート」に刺してください。私は前面に指して認識せず、はまりました)
(2)Ubuntu起動後、USBメモリを取り外し
・オンボードメモリ上で動作しているため、USBメモリを取り外しても構いません
(3)HDDドライブをアンマウント
・オートマウント機能が走っていたため、接続されていたHDDをアンマウント
(4)protonvpnへ接続
・起動したUbuntu上でprotonvpnへ接続
[Linux版のインストール/使用方法]
https://protonvpn.com/support/official-linux-client/
(5)該当メールのローカル保存
・UbuntuにインストールされているThunderBirdを起動し、ログインメールを受信保存
[保存方法]該当メールを右クリック→メッセージをコピー→ローカルフォルダへ保存→任意のフォルダへ保存
・保存後、ThunderBirdのアカウントを選択し、アカウント情報を削除
(6)Burpの設定、動作確認
Burpのintercept機能を使用し、通信をひとつずつ確実に止め、安全に配慮し通信確認を行っていきたいと思います。
以下は動作確認。
・ProxyタブのInterceptタブを確認
・[OpenBrowser]ボタンをクリック
・起動したブラウザにてgoogle.co.jpへアクセス
・Burpの画面に戻り、以下のようなリクエストが表示されている事を確認
GET / HTTP/1.1
Host: google.co.jp
Connection: close
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
~(省略)~
・[Foward]ボタンを押下し、google.co.jpへリクエストを送信
・HTTP historyタブを確認。Fowardしたリクエストのレスポンスが返却されている
・Interceptタブに戻り、Intercept is onボタンをクリックし、offにする
(通信が複数回流れるので、手順省略のため機能を一度OFFにします)
・いくつか通信が流れ、ブラウザがgoogle.co.jpに接続される
・再度BurpのHTTP historyタブを開くと、通信がどのように流れたか確認できる
・最後に、Interceptタブへ戻り、Intercept is offボタンをクリックし、onにする
いざ
(1)不信なメールのリンク先を取得(直接クリックはしない)
ThunderBird上で保存したメールを右クリックし、URLをコピー。
[リンク先URL]
URL内の一部Host名を伏せているため正しいリンク先ではありません。
伏せている部分は{HOSTアドレス}と記載しております。(以降同じ)
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwi6i4n-zZbtAhUFcCsKHVPbAqcQFjAFegQIAhAC&url=http%3A%2F%2Fwww.{HOSTアドレス}%2Fall-companies.php&usg=AOvVaw0GWcQ-HMXD_vT5DypaB8FS
(2)BurpのProxyタブ > Interceptタブ > Open Browser で開いた ブラウザのURLへコピーし貼り付け、送信
※Intercept機能がOnになっている事を確認します。
(3)1件目のリクエスト
google.comへリクエストを送信する内容のため、Foward
リクエスト
GET /url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwi6i4n-zZbtAhUFcCsKHVPbAqcQFjAFegQIAhAC&url=http%3A%2F%2Fwww.{HOSTアドレス}%2Fall-companies.php&usg=AOvVaw0GWcQ-HMXD_vT5DypaB8FS HTTP/1.1
Host: www.google.com
Connection: close
Upgrade-Insecure-Requests: 1
~(省略)~
レスポンス
HTTP/1.1 200 OK
Date: Thu, 17 Dec 2020 16:53:40 GMT
Pragma: no-cache
~(省略)~
<html lang="ja"> <head> <meta content="origin" name="referrer"> <script nonce="IlEk9FP4oTBQIW7mFPh0Sg==">window.google = {};(function(){
var e=function(b,d){this.g=d===c?b:""};e.prototype.h=!0;var f=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,c={};google.navigateTo=function(b,d,a){b!=d&&b.google?b.google.r&&(b.google.r=0,b=b.location,a instanceof e||a instanceof e||(a="object"==typeof a&&a.h?a.g.toString():String(a),f.test(a)||(a="about:invalid#zClosurez"),a=new e(a,c)),b.href=a instanceof e&&a.constructor===e?a.g:"type_error:SafeUrl",d.location.replace("about:blank")):d.location.replace(a)};}).call(this);(function(){var redirectUrl='http://www.{HOSTアドレス}/all-companies.php';google.navigateTo(parent,window,redirectUrl);})();</script> <noscript> <meta content="0;url=http://www.{HOSTアドレス}/all-companies.php" http-equiv="refresh"> </noscript> </head> </html>
リクエスト
GET /url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwi6i4n-zZbtAhUFcCsKHVPbAqcQFjAFegQIAhAC&url=http%3A%2F%2Fwww.{HOSTアドレス}%2Fall-companies.php&usg=AOvVaw0GWcQ-HMXD_vT5DypaB8FS HTTP/1.1
Host: www.google.com
Connection: close
Upgrade-Insecure-Requests: 1
~(省略)~
(4)2件目のリクエスト
Host部分をみると、www.{HOSTアドレス}となっており、HOSTアドレス先へ通信を送ろうとしていました。
無関係なサイトだった場合「攻撃をしかけてはいけない」ため、そこで作業を中断。
リクエスト
GET /all-companies.php HTTP/1.1
Host: www.{HOSTアドレス}
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: https://www.google.com/
Accept-Encoding: gzip, deflate
Accept-Language: ja,en-US;q=0.9,en;q=0.8
Cookie: PHPSESSID={セッションIDらしき数値列}
Connection: close
(5)別途ブラウザを開き、記載されたHost名をWho isサイトで検索。
https://tech-unlimited.com/whois.html
(6)google検索でも見つかるサイトだったためアクセスしてみましたが、海外の企業サイトの部署一覧でした。
何かしら仕掛けがあるかもしれませんが、ご迷惑をおかけするわけにもいかないので、作業はここで終了。
結果
期待としては、Amazonの偽ログインサイトに誘導されると思っていたのですがどうやら違う模様。
何がしたかったのか?もやもやが残る結果となりました。
反省
Linuxにあまり詳しくなく、ディスクを単純にアンマウントしましたが、何かしらの方法でアクセスできた可能性があったんじゃないかと思います。
参考情報
・googleの偽サイト情報提供URL(偽サイトではないため、今回は報告せず)
https://safebrowsing.google.com/safebrowsing/report_phish/?hl=ja