Linuxハッキングチュートリアル: Ubuntu コマンドとツール
⚡ スマートサマリー
Linuxハッキングとは、Linuxシステムの脆弱性を発見し悪用する行為であり、このページでは、攻撃者が標的とする脆弱性、関連する監査ツール、およびサーバーを保護するための制御策について説明します。
Linuxは、特にWebサーバーにおいて最も広く利用されているサーバーオペレーティングシステムです。オープンソースであるため、誰でもソースコードを閲覧できます。この透明性は両刃の剣です。開発者は脆弱性を迅速に発見して修正するために利用する一方で、攻撃者は同じコードを研究し、悪用できる弱点を探します。Linuxハッキングとは、これらの弱点を悪用してシステムへの不正アクセスを行う行為です。
以下のセクションでは、Linuxとは何か、Linuxに影響を与えるセキュリティ脆弱性、Linuxを使ったハッキングの実践的な見方について説明します。 Ubuntuそして、あなたが講じることができる対策。
Linux に関するクイック ノート
Linuxはオープンソースのオペレーティングシステムです。多くのディストリビューションがLinuxをベースに構築されています。 Red Hat Enterprise LinuxFedora、Debian、そして Ubuntuソースコードが公開されているため、研究者、ベンダー、攻撃者など、誰もがそれを検証できます。攻撃者はそのアクセス権を利用して悪用可能な脆弱性を探し出し、また、同じ可視性によって、保守担当者はクローズドなプラットフォームよりも迅速に修正プログラムをリリースできます。Linuxは、サーバー、デスクトップ、タブレット、モバイルデバイスのオペレーティングシステムとして動作します。
Linux プログラムは、グラフィカル インターフェイスまたはコマンドラインから操作できます。コマンドライン操作は GUI をクリックするよりも高速かつ正確なので、次のようなディストリビューションで作業するセキュリティ テスターは、コマンドラインを使用します。 Kali Linux 彼らはほとんどの時間を端末上で過ごす。そのため、基本的なコマンドを知っていることは実用的な前提条件となる。
これを参照してください Linuxチュートリアル 基本のために、そして Kali Linux チュートリアル それらを基盤としたセキュリティ重視のディストリビューション向け。
Linuxによく見られるセキュリティ脆弱性と攻撃経路
Linux に対する攻撃は、特殊な脆弱性を利用することはまれです。2025 年と 2026 年に公開されたテレメトリによると、ほとんどの侵害は trac繰り返し発生するいくつかの弱点に目を向けることで、それらの弱点を把握し、まずどこに防御努力を集中すべきかがわかる。
- 脆弱な、または使い回されたSSH認証情報 インターネットに接続されたSSHに対するブルートフォース攻撃やクレデンシャルスタッフィング攻撃は、Linuxエンドポイントで観測される悪意のある活動の大部分を占めている。
- パッチ未適用カーネルおよびパッケージの欠陥 Linuxカーネルチームは2024年にCVE番号付与機関となり、報告されたカーネルCVEは2023年の約290件から翌年には3,500件以上に増加したため、パッチのバックログが急速に蓄積された。
- 設定ミス デフォルトアカウント、不要なデーモン、誰でも書き込み可能なファイル、寛容なsudoルールによって、エクスプロイトを使わなくても取得できる権限が付与されてしまう。
- 脆弱なウェブアプリケーション ―次のような欠陥 SQLインジェクション また、クロスサイトスクリプティング(CSS)は、攻撃者がオペレーティングシステムではなくアプリケーションを介してサーバーにアクセスすることを可能にします。ウェブシェルは、侵害されたLinuxサーバーで最もよく見られる悪意のあるアーティファクトです。
- 権限昇格のバグ ― 限定的なアカウントをルート権限に変えてしまう局所的な脆弱性。中には、公表されるまで10年以上もカーネル内で検出されずに存在していたものもある。
- サプライチェーンと依存関係のリスク サードパーティ製のパッケージ、言語ライブラリ、コンテナイメージには、運用チームの誰もレビューしていないコードが取り込まれている。
これらの攻撃はいずれも、攻撃者がLinux自体を突破することを必要としない。2025年の侵入事例の分析によると、およそ5件中4件はマルウェアを一切使用しておらず、設定ミスや盗まれた認証情報に依存していた。
Linux ハッキング ツール
セキュリティテスターとシステム管理者は、同じスキャナーを使用します。一方は攻撃者よりも先に脆弱性を発見するため、もう一方は修正が確実に機能していることを確認するためです。以下に挙げるツールは、Linuxホストの監査に最もよく使用されるものです。
| ツール | タイプ | ライセンス | Linuxでの典型的な使用例 |
| ネサス | 脆弱性スキャナ | 商業用 | 様々な環境における構成設定、不足しているパッチ、およびネットワークサービスをスキャンします。 |
| Nmapの | ネットワークおよびポートスキャナ | オープンソース | サーバー上で実行されているホスト、それらが公開しているサービス、および開いているポートを特定します。 |
| ライニス | ホストの監査と強化 | オープンソース | 稼働中のシステムをセキュリティ強化のベンチマークに照らし合わせて監査し、具体的な改善手順を報告します。 |
| OpenVAS | 脆弱性スキャナ | オープンソース | Greenboneがコミュニティ版の一部として提供する、ネットワーク脆弱性スキャンサービス。 |
このリストは網羅的なものではなく、監査に利用できるツールの一例を示すものです。 Ubuntu その他の Linux システム。古いガイドでは、セキュリティ監査人の研究アシスタントである SARA をまだ推奨していますが、その最終リリースは 2009 年で、プロジェクト サイトはオフラインになっているため、Lynis と OpenVAS これらは維持されている代替案です。
ハッキング アクティビティ: ハッキングする Ubuntu PHPを使用したLinuxシステム
この実践的なシナリオでは、PHPを例として、Webアプリケーションを介してLinuxホストにアクセスする方法を見ていきます。実際の攻撃対象は存在しません。試してみたい場合は、XAMPPのLinux版であるLAMPPを自分のマシンにインストールしてください。
PHP には、オペレーティングシステムのコマンドを実行するために使用できる 2 つの関数、exec() と shell_exec() が付属しています。exec() 関数はコマンド出力の最後の行を返し、shell_exec() 関数はコマンドの実行結果全体を文字列として返します。
例として、攻撃者が以下のファイルをWebサーバーにアップロードすることに成功したと仮定します。
<?php $cmd = isset($_GET['cmd']) ? $_GET['cmd'] : 'ls -l'; echo "executing shell command:-> $cmd</br>"; $output = shell_exec($cmd); echo "<pre>$output</pre>"; ?>
ここに、
上記のスクリプトは、cmdという名前のGET変数からコマンドを取得します。このコマンドはshell_exec()関数を使用して実行され、結果がブラウザに表示されます。
上記のコードは、以下の方法で悪用される可能性があります。 URL
http://localhost/cp/konsole.php?cmd=ls%20-l
ここに、
- “…konsole.php?cmd=ls%20-l” は、変数 cmd に ls –l という値を代入します。
のコマンド Ubuntu したがって、サーバーは次のように実行されます。
shell_exec('ls -l') ;
上記のコードをWebサーバー上で実行すると、以下のような結果が得られます。
出力には、現在のディレクトリにあるファイルとそのアクセス権限が単純に表示されます。
では、攻撃者が代わりに以下のコマンドを渡したと仮定しましょう。
rm -rf /
ここに、
- 「rm」はファイルを削除します。
- 「rf」はrmコマンドを再帰モードで実行し、すべてのフォルダとファイルを削除します。
- 「/」は、ルートディレクトリから削除を開始するようにコマンドに指示します。
攻撃 URL こんな感じになります
http://localhost/cp/konsole.php?cmd=rm%20-rf%20/
したがって、検証されていないパラメータが1つあるだけで、攻撃者はWebサーバーアカウントが持つあらゆる権限を奪うことができてしまう。以下の2つのセクションは、そのような事態を防ぎ、万が一対策が失敗した場合にそれを検知するために設けられている。
Linuxハッキングを防ぐ方法
Linuxハッキングは、オペレーティングシステムおよびその上で動作するソフトウェアの脆弱性を悪用します。組織は、上記で説明した脆弱性のほとんどを解消するために、以下の対策を組み合わせて適用することができます。
- パッチ管理 パッチは、攻撃者がシステムを侵害するために悪用するバグを修正します。明確なポリシーによって、関連するアップデートが誰かが思い出した時ではなく、迅速に適用されることが保証されます。
- 適切な OS 構成 非アクティブなユーザーアカウントと不要なデーモンを無効にします。デフォルトのユーザー名、共有アプリケーションのパスワード、デフォルトのポート番号など、デフォルト設定を変更します。
- SSHのセキュリティ強化 ルートログインとパスワード認証を無効にし、指定されたユーザーまたはグループのみを許可し、認証の再試行回数を制限します。これにより、Linuxで最も攻撃の標的になりやすい侵入ポイントが塞がれます。
- 最低限の特権 — アカウントとサービスには必要な権限のみを与え、sudo を包括的な管理者アクセスではなく、特定のコマンドに制限する。
- 強制的なアクセス制御 — SELinux (Red Hat ファミリー) または AppArmor (Debian および Ubuntu強制モードで実行することで、侵害されたサービスがシステムの他の部分に到達できないようにします。
- 入力検証 上記のデモンストレーションは、リクエストデータがシェル関数に渡される場合にのみ機能します。exec() または shell_exec() にユーザー入力を渡さないでください。
- ファイアウォールとセグメンテーション — サービスが本当に必要とするポートのみを公開し、 ファイアウォール また、ネットワークのセグメンテーションによって、侵害されたホストがアクセスできる範囲を制限します。
- 侵入検知システム ―こうしたツールは、システムへの不正アクセスを検出するために使用でき、中には不正アクセスを阻止できるものもある。
- テスト済みのバックアップ オフラインで復元可能なバックアップがあれば、上記のような破壊的なコマンドを実行しても、永久的な損失ではなく一時的なシステム停止で済む。
侵害されたLinuxシステムを検出する方法
予防策はいずれ失敗するので、2つ目の問題は、どれだけ早くそれに気づけるかということです。Linuxにおける検出は、インシデント発生後ではなく、発生前に適切な証拠を収集することに依存します。
- 監査ログ カーネル監査フレームワークであるauditdは、権限の使用状況、ファイルアクセス、システムコールを、侵害されたプロセスが密かに書き換えることができない形式で記録します。これらのログをホストから中央の収集装置に転送します。
- 認証ログ — /var/log/auth.log または /var/log/secure に一連の失敗の後に一度だけ成功が記録されるのは、典型的なブルートフォース攻撃のシグネチャです。
- 予期せぬプロセスとつながり ―説明のつかない盗聴サービスや発信接続は、直ちに調査されるべきである。
- ファイル整合性監視 ―システムバイナリや設定ファイルをハッシュ化するツールは、決して変更されるべきではないファイルへの変更を検出します。
- スケジュールされたタスクと起動項目 永続化処理は通常、cronジョブ、systemdユニット、またはシェルプロファイルスクリプトで行われます。
- 新規アカウントまたは変更されたアカウント 見慣れないユーザー、UID 0の2つ目のアカウント、および誰も追加していないSSHキーを探してください。
- ウェブサーバーディレクトリ ―ウェブシェルはLinuxサーバー上で最もよく見られる悪意のあるファイルであるため、ウェブルートの下にある予期しないスクリプトファイルには細心の注意を払う必要がある。
- 計画された監査 Lynisなどのホスト監査ツールを定期的に実行し、各レポートを単発の作業ではなく、作業リストとして扱う。
侵害の証拠が見つかった場合は、ホストを隔離し、何も変更する前にログとディスクイメージを保存し、稼働中のシステムをクリーンアップしようとするのではなく、既知の正常なメディアから再構築してください。証拠処理の側面については、以下で説明します。 デジタルフォレンジック.
Linuxハッキングの法的および倫理的境界
このページに掲載されているすべてのテクニックは、ご自身が所有するシステム、またはテストを行うための書面による許可を得ているシステムで実践することは合法ですが、それ以外のほとんどの場所では違法です。上記の演習が意図的にローカルインストール環境で実行されるのは、まさにそのためです。
- 書面による承認 署名済みのテスト範囲、合意されたテスト期間、そして担当者の氏名が明記されていることが、侵入テストと犯罪行為を区別する要素です。口頭での承認だけでは不十分です。
- スコープ内に留まる 記載されていないホスト、アドレス範囲、および手法は、たとえ到達可能であっても許可されません。
- データは慎重に取り扱う ―検査中に収集された証拠には依然として実際の個人データが含まれているため、安全に保管し、その後破棄しなければならない。
- 責任を持って報告する 調査結果を所有者に開示し、修正のための時間を与えてから、何も公開しないこと。
法的リスクは現実のものです。コンピュータシステムへの不正アクセスは、米国のコンピュータ詐欺および濫用法や英国のコンピュータ不正使用法などの法律の下で犯罪行為となります。これらのスキルでキャリアを築きたいのであれば、認められたルートをたどってください。 セキュリティ認証 さらに、他人のサーバーではなく、自分が所有するラボ環境を利用できる。


