SATAN
SATAN-1.1.1.
Сначала про инсталляцию. Из дистрибутива он, в принципе, ставится для
многих платформ. Вот как назло, кроме линуха. Сам дистрибут довольно
старый, и линукс с тех пор убежал далеко вперед, а САТАН лезет довольно
глубоко в TCP/IP стек. Ну, вам для линукса и не нужно, а кому нужно, на
ftp://sunsite.unc.edu/pub/Linux лежит патченная версия. Правда, про нее
ходят слухи (в comp.os.linux), что эта версия работает, но дар не находит.
Разворачиваешь архив, смотришь, есть ли у тебя netscape (в крайнем
случае Mosaic, еще хуже lynx) и перл не младше 5.0. В принципе, без
www-интерфейса можно обойтись вообще - задать все параметры из командной
строки...
Запускаешь ./reconfig, а еще лучше perl reconfig (там могут быть
проблемы с параметрами sh). Я буду рассказывать про текущую директорию, ту,
в которую все разворачивается.
Этот reconfig можешь руками подправить. Например, если у вас, как у
всех, /usr/local/bin/netscape версии 3.0, а /usr/local/netscape/netscape
версии 4.0+, то каталог /usr/local/netscape можешь внести в массив
$other_dirs первым.
Затем make - компилируются штук пять вспомогательных программ (вот как
раз те, которые в глубь ОСа лезут, они-то в линуксе и не компиляются).
Все, готов к работе. Никаких make install, поэтому разворачивай сразу в
защищенную директорию.
Теперь запускаешь ./satan, можно вовсе без параметров. Он запускается,
становится WWW-сервером (порт выбирает случайным образом) и запускает
netscape, указывая на себя. Запускается для сканирования он только от рута
(я так понимаю, манипулирует привелигированными портами), но после
сканирования можно из рута выйти и результаты просматривать от любого юзера
(имеющего доступ на чтение к базам.). Известная дырка - поскольку он
WWW-сервер, то на него можно попытаться пойти. САТАН с этим борется,
генерируя префикс сессии, и пуская netscape только с этим префиксом. Но если
кто по сети подглядит префикс сессии и номер порта...
Ну хорошо, вот на экран вылез нетскейп, в нем - SATAN Control Panel.
Выбираешь первый пункт - Data Management. Он предлагает создать/открыть
базу данных. База - это подкаталог каталога ./results, в базе будут лежать
3 файла, текстовые, но довольно корявые, да и то там они появятся после
сканирования.
По умолчанию работаешь с базой satan-data, но это не очень мнемоничное
название, так что создаешь базу (имя каталога), например,
i.am.scanning-site.ru. Нажимаешь кнопку Open/create. Он тебе откроет
классный экран Warning - SATAN Password Disclosure. Тоже известная дыра,
уже не в САТАНе, в www-browser'ах. Если ты во время работы пойдешь на
другой сайт, есть риск, что бродилка скажет там HTTP_REFERER, ну а в нем
уже упомянутый префикс сесии.
Ничего не делаешь, сразу нажимаешь в browser'е RELOAD. Появляется
следущий экран, почти пустой, в нем выбираешь (слева внизу) back to start
page.
Попадаешь на начальную страницу, выбираешь target selection. Здесь
пишешь имя хоста, с которого начнешь сканировать, укажешь, сканировать ли
всю сеть или только один хост, и "уровень нападения", который может быть
слабым, нормальным и крутым. И кнопочка Start the scan. Вот тут-то все и
начинается.
SATAN начнет извлекать информацию из имени хоста, получит его сеть и
начнет сканировать всю сеть или отдельно стоящий хост, и процесс этот будет
отображать в окне скейпа. Длительность сканирования и количество
информации, конечно, сильно зависят от уровня и самой сети. Один хост в
режиме light тестируется секунды. Локальная сеть тестируется heavy час.
После сканирования можно будет опять вернуться на начальную страницу, а
можно выйти из САТАНа, выйти из-под рута, опять запустить САТАН, и уже не
спеша читать анализ - Reporting & Data Analysis. Там, в общем, все ясно.
Следующий пункт в control panel'и - Configuration Management. Это
оконный интерфейс для редактирования файла ./config/satan.cf. Файл можно
редактировать и руками.
Самые интересные параметры конфигурации - proximity. Они регулируют
способ перехода от подсети/домена к другим подсетям/доменам. Общая идея
приерно такая. Если САТАН в процессе тестирование узла обнаружил, что,
например, MX или secondary NS указывают на другую сеть/домен, то эти другие
попадают в список "соседей". Ну и, естественно, становятся кандидатами на
тестирование. Параметр $max_proximity_level указывает, каких соседей
тестироввать. При установке из дистрибута это параметр равен 0, что
означает тестирование только primary target - хоста или сети. Установка
этого параметра в единицу приводит к тестированию первых соседей, в 2 -
соседей соседей. Следует учесть, что число "соседних" хостов растет по
экспоненте.
В документации сказано "Ни при каких обстоятельствах не устанавливайте
этот параметр больше 2"! Ничего удивительного. Это может кончится
сканированием всего Интернета и, как следствие, суровыми карами для
системного администратора и его начальства.
Другой параметр - $proximity_descent, - показывает, как изменяется
уровень атаки при переходе к соседям. Уровень атаки уменьшается на эту
величину. Т.е. установкой его в 0 можно сканировать соседей на том же
уровне, что и основную цель, установкой в 1 - соседи будут тестироваться на
один уровень слабее, соседи соседей на 2 уровня...
Параметр $sub_zero_proximity говорит, надо ли останавливаться при
тестировании соседей, когда уровень атаки упадет ниже 0.
Сочетая значения этих параметров, можно сказать, например, "сканируй
primary target на уровне normal, а соседей вообще не сканируй", или
"сканируй primary на уровне heavy, соседей - normal, соседей 2-го порядка
light"...
Хорошая вещь SATAN!