はじめに
2021年6月10日、eLearnSecurity Junior Penetration Tester を受験し、合格しました。
本稿はその受験記録と今後取得を検討される方に向けて対策について紹介します。
図. eJPT 合格通知メール「You are now an eJPT!」 |
eLearnSecurity 認定試験の概要
eLearnSecurityは、 ペネトレーションテスター、ネットワークディフェンス、リバースエンジニアリングなどのトレーニング・認定試験を提供しているINE社の一部門です。2019年に買収されました。
INEとは、ITトレーニングを提供する会社です。とくに、シスコシステムズ社が提供するシスコ技術者認定の最高峰である「CCIE(Cisco Certified Internetwork Expert)」に関するトレーニングの「Workbook」や「Training Videos」に定評があります。
「INE Expands Cybersecurity Content with eLearnSecurity」, 2019/8/28
eLearnSecurityが提供するのは、サイバーセキュリティスキルを証明するシナリオベースの試験です。Red TeamまたはBlue Teamカテゴリのレベル別に認定があります。
本稿が対象とする「eLearnSecurity Junior Penetration Tester(eJPT)」は、これからペネトレーションテストを学んでいく人に対して基本的なスキルを獲得していることを認定する入門的な内容となっています。
資格の種類
eLearnSecurity認定試験は、2020年1月現在でRed Teamカテゴリが7つ、Blue Teamカテゴリが6つ、合計13種類の認定資格があります。
Red Team - ペネトレーション系:
- eLearnSecurity Junior Penetration Tester, eJPT
- eLearnSecurity Certified Professional Penetration Tester, eCPPTv2
- eLearnSecurity Certified Penetration Tester eXtreme, eCPTX
- eLearnSecurity Web application Penetration Tester, eWPTv1
- eLearnSecurity Web application Penetration Tester eXtreme, eWPTX
- eLearnSecurity Certified eXploit Developer, cCXD
- eLearnSecurity Mobile Application Penetration Tester, eMAPT
Blue Team - サイバーディフェンス系:
- eLearnSecurity Network Defense Professional, eNDP
- eLearnSecurity Certified Incident Responder, eCIR
- eLearnSecurity Certified Reverse Engineer, eCRE
- eLearnSecurity Web Defense Professional, eWDP
- eLearnSecurity Certified Digital Forensics Professional, eCDEP
- eLearnSecurity Certified Threat Hunting Professional. eCTHPv2
図. eLearnSecurity による推奨トレーニングパス(抜粋) |
本稿では、Red Teamカテゴリに注目して解説します。認定のレベル(難易度)は低いものから順に、Junior、Professional、eXtremeとなっています。
また、Web Application、eXploit Developer、Mobile Applicationなど特定領域に絞ったペネトレーション知識に関する認定も用意されています。これらはProfessional以上に準じたレベルとなっています。
eLearnSecurity Junior Penetration Tester 試験内容
eJPT 認定の特色は、ブラックボックス化された複数のコンピュータを抱えるネットワークに対して、ペネトレーションテストを実施するということです。オープンブック形式にて行われます。
項目 | 公式発表 |
---|---|
試験 | eJPT Certification |
試験時間 | 3日間(72時間) |
問題数 | 20問 |
合格スコア | 15問以上(75%以上) |
解答形式 | 多肢選択試験 |
20問の問題が四択または二択で出題されます。試験合格には最低でも15問正解する必要があります。
多肢選択試験ですが、記憶した知識を問うような問題ではありません。仮想的に用意されたネットワークへ接続し、実際にペネトレーションテストを行い、そこで収集した情報に基づいて選択する問題です。
「TryHackMe における Walkthroughs タイプのルーム」や「HTB Academy」に近い出題です。
クイズエリアと仮想ネットワークには3日間の試験中、自由に行き来することができます。従って、クイズエリアでの解答は、ペネトレーションテスト中またはテスト後、いずれのタイミングで解答するのか受験者は自由に選択することができます。
試験問題は英語です。短文かつ翻訳サイトも使用可能なため言語依存度は低い試験といえます。
公式ドキュメントの
HINTS FOR THE BEST OUTCOME
には「クイズに答えながらペネトレーションテストを進めることです。(慎重にクイズを読んでから、仮想ラボでペネトレーションテストを実行してください。」とのアドバイスが記載されています。
取得の目的
eJPT認定にチャレンジする目的として、次の項目を設定しました。
- ペネトレーションテストに関する技能が体系的に身についていることの確認
- 上位資格(eCPPTv2, OSCP)の踏み台、練習
出題範囲や公式トレーニングの内容から、eJPT取得に向けての学習がペネトレーションテストに関する技能を体系的に学ぶことができると判断しました。
筆者の前提知識として、eJPT認定以前に、CompTIA PenTest+ などの認定を取得しています。
出題範囲
- TCP/IP
- IPルーティング
- LANプロトコルとデバイス
- HTTPおよびWebテクノロジー
- 重要なペネトレーションテストのプロセスと方法論
- ネットワークの基本的な脆弱性評価
- Webアプリケーションの基本的な脆弱性評価
- Metasploitによる悪用
- 単純なWebアプリケーションの手動による悪用
- 基本的な情報収集と偵察
- ターゲットの簡単なスキャンとプロファイリング
公式コース「Penetration Testing Student(PTS)」では「Penetration Testing: Preliminary Skills & Programming」の単元があります。しかし、eJPTの試験において直接的に C++ / Python / Command Line Scripting などコーディング技術について問われることはありませんでした。
学習教材
公式トレーニング
「INE STARTER PASS」に登録することで、「Penetration Testing Student(PTS)」を受講することが可能です。
INE STARTER PASSは 登録、受講ともに無料 です。
INE STARTER PASS では、「Penetration Testing Student(PTS)」の他にData Science、Networking、Cloudの分野から次のコースも無料で受講可能です。この特典も活用するとさらにお得です。
- Cyber Security: Penetration Testing Student
- Data Science: First steps in Data Science with Python
- Networking: Starter Pass: Networking Path
- Cloud: Azure Fundamentals (AZ-900)
トレーニングマテリアルは、38時間13分のコースです。次の「動画」と「ラボ」が無料の範囲に含まれています。
<動画>
- HTTP(s) Traffic Sniffing
- Bash Scripting Part 1
- Bash Scripting Part 2
- Subdomain Enumeration
- NMAP OS Fingerprinting
- NMAP Port Scanning
- Basic Masscan Usage
- Nessus
- Netcat
- Dirbuster
- Dirb
- XSS
- Backdoor
- John the Ripper
- Hashcat
- Hydra: Authentication Cracking
- Null Session
- ARP Spoofing
- Metasploit
- Meterpreter
- Beyond Remote Code Execution
- Shells
<ラボ>
- HTTP(S) Traffic Sniffing
- Scanning and OS Fingerprinting
- Nessus
- Dirbuster
- Cross site scripting
- SQL Injection
- Bruteforce and Password cracking
- Null Session
- ARP Spoofing
- Metasploit
- Black-box Penetration Test 1
- Black-box Penetration Test 2
- Black-box Penetration Test 3
eJPT認定に合格することが目的であれば、PTSコースで勉強の進捗を管理しつつ、次に記載するオンライン学習プラットフォームのTryHackMeと併用することでコストを抑え、認定取得を達成することができるはずです。
ラボ、特に3つの「Black-box Penetration Test」は完全に理解できるよう、繰り返し取り組むことを強く推奨します。
上位資格(eCPPTv2、eCPTXなど)の取得を視野に入れている場合には「Cyber Security Pass」1999 USD/Year の契約を検討するのもよいでしょう。
2021年5月にINEより「INE’s Premium Plan」へのアップグレードにより、eJPTのバウチャー($200)が無償提供されるオファーがきています。今後もこのようなキャンペーンが開催されることが予測されます。
TryHackMe
TryHackMeは、サイバーセキュリティに携わるうえで必要な知識や技術を、問題を解いていくことで学ぶことのできるオンライン学習プラットフォームです。
そのサブスクリプションは、10 USD/Month(一部の課題は無料)です。
TryHackMeで提供されている「Walkthrough room」では、クラウド上の仮想マシンに接続し、そこから得られる情報をもとに解答していく形式のトレーニングが提供されています。
このため、eJPT認定取得に向けた学習と極めて相性がよいといえます。複数のトレーニングが提供されていますが、eJPT認定の合格を目指す場合「CompTIA PenTest+ Path」の受講を推奨します。
受験申込み方法
eJPT認定に受験するには、当該試験のバウチャーを購入する必要があります。その手続きは次のとおりです。
-
「eLearnSecurity」のサイトにて、受験する「eJPT Certification」ページへ移動します。
[ADD VOUCHER TO CART]
ボタンをクリックします。
-
[Cart]
にて[Billing Address]
(住所)や[Review & Payment]
(決済方法)を確認、入力します。なお、決済手段として用意されているのはPayPal
またはクレジットカード
です。
-
決済に成功するとeLearnSecurity社から
件名:Your eLearnSecurity order is now complete
メールが届きます。同メールに領収書がPDFファイルとして添付されています。 -
決済完了通知とは別に、Caendra社から
件名:Welcome to Caendra
と件名:Caendra - Password reset
メールが届きます。CaendraはeJPT試験を受験するためのシステムです。
-
メールの指示に従って、Caendraのパスワード変更を行い、ログインします。購入したバウチャーには有効期限があります。バウチャーの購入日(例:2021/01/25)から180日間です(例:2021/07/24)。バウチャーの有効期限が切れる前に受験を開始する必要があります。
以降の詳しい受験手順については、公式の「EXAM MANUAL」をご確認ください。
受験プロセス
eJPTでは受験にあたって予約は必要ありません。Begin Certification Process
ボタンをクリックすると直ちに試験が開始されます。
他のオンライン試験でみられる「Proctor(試験監督者)」はありません。
試験をはじめるとLab
(eJPT Exam Scenario)のコントロールとVPN File
のダウンロードが可能になります。
また、Letter of Engagement
(examEJPT.rar)のダウンロードも可能になります。まず、このRAR形式ファイルに含まれるexamEJPT.pdf
(5ページ)ドキュメント(含む、試験中に使用するいくつかのファイル)を読むところからはじまります。
ドキュメントの指示に従って、VPN接続し、指定のアドレスに対してPINGを実行してネットワーク接続を確認したら、ペネトレーションテストの開始です。
試験当日の流れ
試験は日本時間の6月9日 13:00より開始し、翌日 23:55に提出しています。
実際には次のようなタイムスケジュールでした。
項目 | 日時 |
---|---|
試験開始 | 2021年06月09日(水) 13:00〜17:00 |
休憩(夕食、入浴) | |
再開 | 2021年06月09日(水) 20:00〜26:00 |
休憩(睡眠) | |
Day2 開始 | 2021年06月10日(木) 10:00〜12:00 |
休憩(昼食) | |
再開 | 2021年06月10日(木) 13:00〜17:00 |
休憩(夕食、入浴) | |
試験終了 | 2021年06月10日(木) 20:30〜23:55 |
食事、入浴、睡眠しっかりととって試験に望むことができました。1日目の時点で20問中15問の解答を終えています。
残り5問について、2日目の午前中はまったく進捗が出せませんでした。PTSコースにおける「ラボ」の項目を見返して、一つずつもう一度試すなどしていました。
入浴後に再開し21:30頃に見落としていた点に気づくことができました。リフレッシュ効果が大きかったようです。結果、すべての問題について解答を終えています。
合否判定は即時に画面表示されます。19問正解(95%)の判定にて合格となりました。どの問題が不正解であったのかは表示されません。おそらくあの問題の解釈が間違っていたのだろうなぁと思っていますが、いずれにせよ合格できたので大満足です。
難易度について
前述のとおり、eJPT試験は事実上、実技試験といえます。単に知識として知っているだけではなく、コマンドラインやツールについて慣れていなければ合格は困難です。
課題の難易度は公式コース「Penetration Testing Student(PTS)」で提供されている「Black-box Penetration Test 1 - 3」相当といえます。
eJPTでは ピボッティング を含むネットワークペネトレーションテストの知識・技能を要求しています。この点は VulnHub / HackTheBox / TryHackMe などのマシン攻略型の教育プラットフォームでは学ぶことが困難なポイントについても要求しているのが特徴といえます。
なお、eJPTでは「eLearnSecurity Certified Professional Penetration Tester, eCPPTv2」や「Offensive Security Certified Professional (OSCP)」などで要求されているレポートの提出はありません。この点は気が楽でした。
合格のチュートリアル
ここでは、eJPT試験に合格するために必要となるツールとテクニックの一例について紹介します。
受験時に使用したツール
eJPT試験では受験時におけるツールに関して制限はありません。Metasploit
、sqlmap
などAutomatic exploitation toolや商用ツールについても使用制限はありません。
私はVMware Fusion
にKali Linux 2021年1月版
を導入して試験に臨みました。
アウトラインプロセッサ
eJPT試験では指定されたネットワークに対してブラックボックス ペネトレーションテストを行います。
そこで明らかとなった事項を随時まとめる方法としてアウトラインプロセッサの CherryTree を使用しました。
James Hallが提供しているCTF_templateテンプレートをベースにeJPT試験向けにカスタマイズを行いました。
試験中、入力したコマンドや結果における重要な発見箇所については文字色の変更を行いました。また、DirBuster
やOWASP ZAP
などGUIツールの実行結果については画面キャプチャを添付しておきました。
図. PTSコースにおける「Black-box Penetration Test 2」の内容をCherryTreeにてまとめた様子 |
PCAPファイルの解析
Wireshark
における統計(Statistics) > 終端(Endpoints)
機能の使い方を確認しておくとよいです。
ルーティング
ip route add ROUTETO via ROUTEFROM
列挙
Ping Sweep
fping -a -g <subnet IP address>/24 2>/dev/null
sudo nmap -sn <subnet IP address>/24
Nmap
簡易スキャン
nmap -Pn -T4 -A <IP address>
フルスキャン
sudo nmap -sV -n -v -Pn -p- -T4 -A <IP address>
Web アプリケーション
Banner Grabbing
nc <IP address> <port>
HEAD / HTTP/1.0
whatweb -v <IP address>
httprint -P0 -s /usr/share/httprint/signatures.txt -h http://<IP address>
Directory and File Scanning
dirb http://<IP address>/
dirbuster
Cross Site Scripting (XSS)
OWASP ZAP
zaproxy
SQL Injection
- .php?id=-1%20union%20select%201,2,version()--
- .php?id=-1%20union%20select%201,2,database()--
- .php?id=-1%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()--
SQLMap
sqlmap -u http:/<IP address>/ --dbs
sqlmap -u http://<IP address>/ -p parameter
sqlmap -u http://<IP address>/ --tables
sqlmap -u http://<IP address>/ --dump
sqlmap -u http://<IP address>/ --os-shell
sqlmap -u http://<IP address>/ --sql-shell
System Attacks
Password Attacks
Unshadow
unshadow passwd shadow > unshadow.txt
Hash Cracking
john --wordlist=/usr/share/wordlists/rockyou.txt unshadow.txt
Network Attacks
Brute Forcing with Hydra
hydra -L users.txt -P pass.txt <IP address> ftp
Windows Shares Using Null sessions
nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse <IP address>
nbtscan <IP address>
enum4linux -a <IP address>
smbmap -R [PATH] -H <IP address>
smbclient -N -U "" //<IP address>/[PATH]
Metasploit
Basic Metasploit Commands
search x
use x
info
show options, show advanced options
SET X (e.g. set RHOST 10.10.10.10, set payload x)
Meterpreter
background
sessions -l
sessions -i 1
sysinfo, ifconfig, route, getuid
getsystem (privesc)
bypassuac
download x /root/
upload x C:\\Windows
shell
use post/windows/gather/hashdump
合格後のアクティビティ
eJPTの取得を通じて学んだ内容を体系的にとりまとめ、Udemyにて講座として開設しました。
🏆実績解除🏆 #Udemy 講師
— Noriaki Hayashi (@v_avenger) June 23, 2021
Boot2Root💻 CTFに関する初心者向け講座を開設しました。
nmapやmetasploitは知っている。
でも #HackTheBox や #TryHackMe で userフラグが獲れなぁ〜い😢
そんな人にレベルアップ🆙してもらうことを目的に設計しました。#100DaysOfHackinghttps://t.co/SY0PShnhpd
オフェンシブな資格認定
認定組織 | 資格情報の略語 | 認定タイトル |
---|---|---|
Offensive Security | OSCP | Offensive Security Certified Professional |
OSEP | Offensive Security Experienced Penetration Tester | |
GIAC | GPEN | GIAC Penetration Tester |
GXPN | GIAC Exploit Researcher and Advanced Penetration Tester | |
eLearnSecurity | eJPT | eLearnSecurity Junior Penetration Tester |
eCPPT | eLearnSecurity Certified Professional Penetration Tester | |
CompTIA | PenTest+ | CompTIA PenTest+ |
-
CompTIA PenTest+受験記〜勉強方法と試験の感想〜, https://qiita.com/v_avenger/items/5bcfe5e6e6c26c757704
-
eLearnSecurity Junior Penetration Tester, eJPT 認定受験記〜勉強方法と試験の感想〜, https://qiita.com/v_avenger/items/245fb0b23de4e206396e
-
Security Certification Roadmap - Paul Jerimy Media, https://pauljerimy.com/security-certification-roadmap/
New update of the Security Certification Roadmap - now aligned with the (ISC)2 CBK security domains.
— Paul Jerimy (@PaulJerimy) October 12, 2020
Interactive version at: https://t.co/T8gMG79RAv pic.twitter.com/on2Rw9fq0X
最後に、自分に向けて『汝、驕ること無かれ。謙虚に、そして逞しく生きよ』
This made me laugh! @CodingMeme pic.twitter.com/K9V9tntznl
— Kartone (@Kartone) July 29, 2020
参考情報
- Mayur Parmar, Ultimate Guide to pass eJPT in the first attempt by Mayur Parmar, https://infosecwriteups.com/ultimate-guide-to-pass-ejpt-in-the-first-attempt-by-mayur-parmar-75effc877394
- Abdulaziz Hameda, eJPT Certificate, https://abdulazizhameda.wordpress.com/2020/07/24/ejpt-certificate/
- Rehan Bari, Week 4 – eJPT Review, https://www.rehanbari.com/cyber-security/week-4-ejpt-review/
- Daniel Lowrie’s Journey to eJPT, https://blog.itpro.tv/daniel-lowries-journey-to-ejpt/
受験体験記
- @glion_sec, eJPTv2受験記録, 2023/05/08, https://qiita.com/glion_sec/items/6d092ff474e942323cde
- @IsaacJ, eLearnSecurity Junior Penetration Tester, eJPTv2 〜勉強方法と試験の感想〜, 2023/02/06, https://qiita.com/IsaacJ/items/0313c06d259cbe82450e
- shinobe179, eJPT(eLearnSecurity Junior Penetration Tester)に合格しました, 2022/09/23, https://shinobe179.hatenablog.com/entry/2022/09/23/015454