Shikata Ga Nai

Private? There is no such things.

コードインジェクションや特権昇格の手法についてまとめてみた

Hello there, ('ω')ノ

コードインジェクションや特権昇格は、システムやアプリケーションに対する攻撃で広く利用される手法です。これらの脆弱性を効果的に探し出し、悪用される前に修正することは、セキュリティの確保において非常に重要です。

1. コードインジェクション

概要: コードインジェクションは、アプリケーションが外部から入力を受け取って動的にコードを生成・実行する際に、攻撃者が悪意のあるコードを挿入して実行させる攻撃手法です。

主な種類:

  • SQLインジェクション:

    • 概要: 攻撃者がSQLクエリに悪意のある入力を挿入し、データベースに対する不正操作を行う攻撃。
    • 手法:
      • 手動テスト: クエリにシングルクオート(')やSQL文(例: OR 1=1)を挿入して、予期しない動作を確認します。
      • 自動ツール: SQLmapを使用して、SQLインジェクションの脆弱性を自動的に検出し、データベース情報を抽出。
        • コマンド例: sqlmap -u "http://example.com/vuln.php?id=1" --dbs
    • 対策: パラメータ化されたクエリ(プリペアドステートメント)を使用し、入力値のサニタイズを徹底。
  • コマンドインジェクション:

    • 概要: アプリケーションが外部からの入力をシェルコマンドとして実行する際に、悪意のあるコマンドを挿入して実行させる攻撃。
    • 手法:
      • 手動テスト: ユーザー入力部分に ;&& などのシェルメタキャラクターを挿入して、シェルコマンドの実行を試みます。
      • 自動ツール: OWASP ZAPやBurp Suiteを使用して、コマンドインジェクションの可能性がある箇所をスキャン。
        • : ping -c 4 example.com の入力に ; ls -la を追加し、システム上のファイルリストを表示させる。
    • 対策: シェルコマンドの直接実行を避け、入力値のサニタイズとバリデーションを行う。
  • HTML/JavaScriptインジェクション(クロスサイトスクリプティング、XSS):

    • 概要: Webページに悪意のあるJavaScriptコードを挿入し、ユーザーのブラウザで実行させる攻撃。
    • 手法:
      • 手動テスト: 入力フィールドに <script>alert('XSS')</script> などのJavaScriptコードを挿入し、ブラウザでの実行を確認します。
      • 自動ツール: Burp SuiteのActive ScannerやOWASP ZAPを使用して、XSSの脆弱性をスキャン。
    • 対策: 入力データのエスケープ、Content Security Policy (CSP)の設定、HTTPOnly属性をつけたクッキーの使用。

: - コマンドインジェクションの検出と悪用: Webフォームで http://example.com/ping?host=example.com に対して http://example.com/ping?host=example.com;ls と入力し、サーバー側で ls コマンドを実行させ、ディレクトリ内容を表示させる。

2. 特権昇格

概要: 特権昇格は、システムで通常は制限されたアクセス権限を持つユーザーが、より高い特権(例: 管理者権限)を不正に取得する攻撃手法です。

主な種類:

  • 垂直特権昇格:

    • 概要: 通常のユーザーが管理者権限を取得すること。
    • 手法:
      • ローカルファイルインクルージョン(LFI): 悪意のあるファイルを読み込ませることで、システムファイルにアクセスし、特権を取得します。
      • 脆弱なサービスやドライバの悪用: システムに存在する脆弱なサービスやドライバを悪用し、特権を昇格します。
      • ツール: MetasploitやWindowsの schtasks コマンドを使用して、スケジュールされたタスクを管理者権限で実行する。
        • コマンド例: schtasks /create /tn mytask /tr "cmd.exe /c net user admin /add" /sc onstart /ru system
    • 対策: アクセス制御リスト(ACL)を適切に設定し、不要なサービスやドライバを無効化、システムの定期的なアップデートを実施。
  • 水平特権昇格:

    • 概要: 同じ特権レベルの他のユーザーのアカウントに不正にアクセスすること。
    • 手法:
      • セッションIDの予測や固定: 弱いセッション管理を悪用し、他のユーザーのセッションIDを取得して、不正にログインします。
      • インジェクション攻撃: アプリケーションでのパラメータ不正操作により、他のユーザーのデータにアクセスします。
        • : http://example.com/user?account=123http://example.com/user?account=456 に変更し、他のユーザーの情報を取得。
    • 対策: セッション管理の強化(セッションIDの長さや複雑性、定期的なID変更)、パラメータ化クエリの使用。

:

  • 垂直特権昇格の実施: Metasploitを使用して、Windowsの脆弱なドライバを悪用し、通常のユーザーからシステム管理者権限に昇格します。
    • コマンド例: msfconsole > use exploit/windows/local/ask で脆弱なアプリケーションを選択し、エクスプロイトを実行。

まとめ

コードインジェクションと特権昇格は、システムの深刻な脆弱性を狙う攻撃手法です。これらの脆弱性を検出し、適切に対処することで、システム全体のセキュリティを強化できます。ペネトレーションテストやセキュリティ監査において、これらのテクニックを駆使して、潜在的なリスクを早期に発見し、対応することが求められます。

Best regards, (^^ゞ