見出し画像

335.2 ペネトレーションテスト


335: 脅威と脆弱性評価
335.2 ペネトレーションテスト

LPIC303の試験範囲である主題331~335まであるうちの「335: 脅威と脆弱性評価」から「335.2 ペネトレーションテスト」についてのまとめ

  • 総重量:3

  • 説明:
    ペネトレーションテスト(侵入を試みるテスト)についての理解していて、一般的に利用されているペネトレーションテストツールの理解もしている。さらに、nmapを利用してネットワークのセキュリティ計測を効果的に行うことができる。

  • 主要な知識範囲:

    • ペネトレーションテストとエシカルハッキングの概念の理解。

    • ペネトレーションテストの法的な影響の理解

    • アクティブ・受領的な情報収集・列挙・アクセス権取得・権限昇格・アクセスメンテナンス・カバートラック(侵入後の痕跡を隠す・消すこと)などの、ペネトレーションテストのフェーズを理解する。

    • Metasploitのコンポーネントと構造を理解する。これには、MetasploitモジュールタイプとMetasploitが様々なセキュリティツールをどのように統合しているかの理解も含まれる。

    • nmapをネットワークとホストスキャンに利用する。これには、様々なスキャンの方法・バージョンスキャン・オペレーティングシステムの認識も含まれる。

    • Nmap Scripting Engineの概念の理解と、存在するスクリプトの実行。

    • Kali Linux・Armitage・Social Engineer Toolkit(SET)の知識。

  • 重要なファイル、用語、ユーティリティ:

    • nmap


ペネトレーションテストとエシカルハッキング

ペネトレーションテスト

サイバー攻撃の手法を使って、対象となる企業や組織に侵入を試みることでセキュリティレベルの評価を行うこと。

エシカルハッキング

倫理的なハッキング。
組織やシステムの脆弱性を法律の範囲内で調査活動する。
エシカルハッキングを行う人を「エシカルハッカー」と呼ぶ。
日本では「ホワイトハッカー」として知られる。



ペネトレーションテストの法的な影響

<・・・調査中・・・>

ペネトレーションテストはサイバー攻撃の手法を使うことから、許可なく実行すると「不正アクセス行為の禁止等に関する法律(不正アクセス禁止法)」に抵触する恐れがある


ペネトレーションテストのフェーズ

フェーズ

  • アクティブな情報収集/パッシブな情報収集

  • 列挙

  • アクセス権取得
    侵入できるかを調査

  • 限昇格
    権限昇格などによって乗っ取りが可能か調査する

  • アクセスの維持
    いつでもアクセスできる状況がないか調査

  • カバートラック
    侵入後の痕跡を隠す・消すこと

  • レポート作成
    分析結果を報告をする

参考


Metasploitのコンポーネントと構造

Metasploit

コンピュータセキュリティに関するオープンソースのプロジェクトで、脆弱性、ペネトレーションテスト、侵入検知システム、シェルコードのアーカイブ、アンチフォレンジクス(コンピュータ・フォレンジクスによる解析への対抗技術)などを主な守備範囲としている。

Metasploit - Wikipedia

msfconsole

  • Moduleコマンド

    • search
      モジュールを検索する

    • use
      使うモジュールを指定する

    • show
      モジュールを使用するにあたっての必要なパラメータを確認

    • set
      モジュールにパラメーターを指定

    • run
      実行

Metasploitモジュール

  • Auxiliary modules
    直接攻撃をしない補助ツール
    管理、分析、収集、サービス拒否、スキャン、各種プロトコルのサポートをする

  • Encoder modules
    取得したデータをエンコードする

  • Evasion modules
    ウイルス対策ツールなどを回避する

  • Exploit modules
    脆弱性を利用するために使用する

  • Nop modules
    ノーオペレーション命令を生成する
    スタックバッファオーバーフローと併用される

  • Payloads modules
    侵入が成功した後に実行される任意のコード (シェルコード) をカプセル化したもの

  • Post modules
    侵入が成功した後のデータの収集、収集、列挙に使う

参考


nmapをネットワークとホストスキャンに利用

インストール

  • RockyLinux 9

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# dnf install nmap
[root@lpic303-rocky34 ~]#
  • Ubuntu 22.04

root@lpic303-ubuntu35:~#
root@lpic303-ubuntu35:~# apt install nmap
root@lpic303-ubuntu35:~#

ターゲット

  • -iL <ファイル名>
    対象をファイルから取得しスキャンする

  • -iR <ホスト数>
    ランダムに選択する

  • --exclude <host1[,host2][,host3],...>
    除外するホストを指定

  • --excludefile <exclude_file>
    除外するファイルを指定

ホスト検出

  • -sn
    Ping スキャン

  • -Pn
    ホスト検出

  • -sO
    IPスキャン

スキャンタイプ

  • -sS
    TCP SYNスキャン
    ステルススキャン

  • -sT
    TCPコネクトスキャン

  • -sU
    UDPスキャン

  • -sF
    TCP FINスキャン
    FINフラグを使ったスキャン

  • -sX
    クリスマスツリースキャン
    TCP FIN, PSH, URG フラグを使ったスキャン

  • -sN
    NULLスキャン
    TCPフラグをセットしないスキャン

  • -sA
    TCP ACKスキャン

ポート指定、スキャン順序

  • -p <ポート範囲>
    ポート範囲を指定

  • --exclude-ports <ポート範囲>
    除外するポート範囲を指定

  • -F
    高速モード、デフォルトのスキャンよりも少ないポートをスキャン

  • -r
    ポートを順番にスキャン

サービス検出

  • -sV
    開いているポートを調査してサービス/バージョン情報を確認する

スクリプトスキャン

  • -sC
    --script=default と同等

  • --script=<Luaスクリプト>
    カンマ区切りでスクリプト、ディレクトリ、カテゴリを指定

OS検出

  • -O
    OS検出を有効にする

出力

  • -oN <ファイル名>
    ファイル出力

  • -oX <ファイル名>
    XML 形式で出力

  • -oG <ファイル名>
    Grepable 形式で出力

  • -v
    詳細出力

  • -d, -dd
    デバッグレベルを上げる

  • --reason
    ポートの状態を表示

  • --open
    開いているポートのみ表示

その他

  • -6
    IPv6スキャン

  • -A
    OS検出、バージョン検出、スクリプトスキャン、トレースルートを有効にする

参考


Nmap Scripting Engine

The Nmap Scripting Engine (NSE) is one of Nmap's most powerful and flexible features. It allows users to write (and share) simple scripts (using the Lua programming language ) to automate a wide variety of networking tasks.
↓↓↓Google翻訳↓↓↓
Nmap Scripting Engine (NSE) は、Nmap の最も強力で柔軟な機能の 1 つです。 これにより、ユーザーは (Lua プログラミング言語を使用して) 簡単なスクリプトを作成 (および共有) し、さまざまなネットワーク タスクを自動化できます。

Nmap Scripting Engine (NSE) | Nmap Network Scanning

スクリプトのディレクトリ

/usr/share/nmap/scripts

スクリプトのカテゴリ

  • auth

  • broadcast

  • brute

  • default

  • discovery

  • dos

  • exploit

  • external

  • fuzzer

  • intrusive

  • malware

  • safe

  • version

  • vuln

実行例

自分自身(localhost)に対して TCP SYN スキャン(-sS)を実行する。
ssh接続できるようにしているので "22/tcp open ssh" と出る。

[root@lpic303-rocky34 ~]#
[root@lpic303-rocky34 ~]# nmap -sS localhost
Starting Nmap 7.92 ( https://nmap.org ) at 2024-02-19 21:04 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
[root@lpic303-rocky34 ~]#

自分自身(localhost)に対して "default" カテゴリを使ってスキャンを実行する。ssh接続できるようにしているので "22/tcp open ssh" と合わせて追加情報として "ssh-hostkey" が表示される。

[root@lpic303-rocky34 ~]# 
[root@lpic303-rocky34 ~]# nmap --script=default localhost
Starting Nmap 7.92 ( https://nmap.org ) at 2024-02-19 21:00 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000020s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 999 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
| ssh-hostkey:
|   256 bc:b0:c6:aa:c8:91:05:33:6d:b3:1b:74:4f:0b:9f:31 (ECDSA)
|_  256 f6:97:3d:60:ba:4b:54:2f:a7:9c:0a:ab:67:19:47:a3 (ED25519)

Nmap done: 1 IP address (1 host up) scanned in 1.33 seconds
[root@lpic303-rocky34 ~]#

参考


Kali Linux・Armitage・Social Engineer Toolkit(SET)の知識

Kali Linux

デジタル・フォレンジックやペネトレーションテスト用に設計された、Debian派生のLinuxディストリビューションである。

Kali Linux - Wikipedia
┌──(root㉿kali)-[~]
└─# cat /etc/os-release
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
VERSION_ID="2023.4"
VERSION="2023.4"
VERSION_CODENAME=kali-rolling
ID=kali
ID_LIKE=debian
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
ANSI_COLOR="1;31"

┌──(root㉿kali)-[~]
└─# 

Armitage

Armitage is a graphical cyber attack management tool for Metasploit that visualizes your targets, recommends exploits, and exposes the advanced capabilities of the framework.
↓↓↓Google翻訳↓↓↓
Armitage は、ターゲットを視覚化し、エクスプロイトを推奨し、フレームワークの高度な機能を公開する、Metasploit 用のグラフィカルなサイバー攻撃管理ツールです。

GitHub - r00t0v3rr1d3/armitage: Fork from @rsmudge/armitage
┌──(root㉿kali)-[~]
└─# apt install armitage

┌──(root㉿kali)-[~]
└─# 

Social Engineer Toolkit(SET)

The Social-Engineer Toolkit is an open-source penetration testing framework designed for social engineering.
↓↓↓Google翻訳↓↓↓
Social-Engineer Toolkit は、ソーシャル エンジニアリング用に設計されたオープンソースの侵入テスト フレームワークです。

GitHub - trustedsec/social-engineer-toolkit
┌──(root㉿kali)-[~]
└─# apt install set

┌──(root㉿kali)-[~]
└─# 


この記事が気に入ったらサポートをしてみませんか?