MD5のハッシュ値によるパスワードクラッカーサイト [ツール]
MD5のハッシュ値によるパスワードクラッカーサイト
http://www.hash-cracker.com/
http://www.md5decrypt.org/
http://www.md5online.org/
http://md5decryption.com/
http://www.hash-cracker.com/
http://www.md5decrypt.org/
http://www.md5online.org/
http://md5decryption.com/
Baidu IME パート2 [ツール]
もう少し詳しく、Baidu IMEを追っかけてみました。
対象ソフトウェア(2014年2月11日現行バージョン)
Baidu IME 3.5.2.17
2014年1月24日リリース
■インストール~起動までの流れ
インストール時に
CoCreateGuidは、内部でRPCRT4のUuidCreateを呼び出している。
GUIDは以下のファイルに保存される。
C:\WINDOWS\system32\baidujp20.cfg
このファイルは、インストール中は、GUIDのみ保存していたが、インストール後、以下の内容が保存された。
[USER]
GUID_FOR_LOG={96199E8A-BA9C-4B42-A465-961BFAC56486}
Install_Times=1
GUID={96199E8A-BA9C-4B42-A465-961BFAC56486}
install_time=2014-02-11 01:47:59
[settings]
path=C:\Program Files\Baidu\IME\3.5.2.17
connect_time=600
[url]
upload=http://sync.ime.baidu.jp/cgi-bin/getlog.cgi
uploadText=http://sync.ime.baidu.jp/cgi-bin/getmsg.cgi
[version]
app_ver=3.5.2.17
dict_ver=3.5.2.17
この作業+最新版確認の通信を行った後、インストールをするかどうかの画面が表示される。
インストール中(設定ウィザード表示前)に基本情報を送信する。
インストール直後(設定ウィザード表示後)に最新版確認をおこなうために、あるいは、インストール完了情報のためにデータを送信する。
その後、すぐに辞書をダウンロードする。
起動時に基本情報を送信する。
一定時間経過後に最新版を確認するために送信する。
■クラウド機能をOn
入力を行うごとに接続を行うが、確定情報は送信されない。
また、以前確定した情報は送信する場合としない場合がある。
■バグ?
一定時間経過後に最新版を確認するためにダウンロードしようとしたファイルを、プログラムではなくダミーの文字列にすると、以下のようにクラッシュする。
また、ログ機能をOnにしても確定データ等は送信されず。
■UUID
UUID(MSではGuid)は、上記のとおり、CoCreateGuidを用いて生成しているため、UUID ver.4又はver.5であると思われます。
以下は、2回インストールした際の値であり、全く異なりました。
1回目
96199E8A-BA9C-4B42-A465-961BFAC56486
2回目
577AC2D1-7CA6-4163-8AAD-9DF0C610D1C4
■通信
Base64で送ったり、そのままUTF-16で送ったりする場合があり、マチマチなところが多々ある。
User-Agentもおそらくハードコーティングされていると思われます。
表示が上手くできていませんが、コピー&ペーストをすれば全部読めます。
対象ソフトウェア(2014年2月11日現行バージョン)
Baidu IME 3.5.2.17
2014年1月24日リリース
■インストール~起動までの流れ
インストール時に
CoCreateGuid
を呼び出しており、Windows APIを用いてGUID(UUID)を生成している。CoCreateGuidは、内部でRPCRT4のUuidCreateを呼び出している。
GUIDは以下のファイルに保存される。
C:\WINDOWS\system32\baidujp20.cfg
このファイルは、インストール中は、GUIDのみ保存していたが、インストール後、以下の内容が保存された。
[USER]
GUID_FOR_LOG={96199E8A-BA9C-4B42-A465-961BFAC56486}
Install_Times=1
GUID={96199E8A-BA9C-4B42-A465-961BFAC56486}
install_time=2014-02-11 01:47:59
[settings]
path=C:\Program Files\Baidu\IME\3.5.2.17
connect_time=600
[url]
upload=http://sync.ime.baidu.jp/cgi-bin/getlog.cgi
uploadText=http://sync.ime.baidu.jp/cgi-bin/getmsg.cgi
[version]
app_ver=3.5.2.17
dict_ver=3.5.2.17
この作業+最新版確認の通信を行った後、インストールをするかどうかの画面が表示される。
インストール中(設定ウィザード表示前)に基本情報を送信する。
インストール直後(設定ウィザード表示後)に最新版確認をおこなうために、あるいは、インストール完了情報のためにデータを送信する。
その後、すぐに辞書をダウンロードする。
起動時に基本情報を送信する。
一定時間経過後に最新版を確認するために送信する。
■クラウド機能をOn
入力を行うごとに接続を行うが、確定情報は送信されない。
また、以前確定した情報は送信する場合としない場合がある。
■バグ?
一定時間経過後に最新版を確認するためにダウンロードしようとしたファイルを、プログラムではなくダミーの文字列にすると、以下のようにクラッシュする。
また、ログ機能をOnにしても確定データ等は送信されず。
■UUID
UUID(MSではGuid)は、上記のとおり、CoCreateGuidを用いて生成しているため、UUID ver.4又はver.5であると思われます。
以下は、2回インストールした際の値であり、全く異なりました。
1回目
96199E8A-BA9C-4B42-A465-961BFAC56486
2回目
577AC2D1-7CA6-4163-8AAD-9DF0C610D1C4
■通信
Base64で送ったり、そのままUTF-16で送ったりする場合があり、マチマチなところが多々ある。
User-Agentもおそらくハードコーティングされていると思われます。
表示が上手くできていませんが、コピー&ペーストをすれば全部読めます。
時期 | ドメイン名 | IP | 国 | Method、Path、Query | UA | 備考(内容) |
---|---|---|---|---|---|---|
インストール前 | update.ime.baidu.jp | 119.63.197.130 | 日本 | GET /pre_install.html | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール中 (設定ウィザード表示前) | sync.ime.baidu.jp | 119.63.197.171 | 日本 | POST /cgi-bin/get_install_msg.cgi | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | type=install_new|||partnerID=|||UserID={96199E8A-BA9C-4B42-A465-961BFAC56486}|||install_time=2014-02-11 01:47:59|||app_ver=3.5.2.17|||old_ver=||| |
インストール後 (設定ウィザード終了後) | update.ime.baidu.jp | 119.63.197.130 | 日本 | GET /finish_install.html | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/cell_dict.xml | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/girlpower.btod | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/2013SummerAnimation.btod | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/SummerKaomoji.btod | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/stars.btod | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/2013AutumnKaomoji.btod | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/2013AutumnNewAnimation.btod | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
インストール後 (設定ウィザード終了後) | download.ime.baidu.jp | 119.63.197.131 | 日本 | GET /sub-dic/v3/ZipCode.btod | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | - |
起動時 | sync.ime.baidu.jp | 119.63.197.171 | 日本 | POST /cgi-bin/getmsg.cgi | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | Base64のUTF-16で次の内容が送信 [2014-02-11 01:51:14] USER={96199E8A-BA9C-4B42-A465-961BFAC56486}|||app_ver=3.5.2.17|||dict_ver=3.5.2.17|||install_time=2014-02-11 01:47:59|||enable_default_ime_check=1|||enable_use_table=1|||sns_enable_use=1|||enable_skinnewer=1|||enable_joinadvance=1|||skin_name=default|||first_use_time=2014-02-11 01:51:14|||DefInputLang=1||| |
クラウド機能を Onにして起動時 | sync.ime.baidu.jp | 119.63.197.171 | 日本 | Base64のUTF-16で次の内容が送信 POST /cgi-bin/getmsg.cgi | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | [2014-02-11 01:51:14] USER={96199E8A-BA9C-4B42-A465-961BFAC56486}|||app_ver=3.5.2.17|||dict_ver=3.5.2.17|||install_time=2014-02-11 01:47:59|||enable_default_ime_check=1|||enable_use_table=1|||sns_enable_use=1|||enable_skinnewer=1|||enable_joinadvance=1|||skin_name=default|||enable_cloud_input=1|||first_use_time=2014-02-11 01:51:14|||DefInputLang=1||| |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%BE,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | ま |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%BE%E3%81%A3%E3%81%8F,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | まっく |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%BE%E3%81%A3%E3%81%8F,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | まっく(Enter) |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%82,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | あ |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%82%E3%81%A9,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | あど |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%82%E3%81%A9%E3%82%8C,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | あどれ |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%82%E3%81%A9%E3%82%8C%E3%81%99,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | あどれす |
クラウド機能を Onにして入力時 | cloud.ime.baidu.jp | 119.63.198.161 | 日本 | GET /py?py=%E3%81%82%E3%81%A9%E3%82%8C%E3%81%99,&ol=1 | Mozila/4/0 (compatible: MSIE 6.0; Windows NT 5.1) | あどれす(Enter) |
最新版チェック | update.ime.baidu.jp | 119.63.197.130 | 日本 | GET /cgi-bin/get_update_info.cgi?id=%7B96199E8A-BA9C-4B42-A465-961BFAC56486%7D&ver=3.5.2.17&os=win%205.1.2600&input_stype=2&partner_id=&dict_ver=3.5.2.17&is_def_ime=1&user_type=1&service_status=4 | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | この時は、USER=ではなく、idとなっているが、UUIDである。id={96199E8A-BA9C-4B42-A465-961BFAC56486} |
Baidu IME [ツール]
まとめサイト
Baidu IMEまとめサイト
去年末にBaidu-IMEが騒がれており、その後何度かアップデートがされたもようです。
そこで、現行バージョン3.5.2.17を調べたところ、インストール時に
update.ime.baidu.jp
sync.ime.baidu.jp
にアクセスを行い、更新情報及び辞書データを受信しようとしていました。
また、起動時、再起動時にもアクセスをしていました。
その際に、UUID(マイクロソフトではGUID)を送信していることを確認しました。
以前はどうやらSIDでしたが、UUIDに変更されたようです。
ただし、正規のAPIを使って取得したUUIDなのか、独自の方式なのかは不明でした。
2回インストールを行って、2回ともこの値は、全く異なる値だったので、インストール時に生成していると思われます。
クラウド機能をOnにするとデータがSSL通信で行われていましたが、通信時に上記のUUIDやSID、インストールファイルパス等は送信されておらず、py=に文字列、ol=1が送信されているのみでした。
確定した文字も送信していませんでした。
Baidu IMEまとめサイト
去年末にBaidu-IMEが騒がれており、その後何度かアップデートがされたもようです。
そこで、現行バージョン3.5.2.17を調べたところ、インストール時に
update.ime.baidu.jp
sync.ime.baidu.jp
にアクセスを行い、更新情報及び辞書データを受信しようとしていました。
また、起動時、再起動時にもアクセスをしていました。
その際に、UUID(マイクロソフトではGUID)を送信していることを確認しました。
以前はどうやらSIDでしたが、UUIDに変更されたようです。
ただし、正規のAPIを使って取得したUUIDなのか、独自の方式なのかは不明でした。
2回インストールを行って、2回ともこの値は、全く異なる値だったので、インストール時に生成していると思われます。
クラウド機能をOnにするとデータがSSL通信で行われていましたが、通信時に上記のUUIDやSID、インストールファイルパス等は送信されておらず、py=に文字列、ol=1が送信されているのみでした。
確定した文字も送信していませんでした。
wiresharkの保存ファイル [ツール]
Wiresharkのダンプファイルは、pcapngファイルとpcapファイルがあり、デフォルトだと前者になってしまう。
tcpdumpでは読めないっぽい。
変換するには、editcapを使う。
editcap.exe -F libpcap [変換前ファイル].pcapng [変換後ファイル].pcap
フォーマット
pcap-ngファイルフォーマット
tcpdumpでは読めないっぽい。
変換するには、editcapを使う。
editcap.exe -F libpcap [変換前ファイル].pcapng [変換後ファイル].pcap
フォーマット
pcap-ngファイルフォーマット
Fiddlerでレスポンスを止める方法 [ツール]
Fiddlerでレスポンスを変更する方法。
1 起動してキャプチャモード(左下の0101アイコンが表示状態)にする。
F12ボタンか左下の0101アイコンをクリックする。
2 Alt+F11でAfter Responsesとして、BreakPointを設定する。
メニューのRules→Automatic BreakPoint→After ResponsesをチェックでもOK。
(これで常にレスポンスが返ってきてブラウザに到達する前に止まる)
3 ブラウザ(IE)で接続する。
4 サーバからの応答が返ってきてブラウザに表示する前にブレークポイントで止まっているため、セッションが赤くなっている部分を選択する。
5 右側のビューのInspectorsタブをクリック。
6 右側の下側のビューのText View又はRawタブをクリックする。
7 サーバから返ってきた文字列が表示されているので変更したい文字列に修正する。
8 右側の真ん中にあるRun to Completionボタンをクリックする。
9 ブラウザに変更された文字列が表示される。
AutoResponderと組み合わせる場合は、F11でBefore RequestsでRequest前にBreakPointを仕掛けるとうまくいきました。
そうすれば、相手サーバは不要になる。
これで、マルウェア解析で通信先から指令を受けるコマンドを送信すれば、解析が捗るハズ。
1 起動してキャプチャモード(左下の0101アイコンが表示状態)にする。
F12ボタンか左下の0101アイコンをクリックする。
2 Alt+F11でAfter Responsesとして、BreakPointを設定する。
メニューのRules→Automatic BreakPoint→After ResponsesをチェックでもOK。
(これで常にレスポンスが返ってきてブラウザに到達する前に止まる)
3 ブラウザ(IE)で接続する。
4 サーバからの応答が返ってきてブラウザに表示する前にブレークポイントで止まっているため、セッションが赤くなっている部分を選択する。
5 右側のビューのInspectorsタブをクリック。
6 右側の下側のビューのText View又はRawタブをクリックする。
7 サーバから返ってきた文字列が表示されているので変更したい文字列に修正する。
8 右側の真ん中にあるRun to Completionボタンをクリックする。
9 ブラウザに変更された文字列が表示される。
AutoResponderと組み合わせる場合は、F11でBefore RequestsでRequest前にBreakPointを仕掛けるとうまくいきました。
そうすれば、相手サーバは不要になる。
これで、マルウェア解析で通信先から指令を受けるコマンドを送信すれば、解析が捗るハズ。
JavaScript 難読化関係 [ツール]
JavaScriptの難読化はGumblar(Drive By Download)が流行った時に、話題になったと思います。
難読化に関するサイトをちょっと探してみましたので、メモっておきます。
難読化サイト
定番
http://dean.edwards.name/packer/
同じ
http://javascriptcompressor.com/
ただの圧縮
http://www.creativyst.com/Prod/3/
解読
整形サイト
http://www.mobilefish.com/services/javascriptformatter/javascriptformatter.php
こちらも整形サイト
http://www.javascriptbeautifier.com/
同じく整形サイト
http://www.dirtymarkup.com/
こちらはかなり解読してくれます
http://www.jspretty.com/
こちらもかなり解読してくれます
http://jsbeautifier.org/
難読化に関するサイトをちょっと探してみましたので、メモっておきます。
難読化サイト
定番
http://dean.edwards.name/packer/
同じ
http://javascriptcompressor.com/
ただの圧縮
http://www.creativyst.com/Prod/3/
解読
整形サイト
http://www.mobilefish.com/services/javascriptformatter/javascriptformatter.php
こちらも整形サイト
http://www.javascriptbeautifier.com/
同じく整形サイト
http://www.dirtymarkup.com/
こちらはかなり解読してくれます
http://www.jspretty.com/
こちらもかなり解読してくれます
http://jsbeautifier.org/
VirtualBoxでホストOSからゲストOS上のプログラムを実行する方法 [ツール]
VirtualBoxで、ホストOSからゲストOSのプログラムを起動する方法。
VBoxManage guestcontrol "WinXP" execute C:\WINDOWS\System32\calc.exe --username [ユーザ名] --password [パスワード] --verbose --wait-stdout --timeout 5000
これは、WinXPというゲストOS上で、電卓を実行するコマンドです。
--wait-stdoutを入れないと実行されないみたいです。
タイムアウトはミリ秒で5秒後に強制終了できます。
VBoxManage guestcontrol "WinXP" execute C:\WINDOWS\System32\calc.exe --username [ユーザ名] --password [パスワード] --verbose --wait-stdout --timeout 5000
これは、WinXPというゲストOS上で、電卓を実行するコマンドです。
--wait-stdoutを入れないと実行されないみたいです。
タイムアウトはミリ秒で5秒後に強制終了できます。
opensslを用いた文字列の暗号化・復号 [ツール]
opensslコマンドを使った文字列の暗号化と復号のまとめ
-aes-128-cbc:AES暗号、128ビット、CBCモード
-e:暗号化
-base64:表示をBase64で表示する。
-pass pass:test:パスワードフレーズとしてtestを使用
-p:saltやKey、IVを表示
#echo "TEST"|openssl enc -aes-128-cbc -e -base64 -pass pass:test -p
結果の表示
salt=F6BEF056BA3B3E00
key=0A1430ED15866E4907BB3F98EA19F463
iv =E2FC0CE7D64F5A86034F487E7E50A5B4
U2FsdGVkX1/2vvBWujs+AKB//Shqg1mdUOMFvoNyi/o=
復号
-aes-128-cbc:AES暗号、128ビット、CBCモード
-d:復号
-base64:入力をBase64で扱う。
-pass pass:test:パスワードフレーズとしてtestを使用
-p:saltやKey、IVを表示
#echo "U2FsdGVkX1/2vvBWujs+AKB//Shqg1mdUOMFvoNyi/o="|openssl enc -d -aes-128-cbc -base64 -pass pass:test -p
結果の表示
salt=F6BEF056BA3B3E00
key=0A1430ED15866E4907BB3F98EA19F463
iv =E2FC0CE7D64F5A86034F487E7E50A5B4
TEST
元に戻ったのを確認できました。
この暗号化の結果である
U2FsdGVkX1/2vvBWujs+AKB//Shqg1mdUOMFvoNyi/o=
は、Base64でありバイナリに直して文字列化すると
Salted__コ;>…
となり、
バイナリでは、
53 61 6C 74 65 64 5F 5F F6 BE F0 56 BA 3B 3E 00 A0 7F FD 28 6A 83 59 9D 50 E3 05 BE 83 72 8B FA
と表示できます。
最初の16バイトはSaltです。
53 61 6C 74 65 64 5F 5F = S a l t e d _ _
なので、
Salted__F6 BE F0 56 BA 3B 3E 00
であり、除外する必要があります。
Saltの部分を取り除くと本来の暗号化バイト列は、
A0 7F FD 28 6A 83 59 9D 50 E3 05 BE 83 72 8B FA
です。
よって、これを復号するためには、
暗号化バイト列
A07FFD286A83599D50E305BE83728BFA
鍵
key=0A1430ED15866E4907BB3F98EA19F463
IV
iv =E2FC0CE7D64F5A86034F487E7E50A5B4
と
AES暗号、128ビット、CBCモード、パディングはPKCS7かな?
で
TEST
が出てきます。
バイト列に直すと、
54 45 53 54 0A
なので、改行文字列が含まれていました。
#echo "TEST"
は改行が入るのですね。
続いて、KeyとIVを直性指定し、Saltを使用しない方法
-aes-128-cbc:AES暗号、128ビット、CBCモード
-e:暗号化
-base64:表示をBase64で表示する。
-K:keyバイト列
-iv:IVバイト列
-p:saltやKey、IVを表示
-nosalt:Saltを使用しない
#echo "TEST"|openssl enc -aes-128-cbc -e -base64 -K "A48C3157CF75EC0A1DBA46B6622F5585" -iv "D526E07AA918B6E57123C390E5C90C24" -nosalt -p
結果の表示
key=A48C3157CF75EC0A1DBA46B6622F5585
iv =D526E07AA918B6E57123C390E5C90C24
DhRA4JXmeddc5Apquyer8w==
これを復号します。
-aes-128-cbc:AES暗号、128ビット、CBCモード
-d:復号
-base64:入力をBase64で扱う。
-K:keyバイト列
-iv:IVバイト列
-p:saltやKey、IVを表示
-nosalt:Saltを使用しない
#echo "DhRA4JXmeddc5Apquyer8w=="|openssl enc -aes-128-cbc -d -base64 -K "A48C3157CF75EC0A1DBA46B6622F5585" -iv "D526E07AA918B6E57123C390E5C90C24" -nosalt -p
結果の表示
key=A48C3157CF75EC0A1DBA46B6622F5585
iv =D526E07AA918B6E57123C390E5C90C24
TEST
復号できたのが確認できました。
opensslがどうやって鍵を生成しているかは、以下のサイトが参考になります。
http://alpha.mixi.co.jp/2007/10639/
-aes-128-cbc:AES暗号、128ビット、CBCモード
-e:暗号化
-base64:表示をBase64で表示する。
-pass pass:test:パスワードフレーズとしてtestを使用
-p:saltやKey、IVを表示
#echo "TEST"|openssl enc -aes-128-cbc -e -base64 -pass pass:test -p
結果の表示
salt=F6BEF056BA3B3E00
key=0A1430ED15866E4907BB3F98EA19F463
iv =E2FC0CE7D64F5A86034F487E7E50A5B4
U2FsdGVkX1/2vvBWujs+AKB//Shqg1mdUOMFvoNyi/o=
復号
-aes-128-cbc:AES暗号、128ビット、CBCモード
-d:復号
-base64:入力をBase64で扱う。
-pass pass:test:パスワードフレーズとしてtestを使用
-p:saltやKey、IVを表示
#echo "U2FsdGVkX1/2vvBWujs+AKB//Shqg1mdUOMFvoNyi/o="|openssl enc -d -aes-128-cbc -base64 -pass pass:test -p
結果の表示
salt=F6BEF056BA3B3E00
key=0A1430ED15866E4907BB3F98EA19F463
iv =E2FC0CE7D64F5A86034F487E7E50A5B4
TEST
元に戻ったのを確認できました。
この暗号化の結果である
U2FsdGVkX1/2vvBWujs+AKB//Shqg1mdUOMFvoNyi/o=
は、Base64でありバイナリに直して文字列化すると
Salted__コ;>…
となり、
バイナリでは、
53 61 6C 74 65 64 5F 5F F6 BE F0 56 BA 3B 3E 00 A0 7F FD 28 6A 83 59 9D 50 E3 05 BE 83 72 8B FA
と表示できます。
最初の16バイトはSaltです。
53 61 6C 74 65 64 5F 5F = S a l t e d _ _
なので、
Salted__F6 BE F0 56 BA 3B 3E 00
であり、除外する必要があります。
Saltの部分を取り除くと本来の暗号化バイト列は、
A0 7F FD 28 6A 83 59 9D 50 E3 05 BE 83 72 8B FA
です。
よって、これを復号するためには、
暗号化バイト列
A07FFD286A83599D50E305BE83728BFA
鍵
key=0A1430ED15866E4907BB3F98EA19F463
IV
iv =E2FC0CE7D64F5A86034F487E7E50A5B4
と
AES暗号、128ビット、CBCモード、パディングはPKCS7かな?
で
TEST
が出てきます。
バイト列に直すと、
54 45 53 54 0A
なので、改行文字列が含まれていました。
#echo "TEST"
は改行が入るのですね。
続いて、KeyとIVを直性指定し、Saltを使用しない方法
-aes-128-cbc:AES暗号、128ビット、CBCモード
-e:暗号化
-base64:表示をBase64で表示する。
-K:keyバイト列
-iv:IVバイト列
-p:saltやKey、IVを表示
-nosalt:Saltを使用しない
#echo "TEST"|openssl enc -aes-128-cbc -e -base64 -K "A48C3157CF75EC0A1DBA46B6622F5585" -iv "D526E07AA918B6E57123C390E5C90C24" -nosalt -p
結果の表示
key=A48C3157CF75EC0A1DBA46B6622F5585
iv =D526E07AA918B6E57123C390E5C90C24
DhRA4JXmeddc5Apquyer8w==
これを復号します。
-aes-128-cbc:AES暗号、128ビット、CBCモード
-d:復号
-base64:入力をBase64で扱う。
-K:keyバイト列
-iv:IVバイト列
-p:saltやKey、IVを表示
-nosalt:Saltを使用しない
#echo "DhRA4JXmeddc5Apquyer8w=="|openssl enc -aes-128-cbc -d -base64 -K "A48C3157CF75EC0A1DBA46B6622F5585" -iv "D526E07AA918B6E57123C390E5C90C24" -nosalt -p
結果の表示
key=A48C3157CF75EC0A1DBA46B6622F5585
iv =D526E07AA918B6E57123C390E5C90C24
TEST
復号できたのが確認できました。
opensslがどうやって鍵を生成しているかは、以下のサイトが参考になります。
http://alpha.mixi.co.jp/2007/10639/
Virtual Boxのエラー [ツール]
Virtual Boxのバージョンを挙げるといくつか不具合が発生しました。
最たるものは、再起動したらエラーが出てログオンできないこと。
FATAL: Could not read from the boot medium! System halted.
なぜか、いったん、終了した後、起動すればこのエラーは出ません。
すなわち、
×再起動
○終了→起動
です。
もしトラぶっていたなら参考にしてください。
最たるものは、再起動したらエラーが出てログオンできないこと。
FATAL: Could not read from the boot medium! System halted.
なぜか、いったん、終了した後、起動すればこのエラーは出ません。
すなわち、
×再起動
○終了→起動
です。
もしトラぶっていたなら参考にしてください。
wiresharkのフィルタリング [ツール]
wiresharkのフィルタリング機能ですが、いつのバージョンからか変更されていました。
wiresharkのフィルタリングにはキャプチャフィルタリングとディスプレイフィルタリングがあり、通常よく目にするのはディスプレイフィルタリングだと思います。
しかし、ディスプレイフィルタリングはその名の通りパケットはバックグラウンドで取り続けているので、たくさんのパケットが流れている際は非常に重くなります。
そこで、最初からパケットを取らないのがキャプチャフィルタリングです。
しかし、以前はインターフェースを選択するときに入力することができたのに、最近のバージョンはありません。
なんじゃ~??と思って探すと、キャプチャフィルタリング自体の追加、編集、削除はツールバーのCpatureの「Capture Filters」で表示され、できます。
しかし、肝心の当該インターフェースにこのキャプチャフィルタリングをそもそもどうやって反映させるかが不明でした。
色々探すと、さきほどの画面上部のインターフェースをダブルクリックすると出てきました。
ここで、キャプチャフィルタリングをしたい項目を選択してOKをクリックすると下図のようになります。
これで、OKをクリックしてCapture Optionsに戻ると、インターフェースの右側にCapture Filterと記載されたところに選択したキャプチャフィルタリングの名称が記載されました。
これでキャプチャフィルタリングが適用されました。
ちなみに、ディスプレイフィルタリングとキャプチャフィルタリングは書き方が異なります。
tcpdumpの起動時オプションで書くのがキャプチャフィルタリングなので、IPアドレスを指定するときは、
ディスプレイフィルタリングだと
ip.addr==192.168.0.1
なのに対して、キャプチャフィルタリングだと
host 192.168.0.1
となりますので、注意が必要です。
wiresharkのフィルタリングにはキャプチャフィルタリングとディスプレイフィルタリングがあり、通常よく目にするのはディスプレイフィルタリングだと思います。
しかし、ディスプレイフィルタリングはその名の通りパケットはバックグラウンドで取り続けているので、たくさんのパケットが流れている際は非常に重くなります。
そこで、最初からパケットを取らないのがキャプチャフィルタリングです。
しかし、以前はインターフェースを選択するときに入力することができたのに、最近のバージョンはありません。
なんじゃ~??と思って探すと、キャプチャフィルタリング自体の追加、編集、削除はツールバーのCpatureの「Capture Filters」で表示され、できます。
しかし、肝心の当該インターフェースにこのキャプチャフィルタリングをそもそもどうやって反映させるかが不明でした。
色々探すと、さきほどの画面上部のインターフェースをダブルクリックすると出てきました。
ここで、キャプチャフィルタリングをしたい項目を選択してOKをクリックすると下図のようになります。
これで、OKをクリックしてCapture Optionsに戻ると、インターフェースの右側にCapture Filterと記載されたところに選択したキャプチャフィルタリングの名称が記載されました。
これでキャプチャフィルタリングが適用されました。
ちなみに、ディスプレイフィルタリングとキャプチャフィルタリングは書き方が異なります。
tcpdumpの起動時オプションで書くのがキャプチャフィルタリングなので、IPアドレスを指定するときは、
ディスプレイフィルタリングだと
ip.addr==192.168.0.1
なのに対して、キャプチャフィルタリングだと
host 192.168.0.1
となりますので、注意が必要です。
Burp suiteのリンク [ツール]
便利なツール
Burp Suite
http://portswigger.net/burp/
Web通信のプロキシとして動作し、送信データ、受信データを確認できます。
Windows版、Linux版があり、Linux版もGUIで動作します。
解説サイト
http://www.oshiete-kun.net/archives/2009/02/httpsburp_proxy.html
http://www.magata.net/memo/index.php?BurpProxy%A4%F2%BB%C8%CD%D1%A4%B7%A4%BFWEB%A5%A2%A5%D7%A5%EA%B8%A1%BA%BA
http://backendhacking.blog87.fc2.com/blog-category-10.html
http://root99.blogspot.com/2008/06/webburpsuite.html
Burp Suite
http://portswigger.net/burp/
Web通信のプロキシとして動作し、送信データ、受信データを確認できます。
Windows版、Linux版があり、Linux版もGUIで動作します。
解説サイト
http://www.oshiete-kun.net/archives/2009/02/httpsburp_proxy.html
http://www.magata.net/memo/index.php?BurpProxy%A4%F2%BB%C8%CD%D1%A4%B7%A4%BFWEB%A5%A2%A5%D7%A5%EA%B8%A1%BA%BA
http://backendhacking.blog87.fc2.com/blog-category-10.html
http://root99.blogspot.com/2008/06/webburpsuite.html
SQLite [ツール]
SQLiteを開くのに、PupSQLiteというツールがあります。
Firefoxのデータも開けるはずなので試してみると、壊れているか暗号が掛かっているとの表示。
よくよく調べると、バージョンが古い場合はこのエラーが出るらしい。
SQLiteの最新バージョンのDLLをダウンロードして、Windowsアプリを作成して表示したところ、開けました。
SQLiteから.NET3.5と4.0の32ビット版と64ビット版のDLLがそれぞれ出ています。こういう風に分かれてくると、一般的なツールを作るのは苦労するかも!?
Firefoxのデータも開けるはずなので試してみると、壊れているか暗号が掛かっているとの表示。
よくよく調べると、バージョンが古い場合はこのエラーが出るらしい。
SQLiteの最新バージョンのDLLをダウンロードして、Windowsアプリを作成して表示したところ、開けました。
SQLiteから.NET3.5と4.0の32ビット版と64ビット版のDLLがそれぞれ出ています。こういう風に分かれてくると、一般的なツールを作るのは苦労するかも!?
Twitterの色々 [ツール]
Twitterのフォロー、フォロワー等一覧。
http://twittergraph.wetcradle.com/
相関関係図
http://twitual.com/
表示できても使い道は不明だなぁ。
もう一つ進展がほしい。
http://twittergraph.wetcradle.com/
相関関係図
http://twitual.com/
表示できても使い道は不明だなぁ。
もう一つ進展がほしい。
Virtual Box [ツール]
Virtual Boxの最新版はインターフェースが少し変わりました。
テキストファイルの結合(Linux) [ツール]
テキストファイルを結合する方法
下記のファイルがあるとします。
file-20110102
file-20110116
file-20110130
file-20110109
file-20110123
file-20110206
これを結合するには、
#cat file-20110* > test.log
で結合できます。
行数を確認すると、
# wc -l file-20110*
14541 file-20110102
56558 file-20110109
58451 file-20110116
38178 file-20110123
23176 file-20110130
28216 file-20110206
219120 合計
# wc -l test.log
219120 test.log
で同じです。
下記のファイルがあるとします。
file-20110102
file-20110116
file-20110130
file-20110109
file-20110123
file-20110206
これを結合するには、
#cat file-20110* > test.log
で結合できます。
行数を確認すると、
# wc -l file-20110*
14541 file-20110102
56558 file-20110109
58451 file-20110116
38178 file-20110123
23176 file-20110130
28216 file-20110206
219120 合計
# wc -l test.log
219120 test.log
で同じです。
pChart2.1.0 [ツール]
pChart
PHPで使用できるOSSのグラフライブラリ。
ver.1より高機能になって公開されています。
しかし、ドキュメントが充実しておらず、使い方が不明なクラスメソッドがいくつか。
http://www.pchart.net/
PHPで使用できるOSSのグラフライブラリ。
ver.1より高機能になって公開されています。
しかし、ドキュメントが充実しておらず、使い方が不明なクラスメソッドがいくつか。
http://www.pchart.net/
twitter API [ツール]
twitter APIを調べてみた。
結構認証不要で取得できそうです。
http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt
色んなデータを取得しまくろう。
1分間とか1時間とかの制限回数があるみたいです。
ただし、OAuth 経由でアクセスする場合に限って、API を60分間に350回まで実行ができるそうです。
結構認証不要で取得できそうです。
http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt
色んなデータを取得しまくろう。
1分間とか1時間とかの制限回数があるみたいです。
ただし、OAuth 経由でアクセスする場合に限って、API を60分間に350回まで実行ができるそうです。
zabbixの計算 [ツール]
zabbix1.8.3には計算というアイテムタイプがあり、実数から百分率を出したりするのが便利になっています。
「memAvailReal.0」は、空き実メモリとして登録したアイテムのキー名
「memTotalReal.0」は、搭載実メモリとして登録したアイテムのキー名
これを百分率で計算したい場合は、別のアイテムでタイプを計算と選び、式に、
last("memAvailReal.0")/last("memTotalReal.0") * 100
と記述すればよい。
lastは最後の値、
memAvailReal.0やmemTotalReal.0は上で登録したアイテムのキー名である。
ダブルクォーテーションでキー名をくくらないとエラーになる。
そしたら、こんな感じでグラフも書けます。
「memAvailReal.0」は、空き実メモリとして登録したアイテムのキー名
「memTotalReal.0」は、搭載実メモリとして登録したアイテムのキー名
これを百分率で計算したい場合は、別のアイテムでタイプを計算と選び、式に、
last("memAvailReal.0")/last("memTotalReal.0") * 100
と記述すればよい。
lastは最後の値、
memAvailReal.0やmemTotalReal.0は上で登録したアイテムのキー名である。
ダブルクォーテーションでキー名をくくらないとエラーになる。
そしたら、こんな感じでグラフも書けます。
SQLDesigner [ツール]
SQLDesignerというAjaxのツールが面白そうです。
SQLの設計を書けて、XMLでの保存もできるようです。
ただ、設計したデータの保存は、MySQLが必要みたいです。
しかし、見やすくできて便利そうです。
Accessだとあまり自由に書けないので、こちらの方が自由度が高そうです。
http://ondras.zarovi.cz/sql/
デモもあります。
SQLの設計を書けて、XMLでの保存もできるようです。
ただ、設計したデータの保存は、MySQLが必要みたいです。
しかし、見やすくできて便利そうです。
Accessだとあまり自由に書けないので、こちらの方が自由度が高そうです。
http://ondras.zarovi.cz/sql/
デモもあります。
ddコマンドでハードディスク消去 [ツール]
ddコマンドを使って、ハードディスクを消去する方法
Fedora CoreやUbuntu、KNOPPIXのLive CDで起動します。
rootユーザになり、対象ハードディスクがIDEなら
dd if=/dev/urandom of=/dev/hda
SATAなら、
dd if=/dev/urandom of=/dev/sda
ハードディスクの個数により、hda、sdaは変わります。
この状態だと、現在どれぐらい書き込みされているかが不明なので、たとえば、1分毎に途中経過を確認するには、別のXターミナルを起動して、
while true; do killall -USR1 dd; sleep 60; done
とすればOK。
250GBで20時間~30時間ぐらい掛かります。
Fedora CoreやUbuntu、KNOPPIXのLive CDで起動します。
rootユーザになり、対象ハードディスクがIDEなら
dd if=/dev/urandom of=/dev/hda
SATAなら、
dd if=/dev/urandom of=/dev/sda
ハードディスクの個数により、hda、sdaは変わります。
この状態だと、現在どれぐらい書き込みされているかが不明なので、たとえば、1分毎に途中経過を確認するには、別のXターミナルを起動して、
while true; do killall -USR1 dd; sleep 60; done
とすればOK。
250GBで20時間~30時間ぐらい掛かります。
cactiのspine [ツール]
Fedora Core12にzabbix-jpのRPMをインストールしようとしたら、zabbix本体はインストール出来たが、zabbix-server、zabbix-webなどがインストールできなかったため、諦めた。
cactiでは、台数が多いとポーリングに掛かる時間が次のポーリング時間にかぶってしまい、オーバーしてしまうため、spineを導入する必要がある。
ソースからインストールしようとしたら、下記のエラーが発生。
configure: error: cannot run /bin/sh config/config.sub
これは、libtoolがないためだそうなので、libtoolを入れてやる。
それでもダメな場合、./bootstrapを実行する。
これにより、./configureファイルが書き換えられて、インストールできる。
実行ファイルは
/usr/local/spine/bin/spine
にある。
設定ファイル
/usr/local/spine/etc/spine.conf
を編集して、DBのユーザ、パスワードを入力する。
あとは、cactiのsettingsのPathのspineのパスを上記実行ファイルのパス、Pollerタブのpoller typeをspineに変更すればOK。
cactiでは、台数が多いとポーリングに掛かる時間が次のポーリング時間にかぶってしまい、オーバーしてしまうため、spineを導入する必要がある。
# cd /usr/local/src # wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz # tar -zxvf cacti-spine-0.8.7e.tar.gz # cd cacti-spine-0.8.7e # ./configure
ソースからインストールしようとしたら、下記のエラーが発生。
configure: error: cannot run /bin/sh config/config.sub
これは、libtoolがないためだそうなので、libtoolを入れてやる。
それでもダメな場合、./bootstrapを実行する。
これにより、./configureファイルが書き換えられて、インストールできる。
実行ファイルは
/usr/local/spine/bin/spine
にある。
設定ファイル
/usr/local/spine/etc/spine.conf
を編集して、DBのユーザ、パスワードを入力する。
あとは、cactiのsettingsのPathのspineのパスを上記実行ファイルのパス、Pollerタブのpoller typeをspineに変更すればOK。
zabbix [ツール]
cactiで色々探してたら、zabbixという統合監視ツールがありました。
しかも、稼働監視と死活監視を併せ持つ機能があるらしい。
さっそく入れてみたが、自分のFedora Core12ではなぜかSNMPが飛ばなかった。
そこで実験用のRed Hat Linux Enterprise Server 5にzabbix-jpのRPMを入れてみると、SNMPが飛ぶ。
なぜだろう。Fedora Coreとはパッケージが異なるんだろう。
仕方がないので、zabbix-JPのRPMで今度実験してみよう。
で、RHELで試したところ、簡易というだけあってグラフが見にくく、分かりづらい。しかし、設定は非常に楽だし、日本語メニューが表示できる。
死活監視もよさそうな感じ。
ということで、稼働監視(モニタリング)はcacti、死活監視はzabbixがいいかも。
しかも、稼働監視と死活監視を併せ持つ機能があるらしい。
さっそく入れてみたが、自分のFedora Core12ではなぜかSNMPが飛ばなかった。
そこで実験用のRed Hat Linux Enterprise Server 5にzabbix-jpのRPMを入れてみると、SNMPが飛ぶ。
なぜだろう。Fedora Coreとはパッケージが異なるんだろう。
仕方がないので、zabbix-JPのRPMで今度実験してみよう。
で、RHELで試したところ、簡易というだけあってグラフが見にくく、分かりづらい。しかし、設定は非常に楽だし、日本語メニューが表示できる。
死活監視もよさそうな感じ。
ということで、稼働監視(モニタリング)はcacti、死活監視はzabbixがいいかも。
cacti [ツール]
最近、統合監視ツールcactiを実験中です。
貧弱マシンだと結構グラフ描画動作が重いです。
閾値を超えたらsyslogに投げるプラグインの導入方法がちょっとまだよく分かりません。
貧弱マシンだと結構グラフ描画動作が重いです。
閾値を超えたらsyslogに投げるプラグインの導入方法がちょっとまだよく分かりません。
nmapで活きてるマシンを探す [ツール]
nmapで活きてるマシンを探すためにpingを飛ばす方法
nmap -sP 192.168.0.0/24
pingを飛ばさずにHTTPが開いているかを確認する方法
nmap -sS -P0 -p 80 192.168.0.0/24
nmap -sP 192.168.0.0/24
pingを飛ばさずにHTTPが開いているかを確認する方法
nmap -sS -P0 -p 80 192.168.0.0/24
Firefoxのアドオン Firebug [ツール]
FirefoxのアドオンFirebug
Webページの解析ができるアドオン
最新バージョンが対応しているFirefoxは、3.5以降です。
2009/06/08現在のFirefoxは3.0.10
http://getfirebug.com/jp.html
IEはHTTPS/HTTPの解析をするためのツールが紹介されています。
StraceとHTTPREPLAY
http://blogs.technet.com/jpieblog/archive/2009/05/26/3245463.aspx
Webページの解析ができるアドオン
最新バージョンが対応しているFirefoxは、3.5以降です。
2009/06/08現在のFirefoxは3.0.10
http://getfirebug.com/jp.html
IEはHTTPS/HTTPの解析をするためのツールが紹介されています。
StraceとHTTPREPLAY
http://blogs.technet.com/jpieblog/archive/2009/05/26/3245463.aspx