Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bypassing Windows Security Functions(ja)

1,771 views

Published on

Bypassing Windows Security Functions(ja)

Published in: Engineering
  • English https://www.slideshare.net/abend_cve_9999_0001/bypassing-windows-security-functionsen
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Bypassing Windows Security Functions(ja)

  1. 1. Windowsのセキュリティ機能の CODE BLUE 2018 1 - たった1つの願いを叶えるために -
  2. 2. 自己紹介 小河 哲之(Satoshi Ogawa) 三井物産セキュアディレクション(MBSD) Twitter:abend@number3to4 Burp Suite Japan User Group ISOG-WG1 CODE BLUE 2018 2
  3. 3. 自己紹介 登壇 • OWASP DAY 2014 • July Tech Festa2015、2017 • AVTOKYO2016 • 金融ISACアニュアル・カンファレンス2018 寄稿 • Software Design CODE BLUE 2018 3
  4. 4. 背景 多くの企業でペネトレーションテストを行ってきた中、各企業で導入 されているWindowsにおけるセキュリティ機能を してテス トを行うことが多々ありました。 CODE BLUE 2018 4
  5. 5. 発表しようと思った理由(このセッションで伝えたいこと) は完全に検知・ブロックできるわけではないので、セキュリ ティ機能の有効化だけではなく、監視強化など多層的な防御を意 識してもらいたいと思ったためです。 CODE BLUE 2018 5
  6. 6. ペネトレーションテスト シナリオを想定し、サーバやネットワーク機器に侵入可否の観点で テストします。 Firewall インターネット経由での攻撃 内部犯行 PCの乗っ取り Attack ・ どのような権限なのか ・ 何ができるのか 影響調査 CODE BLUE 2018 6
  7. 7. ペネトレーションテストのシナリオ 標的型攻撃などによるマルウェア感染を想定して、サーバへの侵入 可否を調査するケースもあります。 Firewall PCおよびドメインアカウント を利用 テスター ユーザセグメントサーバセグメント IPS Access Internet テスター Access CODE BLUE 2018 7
  8. 8. 攻撃者の視点 標的型攻撃の場合、明確な意思と目的を持った攻撃者が特定の 組織に対して情報の窃取などを行うため、セキュリティ機能による制 限があっても して目的を遂げると推測されます。 • ログイン画面を して侵入 • 制限された機能を して利用 など CODE BLUE 2018 8
  9. 9. 攻撃者の視点 標的型攻撃の場合、明確な意思と目的を持った攻撃者が特定の 組織に対して情報の窃取などを行うため、セキュリティ機能による制 限があっても して目的を遂げると推測されます。 • ログイン画面を して侵入 • 制限された機能を して利用 など CODE BLUE 2018 9 This Session
  10. 10. 標的型攻撃のステップ 準備 潜入 横断的侵害 活動 • ターゲットの組織の情報収集(準備) • ターゲットの組織へ侵入(潜入) • 重要サーバへ侵入(横断的侵害) • 機密情報の窃取・隠ぺい(活動) CODE BLUE 2018 10
  11. 11. 標的型攻撃のステップ は”準備”では関係ないので、今回は触れていません。 準備 潜入 横断的侵害 活動 CODE BLUE 2018 11
  12. 12. 標的型攻撃のステップ 準備 潜入 横断的侵害 アンチウィルス製品や監視などの がありますが、今回は触 れていません。 CODE BLUE 2018 12 活動
  13. 13. 標的型攻撃のステップ クライアントPCなどへ侵入する際に利用される可能性のある について紹介します。 準備 潜入 横断的侵害 活動 CODE BLUE 2018 13
  14. 14. 横断的侵害(Lateral Movement) • マルウェア感染PCの操作 • 他の脆弱なPCの探索や感染の拡大 • 収集した情報を用いたサーバへの侵入 他のPCから情報収集感染PCを操作 収集した情報を利用し、サーバへ侵入 CODE BLUE 2018 14
  15. 15. 横断的侵害の攻撃手法 https://attack.mitre.org/wiki/Lateral_Movement • AppleScript • Application Deployment Software • Distributed Component Object Model • Replication Through Removable Media • Windows Remote Management • Exploitation of Vulnerability • Remote Desktop Protocol • Remote File Copy • Logon Scripts • Pass the Hash • SSH Hijacking • Shared Webroot • Remote Services • Taint Shared Content • Third-party Software • Windows Admin Shares Japanese https://github.com/abend9999/lateralmovement CODE BLUE 2018 15
  16. 16. Windowsを守る仕組み 様々な攻撃手法に対して、Windowsを守るためのセキュリティ機 能が存在しています。 • AppLocker • Software Restriction Policy • Windows Defender • UAC(User Account Control) ..etc CODE BLUE 2018 16
  17. 17. Windowsにおけるセキュリティ上の制限 • アプリケーションのインストール(PowerUser除く) • PCの設定変更 • 業務上好ましくないアプリケーションの実行 • ローカル管理者権限を付与しない • 特定のアプリケーションの実行制限 CODE BLUE 2018 17 Result
  18. 18. AppLockerの制御対象 発行元、ファイルパス、ファイルのハッシュに基づき、以下の拡張子 のファイルの動作を制御できます。 • 実行ファイル (.exe, .com) • Windowsインストーラー (.msi, .mst, .msp) • スクリプト (.vbs, .js, .ps1, .cmd, .bat) • DLL (.ocx, .dll) • パッケージアプリケーション (.appx) CODE BLUE 2018 18
  19. 19. AppLockerの設定 実行を制御したいファイルなどの条件を指定するだけです。 CODE BLUE 2018 19
  20. 20. AppLockerの注意点 サービス「Application Identity」が稼働していないと AppLockerは有効化されません。 CODE BLUE 2018 20
  21. 21. AppLockerの効果 cmd.exeなど利用する予定のないアプリケーションがあれば、それら を制限することで、セキュリティレベルが向上する可能性があります。 CODE BLUE 2018 21
  22. 22. ここからは、ペネトレーションテストにてセキュリティ制限をbypassで きた事例などを紹介したい CODE BLUE 2018 22
  23. 23. CODE BLUE 2018 23
  24. 24. ドライブアクセスの制限 背景 任意のドライブへのアクセスを禁止しているケースで、Cドライブをアク セス禁止、非表示にしていることが多いです。 CODE BLUE 2018 24
  25. 25. ドライブアクセスの制限 試行 コマンドプロンプトでの参照可能で、パスを直接指定することでアク セスも可能です。 CODE BLUE 2018 25
  26. 26. ドライブアクセスの制限 試行 コマンドプロンプトでの参照可能で、パスを直接指定することでアク セスも可能です。 CODE BLUE 2018 26
  27. 27. CODE BLUE 2018 27 bypassって、こんなにもちょろいのか。
  28. 28. ドライブアクセスの制限 推測 以下のレジストリキーでドライブを指定し制限することが可能で、レ ジストリで制御していたと推測されます。 HKEY_LOCAL_MACHINESoftwareMicrosoftWind owsCurrentVersionPolicesExplorerNoViewOnD rive CODE BLUE 2018 28
  29. 29. CODE BLUE 2018 29
  30. 30. アプリケーションの制限 背景 特定のアプリケーション(メモ帳やコマンドプロンプトなど)を制限する ために、以下の対応を実施していると推測されるケースがありました。 • 「コマンドを指定して実行」の無効化 • Cドライブ非表示 • プログラムメニューの削除 CODE BLUE 2018 30
  31. 31. アプリケーションの制限 試行 Internet Explorerの「ソースの表示」でメモ帳を立ち上げ、 cmd.exeを起動するbatファイルを生成し、実行するだけです。 CODE BLUE 2018 31
  32. 32. アプリケーションの制限 試行 Internet Explorerの「ソースの表示」でメモ帳を立ち上げ、 cmd.exeを起動するbatファイルを生成し、実行するだけです。 CODE BLUE 2018 32
  33. 33. CODE BLUE 2018 33 GOOD ADVICEを選択して、IEさえ止めていればね。
  34. 34. アプリケーションの制限 推測 • 以下レジストリで”ファイル名を指定して実行”を制御 CODE BLUE 2018 34 HKEY_CURRENT_USER¥SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Policies¥Explorer NoRun HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPolicesExplorerN oViewOnDrive • 以下レジストリでドライブ表示を制御 C:¥ProgramData¥Microsoft¥Windows¥Start Menu¥Programs • 以下フォルダでスタートプログラムを制御
  35. 35. CODE BLUE 2018 35
  36. 36. IEの制限 背景 Internet Explorerの実行をAppLockerで制限している場 合・・・ CODE BLUE 2018 36
  37. 37. IEの制限 試行① PowerShellでGETリクエストをたたきます。 $req = [System.Net.WebRequest]::Create("https://www.google.com") $response = $req.GetResponse() $stream = $response.GetResponseStream() $res = (new-object System.IO.StreamReader $stream).ReadToEnd() write-host $res CODE BLUE 2018 37
  38. 38. IEの制限 試行② jqueryなどを脳内でレンダリングできるなら、これで十分です。 <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ja"><head><meta content="&#1999 0;界中のあらゆる情報を検索&# 12377;るためのツールを提供し&#1239 0;います。さまざまな検索機&# 33021;を活用して、お探しの情&#2257 7;を見つけてください。" name="description"> <meta content="noodp" name="robots"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta co ntent="/logos/doodles/2018/world-cup-2018-day-19-6211393811382272.3-law.gif" itemprop="image"><meta content="& #12527;ールドカップ - Day 19" property="twitter:title"><meta content="&#1 2373;あ試合開始です!今日の#Google Doodle で 世界中 🌎🌍🌏の ⚽を応&# 25588;しよう!" property="twitter:description"> CODE BLUE 2018 38
  39. 39. IEの制限 試行③ CHM形式などのヘルプファイルを参照するためのHTMLヘルパを利 用します。 CODE BLUE 2018 39
  40. 40. IEの制限 試行④ HTMLヘルプに引数としてURLを指定します。  hh http://www.google.com CODE BLUE 2018 40
  41. 41. IEの制限 試行④ HTMLヘルプに引数としてURLを指定します。  hh http://www.google.com CODE BLUE 2018 41
  42. 42. CODE BLUE 2018 42 ブラウザがなくてもなんとかなるって分かった。
  43. 43. IEの制限 hh.exeの挙動① httpsのサイトへの直接アクセス → エラー httpからhttpsにリダイレクトされたサイト → 問題なし CODE BLUE 2018 43
  44. 44. IEの制限 hh.exeの挙動② hhはエクスプローラとしても動作が可能です。 CODE BLUE 2018 44
  45. 45. IEの制限 hh.exeの挙動③ 一部のファイル(txtファイルやxmlファイルなど)も開くことも可能です。 CODE BLUE 2018 45
  46. 46. IEの制限 hh.exeの挙動④ Cドライブのアクセス制限をかけられている場合は開くことができませ ん。 CODE BLUE 2018 46
  47. 47. CODE BLUE 2018 47
  48. 48. PowerShellの制限 PowerShellを制限することで、PowerShellを用いたファイルレス による攻撃を防ぐことができます。 ファイルレスの場合、AntiVirus 製品が検知しにくい Pass the Hashを用いた悪意あるスクリプトの実行 CODE BLUE 2018 48
  49. 49. PowerShell without PowerShell 2016年8月に公開された”PowerShell without PowerShell”は、AppLockerを してPowerShellを実 行する手法です。 https://www.blackhillsinfosec.com/powershell-without-powershell-how-to-byp ass-application-whitelisting-environment-restrictions-av/ CODE BLUE 2018 49
  50. 50. PowerShell without PowerShell • アンインストール時のアクションとしてPowerShellを実行するC#のプロ グラムをCSC.exeでコンパイル • InstallUtil.exeでコンパイルしたoutputをアンインストール • PowerShellが実行 CSC.exe InstallUtil.exe C#のソース Uninstallをoverrideし、 PowerShellコマンドを指定 ①Compile ②Output Binary file ③Uninstall C#で指定されている PowerShellを実行 CODE BLUE 2018 50
  51. 51. PowerShell without PowerShell PowerShell実行時のプロセスはInstallUtil.exeとして実行され ます。 CODE BLUE 2018 51
  52. 52. PowerShell without PowerShel 一般ユーザ権限で実行可能です。 • CSC.exeのコンパイル • InstallUnite.exeのアンインストール CODE BLUE 2018 52
  53. 53. PowerShell without PowerShell バックグラウンドでPowerShellが実行されますが、実行する PowerShellの内容によっては容易にshellを取得できる可能性が あります。 InstallUtil.exe Binary File Uninstall C#で指定されている PowerShellを実行 CODE BLUE 2018 53
  54. 54. PowerShell without PowerShell リバースコネクトを行うスクリプトなどを実行させることで、shellの取 得が容易に行えます。 PowerShellの制限されたPC • Powershell without PowerShellを用い たIEXによるスクリプトの取得 • ファイルレスでの実行 リバースコネクト先 CODE BLUE 2018 54
  55. 55. PowerShell without PowerShell リバースコネクトを行うスクリプトなどを実行させることで、shellの取 得が容易に行えます。 PowerShellの制限されたPC • Powershell without PowerShellを用い たIEXによるスクリプトの取得 • ファイルレスでの実行 リバースコネクト先 CODE BLUE 2018 55
  56. 56. CODE BLUE 2018 56 Q.Which same One? この問題よりちょろかった。
  57. 57. by using Install Option 別な手法( by using Install Option)を発見したので、 内容をご紹介したいと思います。 • PowerShell without Powershell ⇒ 一般ユーザで可能 by using Install Option ⇒ 管理者権限が必要 CODE BLUE 2018 57
  58. 58. AppLockerの対象とする制限 AppLockerは5種類に対して制限をかけることができます。 • 実行可能ファイル(exe、com) • Windowsインストーラーファイル(msi、mst、msp) • スクリプト(ps1、bat、cmd、vbs、js) • DLL(dll、ocx) • パッケージアプリのインストーラー(appx) CODE BLUE 2018 58
  59. 59. 拡張子による違い EXEファイルの拡張子をいろいろと変更したら、実行できたりしない だろうかと考えました。 • COMファイルに変更 → ブロックされる(変化なし) • BATファイルに変更 → ブロックされる(変化なし) • MSIファイルに変更 → インストーラーパッケージではないとエラーになる CODE BLUE 2018 59
  60. 60. の試行① エラーにならないようにMSIファイルとして、cmd.exeをインストール できるようにビルドしてみました。 CODE BLUE 2018 60
  61. 61. の試行② Custom Optionの存在に気付き、Install Optionとして cmd.exeを実行するようにビルドしました。 CODE BLUE 2018 61
  62. 62. CODE BLUE 2018 62
  63. 63. CODE BLUE 2018 63
  64. 64. 後の挙動① Install Optionで指定するとcmd.exeを動かすことができました が、Cドライブ直下でdirするとエラーになります。 CODE BLUE 2018 64
  65. 65. cmd.exeを起動しなおすと、SYSTEM権限で正常に動作するこ とが可能です。 後の挙動② CODE BLUE 2018 65
  66. 66. して立ち上げたcmd.exeは、AppLockerで制限してい るすべてのアプリケーションを動作可能です。 後の挙動③ CODE BLUE 2018 66
  67. 67. ちなみに AppLockerでnotepad.exeを実行禁止にした場合でも、 Internet Explorerの「ソースの表示」で起動可能です。 CODE BLUE 2018 67
  68. 68. 忘れがちな設定 AppLockerでcmd.exeやpowershell.exeを制限する際に忘 れがちになる設定があります。 CODE BLUE 2018 68
  69. 69. 忘れがちな設定 CODE BLUE 2018 69 powershell_ise.exeの実行
  70. 70. 忘れがちな設定 CODE BLUE 2018 70 powershell_ise.exeの実行
  71. 71. powershell_ise.exeによる実行 powershell_ise.exeは実行できますが、その中でPowerShell を新たに起動しようとするとブロックされます。 CODE BLUE 2018 71
  72. 72. たった一つの願い どうにかならないかとMicrosoft Security Response Centerに 問い合わせしたが、結果として同じような回答でした。 “Applocker generally does not meet the bar for MSRC case.” CODE BLUE 2018 72
  73. 73. CODE BLUE 2018 73 から身を守るには自分で何とかしないと気付いた
  74. 74. 対策 • AppLockerでホワイトリストによる運用 • ホワイトリストでの運用が難しい場合、他のグループポリシーも併 用した上でAppLockerの制限を厳格に設定する • 操作ログの監視など多層的な手法を用いて問題を検知する CODE BLUE 2018 74
  75. 75. 対策 以下の制限をすることで、今回の手法については できなく なりました。 AppLockerで以下を制限しました。 • iexplorer.exe • csc.exe • powershell.exe • powershell_ise.exe • cmd.exe • Microsoft以外のソフトウェアのインストール ※ただ、制限を実施することで他に影響が出る可能性があるため、自己責任で実施してください。 CODE BLUE 2018 75
  76. 76. まとめ • Windowsのセキュリティ機能を する手法は多く存在し、 それらを完全に防ぐことは非常に難しい されることを前提にログの取得、ネットワークの制限や 監視などを実施することが重要 CODE BLUE 2018 76
  77. 77. 参考 • https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/applocker- overview • https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/working- with-applocker-rules • https://www.blackhillsinfosec.com/powershell-without-powershell-how-to-bypass-application-whitelisting-environment-restrictions- av/ • https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/using- software-restriction-policies-and-applocker-policies • https://www.jpcert.or.jp/research/AD_report_20170314.pdf • https://attack.mitre.org/wiki/Lateral_Movement • http://eternalwindows.jp/security/securitycontext/securitycontext17.html CODE BLUE 2018 77

×