Боевой софт в Linux
Дмитрий Докучаев aka Forb
Xakep, номер #057, стр. 057-084-1
(forb@real.xakep.ru)
Вооружаем твоего пингвина до зубов!
Скитаясь по просторам интернета, все чаще встречаешь зафаерволенные до зубов сервера. Разумеется, без этого прожить довольно сложно - сломают в момент. Эксплоиты в наше время все чаще прорываются из private в public источники, тем самым позволяя даже самому ушастому ламеру поломать самый безопасный сервер. Защищать свои машины всегда полезно, но иногда стоит задуматься и о некоторой контратаке, которая остановит даже самого коварного противника. Речь пойдет не о применении банальных эксплоитов, это ты сможешь сделать самостоятельно, здесь нет ничего сложного. А поговорим мы о чудо-программках, способных существенно помочь тебе в сборе информации о противнике для нанесения достойного удара по почкам :).
Сбор информации о противнике
Разумеется, перед атакой ты должен знать о жертве как можно больше: начиная с ip-адреса и заканчивая физическим расположением сервера (вдруг ты атакуешь сервер нашей доблестной милиции, которая постучится к тебе в дверь через 20 минут после факта атаки). Также ты должен знать все открытые порты на сервере. Иными словами, без хорошего сканера тебе не обойтись. О них и поговорим.
1. Nmap - оружие настоящего разведчика.
Если ты выбрал nmap - сканер портов нового поколения, о котором не раз писал X, то ты сделал шаг в верном направлении. Я не буду расписывать его возможности, а лишь укажу некоторые плюсы этого чудо-сканера, чтобы лишний раз убедить тебя в его огромном преимуществе перед другими. Итак:
- Присутствие stealth-сканирования. Как правило, сам факт сканирования не записывается в логи, так как полное tcp-соединения еще не осуществилось, но nmap уже узнал об открытом порте.
- Возможность определения операционной системы, установленной на сервере. Но, к сожалению, на практике система определяется довольно криво, поэтому доверять этой фене не стоит.
-Некоторые приятные мелочи: изменения source ip-адреса, поддержка сканирования udp-портов и прочее.
Огорчает только один минус: nmap’у нужны root-права. Этот недостаток может оказаться фатальным, из-за которого разведчик отказывается от "услуг" сканера, несмотря на его продвинутость.
2. NetCat - швейцарский нож нового поколения.
В противовес Nmap, я решил выставить невзрачную, на первый взгляд, сетевую утилиту netcat. Недаром ее прозвали швейцарским ножом за огромную пользу, которую она принесла. Рассмотрим простую строку, реализующую сканирование tcp-портов. Даю гарантию, что о возможности сканирования портов в NetCat мало кто знает, а если и догадывается, то не умеет применить ее.
[root@shell root]# nc -v -z -w2 222.222.222.222 1-500
[222.222.222.222] 300 (?) : Operation timed out
[222.222.222.222] 143 (imap) open
[222.222.222.222] 113 (auth) open
[222.222.222.222] 111 (sunrpc) open
[222.222.222.222] 110 (pop3) open
[222.222.222.222] 106 (pop3pw) open
[222.222.222.222] 94 (objcall) : Operation timed out
Если ты думаешь, что сканирование портов - единственная фича NetCat, ты ошибаешься. Его возможности практически безграничны. Он может как прибиндить шелл на каком-либо порту, так и выполнять туннельную передачу данных между портами. Главное, знать опции этой чудесной тулзы. Поговорим о httpd. Очень часто требуется узнать баннер этого (хотя и не только этого) сервиса для определения, скажем, операционной системы сервера. Можно решить задачу в лоб: запустить telnet на порт и передать туда интересующие данные. Но участие "разведчика" в этой рутинной работе нежелательно, поэтому нас опять выручит NetCat. Дело в том, что сетевая кошка легко взаимодействует между локальными файлами и удаленными портами, поэтому задать алгоритм чтения баннера с порта можно легко и непринужденно.