JIT SPRAY ÃÂÃÂÃÂÛØ× TDSS - Xakep Online
JIT SPRAY ÃÂÃÂÃÂÛØ× TDSS - Xakep Online
JIT SPRAY ÃÂÃÂÃÂÛØ× TDSS - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Заголовок файловой системы<br />
PORT STATE SERVICE<br />
53/udp open<br />
domain<br />
67/udp open|filtered dhcps<br />
69/udp open|filtered tftp<br />
MAC Address: 00:26:5A:74:70:79 (D-Link)<br />
Чутье не обмануло — сразу бросается в глаза tftp; уверен, что он используется<br />
для прошивки, но не будем спешить, убедимся в этом позже.<br />
Приступаем к сбору информации касательно строения операционной<br />
системы и телнетимся к роутеру:<br />
$ telnet 192.168.1.1<br />
Trying 192.168.1.1...<br />
Connected to 192.168.1.1.<br />
Escape character is '^]'.<br />
BCM96332 ADSL Router<br />
Login: admin<br />
Password: admin<br />
Нет уже родного мне приветствия BusyBox, только это приветствие<br />
немного отличалось. Через несколько мгновений до меня дошло,<br />
что BCM — это Broadcom! А далее в названии идет тип платы<br />
(чипа), на которой построен маршрутизатор. Изначально я опешил<br />
— shell урезан до безобразия... Сделано это, вероятно, для того,<br />
чтобы такие как мы не лазили где не надо, но ведь, с другой стороны,<br />
такие как мы пролезут везде. Команды cd, ls или dir напрочь<br />
отсутствуют, структуру каталогов не узнаешь. Однако, в help`e вдруг<br />
засветился echo — он может выводить список файлов/директорий,<br />
правда, без обозначения, где что (директория/файл/символическая<br />
ссылка) находится, то есть будут выведены лишь имена объектов.<br />
Замену ls нашли, а где же брать cd? В это время один из тараканов<br />
в моей голове подсказал набрать sh, и... бинго! Появилось знакомое<br />
приветствие BusyBox, и, мигом введя команду help, в выводе<br />
я обнаружил потерянный cd! Совсем неясно, для чего сделано это<br />
безобразие — 2 shell'а... Но теперь все готово, и, с горем пополам,<br />
наконец-то можно приступить к сбору информации. Для начала<br />
осмотримся:<br />
# echo *<br />
bin dev etc lib linuxrc mnt proc sbin usr var webs<br />
Все стандартно, за исключением linuxrc (как оказалось позже, это<br />
BusyBox) и webs (в этой директории содержатся файлы, относящиеся к<br />
веб-интерфейсу). Узнаем версию GNU\Linux:<br />
# cat /proc/version<br />
Linux version 2.6.8.1 (jenny@BS5) (gcc version 3.4.2)<br />
#1 Wed Mar 4 21:10:17 CST 2009<br />
VERSION=RU_1.50<br />
BCM_VERSION=3.10L.01.<br />
Revision=5317<br />
FSSTAMP=20090304211235<br />
При автоматическом заражении обязательно требуется проверять этот<br />
файл на соответствие версий, и при каких-либо отличиях прекращать<br />
инфицирование, иначе роутер может зависнуть, и получится «ни себе,<br />
ни людям». На официальном FTP-сервере лежит несколько вариантов<br />
прошивок для модели 2500U, каждая соответствует нужной версии<br />
аппаратного обеспечения.<br />
Следующее действие — просмотр информации об архитектуре:<br />
# cat /proc/cpuinfo<br />
system type : 96332<br />
processor : 0<br />
cpu model : BCM6338 V1.0<br />
BogoMIPS : 239.20<br />
wait instruction : no<br />
microsecond timers : yes<br />
tlb_entries : 32<br />
extra interrupt vector : yes<br />
hardware watchpoint : no<br />
unaligned access : 8407352<br />
VCED exceptions<br />
: not available<br />
VCEI exceptions<br />
: not available<br />
Как мы видим, роутер построен на плате Broadcom 96338. Ее используют<br />
множество производителей: Netgear, Asus и т.п., но с мелкими<br />
изменениями в программном обеспечении (например, у одного из<br />
производителей вместо веб-интерфейса панель управления находится<br />
в shell'e, но это совсем не страшно, так как нормальный shell остался),<br />
так что описанное здесь можно применить и к другим моделям. Построена<br />
эта плата на процессоре 280D MIPS, с тактовой частотой более<br />
200MHz (впрочем, это зависит от вольтажа). Сведения о памяти:<br />
# cat /proc/mounts<br />
rootfs / rootfs rw 0 0<br />
/dev/root / squashfs ro 0 0<br />
/proc /proc proc rw,nodiratime 0 0<br />
tmpfs /var tmpfs rw 0 0<br />
# cat /proc/mtd<br />
dev: size erasesize name<br />
mtd0: 00153000 00001000 "Physically mapped flash"<br />
# cat /proc/meminfo<br />
MemTotal:<br />
6108 kB<br />
MemFree:<br />
428 kB<br />
---8