Завоевание интернета Крис Касперски ака мыщъх Спецвыпуск: Хакер, номер #059, стр. 059-066-6 14 Mwe 81112C0 1356 1522 890 1592/2000 0 IP Background 15 Lsi 8121298 0 25 0 1792/2000 0 IP Cache Ager 16 Cwe 80237BE 0 1 0 1748/2000 0 Critical Bkgnd 17 Mwe 802365A 12 5 2400 1476/2000 0 Net Background 18 Lwe 804E82E 16 4 4000 1192/2000 0 Logger 19 Msp 80456DE 80 1493 53 1728/2000 0 TTY Background 20 Msp 802345C 20 1494 13 1800/2000 0 Per-Second Jobs 21 Msp 80233F2 68 1494 45 1488/2000 0 Net Periodic 22 Hwe 80234DC 4 1 4000 1724/2000 0 Net Input 23 Msp 8023482 772 25 30880 1800/2000 0 Per-minute Jobs 24 Lwe 8109834 4 2 2000 3620/4000 0 IP SNMP 25 Mwe 815CE08 0 1 0 1712/2000 0 SNMP Traps 26 ME 811805A 0 26 0 1892/2000 0 IP-RT Background 27 ME 803B0F8 32 11 2909 2760/4000 2 Virtual Exec Настоящим подарком для хакеров стала команда "gdb", вызывающая встроенный отладчик и поддерживающая следующие подкоманды: gdb debug PID /* не реализовано */ examine PID /* отладка процесса с указанным PID */ kernel /* отладка ядра, работает только с консоли */ Однако, прежде чем использовать отладчик, его необходимо скомпилировать. Идем на www.gnu.org/software/gdb/download, берем копию посвежее или, наоборот, постарее (предпочтительно использовать gdb-4.18, как наиболее протестированную) и говорим: mkdir m68k-cisco ../configure --target m68k-cisco make В результате мы получим двоичный файл для платформы m68k. Для остальных платформ компиляция осуществляется аналогичным образом. Теперь можно начинать отладку! Консоль в это время будет нефункциональна, а весь обмен с отладчиком пойдет через его собственный отладочный протокол, описанный в исходном файле remote.c. На маршрутизаторе устанавливается серверная часть отладчика, а на терминале - клиентская. Причем отладка ядра (подкоманда kernel) возможна только с консоли. Дадим команду "gdb examine 18", где "18" – идентификатор отлаживаемого процесса (в данном случае "logger"). Подробнее обо всем этом можно прочитать на сайте команды XFocus: www.xfocus.net/articles/200307/583.html). Основные отладочные команды перечислены в таблице 2. Для отладки желательно иметь символьную информацию, однако IOS - это закрытая система с закрытыми спецификациями (ну, не такими уж и закрытыми, если учесть, что это порт BSD, унаследовавший родимые пятна багов в zlib, ssh и SNMP), и символьной информации не достать (во всяком случае, через легальные каналы), тем не менее, корпеть над дизассемблированием дампа не придется. В мае 2004 года корпоративная сеть Cisco Systems была взломана и исходные тексты системы IOS 12.3, 12.3t попали в руки хакера по кличке franz, который распространил через IRC небольшую часть сорцов (~2,5 Мб) в качестве доказательства. Самое интересное, что Майкл обнаружил бага именно в этом месте. Подозрение усиливается тем фактом, что дизассемблировать IOS за ночь современно невозможно, а именно столько потребовалось franz'у для анализа. |