18.11.2014 Views

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

JIT SPRAY АНАЛИЗ TDSS - Xakep Online

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!