メールヘッダのメモ


Received: from foo.bar.com (10x10x10x5.example.net. [10.10.10.5])
by mx.google.com
with ESMTPS id ab1235dedeaollld
for <test@test.com>
Fri, 26 Aug 2016 08:28:02 -0700 (PDT)
From: hogehoge@foo.net


上記のメールヘッダを以下に解説します。

Received: from string (hostname [host IP address])
by recipient host
with protocol id message ID
for recipient
timestamp
From: sender


string
通常は送信側のMTAのホスト名を表す。任意の名前を付けられるので偽造も可能

hostname
IPアドレスからのリバースDNSルックアップ(逆引き)で得られたホスト名

host IP address
送信側MTAのIPアドレス

recipient host
通常は受信側のMTAのホスト名を表す

protocol
転送に使用されたメール転送プロトコルを表す

message ID
受取人のMTA上のログファイルで検索できるようにするための転送用の固有識別子

recipient
受取人のEメールアドレス

timestamp
MTAが受信したメッセージの日付と時間

sender
送信者のEメールアドレス。任意のアドレスを付けられるので偽造も可能。

ポイント:
メールを受信した際、真っ先に目につくであろうFromヘッダで定義された送信者のアドレスは簡単に偽造できる。同様にReceivedヘッダのfrom直後のホスト名も偽造ができる。ただし()内のホスト名は受信側MTAによるIPアドレスからのリバースDNSルックアップに基づいているので、こちらのほうが情報としては信用できる*1。
なので、from直後のホスト名と()のホスト名が食い違っている場合は、送信者がホスト名を偽っている可能性がある*2。

*1.. 受信側のMTAを悪者が管理していて名前解決に関する設定やファイルをいじくられていなければですが。。。
*2.. 正当な理由があって敢えてホスト名を変更している可能性も十分ありそうですが。。。

以上。

JavaScriptのコード内容の手っ取り早い確認方法

JavaScriptの大まかなコードの内容を手っ取り早く確認したいときは、コードのキモとなっていそうな変数や関数の中身を出力させるのが有効です。
例えば以下のようなコードがあったとします。


fojbldfd = String.fromCharCode(81, 50, 57, 117, 65, 51, 74, 104, 100, 72, 86, 115, 89, 88, 82, 112, 98, 50, 53, 122, 73, 83, 66, 84, 100, 87, 78, 106, 65, 88, 78, 122, 65, 110, 86, 115, 98, 72, 107, 103, 65, 71, 86, 106, 98, 50, 82, 108, 65, 67, 69, 61).replace(/A/g, 'Z');
eval(fojbldfd);


変数fojbldfdにゴニョゴニョと値を入れてevalで実行しているようです。変数fojbldfdの中身を出力すれば何をしようとしているのか分かりそうです。変数の出力にはdocument.writeWScript.Echo(Windows環境の場合)を使います。

■document.writeを使う場合
evalの部分をdocument.writeに書き換えます。またコード全体をscriptタグで囲って.htmlとして保存します。

<script>
fojbldfd = String.fromCharCode(81, 50, 57, 117, 65, 51, 74, 104, 100, 72, 86, 115, 89, 88, 82, 112, 98, 50, 53, 122, 73, 83, 66, 84, 100, 87, 78, 106, 65, 88, 78, 122, 65, 110, 86, 115, 98, 72, 107, 103, 65, 71, 86, 106, 98, 50, 82, 108, 65, 67, 69, 61).replace(/A/g, 'Z');
document.write(fojbldfd);
</script>

保存したhtmlファイルをブラウザで開くと変数の中身が確認できます。
browse.png

■WScript.Echoを使う場合
evalの部分をWScript.Echoに書き換えて、.jsとして保存します。

fojbldfd = String.fromCharCode(81, 50, 57, 117, 65, 51, 74, 104, 100, 72, 86, 115, 89, 88, 82, 112, 98, 50, 53, 122, 73, 83, 66, 84, 100, 87, 78, 106, 65, 88, 78, 122, 65, 110, 86, 115, 98, 72, 107, 103, 65, 71, 86, 106, 98, 50, 82, 108, 65, 67, 69, 61).replace(/A/g, 'Z');
WScript.Echo(fojbldfd);

保存したjsファイルをダブルクリックするとメッセージボックスが表示されて変数の中身が確認できます。
message.png

あるいはコマンドプロンプトでcscript.exe example.jsと打てばコマンドプロンプト上で結果を確認できます。
cmdp.png

WScript.Echoを使ったほうがコードにエラーがあった場合エラー箇所を教えてくれるので、修正がしやすいです。document.writeでブラウザ表示だと、コードにエラーがあって正しい出力結果が得られ無い場合、すぐには異常に気づかないかも。
でも、出力結果をコピペしたいときはブラウザに表示させたほうが楽です。(メッセージボックスの内容はコピペできないし、コマンドプロンプト上でコピペするのは少し面倒) 状況に応じて使い分けるのが良いかと。

ちなみに最後のbase64をデコードすると"Congratulations! Successfully decoded!"となります。

以上。

tr コマンドは便利

最近知った便利なコマンド tr

tr - translate or delete characters



tr str1 str2
str1をstr2に変換する
例)
$ echo "cat" | tr 'c' 'r'
rat

$ echo "Uryyb jbeyq" | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm'
Hello world

コマンドひとつで換字できるので便利
以上

Manually insert RIGHT-TO-LEFT OVERRIDE character into the filename


67c71e8e-1599-11e7-9f20-4b75e769f3a1.png

MountedDevices registry key

HKLM\System\MountedDevices

The MountedDevices subkey stores the database of mounted devices for the NTFS filesystem
https://technet.microsoft.com/en-us/library/cc978525.aspx

mounteddevices_20170404221711d0e.png

USBドライブならHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\配下のレジストリにデバイス情報があります。

参考
http://www.forensicswiki.org/wiki/USB_History_Viewing
https://www.forensicmag.com/article/2012/08/windows-7-registry-forensics-part-6

| NEXT>>

プロフィール

トニヒコ

Author:トニヒコ
趣味は旅行と読書とマンガ。
将来の夢はコスモポリタン!

リンク・フリーです。

My hobby is traveling and reading(include manga).
My dream is to become cosmopolitan!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
スポンサード リンク
マクロミルへ登録
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR