Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CRTO/CRTL/OSEPの比較・勉強法とAV/EDRの検知実験
Search
tera
September 07, 2024
Technology
3.9k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CRTO/CRTL/OSEPの比較・勉強法とAV/EDRの検知実験
OffSecLab MeetUp in 渋谷オフ会での講演スライドです。
https://off-sec-lab.connpass.com/event/326460/
tera
September 07, 2024
More Decks by tera
See All by tera
EDRの検知の仕組みと検知回避について
chayakonanaika
14
14k
Other Decks in Technology
See All in Technology
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
0
150
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2k
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
140
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
170
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
250
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
120
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
8
3.8k
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
200
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
660
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
16k
LLMに渡さなかった仕事
nanaism
0
440
Claude Code本って、 読む必要あるの?
oikon48
2
470
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
So, you think you're a good person
axbom
PRO
2
2.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
A Soul's Torment
seathinner
8
3.6k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
Music & Morning Musume
bryan
48
7.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
First, design no harm
axbom
PRO
2
1.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
660
Transcript
CRTO/CRTL/OSEPの比較・勉強法と AV/EDRの検知実験 2024/09/07 OffSecLab MeetUp in 渋谷オフ会
自己紹介 • 経歴 • セキュリティ歴は5-6年程度、8割がSOC • 今は研究員というポジション、実際はサイバー演習、内部レッド、 Conference参加・登壇と何でも屋な感じ • ペンテスト・脆弱性診断は未経験で素人、器用貧乏なのが悩み
• 資格 • CRTL/CRTO/OSCP/CISSP/CKS/GMON/CEH/LPIC/NW/RISS • OSEPはまだ受かってない・・・今月再々受験・・・ • 趣味:サッカー観戦、温泉、旅行、漫画 • その他 • OSCPは”マルウェア解析ブログ、OSCP受験記&勉強方法”で記載 • X (Twitter): @chayakonanaika – 解析mob
CRTOとは ➢Zero-Point Securityが提供するレッドチームトレーニング ➢クラウド上にあるラボを利用して学習 • 攻撃マシンもクラウドにあり、CobaltStrikeを使えるのが特徴 • 仕事でCobaltStrikeを使う必要ができたため受験 • CobaltStrikeを利用してAD環境を攻撃する
• PTH, PTT, Kerberoast, Delegation, RBCD, GPO, Domain Forest, AV Evasion, AppLocker, ADCS, MCM(Microsoft Configuration Manager)の悪用, etc ➢費用 • 大体トータルで10万前後 • コースの購入に365ポンド(約7万)、ラボは別売り • ラボは15日、30日、45日、60日と使いたい期間分購入する • 30日だと44ポンド (約8,500円) • 自分の場合、30日を2回購入
CRTOの感想 ➢よかったところ • CobaltStrikeを使えるのは唯一無二、実践的なスキルがつく • ADの攻略がうまくテキストにまとまっている • 環境構築が不要、クラウドにさえ繋がればどこでもラボ学習できるので楽 • テキストは充実、試験は優しめ(4日間
or 48時間、8 台のマシンがターゲット) • 企業NWのWindows1台を利用できる(侵入済み)ところから試験スタート • 試験も作業しないときは試験環境をオフにできるので、受験者に優しい、レポートも不要 • C2セッションも落ちるので、Persistenceも求められたりとリアル • Offsecと違いrabbit holeも少ない、自分の場合は2日間程度で攻略完了 • 値段も手頃 ➢残念なところ • 攻撃マシンも割り当てられる(外部には繋がらない)ため、独自ツール等は利用不可 • Blood HoundやSliverとかは利用できない、基本用意されたツールだけで攻略する • ペーストだけ可能なので、常識範囲内の量のコードを貼り付けてコンパイルは可 • ただしコピーペーストがうまく動かないことが多い・・・ • テキスト検索がほぼできない • ラボ環境が1つだけなので、完全な初心者はHTBやTHM等も必要かも
CRTLとは • CRTOを前提とした環境・スキルに最新のAV/EDRが追加される • CRTOをスキップしてCRTLのみを受けることも可能 • 試験時間は8日(6台程度のマシン)で時間は十分にあるのでひたす らAV/EDRとの戦い • C#、C++でコードを書く部分が多い
• CRTOと違い手取り足取りではない、コードも全部載せないことが多い • D/Invoke API Hashing、D/Invoke Manual Mapping、PPID Spoofing、Thread Stack Spoofing、GadgetToJScript、Sleep Mask Kit、C2インフラ構築、etc • テキストを学ぶだけでEDRのバイパスは厳しい • テキスト以外も学ぶことが必要 • とはいえEDRやC2コマンドの仕組みを理解することは重要
CRTLの感想 ➢よかったところ(CRTOと同様のところは省略) • EDRバイパス(Elastic)が主目的な試験は希少(これ以外にない?) • C2のインフラ構築、カスタムマルウェア作成等が実践的 • 試験はCRTOより難しく、ちょうど良い難易度 • 試験時間に余裕がある(8日間)ため、根気の勝負・TRY&ERROR
• 自分の場合は4日間で合格点に達した ➢残念なところ(CRTOと同様のところは省略) • テキストの手法を試しても普通に検知される • おそらくテキストの更新速度よりもEDRの進化の方が早い(仕方がない)
OSEPとは ➢ローカルのKaliをVPNに接続して各企業NWを攻撃しながら学習 • WindowsだけでなくLinuxも含む • 外部公開のWebサーバを攻撃するところも対象 ➢検知回避の割合はそこまで高くない印象 • 検知回避よりもADを軸とした企業NW攻撃の総合力が問われる •
AVをkillできるケースも多いので、BypassしたよりひたすらKillした印象・・・ • 検知回避を勉強したいならEDRも導入されているCRTLの方が良い
OSEPの感想 ➢よかったところ • CI/CDを利用した横展開 • 外部からの侵入を学習できる(公開サーバ経由、メール経由、etc) • チャレンジラボ(6つの練習環境)、カスタムマルウェアが充実 ➢残念なところ •
環境やテクニックが古い(というか不便)ところがある & .netを使いすぎの印象 • シェルコードの暗号化を.netで行う (ローカルでできるのでPythonの方が便利、Cybershefで も良い) • Metasploit以外のC2もテキストに追加してほしい(Sliver, Havoc, etc) • CRTOのような試験時間方式(作業しないときは休める)にして欲しい・・(ほぼ愚 痴) • 値上げが厳しい (Learn Oneだと$2599、30-40万円程度) • ラボNWが重い、ラボによってはOfficeや開発環境のインストールで1時間くらい消 費・・・ • VisualStudio, Officeは極力自前の環境を用意することをお勧め
自分なりの勉強方法・Tips
Tips1 個人的テキストの使い方 • CRTO, CRTL, (OSEP)ではテキストの理解は重要 • 自分なりのテキストの読み方・使い方を共有 • 主なテキストの使い方・読み方
1. 英語PDFを片手にシンプルに最初から最後まで読む • 一番脱落するやり方、よほど英語と読解力に自信がない限りおすすめしない 2. 翻訳サイトや生成AIを利用して和訳して読む • あまりやってほしくないやり方 • 英語は筋トレのようなものなので、翻訳に頼ったら英語が身につかない 3. コード/コマンドを中心に部分的に読む&実行して自分なりのメモを作成 • 個人的におすすめ • 大体最初のパラグラフとコード/コマンドの下のListingで薄い理解はできる
Tips1 個人的テキストの使い方 - 例
Tips1 個人的テキストの使い方 - 例 コード前後の赤枠部分だけ で薄い理解は十分可能
Tips1 個人的テキストの使い方 - 例 • 16.1.3 Abusing WriteDACL赤枠の部分を訳すと以下の感じ • WriteDACLがあるとACL(アクセス制御リスト)を変更できるので悪用
1. まずWriteDACLの権限があるアカウントを列挙、 TestService2アカウントを発見 • コマンド: ` Get-DomainUser | Get-ObjectAcl -ResolveGUIDs (略) ` 2. TestService2アカウントに対してWrite権限を付与 • コマンド: ` Add-DomainObjectAcl -TargetIdentity testservice2 (略) ` 3. 付与されたか確認、TestService2アカウントに対してGeneric Allが付与された • コマンド: `Get-ObjectAcl -Identity testservice2 -ResolveGUIDs (略) ` 4. TestService2アカウントに対してパスワード変更が可能になった • コマンド: ` net user testservice2 h4x /domain ` 赤枠部分だけで十分薄い理解ができる
Tips1 個人的テキストの使い方 - 例 • コードを中心に翻訳サービスを使わずに読んでまとめる • 頭ではなく、手を動かす • CRTOやOSEPのようなハンズオン形式のテキストはコード前後だけで程度理解可能
• あまりコピペは使わない • コマンドを覚えることも重要 • コマンドをタイピングしていると個人的に集中力が上がる • コード・コマンドがない章は飛ばしてもよい(少なくとも1周目は) • 例えばWindows APIの仕様の説明など • 仕様の説明⇨コードよりも、コード⇨仕様の説明の方が頭に入る • どれだけ英語が苦手でも10回コマンドを打てば理解度は上がる • とはいえ最低限の技術的英語は覚える • 少しずつ読む範囲を増やして理解度を上げる
(参考)自分なりCRTOのテキストまとめ • 使い慣れているHackmdにまとめた • Notion, Obsidian なんでも良いので、検索・一覧化しやすいことが重要 • 迷子になった時に参照できるようにする •
特にCRTO, CRTLはテキスト検索がほぼできない(pdfもない)ので重要 • CheatSheetは公開されているものを流用 • 使えるツールが全員同じなので、独自のCheatSheetの必要性は感じなかった
Tips2 NW図を作成する ➢攻略した(している)NWを図字することが意外と重要 • 単発なマシンが標的であるOSCPと異なり、CRTO/CRTL/OSEPだと複 数ドメイン・10台前後のマシンが対象 • 個人的に標的が5台を超えると、テキストだけでは整理が難しい • NW図(ドメイン・IPアドレス・ホスト名程度)を書いて、侵入方法を
一言メモするだけでだいぶ整理・効率化できる • 例)発見したCredentialで横展開する時、異なるドメインのホストなので対象か ら外すなど • 振り返り時も一目で思い出せるので便利
Tips3 複数のC2に慣れよう C2 長所 短所 備考 Metasploit 定番フレームワークで長い歴史、安定性も高い サーバの攻撃モジュールなどカバー範囲が広い 歴史がある分ほぼ検知される
カスタマイズ性が低い印象 基本的にCUI Cobalt Strike (CS) 商用で攻撃者もペンテスターも多数利用 GUI&複数人サポートで機能も豊富 プロファイルやArsenal Kit等、カスタマイズ性 が高い 悪用されすぎてカスタマイズしないと 検知されやすい(狙い撃ち)印象 有料 Offsecでは禁 止 Havoc GUIでCSに似たUI、無料 CSに慣れているとすぐに使いこなせる SMBのリスナーを作れるのが個人的に便利 CSに比べるとできない部分がある ドキュメントが少ない印象 個人的によく 使う、GUIは便 利 Sliver 最近だと一番人気な気がする 拡張性が高い、BOFもサポート 基本的にCUIで慣れるまで時間が必要か も まだ使いこな せてない 他にもEmpire, Covenant, Merlin… それぞれ得意・不得意があるので、状況に応じて使うことが重要(例えば”shell”コマンドの挙動が違う) 2・3種類使い慣れていると安心 色々なC2フレームワークに慣れていると便利だし理解が深まる 個人的C2比較
Tips4 様々な侵入方法・バックドアの作 り方を学ぼう • 様々な侵入する方法を学ぶことが重要(主に横展開) • 特にAV/EDRが動いている場合は、色々なやり方を試すことが重要 シナリオ 対応策 まずは定番
Msfvenom等でリバースシェル(exe, ps1, dll, http, https, tcp, (dns), (smb), x86/x64, Starger/Non- Stager) AppLockerがある MsBuild, InstallUtil※, rundll32※, regsvr32, etc AVがリバースシェルをブロック カスタムマルウェア(Downloader, ビット操作でシェルコードを暗号化)、Shellter等のEvasion Framework、Kill AV (権限があれば) EDRがブロック RDPユーザ作成 (権限が必要だけどできれば最強)、自作リバースシェルを使う(後述)、あとは根気 Rubeus等のPostExploitがブ ロックされる そもそもRubeusやMimikatz、C2に依存しない。Impacket等で割と代替手段がある(psexec, getTGT, ticketer, secretsDump (dcsync), etc)。他にもカスタムmimikatz、カスタムPsExec 自分の思考回路を雑にまとめた、細かい説明は省略 ※Offensive Security Articles Vol.1、4章 Living Off the Land 攻撃の紹介
AV/EDRの実験
自作シンプルリバースシェル(TCP) ➢まず安定したリバースシェルを作ることが大事 • C2セッションを作れるのがベストだが、無理ならシンプルなリバースシェルを作る • Defenderは回避できてもEDRは難しい • 保存時:怪しいAPIを利用するだけで検知 • 実行時:シェルコードをYaraルール等で検知(暗号化しても復号したタイミングで検知)
• NetcatやInvoke-PowerShellTcp.ps1, shell_reverse_tcpで良いのでは? • 悪用されすぎていてAVでも検知されるので自作したい ➢利点 • 検知されにくい • 手軽に実装可能、自作シェルコードよりも簡単 • TCPで接続するだけなので、Kaliをサーバにしなくて良い • 侵害済みのWindowsをサーバ※にすれば、FWを無視できる ➢個人的によく利用する例 (横展開が中心) • 単発コマンドを実行できるが(コマンドインジェクション等)、リバースシェルを確立できない • CIFSチケットを取得してファイルの読み書きはできるが、リバースシェルを確立できない ※ももいろテクノロジー, PowerShellでnc(netcat)を書いてみる, https://inaz2.hatenablog.com/entry/2015/04/16/025953 侵害済み端末 Netcat等でサーバにする FW
様々なマルウェアを作成して実験 • マルウェアを作成してAV(Windows Defender)、EDR で検知検証 • Windows Defenderは最新、EDRは個人的最強格の2つで実験 • EDR1はPolicyで特に挙動が変わるので、大体強いの設定
• 脆弱なドライバ・ツールを持ちこむ方法は対象外 (CRTL等では不可) マルウェア 備考(カスタムコードは最低限のAV回避の処理(難読化等)を追加) 1 C2作成 Msfvenomで作成 ほぼデフォルトのプロファイル 2 Havocで作成(exe) 3 Sliverで作成 (dll) 4 カスタ ム コード ダウンローダー (sliver) シェルコード(sliver)をダウンロード、notepadを起動してinject (CRTL式、.net) 5 暗号シェルコードを復号実行 .netでOSEP式、シェルコードはwindows/x64/meterpreter/reverse_httpで作成 6 自作リバースシェル 30行程度のお手軽リバースシェル 7 6をDLLに変換 dllのほうが検知されにくい印象、少なくともSOCの経験上exeよりも調査・対応は難しい 8 Word psをリモート実行するマクロ ASCIIでObfuscate(OSEP式) 9 6をマクロで作成・実行(後述) Downloadではなくbase64で直接VBAに記載 (後述) 10 その他 EventLogからシェルコード実行※ (おまけ)本来はPersistence用、Bsides LVで発表があったので実験 ※Persistence – Event Log, https://pentestlab.blog/2024/01/08/persistence-event-log/
実験動画 • 実験動画はオンサイトのみ公開
実験結果一覧 ◦が検知・ブロック、△が条件付き検知、Xは検知せず。EDR1はセッションを貼り続けてコマンドを実行し続けると検知するかも マルウェア AV EDR1 EDR2 備考 1 C2作成 Msfvenomで作成
◦ - 2 Havocで作成(exe) 3 Sliverで作成 (dll) 4 カスタム コード ダウンローダー (sliver) X ◦ ◦ 5 暗号シェルコードを復号 実行 △ ◦ ◦ AV: デモ動画はStagerで追加ダウンロードされたファイルが検知の原因、 Stagelessの全体Payloadを暗号化すれば多分検知されない 6 自作リバースシェル X X △ EDR1: 検知せず、ただしwhoamiやhostname実行時に検知する事もあった EDR2: 検知したりしなかったり 7 6をDLLに変換 X X △ EDR1: 検知せず、ただしwhoamiやhostname実行時に検知する事もあった EDR2: 検知したりしなかったり 8 Word psをリモート実行するマ クロ ◦ - - 9 6をマクロで作成・実行 (後述) X ◦ - AV: 検知せず、EDR1: Highアラート EDR2: Officeライセンスがないため検証不可 1 0 その他 EventLogからシェル コード実行※ X X ◦ AV, EDR1: shell_reverse_tcpをpayloadとすると意外とEDR1は検知せず、事前準 備のシェルコードを仕込むところも同様に検知せず EDR2: exe自体を検知・・・
実験結果考察 ➢AV (Windows Defender) • C2のデフォルトpayloadやマクロは検知するが、カスタムコードの検知は難しい • 生成AIで既存攻撃ツールの修正も容易いのでDefenderのみに依存は厳しい • HTBのProLabsやOffsecの古いマシンでは、SliverやHavocのpayloadも検知されなかった印象
• とはいえ定番ツールは検知するので、多層防御の1つとして考える • 攻撃(試験対策)からすると検知されないリバースシェルを2・3種類作れると安心 • ダウンローダーが簡単に作れて動作も変更しやすいため個人的おすすめ ➢EDR • 優秀なEDRの検知率は高い • MSBuild・Install Utilの悪用、Direct API、API Hashing、色々試したがほぼ検知 • 単体で回避できない場合は脆弱性を利用する方(DLL SideLoading等)が良いかも • C2のシェルコードを実行できない場合は自作リバースシェルは一つの回避策 • ポリシーやプロセスの流れ等の設定で挙動が変わるので、自身の環境でテストす ることを推奨
(参考)項番9の自作リバースシェルをVBAで作成・ 実行の補足 • 色々な実装方法がある • 例えばPowershellでダウンロード・実行など • http通信が発生すると難読化してもAVにほぼ検知された • 今回はbase64で直接vbaに記載してexeを作成、実行という無理矢理な方法で実装
• 自作リバースシェルは最小の7kb程度なので、base64のコピペでも許容範囲(若干面倒) • もっとスマートな方法はあると思う、ファイルレス、etc • 今思えばGadgetToJscript ※の方が良かったかも・・・(忘れてた) GadgetToJScript を利用した Office VBA のAMSI バイパスと原理、https://www.shutingrz.com/post/explore-dotnet-serialize-g2js/
全体まとめ 1. CRTO・CRTL・OSEPの比較 • ADに詳しくない人 or Cobalt Strikeを使いたい人はCRTO • 検知回避を学びたい人(特にEDR)はCRTL
• 企業NWへの攻撃全般を学びたい人 or とにかくTRY HARDERしたい人 はOSEP 2. 自分なりの勉強方法・tipsの紹介 • テキストの読み方、頭ではなく手を動かす • NW図を作成しながら整理 • 複数のC2に慣れよう • 様々なバックドアの作り方を学ぼう 3. AV/EDRの検知実験