RAMのイメージを取得する

画像
RAMの内容は、マシンでの以前の操作の研究において非常に重要な情報です。 RAMには、実行可能プロセス自体の一部と、削除されたファイル、ユーザーセッション、暗号化キーの一部の両方を含めることができます。 暗号化に基づく複雑な情報保護システムの現代的な普及により、それらのキーの復元は研究の主なタスクのほぼ1つになります。 安全なシステムでは、多くの場合、RAMがセキュリティキーやその他の一時的な、しかし非常に重要な情報を保存できる唯一の場所です。


RAMに含まれる情報を取得するプロセスは、2つの段階で構成されます。RAMの内容を削除する
そして
発作中に得られたデータの分析。

最初の段階に注目すると、RAMの削除はいくつかの手段を使用して実行できることに注意する価値があります:特別な拡張カード、FireWireポートを使用したメモリへの直接アクセス、さらにはメモリデバイスの物理的な取り外し(ボードのフリーズが必要)、

画像

しかし、この記事では、いわゆる「ホット」リブートによって保護されたマシンのRAMの内容を削除し、ライブモードでマシンを起動できるソフトウェアツールを検討します。

このタスクを達成するために、最小限のコンポーネントセット、つまりメモリからデータを削除するために必要なコンポーネントのみで構成されるUbuntu Cyber​​Pack(IRF)1.0の特別なディストリビューションを使用します。 したがって、グラフィカルインターフェイスはありません。

RAMの内容を削除するためにこのアプローチを使用することには、上記の他のツールと比較して多くの利点と欠点があります。
長所:
-ライブ配信を使用すると、調査中のマシンにインストールされているオペレーティングシステムに関係なく、アクションを実行できます。
-高価な特殊デバイス、ケーブル、ボードなどの購入に費用はかかりません。
欠点:
-RAMの内容は不完全です-その一部は、Liveディストリビューションの実行に必要なデータ(約125 MB)で上書きされます。

特別にアセンブルされたディストリビューションは、最大3 GB(i386)および3 GB(amd64)以上のメモリ容量を持つマシンで使用できます。 彼らの助けを借りて、起動可能なCD / DVD-ROMまたは起動可能なUSBドライブを作成できます。

備考:
- システムは2回目のチャンスを与えません-1回だけ試行します。 つまり、調査中のコンピューターを再起動すると、必要な情報が見つからなくなる可能性が高くなります。 そのため、何度も再起動したり、実験したり、狙いを定めたりする必要はありません。
事前に準備し 、再起動後のコンピューターの動作を知る必要があります。
ほとんどの最新のコンピューターでは、起動時にダウンロードする場所を指定できますが、そうでない場合は、CD / DVDドライブまたはUSBドライブ/ドライブから起動するようにコンピューターのBIOSを構成し、指定したデバイスからLiveディストリビューションをダウンロードする必要があります。

それでは始めましょう。

コンピューターを再起動します。
重要:再起動は冷たくてはなりません(リセットボタンを押すか、電源をオン/オフにする)。つまり、システム自体を使用して再起動する必要があります(たとえば、Ctrl-Alt-Delボタンを押すか、 「システムで再起動」

ディストリビューションをダウンロードした後、ユーザーは使い慣れたLinuxコンソール行とモジュールを起動するための簡単な情報にアクセスできます。
画像

fmemプログラムの準備では、次のコマンドを実行します。
$ sudo -s
#cd / opt(プログラムがあるフォルダーに移動);
#./run-fmem.sh(メモリ削除モジュールを起動するスクリプト);

注:さらにアクションを実行するには、事前に準備されたメディア(外部ハードドライブ、フラッシュドライブ)をext2 / 3/4ファイルシステムでマウントする必要がありますこのファイルシステムには、RAMの内容を含むファイルが保存されます。

システムが接続されたメディアに割り当てた識別子を見つけるには、コンピューターに接続した後、次のコマンドを入力します。
#dmesg | tail(コマンドはカーネルメッセージバッファ情報を表示します。最後のエントリに興味があります。)
たとえば次のように:
[16091.995428] sd 9:0:0:0:接続されたscsiジェネリックsg2タイプ0
[16091.995996] sd 9:0:0:0:[sdb] 32096120 512バイトの論理ブロック:(16.4 GB / 15.3 GiB)
[16091.998192] sd 9:0:0:0:[sdb]書き込み保護はオフです
[16091.998205] sd 9:0:0:0:[sdb] Mode Sense:0b 00 00 08
[16091.999433] sd 9:0:0:0:[sdb]キャッシュモードページが見つかりません
[16091.999447] sd 9:0:0:0:[sdb]想定されるドライブキャッシュ:ライトスルー
[16092.003486] sd 9:0:0:0:[sdb]キャッシュモードページが見つかりません
[16092.003495] sd 9:0:0:0:[sdb]想定されるドライブキャッシュ:ライトスルー
[16092.004251] sdb:sdb1
(「sdb」は物理ドライブの割り当てられた指定であり、「sdb1」はドライブの論理パーティションの割り当てられた指定です)。

次に、ドライブの論理パーティションを、ライブモードでロードされたオペレーティングシステムの/ tmpフォルダーにマウントします。

#mount / dev / sdb1 / tmp
(どこ
「マウント」-デバイスマウントコマンド
"/ Dev / sdb1"-接続されたドライブの論理パーティションのファイルアドレス
「/ Tmp」-ドライブの接続先フォルダー。

すべての準備手順が完了しました-RAMの内容の削除に進むことができます:

#dd if = / dev / fmem of = / tmp / ram-image.mem bs = 1K count = `head -1 / proc / meminfo | awk '{print $ 2}' '
(どこ
「Dd」-イメージ作成コマンド
「If = / dev / fmem」-データソース、つまりランダムアクセスメモリ
「Of = / tmp / ram-image.mem」-フォルダ「/ tmp」内のファイル「ram-image.mem」に書き込みます。
「Bs = 1K」-情報ブロックサイズ-1 Kb
「カウント= `head -1 / proc / meminfo | awk '{print $ 2}' '”-RAMの量。ファイル/ proc / meminfoから情報が抽出されます)。

そして、私たちは待っています...
コマンドが正常に実行された結果、次のようなメッセージが表示されます。
画像
521453568バイト(521 MB)コピー、158.405秒、3.3 MB /秒
(どこ
「521453568バイト(521 MB)がコピーされました」-コピーされた情報の量
「158.405 s」-操作が実行された時間
「3.3 MB / s」-操作が実行された速度)

その結果、ドライブのファイル「ram-image.mem」にマシンのRAMの内容を取得しました。 今、それを含む処理することができます 実行可能プロセスの一部、削除されたファイル、ユーザーセッションに関する情報、暗号化キーなどを抽出します。

PS
また、最新のシステムはすべて、作業にスワップメモリ​​(いわゆる「スワップファイル」)を使用していることに注意してください
スワップファイルは、コンピューターのRAM(プロセッサへの迅速な配信のためのデータの一時的な格納を処理する)への一種の追加です。 拡大するほど、または継続だと言うかもしれませんが、追加するほどではありません。 実際には、十分なRAMがない場合、システムはメモリからディスク(いわゆる追加メモリ)にデータを転送でき、それに応じてデータも保存されます。
また、メモリ分析の全体像を把握するには、それらも取得する必要があります。
オペレーティングシステムが異なれば、保存方法も異なります。

Windowsの場合、これらは通常Cシステムドライブのルートにあるファイルです。
Windows XPおよびWindows 7用のpagefile.sysで、ファイルをコピーするだけ

Linuxの場合、これはメディアの別のセクションです。
例:
sudo fdisk -l / dev / sdaコマンド
システム内のすべてのセクションが表示されます
/ dev / sda1 * 2048 78125055 39061504 83 Linux
/ dev / sda2 78125056 117186559 19530752 82 Linuxスワップ/ Solaris
/ dev / sda3 117186560 625141759 253977600 83 Linux
スワップパーティションが/ dev / sda2にあることがわかります
ddコマンドを使用してコピーすることもできます。
例:
dd if = / dev / sda2 of = / media / <書き込み先のパス> /linux-swap.dd

MacOSの場合、ディレクトリ/ private / var / vm / swapfileからすべてのファイルをコピーする必要があります*

結果の処理と分析(RAMダンプとスワップメモリ​​の両方)は、たとえば、HEXエディターを使用して手動で実行することも、次回に説明する多数のプログラムを使用して実行することもできます。

Source: https://habr.com/ru/post/J211749/


All Articles