
現在大幅なアップデート中です。アップデート予定・受講目安等を解説しています。
アップデート中は章構成等が変更になる可能性がありますが、技術的な内容を含む動画はアーカイブとして残しておきます。
スマホ(またはタブレット)+ノイズキャンセリングイヤホンでの視聴に耐えられる様、視覚・音声面を改善中です。
(旧レクチャーはアーカイブに移動しました。)
Virtualbox向けのKali Linuxのインストール方法と、ターミナル分割ソフトの紹介をしています。
旧レクチャーよりは聞きやすく、無駄な間を極力排除したつもりではありますが、分かりにくい箇所等ありましたらお知らせください。
目次
00:00 Kali Linux Virtualbox向けイメージのDL
00:30 7-zipの紹介
00:47 7zファイルの解凍
01:03 Kaliインストール
01:30 初回ログイン
01:50 キーボードマッピングを日本語に変更
03:00 ターミナル分割ソフト(terminator)インストール
Staplerのインストール方法について解説しています。
以前の物は特にアーカイブの必要性が無いと判断しましたので、最新のものと置き換えました。
甘口:因果関係が明確であまり理解に努力を必要としない(と思われる)
内容は予告なく変更になる可能性があります。ご了承ください。
Metasploitable3のインストールから稼働確認までを行います。また、よくあるNWトラブルシューティングの確認方法を追加します。作者が素で間違えた内容も含みますので、軽い気持ちでお楽しみください。
目次
00:00 イントロ
00:22 vagrantのインストール
01:02 metasploitable3 prebuilt Powershellコマンドの確認
01:50 metasploitable3の起動
02:10 評価ライセンスがブロックされる
02:24 metasploitable3ログオン
03:04 Windows Firewall
03:30 Pivotingの概念
03:43 Firewallの稼働状況(コマンド)
04:09 FirewallのOFF(コマンド)
04:23 GUIでの操作
04:43 作者の設定ミス(間違い探し問題)
05:00 間違い探し解答
05:20 nmapのfilteredとは
05:30 Firewallルールの変更(GUI)
学習の仕方に迷っているというご相談が増えてきたので、「一番最初に取り組むとしたら何が良いのか」を書きました。不定期で加筆・修正します。
本セクションの取り組み方の解説をしています
※古い動画はアーカイブの必要性が無いと思われるため、新規の物と入れ替えました。
今後の攻撃のデモンストレーションを解説しています。
同じターゲットに対して、異なる侵入方法・権限昇格方法を3つ用意しました。アップデートだけでは防ぎきれない、人間的なミスを利用する作戦が含まれています。
Staplerをnmapでスキャンしてみましょう。(スキャンのみを扱います)
スキャン結果で主に何を最初に確認するべきなのかを解説しています。
手元で実際にやってみた結果を参照しながら進めると、より学習効率が高まります。
良く分からない箇所はお気軽にご相談下さい。
このレクチャーでは、「スキャンで検出された脆弱性が実際に動作可能か」をチェックします。
コード自体の動きを追うのではなく、防御側の視点に立ち「発動に必要な条件がそろっているのかどうかを見極める」練習です。
実際にMetasploitを設定し、攻撃演習を行います。
全く初めての方でも理解できるように配慮し、設定の意味を一つ一つ解説しています。
コマンド一覧を添付していますので、ご活用下さい。
以前のビデオで使用したツールを新しい物に置き換え、動画の内容もより分かりやすく変更しました。
このビデオではStaplerを使用したsshブルートフォース演習、sudoを使った権限昇格を行います。
StaplerのWebアプリケーションを中心とした列挙を行います。
前回発見したWordpressの列挙を行い、リバースシェルを取得します。
Webアプリケーションを利用したリバースシェルの取得後、権限昇格を行います。
Linuxの権限設定の不備を利用したシンプルな方法を試してみましょう。
動画中の使用コマンドと参考資料のリンク紹介。
HTB Heistの最初のポートスキャンのみを解説しています。
「出力結果から何を読み取るのか」そして、「読み取った結果どの様な方針で調査するのか」は
書籍などではあまり詳細に解説されていない部分です。
注意事項
本セクションで使用されている対象を実際に攻撃演習する場合は、該当CTFサービスのサブスクリプションが必要になります。視聴するだけでも理解できるように最大限配慮しておりますが、お気づきの点はご連絡いただけると助かります。
HTB HeistのWebアプリケーション調査前半部分です。
「ツール(今回はBurp suite、dirhunt、gobuster)をなぜ・どの様な目的で使うのか」を解説しています。
使用する理由さえ分かっていれば、他のツールを使わなければいけない場面でも難なく応用できます。
ただ、Heistの場合はWebアプリケーション部分が余り複雑ではなく、そこまで有効性をお見せ出来なかったので
今後Webアプリケーション主体の演習対象で同様の手順を試していきます。
HTB HeistのWeb調査後半部分です。
暗号化されたパスワードを含む設定ファイルを発見するところからスタートします。
攻撃者視点から見た、「暗号化されたパスワードをどう処理して意味のある情報にするのか」を実例を交えて解説しています。
HTB Heistのsmb調査部分です。調査には日本語の情報があまりない「NetExec」を使用します。
SID、RID、IPC等、Windowsの仕様に少し踏み込んだ内容なので、苦手な方は難しく感じるかもしれません。
HTB Networkedの列挙部分を解説しています。「入手できる情報をどの様に組み合わせるのか」に注力して解説しています。
HTB Networkedを題材にした、PHPのコードレビューを解説しています。
マジックナンバー・多重拡張子など、CTFではよく見る題材でご存じの方も多いと思います。
ありがちな内容とは言え、例えば「セキュリティサービス(or アプライアンス)がファイルタイプをどの様に判別するのか」をハンズオンで理解・実体験するには有益な内容です。
HTB Networked の権限昇格を解説しています。
PHPのコマンドインジェクションについてコードレビューを行っていますが、苦手な方にも理解できるように詳細な解説を行っています。
HTB Networkedの権限昇格(root)を解説しています。
シェルスクリプトの検証、脆弱性の調査を行います。
本セクションの取り組み方の解説をしています
今後の攻撃のデモンストレーションを解説しています。同じターゲットに対して、異なる侵入方法・権限昇格方法を3つ用意しました。アップデートだけでは防ぎきれない、人間的なミスを利用する作戦が含まれています。また、Windows特有の攻撃方法で、日本語の解説があまりないWinRMを使用したNW内部の移動方法について、ごく基礎的な内容を用意しました
マルウェアにも使用された脆弱性のデモンストレーションをしました。こちらはパッチを当てて対処する脆弱性ですが、万一当て忘れ等があると、どのような結果になるか学びます。こちらもNGFW、IDS/IPS等で検知されやすいタイプの攻撃です。
中辛:多少のコードを読んだりツールを動かしたり、少し自分の環境での検証が必要になる場合がある(かもしれない)
内容は予告なく変更になる可能性があります。ご了承ください。
古い脆弱性のEternalblueを使用して、攻撃演習を行います。
対象のFirewallが有効化されている場合、無効化されている場合の2パターンでどのように攻撃経路が変化するのか体験しましょう。
===========
目次
00:00 イントロ
00:16 eternalblue関連情報
00:43 NW基礎 ※CCNA相当の知識がある方はスキップ推奨
02:30 Firewallの特性
03:38 FirewallとEDRの対比
04:10 Firewall OFF時の攻撃検証
04:34 metasploitの起動
05:57 eternalblueモジュールの実行
07:26 Failになったら?
07:36 複数回この攻撃を受けた場合に発生する事象
08:05 Firewall ON時の攻撃検証
09:06 Chisel
09:30 Chisel注意点
09:45 ChiselのDL (Kali)
09:55 ChiselのDL (Windows)
10:28 Chiselの実行 (Kali)
10:48 Chiselの実行 (Windows)
11:54 eternalblue rhosts 0.0.0.0
人間のミスを利用したステルス性の高い攻撃の手法を学びます。Windows特有の、powershellを利用した攻撃方法をデモンストレーションしました。サイバー攻撃でどのようにpowershellが利用されるのか、ごく簡単な例ではありますが、基礎的な発想を理解するきっかけとなれば幸いです。
こちらは侵入後、サイバー攻撃者がコントロール可能なサーバを増加させるためにどのように攻撃するか、デモンストレーションしました。こちらはあまり日本語で情報が無い、KaliからのNTLMハッシュを使用したWinRM接続の方法を学びます。ステルス性が高く危険な攻撃方法をどのように防ぎ検知していくのか、考察するきっかけとなれば幸いです。
※字幕をONにしてください
同タイトルの予告編です。ボツった内容を再編集していますので、本編までもう少々お待ちください。
========
[ペイロード引用元]
- CVE-2022-22965
https://unit42.paloaltonetworks.jp/cve-2022-22965-springshell/
- CVE-2014-3120
https://github.com/fofapro/vulfocus/blob/master/writeup/CVE-2014-3120/CVE-2014-3120.md
- CVE-2015-1427
https://blog.talosintelligence.com/2019/02/cisco-talos-honeypot-analysis-reveals.html
- CVE-2018-18893
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jinjava---command-execution
- CVE-2019-8341, CVE-2021-38305
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jinja2
やや辛口:直感に反していて、参考資料などを熟読する必要がある(かもしれない)
※Java、Pythonの開発経験や学習経験のある方には、多分甘口です
JavaのRCE、PythonのSSTIを題材に
- ここ10年程でRCEペイロードがどの様に進化してきたのか
- どの様にコードの欠片を集めてRCEペイロードにするのか
を検証してみましょう。
目次
00:00 概要
00:40 ペイロード引用元紹介
01:57 CVE-2014-3120 情報の整理
02:19 Java RCEパターン
03:23 CVE-2014-3120 検証用意
04:46 CVE-2014-3120 ハンズオン
06:04 CVE-2014-3120 リバースシェル パターン#1
07:37 ワンライナーsmbサーバー
07:55 CVE-2014-3120 リバースシェル パターン#2
09:27 CVE-2015-1427 検証準備
09:53 Property Oriented Programming概念紹介
10:15 CVE-2015-1427 ハンズオン
11:09 CVE-2019-8341 (Python)
11:50 テンプレートの構文
12:30 CVE-2019-8341 ペイロードの理解(mro)
13:10 dockerコマンドの復習
13:50 CVE-2019-8341 インジェクションの検証
16:04 stdout=-1とは
16:35 練習問題 : __builtins__からsubprocessを実行するには
Active Directory の基礎を手を動かしながら学習しましょう。主に攻撃側の視点からオンプレミスのADを見て行きます。概念がやや複雑なので、ゆっくり目の進行になります。
今回は基礎中の基礎、時刻同期の重要性について。
※見やすさ向上のため、セクション4から分割します。
演習対象のSMBからどの様な情報が得られるか、ツール(NetExec)を使って調査してみましょう。
また、Windows環境の古い脆弱性についても実際に手を動かして体験してみましょう。
今回はBloodHound CEの起動方法を解説します。BloodHound CEの起動にはdocker composeが必要ですが、Kali Linuxのapt経由ではv1のみしかインストールできません(撮影時)。
そこで、docker compose v2を手動でインストールし、BloodHound CEを起動してみましょう。さらに、dockerコマンドに関するよくある質問について2つほど実践的に学んでいきます。
Kerberoasting攻撃について、まずは体験してみましょう。体験だけでもそれなりのボリュームになります。
恐らく説明を読んだだけでは、いまいち意味が分かりにくいと思いますので、要所要所の技術的な解説は次回以降行います。
Kerberoasting攻撃をなるべく詳細に、一般の日本語資料ではあまり出ていない部分まで踏み込んで解説しています。
甘口:因果関係が明確であまり理解に努力を必要としない(と思われる)
Powershell Empire の仕様変更があったため、内容を新しくしました。
順次アップデートしていきます。
後半は実行時に出力される、インターネット上にほぼ情報がない謎のメッセージを解決しましょう。
目次
00:00 イントロダクション
00:24 基本練習で使用するコマンド一覧
00:35 server, cleint 起動
01:15 uselistener http
02:18 listener設定後の注意事項
02:40 usestager windows/launcher_bat
03:39 impacket-smbserver
04:26 interact
04:49 リモートクライアントからの接続
06:05 リセット
----------------------------------------------------
06:16 後半 ネットに情報が殆ど無いエラーメッセージをどう処理するか
06:45 メッセージの紹介(2種類)
06:46 csharpserver output stream closed
07:54 SAWarning
08:00 warningの定義
08:50 メッセージから手がかりを探す
11:50 具体的な解消方法
12:12 まとめ
Metasploitで、ローカルエクスプロイトを用いて攻撃する手法について解説しています。
権限が低いシェルであっても、適切にアップデートされていないシステムでは容易に管理者権限を取得できる場合があります。
現実的には本セクションの攻撃はWAF・AV等によってほぼ100パーセント防御できますが、攻撃者がどのように脆弱性をコンビネーションするのか、基本的な発想を知る機会にしていただけると幸いです。
併せて、burp suiteの基本的な使い方も紹介しています。
Empireを使った攻撃方法について解説しています。また、ツールを使用していて遭遇するバグへの対処法も解説しています。
「ツールを修正する」という固定的な発想からいかに自由になるかがポイントです。
ツールをなるべく使用しない権限昇格の方法について解説しています。このセクションでは管理者権限を持つアカウントのパスワードが流失している前提で、攻撃者はそのパスワードを使用して、powershellでどのように権限昇格を行うのかデモンストレーションしています。
これまでのデモで行ってきた内容をコードで記述することにより、より一層理解を深めましょう。
ファイルのアップロードやリモートコマンド実行自動化を含み、単純なTCP通信では終わらない題材を選びました。
本レクチャーではPythonを使用してはいますが、もちろんご自分の一番使いやすい言語で行っても構いません。
今更Pythonかと思う方もいるかもしれません。しかしこのセクションを行うメリットは
脆弱性を利用したPoC(実証コード)をより早く・正確に理解できるようになるという事です。
攻撃者がどのように攻撃を組み立てて検証していくのかを追体験していただくので、当然と言えば当然なのですが。
プログラミングが苦手でなんとなく避けていた方も、サイバーセキュリティで最低限理解しておきたい
プログラミングのエッセンスを本セクションに詰めておきましたので、是非チャレンジしてみてください。
HTTPS接続から、パスワードの抽出までを解説しています。
HTTPSの接続時のネゴシエーションについて、理解を深めましょう。
PythonでMysqlサーバに接続し、SQLコマンド実行結果を取得する方法を解説しています。
他のプログラムをPythonから操作するのに欠かせないPopenの説明をしています。Python公式のドキュメントも参照しながら、自分で動かしてみましょう。
PoepnでJohnを動かして、解析結果を受け取るところまでを解説しています。
ログインを伴う自動化をコードで記述する際の注意点について触れています。
Pythonでのログインまでを解説しています
Pythonでのファイルアップロードを解説しています
これまでのコードすべてを連携させます
node.jsの安全でないデシリアライゼーション2023年版です。
以前の物よりかなり内容・時間を圧縮して、映像・音声的にも見やすくしました。
列挙部分を解説しています。
脆弱性の発見からRCEの実行までを解説しています。
水平権限昇格の解説をしています。
root権限への昇格について解説しています。
♯1の引用元等をまとめた資料です。
本チャプターを理解する上での前提知識を解説しています。
攻撃者視点から見た「コンテナ」がどの様に見えているのか、ご参考になれば幸いです。
docker security #2で必要なコマンド、作業一覧を記述しています。
もしかすると文字が小さくて見にくいかもしれないので、後ほど同一内容のPDFバージョンも用意します。
使いやすい方をお使いください。
dockerを使った、意図的に脆弱なWebアプリケーションの弱点を見つけてみましょう。
この回では起動のための準備を解説しています。
burp suiteでlocalhostへの通信を検査する設定方法を解説しています。
Dockerを使ったWebアプリケーション(脆弱性学習用)の検査手法解説をしています。
コンテナ環境に慣れるための準備運動なので、ご興味が無ければ飛ばしてください。
ナレーションの訂正
2:15 「暗号アルゴリズム」 → 「ハッシュアルゴリズム」
新年一発目のやらかしです、すいません。
2024/04 大変失礼いたしました。資料を公開し忘れていたので、公開します。
Webアプリケーションへのディレクトリブルートフォースを演習します。
内容は単純ですが、単純な攻撃を組み合わせて色々なバリエーションを生み出されると、防御する側としてはかなり厄介であることを体験してみましょう。
#3と同じwebアプリケーション(脆弱性学習用)を全く別の角度から検査してみましょう。
#4-1,4-2は#3と同様、docker環境に慣れるための演習です。
gobusterを使用するので、go言語・gobusterのインストールを解説しています。
2024/04 大変失礼いたしました。資料を公開し忘れていたので、公開します。
#4-1,4-2は#3と同様、docker環境に慣れるための演習です。
dockerのNW環境に慣れる練習をしてみましょう。
脆弱性検査用のマシンを使用して、docker API(TCP)が外部に公開されているとどうなるのか
シミュレーションしてみましょう。
・APIに対して実際にどの様な通信が発生するか
を主に解説していますので、防御側の立場の方に有用と思います。
最後の演習はやや複雑なので、実際に手を動かす前に
・何をするのか
・補足資料
の解説をしています。
この後の#6-2で演習用のターゲットを攻略、#6-3ではツールが自動実行した事を実際手動でやってみます。
実際のインシデントをベースにした練習素材で、コンテナ環境からの脱出を演習してみましょう。
githubの解説ページ通りにやると、途中でコピペをミスった場合最初からやり直しになってしまう可能性が高いので、ツールを使用して手順を簡略化してあります。
cgroup notify_on_releaseを使用したdocker escapeの演習です。
※現在はカーネルにパッチが当たってこの手法はふさがれています。
overlayfs内のファイルを無理やりに変更したりしますので、システムが破損する可能性があります(可能性はかなり低いですが)。
演習用の環境をご用意いただくことを強く推奨いたします。
頭に年度(【2024】など)があるものが、内容を見直して更新した物です。
まだまだ古い物と混在していますが、1~2週間に一本の割合で更新中です。
2024/12 Kerberoasting攻撃についての詳細な解説を追加しました
2024/11 「Active Directory 基礎」の追加を継続
2024/10 「Active Directory 基礎」の追加を開始しました
2024/09 Stapler のセクションのリニューアルを完了しました
2024/08 セクション3(旧セクション4)にWebアプリケーション列挙の項目を追加しました
2024/08 セクション3(旧セクション4)にMetasploit基礎設定項目の詳細解説(stapler #1-3)を追加しました
2024/07 セクション3(旧セクション4)stapler 、scanについて更新しました
2024/07 旧セクション3と旧セクション4の順序を変更しました。学習方法についてのご相談が増えてきたので、Staplerのセクション(セクション3)に学習方法についての記事を追加しました。
2024/07 セクション4 Staplerを更新中です。
2024/07 セクション3を更新中です。新たにActive Directory関連演習を追加予定です。
2024/06 セクション3を更新中です
【注意事項】
- 本講座の内容を許可なく外部に実施した場合、法律に抵触し処罰される可能性があります。必ずクローズドな環境で行ってください。また本講座の学習過程で発生したいかなる損害においても一切の責任は負いません。
- プレビューを見て、納得できると思う方はご受講ください。
- 簡単すぎる・難しすぎる、もう少し解説が欲しい等はお気軽にご相談ください。
実践重視のアプローチをとっていますので、概念的な話はほとんど出てきません。どう攻めるかどう守るかを手を動かして理解していくコースです。IT技術を広く総合的に扱っているため、CTF等の経験が無い方は戸惑う場面があるかもしれません。
プレビューを見て、納得できると思う方はご受講ください。
まず相手の発想方法を理解しましょう
本コースでは完全にクローズドなNW環境を構築し、CTF用サーバを実際に攻撃することで、サイバー攻撃者の発想や着目点を理解することに重点を置きました。
他のIT分野との大きな違いは、1.明確に悪意を持って攻撃を行う人間が存在する事、2.その集団は攻撃を受けるあなたが何の専門家(プログラマー、コンサルタント、Web開発者、サーバエンジニア、ネットワークエンジニア等)であるかなど一切考慮しない、と言う点です。
最新の複雑な攻撃方法は扱っていません
攻撃手法自体は基礎的で単純明快な物を選びました。個々の技術的要素より、まず全体像を掴み、結局侵入者は何を達成したいのか
どのような情報を求めて何をするのかに集中していただくためです。
ツールに依存しない
新たに追加されたPythonのセクションでは、イチからツールを作成します。既存のツールをほとんど使用しません。
オリジナルツールの開発を通じて、攻撃者側の発想をより深く理解していきましょう。
また、Secure code reviewのセクションではwebアプリケーションのゼロデイ発見からPoCコード作成を疑似体験して頂けます。
コースの構成
複合的な攻撃技術の理解に際し、最低限攻撃側としてのハンズオンの経験が欲しい物をエッセンスにしてまとめてあります。また、攻撃過程でどのような問題に遭遇するのか体験することで、効率的な防御行動が起こせると考えています。
そのため解説を観ながらやるのではなく、最初にまずご自分でやってみてから分らない箇所をさらに調べて、自分だけの資料(攻撃手法、防御側の対応、根底にある技術・発想は何か)を作ってみてください。その調査の過程こそ、攻撃者が実際の攻撃までに辿ってきた過程です。
特にご自分で調査検証して頂きたいと思う箇所は意図的に触れていない場合があります。ご了承ください。疑問点はお気軽にご質問ください。
【注意】コース全体でNWの知識があることを前提としています。1~3は特にその他の前提条件はありません。4,5は何らかのプログラミング言語の素地(入門書をやり終えた程度)があると学習効率が高まると思います。
本講座終了時には
未知のサイバー攻撃であっても、ある程度攻撃者の意図を先読みできるようになります
複雑なサイバー攻撃であっても、要所要所で何を目的としているのか自力で理解できる素地が出来ます
履歴
2024/03 docker security を更新しました
2023/12 安全でないデシリアライゼーション(node.js)全4話を公開しました。
2023/10 「HTB Sniper 権限昇格2」を公開しました(2023とついている動画が最新です)
2023/3
諸事情により更新が滞っており申し訳ありません。2023/6辺りより、更新を再開いたします。
内容はもちろんの事、「BGM大きすぎ」、「声小さい」、「早口すぎ」、「画面に余計な物映ってる」、「説明不足」
まあ俗にいう動画品質のバラつきですね。ここら辺を修正して、より快適に受講できるように再構成します。
* 2023/09 「2023 HTB Sniper 水平権限昇格」を公開しました。
* 2023/06 環境構築概要をアップデートしました。今後このような品質で全編ご提供致します。
* 2022/09 Metasploitable3 Eternalblueのセクションをリニューアルしました。
* 2022/07 Stapler のWebアプリケーションの部分をリニューアルしました。(プレビュー可能)
* 2022 リニューアルを開始しました
*2022 さらに実戦的な内容(Rabbithole breakout)を追加しました
*2021 Dockerのセクションを追加しました
*2020/12 netdiscover 「攻撃用ツールの理解」のセクションに追加しました
*pythonとnode.jsのセクション難易度に合わせて、初級→中級へ難易度を変更しました
*2020/10 Insecure Deserialization (安全でないデシリアライゼーション)のセクション追加
** "Insecure Deserialization" section has English Subtitles! ** : node.jsのセクションに、試験的に英語字幕を付けました
*2020/02 Pythonによる攻撃自動化 のセクションを追加しました。
*2020/01 Empire、Powershell関連のセクションを追加しました。