2012年12月27日木曜日

log2timeline-sift の使い方

SANS が提供する SIFT に入っている log2timeline-sift は HDD のイメージからタイムラインを作成するツール。

使い方は下記にある。
http://computer-forensics.sans.org/blog/2011/12/07/digital-forensic-sifting-super-timeline-analysis-and-creation

コマンドラインの基本的な使い方は
log2timeline-sift -z <time zone> -p <partition #> -i <image>

だが、これだとうまくいかなかった。
環境としては Win7 のパーティションイメージだったので、 -win7 -p 0 にして、なぜかマウントポイントを最後につけたらうまくいった。原因はまったくもって不明、なくてもよかったのかも。

log2timeline-sift -win7 -z Japan -p 0 -i <image_file> <mount point>

コマンドがはいると、「マウントする?」と聞かれるので y を押すと、そのまま解析に入る。
またディスクイメージでパーティションが複数ある場合は街頭のパーティションを選択する。
その場合、-p 0 オプションは不要、またはパーティション番号を入力。

SIFT で実行した場合は下記のフォルダに <image_file>_bodyfile.txt で作成される。

/cases/timeline-output-folder/

作成されたファイルはエクセルなどの表計算ソフトで開くことができる。
かなり大きなサイズになっているので、探したい期間がある程度絞れているなら、l2t_process -b で期間指定し csv ファイルにすると扱いやすい。

l2t_process -b <image_file>_bodyfile.txt 12-01-2012..12-31-2012 > <image_file>_bodyfile.csv




2012年12月20日木曜日

NetworkMiner の使い方

NetworkMiner は NETRESEC が提供する Windows 向けのネットワークフォレンジックツール。
パケットキャプチャ機能もあるが、統計データやキャプチャしたデータから様々なデータを取り出すのに向いている。

下記から実行ファイルがダウンロードできる。インストールは不要で実行ファイルのみ。
http://www.netresec.com/?page=NetworkMiner

ただし、NET Framework 2.0 が必要。あと winpcap も必要らしい。
詳しくは下記サイト。
http://sourceforge.net/apps/mediawiki/networkminer/index.php?title=NetworkMiner

実行ファイルを起動したら、File から pcap ファイルを読み込むことが可能。
読み込むと左のウィンドウに表示されるので選択して下にある Reload Case Files で読み込んであとは勝手に解析してくれる。

よく使いそうなのは Files と Credentials のタブ。
Files はキャプチャファイルの中で送受信があったファイルを復元してくれている。同じようなものに Images タブもある。
Credentials タブにはユーザ名やパスワードなど重要な情報を抜き出してくれる。

解析した結果は実行ファイルがあるフォルダの AssembledFiles の下に作られる。
html ファイルやメールの添付ファイルもここに保存されるため、必要な場合はここから取り出すことが可能。

2012年12月19日水曜日

medusa の使い方

パスワードクラックツールとして有名な medusa の使い方。
ほかにもリモートからのクラックツールとしては hydra とか ncrack が有名だが 機能が充実してそうな medusa を使う。

以下の@ITのサイトを参考にした。
http://www.atmarkit.co.jp/fsecurity/rensai/dknight06/dknight01.html

BackTrack には標準で付属しているためインストールなどは省略。
medusa 以外に必要になるのがユーザ名のリストやパスワードリスト、辞書など。

たとえば以下のサイトは2008年のワーストパスワードトップ500がある。
ここから抜き出しても使用できる。
http://www.whatsmypass.com/the-top-500-worst-passwords-of-all-time

以下、オプションで使いそうな部分だけ日本語に。

# medusa 
Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks 

ALERT: Host information must be supplied.

Syntax: Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
  -h [TEXT]    : 検査対象のホスト名またはIPアドレスを指定
  -H [FILE]    : 検査対象のホスト名またはIPアドレスが記述されたファイルを指定
  -u [TEXT]    : 検査するユーザ名を指定
  -U [FILE]    : 検査するユーザ名が記述されたファイルを指定
  -p [TEXT]    : 検査するパスワードを指定
  -P [FILE]    : 検査するパスワードが記述されたファイルを指定
  -C [FILE]    : File containing combo entries. See README for more information.
  -O [FILE]    : File to append log information to
  -e [n/s/ns]  : n を指定するとパスワードなし、s を指定すると Password = Username で検査
  -M [TEXT]    : 検査するモジュール、要は ssh とか ftp とかを指定
  -m [TEXT]    : Parameter to pass to the module. This can be passed multiple times with a
                 different parameter each time and they will all be sent to the module (i.e.
                 -m Param1 -m Param2, etc.)
  -d           : Dump all known modules
  -n [NUM]     : デフォルトではないポートを使用するときに指定、ssh なのに tcp 1000 とか使うとき
  -s           : Enable SSL
  -g [NUM]     : Give up after trying to connect for NUM seconds (default 3)
  -r [NUM]     : Sleep NUM seconds between retry attempts (default 3)
  -R [NUM]     : Attempt NUM retries before giving up. The total number of attempts will be NUM + 1.
  -t [NUM]     : Total number of logins to be tested concurrently
  -T [NUM]     : Total number of hosts to be tested concurrently
  -L           : Parallelize logins using one username per thread. The default is to process 
                 the entire username before proceeding.
  -f           : Stop scanning host after first valid username/password found.
  -F           : Stop audit after first valid username/password found on any host.
  -b           : Suppress startup banner
  -q           : Display module's usage information
  -v [NUM]     : 表示レベルを 0 - 6 で指定
  -w [NUM]     : Error debug level [0 - 10 (more)]
  -V           : Display version
  -Z [TEXT]    : Resume scan based on map of previous scan

先ほどのワースト500のパスワードリストを使って、192.168.0.100 の ssh サーバに設定された root/pasword に対しての実行結果は以下のとおり。

# medusa -h 192.168.0.100 -u root -P 500-worst-passwords.txt -M ssh
Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks 

GENERAL: Parallel Hosts: 1 Parallel Logins: 1
GENERAL: Total Hosts: 1 
GENERAL: Total Users: 1
GENERAL: Total Passwords: 501

The default build of Libssh2 is to use OpenSSL for crypto. Several Linux
distributions (e.g. Debian, Ubuntu) build it to use Libgcrypt. Unfortunately,
the implementation within Libssh2 of libgcrypt appears to be broken and is
not thread safe. If you run multiple concurrent Medusa SSH connections, you
are likely to experience segmentation faults. Please help Libssh2 fix this
issue or encourage your distro to use the default Libssh2 build options.

ACCOUNT CHECK: [ssh] Host: 192.168.0.100 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: 123456 (1 of 501 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.0.100 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: password (2 of 501 complete)
ACCOUNT FOUND: [ssh] Host: 192.168.0.100 User: root Password: password [SUCCESS]
GENERAL: Medusa has finished.

これが500ワード全部実行するとログが多くなるので、-v で 4 を指定すると成功のみ表示される。
3以下は結果が出力されない。

# medusa -h 192.168.0.100 -u root -P 500-worst-passwords.txt -M ssh -v 4
Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks 


The default build of Libssh2 is to use OpenSSL for crypto. Several Linux
distributions (e.g. Debian, Ubuntu) build it to use Libgcrypt. Unfortunately,
the implementation within Libssh2 of libgcrypt appears to be broken and is
not thread safe. If you run multiple concurrent Medusa SSH connections, you
are likely to experience segmentation faults. Please help Libssh2 fix this
issue or encourage your distro to use the default Libssh2 build options.

ACCOUNT FOUND: [ssh] Host: 192.168.0.100 User: root Password: password [SUCCESS]

2012年12月12日水曜日

Windows 端末の IPv6 の統計確認

Windows 端末で IPv6 の統計情報(送信や破棄のパケット、エラー等)を見る方法のメモ 。
基本は netsh interface ipv6 show ipstats コマンドで確認する。

C:\>netsh interface ipv6 show ipstats
MIB-II IP 統計情報
------------------------------------------------------
転送:                               無効
既定の TTL:                         128
受信:                               121
着信ヘッダー エラー:                0
着信アドレス エラー:                59
転送データグラム:                   0
不明な着信プロトコル:               0
廃棄された着信パケット:             2
配信された着信パケット:             3194
出力要求:                           3418
ルーティング廃棄数:                 0
廃棄された発信パケット:             0
経路制御不能な発信パケット:         8
再構築のタイムアウト:               60
必要な再構築:                       0
成功した再構築:                     0
失敗した再構築:                     0
成功したフラグメント:               0
失敗したフラグメント:               0
作成されたフラグメント:             0


エラーカウントや失敗したフラグメントなどが上がっていればどこかで設定ミスの可能性がある。
また同様にしてtcpの統計情報を見ることもできる。

C:\>netsh interface ipv6 show tcpstats

MIB-II TCP 統計情報
------------------------------------------------------
タイムアウト アルゴリズム:           Van Jacobson アルゴリズム
最短タイムアウト:                    10
最長タイムアウト:                    4294967295
最大接続数:                          動的
アクティブ オープン数:               30
パッシブ オープン数:                 24
試行の失敗回数:                      6
確立されたリセット:                  14
現在の確立:                          2
着信セグメント:                      638
発信セグメント:                      626
再転送セグメント:                    12
着信エラー:                          0
発信リセット:                        19


ここでタイムアウトアルゴリズムにVan Jacobson アルゴリズムとあるが、これは輻輳防止用アルゴリズム。
このアルゴリズムについては IPv4 も同じものを使用している。
また同様にして udp の統計情報も確認可能

C:\>netsh interface ipv6 show udpstats

MIB-II UDP 統計情報
------------------------------------------------------
着信データグラム:                       1621
無効な着信ポート:                       0
無効な着信データグラム:                 0
発信データグラム:                       3203

また各コマンドは rr=5 とすると5秒間隔で更新される。
ping などで状況確認するときに便利かも。