2014年3月31日月曜日

野良サーバで攻撃を観測してみた①

@ozuma5119様の資料にインスパイアされ自分でもやってみたくなりましたので、
やってみた。一部についてブログにしてみます。

@ozuma511様はさくらVPSをレンタルしていて観察していました。
私はVPSを借りれるほどの余裕がないので流行のRaspberryPiをDMZに設定して観察してみました。

しばらく放置してみると、アクセスログにいろいろ面白そうなログがありました。
数回に分けて紹介したいと思います。巡回してスキャンされているようなログでした。

今回は下記のようなログにフィーチャーして考察していきたいと思います。
-----ログ-----
107.155.65.34 - - [18/Mar/2014:00:48:24 +0000] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 404 489 "-" "ZmEu"
107.155.65.34 - - [18/Mar/2014:00:48:24 +0000] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 479 "-" "ZmEu"
107.155.65.34 - - [18/Mar/2014:00:48:24 +0000] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 479 "-" "ZmEu"
107.155.65.34 - - [18/Mar/2014:00:48:25 +0000] "GET /pma/scripts/setup.php HTTP/1.1" 404 474 "-" "ZmEu"
107.155.65.34 - - [18/Mar/2014:00:48:25 +0000] "GET /myadmin/scripts/setup.php HTTP/1.1" 404 477 "-" "ZmEu"
107.155.65.34 - - [18/Mar/2014:00:48:25 +0000] "GET /MyAdmin/scripts/setup.php HTTP/1.1" 404 478 "-" "ZmEu"
---------------

とにかくsetup.phpというファイルが存在するかどうかを数パターンのパスでスキャンしているようです。

アクセスしようとしているパスがどこかで見た事あるパスだなー?って思って記憶を辿るとXAMPP使ってたときによく見てたような。。。
それはさておき、実際このログがどういう意味なのかを知りたくなるのでググってみると
意外と多くの方がこういった観察をしていることが分かります。

ググってみるとやはりozuma様のブログ「phpMyAdminを狙った攻撃観察」がヒットして、
しかも分かりやすいので同じログを検出した方は一読する価値はあります。
詳細については是非ozuma様のブログを読んで頂ければと思います。
対策にも触れていてたいへん参考になりました。

折角なので(ozuma様のブログを多々引用してしまうような形になりますが)自分なりに考察していきます。

【w00tw00t】
この意味についてozuma様が説明していました。とても面白かったです。
何だろうと気になっていたのでスッキリしました。悪い人たちもちゃんと名乗っているのだなとw

【107.155.65.34】
アクセス元のIPアドレスについて検索してみると以下のような結果が返ってきました。
IPアドレス問合せ先(取得時間は 0.877秒)
「 whois.arin.net (北アメリカおよびサブサハラ・アフリカ)」
ARINはAmerican Registry for Internet Numbersの頭文字なる組織のようです。
ARINのwhois検索で調べるとこのIPアドレスは「Incero LLC」なる会社のサーバのようです。テキサスのオースティンという場所にある会社のようです。
でも、踏み台にされているだけかもしれませんしこれ以上は追いません。
(というか私みたいな素人では追いきれません。)

【setup.phpまでのパス】
私のところに来たログのパスをまとめると以下のような感じになります。
phpMyAdmin3より古いバージョンにある脆弱性に対する攻撃のようです。
/phpMyAdmin/scripts/(デフォルトのパス)
/phpmyadmin/scripts/(小文字にして)
/pma/scripts/(省略系)
/myadmin/scripts/(省略系2)
/MyAdmin/scripts/(省略系3)
数パターンでスキャンしている。自動的に生成しているパスではなく定型パターンでスキャンしている感じ。おおよそこんな感じにしているだろうという考えのもとなのか、適当なのか。共通しているのはscriptsというところでした。


とまぁほとんどozuma様のブログと被ってしまったような考察になってしまいたいへん恐縮ですが勉強になりました。
phpMyAdminはMySQLをGUIでいじれるのは楽なので欠かせないツールだと思います。
インストールしっぱなしではなく最新のセキュリティ情報に気をつけて運用することが重要です。

次回は私もファイルがあるように見せかけて、次の一手は何をしてくるのかというのを見てみたいので実践する予定です。

2014年3月16日日曜日

ラズベリーパイでAndroid Debug Bridge(adb)を動かす

ラズベリーパイにWheezyをインストールしています。
インストールしているというかSDカードに入れています。

【やりたい事】
1.ラズパイのUSBにAndroid端末を接続
2.Adbサーバを起動して端末に接続
3.Adbkitで面白そうなアプリを作って動かす

1.は簡単にできます。
気をつける事は、ラズパイの電源を入れた状態でUSBを接続すると再起動しちゃう。
面倒という方は電源オフの状態でUSB接続してから起動するといいと思います。

2.Android公式サイトのLinux向けバンドルをダウンロードしてもそのままでは実行できませんでした。なるほど、そりゃそーか。と納得して。
誰かしら動かしてるだろうと調べる。案の定いました!
この人の記事にヒットしてリンク先のソースをダウンロードしました。
adb起動もうまく行った。

3.Node.js環境をapt-getコマンドで整える。nodejs、npmコマンドが使えればおけかと思っていました。
3.1.自分で書いたAdbkitアプリをダウンロードしてnpm installを実行すればpackage.jsonに従ってモジュールをインストールしてくれるかと思いきや!
apt-getでインストールしたnodejsのバージョンが低すぎたようだ。
仕方ないので自分でインストールする。
バージョンが頻繁に変わるのでnvmを導入するのがいいということで、
このサイト(http://d.hatena.ne.jp/hosikiti/20130925/1380093487)を参考にインストールします。

コンパイルにかなり時間を要するのでお気をつけを。

package.jsonがいけないのかnpm installだけではインストールできない。
モジュールのnode用モジュールを別々にインストールする。

$npm install ejs
$npm install express
$npm install adbkit
$npm install coffee-script

coffee-scriptは開発に使うのでインストールします。
$node app.jsを実行すれば上記のような画面が表示されて実行されました。

めでたし。