Если вы изучите дополнительные процедуры, то увидите, что это обычные программы на языке Perl. Если у вас есть опыт работы с Perl, вы в состоянии писать собственные расширения, позволяющие выполнять для просканированных хостов практически произвольную функцию. Например, можно извлечь и вывести HTTP-заголовки для всех обнаруженных web-серверов, чтобы было легче их идентифицировать. Не стоит слишком этим увлекаться, поскольку такие программы, как Nessus (рассматривается в лекции 5), могут производить значительно более обстоятельные проверки, но если вам нужен только заголовок или какой-то небольшой фрагмент информации, то применение Nlog будет хорошим решением.
Nlog поставляется с образцом пользовательского дополнения, названным nlog-bind.pl. Эта процедура предназначена для опроса сервера DNS и выдачи используемой версии BIND (Berkeley Internet Name Domain), однако она не закончена и служит лишь в качестве упражнения для создания собственных дополнений. Образец находится в каталоге /nlog*/extras/bind/. Следующие шаги помогут вам дописать процедуру. Этот подход можно использовать для самостоятельного создания любой пользовательской процедуры.
В каталоге будет создан бинарный файл bindinfo.
Замените маршрут_к_bindinfo на маршрутное имя каталога, в который вы поместили бинарный файл.
1: # here we place each cgi-handler into a temp var for readability. 2: 3: $cgiSunRPC = "sunrpc+$cgidir/nlog-rpc.pl+SunRPC"; 4: $cgiSMB = "netbios-ssn+$cgidir/nlog=smb.pl+NetBIOS"; 5: $cgiFinder = "finder+$cgidir/nlog-finder.pl+Finder"; 6: 7: $qcgilinks = "$cgiSunRPC $cgiSMB $cgiFinder";
В строке 7 вы можете аналогичным образом добавить ссылки на любые другие созданные вами процедуры.
Теперь, когда Nmap найдет открытым порт 53 (обычно это DNS-сервер), вы можете щелкнуть мышью на ссылке, которую создает Nlog, и выяснить, какая версия BIND выполняется. Следуя логике этого примера, можно написать дополнительные процедуры для расширения Nlog.