🤨

CTFやHTB用のメモ

2022/09/27に公開

セキュリティノート

本とかの用語やツールをまとめています。
自分用ですが誰かの役に立てたら嬉しいです

ほかの人のチートシート等

まとめてあったり役に立ったりしたサイト

https://github.com/sanposhiho/MY_CHEAT_SHEET

https://github.com/yukitsukai47/PenetrationTesting_cheatsheet

https://github.com/OWASP/www-chapter-japan/tree/master/secreq

https://kakyouim.hatenablog.com/entry/2020/04/17/182049

マルウェア解析に必要な素養

サブドメイン列挙

名前 説明
Knock Knockはワードリストに精度が左右される
DiscoverScript 要調べ
Sublist3r 検索エンジンを使用してサブドメインを列挙する。検索クエリを使用するため、ブラックリストに載ってしまう場合あり
SubBrute 高い匿名性と高速スキャンを実現した。標的のネームサーバーにトラフィックを直接送信しない。
DNSレコードを列挙するDNSスパイダー機能も実行する(massDNSを使えば高い性能になる)

GIT 情報収集

名前 説明
TruffleHog Gitのコミットりれきとブランチでエントロピーの高い文字列をスキャンして出力する。
Git-All-Secrets 大きな組織を調べるときに使う。セットアップが少しめんどくさい。TruffleHogとrepo-supervisorを使ってスキャンを行う。

クラウド

名前 説明
slurp バケットの列挙。キーワードまたはリストを受け取り複数の組み合わせを行い、パケットの検出を試みる。
BucketFinder パケットの特定と内容をすべてダウンロードして解析できるようにする。

脆弱なサブドメインをチェックする

・Tko-subs(https://github.com/anshumanbh/tko-subs)

ドメイン奪取

・HostileSubBruteforcer(https://github.com/nahamsec/HostileSubBruteforcer)

・AutoSubTakeover(https://github.com/JordyZomer/autoSubTakeover)

OSINT(Open source Intelligence?)リンク集

https://github.com/IVMachiavelli/OSINT_Team_Links

OSINT Framework

http://osintframework.com/

OWASP Tsting Guide

https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents

https://www.owasp.org/images/1/19/OTGv4.pdf

ツール等の一覧

脆弱性診断等に使うツールや拡張機能。
まとめてあったほうが便利なので別でまとめています。

名前 説明
Metasploit オープンソースで、脆弱性、ペネトレーションテスト、侵入検知システム、シェルコードのアーカイブ、アンチフォレンジクスなどができる
Wappalyzer 表示中のWebページで利用されているソフトウェアやサービス、フレームワークなどを一覧表示する。
拡張機能などで使用可能。
BuiltWith 閲覧中のWebページに利用されている技術を調査できる拡張機能。
Retire.js Webアプリケーションに脆弱なJavaScriptライブラリを使用しているかを確認する。
BurpSuite ローカルプロキシツール。キャプチャをしたり、リクエストの値を変えたりと便利ツール。コミュニティ版とプロ版がある。
OWASP Zap オープンソースのWebアプリケーションセキュリティスキャナーBurpSuiteと同様便利ツール※要調べ
DirBuster Webアプリケーションのファイルやフォルダーを発見するためのツール。Webブルートフォースツール。
FeroxBuster Webブルートフォースツール。DirBusterと似たようなツール。DirBusterなどが使えないときに使う。
GoBuster 軽量で高速なWebブルートフォースツール。サブドメイン等も列挙ができる。GUI版もある。
fuff WEBファジングツール。Gobusterなどのブルートフォースツールと同じくくり。 早いらしい
BeEF XSSをさらに強力にするツール。キャンペーン、ユーザーの追跡、認証情報のキャプチャなどができる。
Tqlmap テンプレートインジェクションの様々な組み合わせをすべて試してみることができる。
Knock Knockはワードリストに精度が左右される
DiscoverScript 要調べ
Sublist3r 検索エンジンを使用してサブドメインを列挙する。検索クエリを使用するため、ブラックリストに載ってしまう場合あり
SubBrute 高い匿名性と高速スキャンを実現した。標的のネームサーバーにトラフィックを直接送信しない。
DNSレコードを列挙するDNSスパイダー機能も実行する(massDNSを使えば高い性能になる)
TruffleHog Gitのコミットりれきとブランチでエントロピーの高い文字列をスキャンして出力する。
Git-All-Secrets 大きな組織を調べるときに使う。セットアップが少しめんどくさい。TruffleHogとrepo-supervisorを使ってスキャンを行う。
slurp バケットの列挙。キーワードまたはリストを受け取り複数の組み合わせを行い、パケットの検出を試みる。
BucketFinder パケットの特定と内容をすべてダウンロードして解析できるようにする。
Spray ブルートフォースアタックを行うツール?
ruler MAPI/HTTPまたはRPC/HTTPプロトコルを使ってExchangeサーバーとやり取りができる。
Responder IPv6 / IPv4 LLMNR / NBT-NS/mDNSポイズナー?(要調べ)
Empire Powershell Powershellの機能を使って攻撃を再現する。かなり強力なツール(要調べ)
Blood HoundAD ActiveDirectory攻撃パスを継続的にマッピングおよび定量化する攻撃パス管理ソリューション?
CrackMapExec(CME) Active Direcotryへの自動セキュリティアセスメントツール(post-exploitation)で、できるだけIDS/IPSに検知されないように設計されたもの。
内部でImpacket, PowerSploit, Mimikittenzなどが使われているらしい。
nikto Webアプリケーション脆弱性スキャナー。かなり便利
AutoRecon TCPのデフォルト1000ポートスキャンのNmapScanを実行
そこからNmapのVulnスクリプトやNikto、enum4linuxなどを実行してくれる。空いてるポート見逃しが結構あるらしいので注意。参考
LFI2RCE LFIなどの脆弱性に対して使う。
Evil-Winrm 資格情報とアクセス許可がある場合に使用することのできるリモートシェルプログラム。

攻撃の手口

名前 説明
フィッシング 受信者がドキュメントを開いたり、悪意のあるハイパーリンクにアクセスするように説得する電子メールなどを送信して、個人情報などを盗む。
スピアフィッシング 成功率の高い攻撃の一種。特定の人を狙ってメールなどで攻撃をする。
ソーシャルエンジニアリングなどで人物の情報を収集することを中心としている。
プリテキスティング 標的を説得して機密情報を露呈させたり、悪意のあるアクションを実行させる。電話や電子メールなども用いることが多い。
ベイティング 戦略に則って、悪意のあるUSBなどを物理的なところに配置し、標的がそれを拾って内部システムに接続するように誘導すること。
XSS(クロスサイトスクリプティング) 下に詳細 Webアプリケーションの脆弱性もしくはそれを利用した攻撃。
攻撃者がそこに悪質なサイトへ誘導するスクリプトを仕掛けることで、サイトに訪れるユーザーの個人情報などを詐取する。ブラウザによって動作が大きく異なる場合がある。
XSS作成参考:(https://github.com/foospidy/payloads/tree/master/other/xss)
(https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet)
キーロガー キーボードから入力した文字情報などを記録するソフトウェアだが、悪用して個人情報などを盗むことも可能。
SQLインジェクション アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法。SQL MAP
NoSQLインジェクション SQL以外のデーターベースを標的にしたもの(※要調べ)
NoSQL injectionペイロード
Hacking NodeJS and MongoDB
Testing for NoSQL injection
デシリアライゼーション攻撃 データをシリアライズされた時と同じ状態に復元すること。このデシリアライゼーションの処理に対して、悪意のあるデータを与え、意図しないオブジェクトを復元させることで攻撃が成立する。
テンプレートエンジン攻撃 ユーザー入力がテンプレートに直接渡され、テンプレートそのものが変更可能な時に起こる。
Server-Side Template Injection
Yahoo! RCE via Spring Engine SSTI
SSTI判別チートシート
RCE(Remote Code Execution) オペレーティングシステムやWebアプリケーションの脆弱性を突いて任意のコードを実行するような攻撃手段。チートシート
LFI(Local File Inclusion) ターゲットのサーバ上のファイルに対し、不正なスクリプトを挿入し、デフォルトファイル名の変更、データのアップロードやダウンロードの実行等ができる
SSRF(Server-Side Request Forgery) 通常の方法ではアクセスできないサーバーに対して攻撃を仕掛ける手法。・localhostのエンコーディング
Airbnbのバグバウンティ
DOS(Denial of Attack) ウェブサービスを稼働しているサーバやネットワークなどのリソースに意図的に過剰な負荷をかけたり脆弱性をついたりすることでサービスを妨害すること
CSRF(クロスサイトリクエストフォージェリー) Webアプリケーションに存在する脆弱性、もしくはその脆弱性を利用した攻撃方法
XXE(XML External Entity) XMLの外部参照機能を使って、機密情報を含む内部ファイルを読み出す不正行為。
Etienne StalmansのXXEペイロード
Daniel MiesslerのXXEペイロード
XST(Cross-site Tracing) XSSとTRACEメソッドを組み合わせた攻撃手法。化石らしい?
ブルートフォースアタック 可能な組合せを全て試すやり方
パスワードスプレー IDやパスワードを組み合わせて連続的に攻撃するブルートフォース攻撃の一種。アカウントロックを回避する手法を持つパスワード攻撃。
Null Byte攻撃 「\0」「\x00」「%00」といった文字列の終わりを意味する制御文字をリクエストに含めることでセキュリティーチェックをすり抜ける手法。

セキュリティ単語集etc...

名前 説明
OWASP Webアプリケーションセキュリティの分野で自由に利用できる記事、方法論、ドキュメント、ツール、およびテクノロジを作成するオンラインコミュニティ。
https://owasp.org/www-chapter-japan/
スナップショット スナップショットとは、NAS上のファイルやフォルダの状態を定期的に記録・保存しておく技術。参考:(https://note.com/qnap/n/n2b9f5ff6bc11)
C&Cサーバー(C2サーバー) 侵入して乗っ取ったコンピュータを利用した攻撃で、踏み台のコンピュータを制御したり命令を出したりする。
BlackHat 世界最大規模のセキュリティカンファレンス。
SSTI Server-Side Template Injection
フォレンジック デジタルデバイスに記録された情報の回収と分析調査などを行うこと
XML(Extensible Markup Language) データを読みやすい形式で送信/格納することを目的として設計された
DTD(Document Type Declaration) SGMLやXML、HTMLなどのマークアップ言語で記述された文書の冒頭などに記載される。
MAPI(Messaging Application Programming Interface )/HTTP Outlook と Exchange の接続の信頼性と安定性を改善するために、
トランスポート層を業界標準の HTTP モデルに移行させているトランスポート プロトコル。
RPC/HTTP Microsoft Outlook クライアントが HTTP を介して Microsoft Exchange サーバーにアクセスするための Microsoft プロトコル。
メモリリーク プログラミングにおけるバグの一種。プログラムが確保したメモリの一部、または全部を解放するのを忘れ、確保したままになってしまうこと。
SaaS 必要な機能を必要な分だけサービスとして利用できるようにしたソフトウェアもしくはその提供形態のこと。
NTLM(NT LAN Manager) マイクロソフトによるセキュリティプロトコル。LAN Manager (LANMAN, LM) の後継。
Activate Directory ディレクトリ・サービス・システム。ユーザとコンピュータリソースを管理するコンポーネント群の総称

XSS

XSSの詳細な情報

XSS MIND MAP @Jackmasa

HTML Security CheatSheet

Polyglot

様々な種類のペイロードと難読化手法を1つの攻撃として組み合わせる

BeEf(Browser Explotation Framework)

XSSをさらに強力にするツール。

標的のブラウザにJavaScriptペイロードを注入し、ユーザーのシステムを感染させる。

キャンペーン、ユーザーの追跡、認証情報のキャプチャ、クリックジャッキング、タブナッピングによる攻撃を実行できる。

ブラインドXSS

ブラインドは忍耐を要する攻撃。

蓄積型XSSのペイロードが攻撃者やユーザーからはみえず、システム管理者やバックエンドオペレータにだけ見える攻撃。

ブラインドXSSの検証にはXSSHunterを使うことができる。

DOM(Document Object Model)ベースのXSS

DOMベースのXSSが可能になるのは、アプリケーションがDOMを通じて動的にHTMLを組み立てている箇所で、悪意を持つスクリプトを注入できる場所。

XSSが何度でも通じる大きな理由の一つは、タグや特定の文字の単なるフィルタリングではないから。

ペイロードが特定の言語やフレームワークを対象としたものである場合、XSSに対する防衛は困難を極める。

脆弱性に関しては、言語ごとに奇異な点がある。

フィルタをかわしてJavaScriptを挿入するにはJsFuckなどをを使って難解な表記を利用する(Node.js,pugのみ?)

XSSからシェルを取得

CMS(Content Management System)などでユーザーからシステム管理者に昇格するスタイルのXSS。

ウォークスルーサンプルコードHans-Michael VarBaekのGITリポジトリ
このリポジトリはXSS to RCE攻撃を再現するためのサンプルや動画を提供してくれている。

Discussion