Скрипты и безопасность (часть 2)
В первой части этой серии статей о том, как сценарии могут повлиять на вас как на практикующего специалиста по компьютерной безопасности, мы рассмотрели, как именно это может сделать сценарий PERL. Как я уже упоминал в первой статье, PERL или Python можно использовать по-разному, в зависимости от ваших предпочтений. В этой последней статье мы рассмотрим, как далее модифицировать скрипт, который я включил в первую часть, а затем посмотрим на модуль io:module, который есть в PERL. В завершение статьи будет краткий обзор некоторых мощных инструментов, таких как sed, grep и других, которые были перенесены на Win32.
Изменение скриптов
Не знаю, как вы, ребята, но нет ничего необычного в том, чтобы начать новую работу только для того, чтобы обнаружить, что вам нужно поддерживать множество устаревших сценариев. Под устаревшими сценариями я подразумеваю те, которые существовали до того, как вы начали новую работу. Часто трудно поддерживать или понимать эти сценарии в зависимости от того, насколько хорошо они написаны, а также из-за отсутствия или обилия комментариев в самом сценарии. Помните, если ваш сценарий станет объемным, вы должны включить подробные комментарии для тех, кому, возможно, придется поддерживать или изменять ваш сценарий. На этой ноте давайте взглянем на сценарий, который я написал в первой статье.
Ради краткости я не буду включать сценарий или входной файл, которые я показал вам в первой части этой статьи. Пожалуйста, скопируйте и вставьте этот образец входного файла на диск C:. Теперь, когда вы это сделали, мы готовы изменить сценарий, показанный в первой части, простым способом. Что мы сделаем, так это просто изменим шаблон поиска «192.168.1.102», добавив еще один IP-адрес. Да, действительно, у вас может быть скрипт, который ищет более одного шаблона за раз! Единственное изменение, которое мы на самом деле внесем, указано ниже. Все остальное в сценарии останется прежним.
Теперь, когда мы изменили наш скрипт, как показано выше, универсальность PERL снова выходит на первый план. Просто изменив одну строку, вы теперь сможете искать несколько экземпляров шаблона, которые могут вас заинтересовать. Быстро, легко и быстро, или, можно сказать, именно поэтому PERL так популярен.
IO:модуль PERL
Ранее в статье я упоминал, что мы рассмотрим один из многих модулей, которые может предложить PERL. Надеюсь, вы ознакомились с гиперссылкой, которую я вам только что предоставил, потому что там вас ждет кладезь модулей. Это отличное место, чтобы найти работающие модули, а затем попрактиковаться в PERL, пытаясь модифицировать их для каких-то других целей. Это или просто изучить, как выглядит хороший PERL. Поскольку нас всегда беспокоит безопасность, давайте взглянем на небольшой фрагмент кода эксплойта, который был написан на PERL и в котором также использовался модуль io:module. Ниже приведен пример кода. Также обратите внимание, что серия печатных заявлений для надлежащего признания этого сценария принадлежит Георгию Гунинскому.
Из этого скрипта видно, что он использует жестко закодированный IP-адрес. Это видно в строке, которую я подчеркнул, то есть: скалярное значение $host. В течение коротких 24 строк кода PERL рождается довольно изящный код эксплойта. Он использовался для демонстрации состояния отказа в обслуживании (DOS) на веб-сервере Apache. С другой стороны, когда мы видим код эксплойта на C или C++, обычно строк гораздо больше, чем 24.
Этот фрагмент кода эксплойта — прекрасный пример того, как вы можете размять свои подающие надежды мускулы PERL. Как насчет того, чтобы пойти дальше и изменить сценарий так, чтобы он запрашивал у пользователя IP-адрес, а не жестко запрограммировал его, как показано выше? Вы также можете сделать то же самое для скаляра порта. Это были бы просто незначительные модификации, но они послужили бы для демонстрации того, насколько гибким и компактным может быть PERL.
Электроинструменты
Долгое время Linux и UNIX могли заявлять, что у них лучшие инструменты оболочки. Если честно, было довольно сложно оспорить это утверждение, потому что они это сделали. Что ж, с тех пор это изменилось, и теперь win32 имеет доступ к тем же самым инструментам оболочки. Некоторые из самых известных инструментов, таких как sed и grep, перенесены на win32 из Linux и UNIX. Возможность внести изменения в один конкретный термин в длинном документе может быть обременительной. Не так с утилитой sed. Эта небольшая программа быстро справляется с такой задачей, поскольку это потоковый редактор, также известный как sed. Вы можете скачать эти инструменты прямо здесь. Как только вы привыкнете к использованию таких инструментов, как sed и grep, вы по-новому оцените интерфейс командной строки, предоставляемый вам через cmd.exe.
Заворачивать
В ходе этой серии статей из двух частей мы увидели, что PERL действительно бесценен для специалиста по компьютерной безопасности. Если изучение C или C++ на самом деле не для вас, то определенно потратьте немного времени на изучение некоторых навыков PERL для выживания. Возможность писать такие простые сценарии PERL, которые были рассмотрены здесь, сэкономит вам массу времени в будущем. Еще одна замечательная особенность PERL — его переносимость, если вы работаете в гетерогенной среде. Наконец, очень полезные инструменты, такие как sed и grep, также могут быть полезны в вашей повседневной деятельности. Вы будете удивлены, насколько мощными могут быть некоторые из этих инструментов, как только вы освоитесь с ними. Я искренне надеюсь, что вам понравилась эта серия статей, и, как всегда, буду рада вашим отзывам. До следующего раза!
Сценарии и безопасность (часть 1)