LPIC-3 Security 303-300 v3.0 Weight 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を目的に合わせて選べる。
Objective判定: このObjectiveの最後に客観Checkpointを配置。学習後は
末尾の問題へ 。
公式要求: 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/06 01 Concept / Legal
🟡 Understand Ethical / 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/06 02 PenTest Phases
🟡 Understand Phases
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を一本の流れにする
Passive Targetへ直接触れず情報収集
Active Targetへ直接Query/Probe
Enumeration Host/Service/User等を具体化
Gain Access Access取得を試す
Privilege より高い権限へ
Maintain Access維持
Cover 痕跡を隠すPhaseの認識
Phase 決定点 335.1との接続 Passive Gathering Targetへ直接Probeせず公開情報等を収集 攻撃対象をまだ具体化している段階 Active Gathering Targetへ通信して存在・反応を確認 Networkへ直接触れる Enumeration Port/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/06 03 Metasploit
🟡 Understand Architecture
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/06 04 nmap Scan Methods
🔴 Use nmap Host / 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は「何を判定しやすいか」で識別
Option Scan 試験での見分け方 -sAACK Scan Portのopen/closed判定が主目的ではなく、Firewall/Filteringの把握に使う。filtered/unfilteredの判断軸。 -sNNULL Scan TCP Flagを立てない。RFC準拠HostではClosed時RST等の反応差を利用する方式。 -sFFIN Scan FIN Flagを使う。NULL/Xmasと同系統で、OSやFirewallにより結果の信頼性が変わる。 -sXXmas Scan FIN/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/06 04 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 ...
-A: OS Detection、Version Detection、Script Scan、Traceroute等を有効にする代表的な組み合わせOption。便利だが「何をしているか」を隠してしまうので、まず-sV/-Oを別々に理解する。
列/出力 意味 PORT ProtocolとPort番号。 STATE open / closed / filtered等、Probeから見えた状態。 SERVICE PortやProbeから推定されたService名。 VERSION -sVのProbe等で得た実装/Version情報。OS details Network 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/06 05 NSE / Awareness
🟡 Understand + 🔴 Execute Awareness 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 · CHECKPOINT Objective末尾
Weight 3 客観判定 50 → 75 → 100%
335.2 PenTest:学習直後にここで解く
本文を読み終えた直後に、そのObjectiveだけを確認する。別ページへ移動して問題を探さない。誤答した問題から該当ノートへ戻り、再度ここへ戻る。
合格条件: 50%は基礎選択式7問中6問以上、75%は選択肢なし再現7問中6問以上。75%到達から72時間後、専用実戦Bank から9問中8問以上で100%。さらに各段階で全小テーマを最低1問正解 する必要がある。毎回Question Bankからランダム出題する。
問題プール 39問 小テーマ 6 実戦Bank 12問 直近重複を抑制 未出題優先
このObjectiveを判定する このObjectiveの記録をreset 全体到達度を見る
JavaScriptが無効: このCheckpointの自動採点と進捗保存はJavaScript実行環境で利用してください。本文はそのまま閲覧できます。
100%専用: 72時間後の再テストでは既存564問ではなく、このObjective専用の実戦相当12問から出題する。各問はObjectiveの要求深度に合わせて、状況判断・設定/出力読解・近い選択肢の比較を行い、必要な分野では穴埋め・複数選択も使用する。誤答時は選択肢の違いまで確認する。
出題方式: 初回は小テーマをできるだけ横断し、未出題・出題回数の少ない問題を優先する。再挑戦では小テーマ網羅より直近問題の重複回避を優先し、必要な場合だけ再利用する。
この問題の役割: Objective理解の客観Checkpoint。50%/75%はObjective理解の確認、100%は専用実戦Bankで状況判断・設定/出力読解・近い選択肢まで確認する。