LPIC-303 新版ノート335.2 PenTest / v69 Learning App
LPIC-3 Security303-300 v3.0Weight 3🟡 Understand🔴 nmap Use

335.2 Penetration Testing

335.1で「何の攻撃か」を理解した。335.2では、許可されたSecurity Assessmentがどんな順で進み、どこでnmapやMetasploit等が位置付くかを理解する。

335.2の最終到達点:PenTest/Ethical Hackingと法的な境界、主要Phase、Metasploitの構造を説明し、許可されたLabでnmapのScan Method・Version Detection・OS Recognition・既存NSE Scriptを目的に合わせて選べる。
公式要求:PenTest/Ethical Hacking・法的影響・Phase・MetasploitをUnderstand。nmapはUse。NSEは概念理解+既存Script実行。Kali Linux / Armitage / SETはAwareness。Partial utility: nmap。
335.1からの接続
335.1 「Privilege Escalation / MITM / Injection…とは何か」 ↓ 335.2 「Security Assessmentでは、どのPhaseで何を確認するか」 ↓ 情報収集 → Enumeration → Access → Privilege Escalation → Post-Access ↓ 防御側へ戻る:333 / 332 / 331 / 334
実習の大前提:nmap等の操作例は、自分が所有・管理するHost、明示的に許可されたLab、または演習環境だけを対象にする。335.2では「法的な影響の理解」自体が公式範囲。
DEPTH RULE

Metasploitとnmapで要求深度が違う

  • Metasploit → Architecture / Module Typesを理解
  • nmap → 実際にScan Methodを選び、Outputを読む
  • NSE → 既存Scriptの意味を理解して実行
  • Kali / Armitage / SET → 何者か識別
335.2 · 01/0601 Concept / Legal
🟡 UnderstandEthical / Legal

Penetration Testingは「許可されたScope内で攻撃手法を使って検証する」

このページの到達点:PenTestとEthical Hackingの意味を説明し、技術的に可能でもAuthorization/Scope外なら実施してはいけないと判断できる。
公式要求:Understand concepts of penetration testing and ethical hacking. Understand legal implications of penetration testing.
技術より先に境界を決める
Authorization(実施許可) ↓ Scope(対象 / 対象外) ↓ Rules / Conditions(実施条件) ↓ Security Testing ↓ Finding / Evidence / Report 「できる」≠「やってよい」

Penetration Test

実際の攻撃手法を制御された条件で用い、Security Controlや侵害可能性を確認するAssessment。

Ethical Hacking

所有者等からの許可・合意された目的とScopeの中でHacking技術をSecurity改善へ使う考え方。

法的な問題は「Tool名」ではなく許可とScopeで考える

確認意味
Authorization誰が、何を、どの条件で実施してよいと許可したか。
Scope対象Network/Host/Application/期間等。似た名前の別Systemまで勝手に広げない。
Rules of Engagement停止条件、連絡方法、許可/禁止するTest等を事前に決める理解補助概念。
Evidence / Report何を確認し、どの条件で再現したかを記録して改善へつなげる。
脆弱性Scanとの関係:ScanはPenTestの一部として使われ得る。PenTestは「Toolを回すこと」そのものではなく、許可された目的・ScopeでSecurityを検証する活動全体として捉える。
EXAM DECISION

Legal implicationが出たら最初に見る

  • 明示的な許可があるか
  • Scope内か
  • 実施条件を逸脱していないか
335.2 · 02/0602 PenTest Phases
🟡 UnderstandPhases

PenTest Phaseは「今、何を目的にしているか」で見分ける

このページの到達点:Passive/Active Information Gathering、Enumeration、Gaining Access、Privilege Escalation、Access Maintenance、Covering Tracksをシナリオから判定できる。
公式要求:Understand phases such as active/passive information gathering, enumeration, gaining access, privilege escalation, access maintenance and covering tracks.
Phaseを一本の流れにする
PassiveTargetへ直接触れず情報収集
ActiveTargetへ直接Query/Probe
EnumerationHost/Service/User等を具体化
Gain AccessAccess取得を試す
Privilegeより高い権限へ
MaintainAccess維持
Cover痕跡を隠すPhaseの認識
Phase決定点335.1との接続
Passive GatheringTargetへ直接Probeせず公開情報等を収集攻撃対象をまだ具体化している段階
Active GatheringTargetへ通信して存在・反応を確認Networkへ直接触れる
EnumerationPort/Service/User等を具体的に洗い出す後のAccess手段を判断する材料
Gaining Access実際のAccess取得Initial Access
Privilege Escalationより高い権限へ上がる335.1で学んだ同じ概念
Access Maintenance取得したAccessを維持する侵害継続の段階
Covering Tracks痕跡を隠す/消す行為をPhaseとして識別Rootkit等の「隠蔽」と関連する場合がある
Covering Tracksの扱い:試験ではPhaseとして意味を識別する。実際の許可されたTestでは、勝手にLogや証跡を消すのではなく、事前合意した手順と証跡保全に従う。
シナリオ:許可されたHostに対してPortとService名を洗い出し、どのServiceが動いているか具体化している。
→ Enumeration。単なる公開情報収集より一段具体化している。
EXAM DECISION

Passive / Active / Enumerationを混ぜない

  • 直接触れない → Passive
  • TargetへProbe → Active
  • Service/User等を具体化 → Enumeration
335.2 · 03/0603 Metasploit
🟡 UnderstandArchitecture

Metasploitは「Moduleを組み合わせるFramework」として理解する

このページの到達点:MetasploitのArchitecture、代表的Module Type、他のSecurity Toolと組み合わせる位置を説明できる。操作手順の暗記はしない。
公式要求:Understand Metasploit architecture/components, module types and how Metasploit integrates various security tools.
構造を先に確認
Security Assessment Data / Target Information ↓ Metasploit Framework ↓ Moduleを目的に応じて選択 ├─ Exploit ├─ Payload ├─ Auxiliary └─ Post ↓ 結果・Session・FindingをAssessmentへ戻す

Exploit

脆弱性を利用してSecurity Boundaryを越える処理を表すModule。

Payload

Exploit成功後などにTarget側で実行される処理部分。

Auxiliary

ScannerやProtocol補助など、Exploit以外のAssessment機能。

Post

Access取得後の情報収集等を行うPost-Exploitation系Module。

Encoder / NOP等

Frameworkに存在する他のModule Type。試験では「Module Typeが複数ある」と構造で理解。

Integration

Scanner等で得たTarget/Service情報をAssessment Workflowへ取り込み、複数Toolの情報を組み合わせる考え方。

公式深度に合わせる:335.2でMetasploitはUnderstand。長いmsfconsole手順やPayload操作を中心教材にはしない。実操作の中心はnmap。
EXAM DECISION

Module名ではなく役割から選ぶ

  • 脆弱性利用 → Exploit
  • 成功後に実行される処理 → Payload
  • Scan等の補助 → Auxiliary
  • Access取得後 → Post
335.2 · 04/0604 nmap Scan Methods
🔴 Use nmapHost / Port

nmap①:Host DiscoveryとPort Scanを分け、Scan Methodを目的で選ぶ

このページの到達点:-sn-sT-sS-sU-pを目的から選び、open/closed/filteredを読める。
公式要求:Use nmap to scan networks and hosts, including different scan methods.
実行対象:以下の<authorized-host>は、自分のLab/管理Hostへ置き換える。許可のない第三者Hostへ実行しない。
2段階で考える
Network / Host ↓ Host Discovery 「Hostは応答する?」 ↓ Port Scan 「どのTCP/UDP Portがどう見える?」 ↓ Service / Version / OS(次ページ)

目的 → Option

-sn
Port ScanをせずHost Discoveryを行う。
-Pn
Host Discoveryを行わず、指定Targetを「upとして扱って」Port Scanへ進む。Discovery ProbeがFilterされる環境で意味を持つ。
-sT
TCP Connect Scan。OSのconnect()を使い、通常Userでも使いやすい。
-sS
TCP SYN Scan。TCP Connectionを最後まで確立しないHalf-open型。Unix系では通常Raw Packet権限が必要。
-sU
UDP Scan。UDPは応答がない場合の判定が難しく、open|filtered等になり得る。
-p
ScanするPortを指定。例:-p 22,80,443

安全なLabで基本操作

# localhostのTCP PortをConnect Scan nmap -sT -p 22,80,443 127.0.0.1 # 許可されたHostへSYN Scan(権限が必要な環境あり) sudo nmap -sS -p 22,80,443 <authorized-host> # 許可されたHostの代表UDP Portを確認 sudo nmap -sU -p 53,123,161 <authorized-host>
PORT STATE SERVICE 22/tcp open ssh 80/tcp closed http 443/tcp filtered https
読む:open = ServiceがConnectionを受け付ける状態として見える/closed = Hostは到達できるが待受がない/filtered = Filter等によりopen/closed判定に必要な応答を得られない。

追加のScan Methodは「何を判定しやすいか」で識別

OptionScan試験での見分け方
-sAACK ScanPortのopen/closed判定が主目的ではなく、Firewall/Filteringの把握に使う。filtered/unfilteredの判断軸。
-sNNULL ScanTCP Flagを立てない。RFC準拠HostではClosed時RST等の反応差を利用する方式。
-sFFIN ScanFIN Flagを使う。NULL/Xmasと同系統で、OSやFirewallにより結果の信頼性が変わる。
-sXXmas ScanFIN/PSH/URG等を立てるScan。NULL/FINと同じく、応答解釈がSYN Scanと異なる。
全部を実習する必要はない:公式の「different scan methods」に対し、SYN/Connect/UDPは基本操作まで、ACK/NULL/FIN/Xmasは「方式と主な判断軸」を識別できる深度にする。
「Stealth」の誤解:SYN Scanを使えば検知されない、ではない。Scan MethodのPacket/Connectionの違いを理解する。Security Toolから観測・記録され得る。
EXAM DECISION

何を調べたいかから選ぶ

  • Host Discoveryだけ → -sn
  • Discoveryを飛ばしてTargetをup扱い → -Pn
  • TCP Connect → -sT
  • TCP SYN → -sS
  • UDP → -sU
  • Firewall/Filteringの把握 → -sA
335.2 · 05/0604 nmap Version / OS
🔴 Use nmap-sV / -O

nmap②:Port番号の次にService VersionとOSを推定する

このページの到達点:-sV-Oを使い分け、PORT / STATE / SERVICE / VERSIONの各列を混同せず読める。
公式要求:Use nmap including version scans and operating system recognition.
情報の粒度が上がる
Port Scan 22/tcp open ↓ Service Detection ssh ↓ -sV Version Detection OpenSSH x.x ... Packet応答の特徴 ↓ -O OS Recognition(推定)
# 許可されたHostのService / Versionを調べる nmap -sV -p 22,80,443 <authorized-host> # OS Recognition(Raw Packet権限等が必要な環境あり) sudo nmap -O <authorized-host> # 複数の高度なDetectionをまとめる代表Option(認識用) sudo nmap -A <authorized-host>
PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 9.x 80/tcp open http Apache httpd 2.4.x OS details: Linux ...
-AOS Detection、Version Detection、Script Scan、Traceroute等を有効にする代表的な組み合わせOption。便利だが「何をしているか」を隠してしまうので、まず-sV/-Oを別々に理解する。
列/出力意味
PORTProtocolとPort番号。
STATEopen / closed / filtered等、Probeから見えた状態。
SERVICEPortやProbeから推定されたService名。
VERSION-sVのProbe等で得た実装/Version情報。
OS detailsNetwork Stack等の応答特徴から推定したOS情報。絶対的な証明ではない。
誤解:22/tcp open sshだけを見て「OpenSSHのVersionまで特定済み」としない。Version Detectionは-sVの役割。
要件:「Port 443が開いている」ではなく、そこで動くServer Software/Versionまで確認したい。
-sV
EXAM DECISION

VersionとOSは別

  • Service実装/Version → -sV
  • OSを推定 → -O
  • STATEはFirewall等の影響も受けるため「見え方」として読む
335.2 · 06/0605 NSE / Awareness
🟡 Understand + 🔴 ExecuteAwareness tools

NSE:nmapへ既存Scriptを追加し、Kali / Armitage / SETは役割を識別する

このページの到達点:NSEが何を拡張するかを説明し、既存Scriptを選んで実行できる。Kali Linux / Armitage / SETは何者かを区別できる。
公式要求:Understand concepts of Nmap Scripting Engine and execute existing scripts. Awareness of Kali Linux, Armitage and Social Engineer Toolkit (SET).
NSEの位置
nmap Port / Service Scan ↓ NSE = Nmap Scripting Engine ↓ Existing .nse scripts 追加のDiscovery / Information / Check ↓ 通常のnmap Outputへ統合

まず「何を実行するか」を確認する

# Scriptの説明・Categoryを先に確認 nmap --script-help default # Default Script Setを実行(= --script=default) nmap -sC -p 22,80,443 <authorized-host> # 名前を指定して既存Scriptを実行する一般形 nmap --script <script-name> \ -p <port> <authorized-host>
NSEは全部が無害ではない:Nmap公式にも、default Categoryの一部や他CategoryにはIntrusiveなScriptがあると明記されている。--script-helpで内容を確認し、許可されたScopeだけで実行する。
Option意味
-sCDefault setのNSE Scriptを実行。--script=default相当。
--script name既存Script名/Category等を指定。
--script-help実行前にScriptの説明・Categoryを確認できる。

Awareness 3項目はここで止める

Kali Linux

Penetration Testing / Security Assessment向けToolを多数収録したLinux Distribution。

Armitage

MetasploitをGUIで扱うFront-endとして知られるTool。公式深度はAwareness。

SET

Social Engineer Toolkit。Social Engineering Test向けFramework。詳細操作は要求されない。

335.2 EXIT CHECK
Authorization / ScopeをPenTestの前提として説明
7つの主要Phaseを目的で区別
Metasploit Module Typeを役割で区別
-sT/-sS/-sU/-sV/-Oを目的から選択
open/closed/filteredをOutputから読む
NSE既存Scriptの実行方法を理解
Kali / Armitage / SETを識別
監査基準:LPI 303-300 v3.0 Objective 335.2、およびNmap公式Reference(Port Scanning Techniques / Version Detection / NSE Usage)。nmap例は許可されたLab向けの基本操作だけを掲載。
335.2 COMPLETE

335.1→335.2で「攻撃の名前」から「Assessmentの流れ」までつながった

  • 次は333.1でLinuxの通常Access Controlへ進む
  • Privilege Escalationを理解した後なので、Permission/SetUID/ACLの意味が入りやすい
  • nmapで見たPort/Serviceは後の334 Network Securityでも再利用する
335.2 PenTest · CHECKPOINTObjective末尾
Weight 3客観判定50 → 75 → 100%

335.2 PenTest:学習直後にここで解く

本文を読み終えた直後に、そのObjectiveだけを確認する。別ページへ移動して問題を探さない。誤答した問題から該当ノートへ戻り、再度ここへ戻る。

合格条件: 50%は基礎選択式7問中6問以上、75%は選択肢なし再現7問中6問以上。75%到達から72時間後、専用実戦Bankから9問中8問以上で100%。さらに各段階で全小テーマを最低1問正解する必要がある。毎回Question Bankからランダム出題する。
現在の到達度
選択式から開始
0%
問題プール 39問小テーマ 6 実戦Bank 12問直近重複を抑制未出題優先
小テーマ別履歴問題を解くと正答率を表示
全体到達度を見る

Objective Check

100%専用: 72時間後の再テストでは既存564問ではなく、このObjective専用の実戦相当12問から出題する。各問はObjectiveの要求深度に合わせて、状況判断・設定/出力読解・近い選択肢の比較を行い、必要な分野では穴埋め・複数選択も使用する。誤答時は選択肢の違いまで確認する。
出題方式:初回は小テーマをできるだけ横断し、未出題・出題回数の少ない問題を優先する。再挑戦では小テーマ網羅より直近問題の重複回避を優先し、必要な場合だけ再利用する。
この問題の役割:Objective理解の客観Checkpoint。50%/75%はObjective理解の確認、100%は専用実戦Bankで状況判断・設定/出力読解・近い選択肢まで確認する。