SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2025 セッションレポート

なぜ、あなたのプロダクトは狙われるのか? 開発者が知るべきハッカーの思考法

【14-E-4】ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~

  • X ポスト
  • このエントリーをはてなブックマークに追加

いとも簡単に可視化されるほころび

 デモンストレーションの第一歩は、ターゲットを定める工程から始まった。野溝氏はスクリーンに実際の画面を映しながら、検索エンジン「Shodan」の使い方を紹介する。

 「Shodan」は、インターネットに公開されているサーバーやデバイスの情報を収集・検索できるサービスだ。無料のアカウントでも利用可能で、検索ボックスにキーワードを入れるだけで、世界中の対象機器の情報が一覧で表示される。

 実際に検索すると、該当するIPアドレスとともに稼働中のサーバー数が表示され、そこから詳細なポート情報やバージョン情報も確認できる。古いバージョンを指定すれば、脆弱性を抱えたサーバーを簡単に見つけることも可能だ。検索条件を加えれば、日本国内のサーバーに絞って調査することもできるし、データベースのポートが外部に露出しているサーバーを一覧で表示することも可能になる。

 「ただし、Shodanで表示される情報はあくまでも自動で収集されたもので、正確性が保証されているわけではありません。また、攻撃者をおびき寄せるために意図的に設置された『ハニーポット』が含まれているケースもあります」と野溝氏は補足する。

 ここからは、野溝氏がかつて立ち上げた個人ブログを例に、調査の様子が紹介された。使用していたのは、レンタルサーバーの「WordPress簡単インストール機能」だ。このような機能を利用すると、HTTPやHTTPSといった必要なポートだけでなく、FTPやSSHなどのポートが自動的に開いてしまうことがある。

 「私自身も『閉じなきゃなあ』と思いながら放置しているポートがあります。ポートが開いているからといって即リスクになるわけではありませんが、使っていないなら閉じるのが原則。こうした“無用な公開”の蓄積が、セキュリティホールになるんです」(野溝氏)

 攻撃者は、こうしたネットワーク上の“ほころび”を手がかりにターゲットを絞り込んでいく。Shodanなどの検索結果を起点に「この相手を狙おう」と定めたあとは、ポートスキャンや脆弱性の洗い出しといった、より詳細な情報の収集に移る。

 ここから先の工程は、インターネット上の第三者環境で行うわけにはいかない。そこで使用されたのが、野溝氏があらかじめ構築した仮想マシン環境だ。運用されているのは、WordPress製の架空の自動車教習所サイト。その名も「サイバーゼリヤ教習所」だ。「サイゼリヤで昼食を取っていたときに思いついたから」という、ゆるいエピソードにしばし会場の空気が和む。

 この仮想環境には、「Kali Linux」というセキュリティ特化型のLinuxディストリビューションが用いられている。Debianベースで構成されており、ペネトレーションテストやフォレンジック調査に用いられる各種ツールがプリインストールされている。

 いよいよ攻撃準備の核心へ。まずはポートスキャンツール「Nmap」を使い、ターゲットとなるサーバーの開放ポートを確認していく。スキャンの結果、HTTP(80番)、SSH(22番)、MySQL(3306番)といった主要ポートが開いていることが分かった。

 さらに詳細な調査のため、オプションを付けて再スキャンを実施。ApacheやSSH、MySQLのバージョン情報に加え、WordPressが稼働していることも明らかになる。

 ここで登場したのが、WordPress専用の脆弱性診断ツール「WPScan」だ。Kali Linuxにプリインストールされており、WordPress特有のリスクを迅速に洗い出してくれる。今回のデモ環境では、「Royal Elementor Addons」というプラグインが古いバージョン(1.3.78)で使用されており、既知の脆弱性を抱えている可能性が高いことが判明した。

 さらに、wp-config.phpのバックアップファイルがWeb上に露出しているという警告も表示された。これは、本来絶対に公開されるべきでない設定ファイルであり、実際に開いてみると、データベース名やユーザー名、パスワードなどの認証情報が平文で記載されていた。

 「こうした“うっかり”の積み重ねが、大きなリスクになる。もしMySQLのポートが開いている状態であれば、この情報を使って内部にアクセスされてしまう可能性もあります」(野溝氏)

 脆弱性と構成情報が明らかになった次は、ログイン認証の突破を目指す。まずはWordPressに登録されているユーザー名を特定。ログイン画面(/wp-login.php)では、存在しないユーザー名を入力すると「このユーザーは登録されていません」と返ってくるため、ユーザーの存在有無が推定できてしまう。

 WPScanを用いれば、この作業も自動化できる。デモ環境では、「tanaka」と「maintenance」の2ユーザーが存在することが分かった。

これだけの情報が、あっという間に丸裸にされていく
これだけの情報が、あっという間に丸裸にされていく

 ターゲットは「tanaka」ユーザー。ここで行われたのは、事前に用意されたパスワードリストを用いた「辞書攻撃」だ。GitHubなどでは、よく使われるパスワードのリストが公開されており、「password」「123456」「qwerty」などのワードが並んでいる。攻撃者はこれらを目的に応じて使い分けているのだ。

 再びWPScanを用い、tanakaユーザーに対して辞書攻撃を開始。リストに基づいてログイン試行を繰り返す中、「pokemon」というパスワードで見事ログインに成功した。

 「tanakaさんはポケモン好きだったのかもしれませんね」。冗談を交えつつ、野溝氏は安易なパスワードの脆弱さについて改めて警鐘を鳴らす。セキュリティ研修で「強固なパスワードを使いましょう」と繰り返し説かれる理由が、まさにこの現実にある。

次のページ
WordPressを乗っ取る攻撃者の“王道シナリオ”

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2025 セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

夏野 かおる(ナツノ カオル)

 博士。本業は研究者。副業で編集プロダクションを経営する。BtoB領域を中心に、多数の企業案件を手がける。専門はテクノロジー全般で、デザイン、サイバーセキュリティ、組織論、ドローンなどに強みを持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

井山 敬博(イヤマ タカヒロ)

 STUDIO RONDINOのカメラマン。 東京綜合写真専門学校を卒業後、photographer 西尾豊司氏に師事。2008年に独立し、フリーを経て2012年からSTUDIO RONDINOに参加。 STUDIO RONDINO Works

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21315 2025/08/29 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング