Bash Cybersecurity Ops with bash Attack, Defend, and Analyze from the и кибербезопасность Command Line Атака, защита и анализ из командной строки Linux Пол Тронкон Paul Troncone and Carl Albing Карл Олбинг BBeeiijjiinngg BBoossttoonn FFaarrnnhhaamm SSeebbaassttooppooll TTookkyyoo Bash Cybersecurity Ops with bash Attack, Defend, and Analyze from the и кибербезопасность Command Line Атака, защита и анализ из командной строки Linux Пол Тронкон Paul Troncone and Carl Albing Карл Олбинг BBeeiijjiinngg BBoossttoonn FFaarrnnhhaamm SSeebbaassttooppooll TTookkyyoo ББК 32.988.02-018-07 УДК 004.056.53 Т73 Тронкон Пол, Олбинг Карл Т73 Bash и кибербезопасность: атака, защита и анализ из командной строки Linux. — СПб.: Питер, 2020. — 288 с.: ил. — (Серия «Для профессионалов»). ISBN 978-5-4461-1514-3 Командная строка может стать идеальным инструментом для обеспечения кибербезопасности. Невероятная гибкость и абсолютная доступность превращают стандартный интерфейс командной строки (CLI) в фундаментальное решение, если у вас есть соответствующий опыт. Авторы Пол Тронкон и Карл Олбинг рассказывают об инструментах и хитростях командной строки, помогающих собирать данные при упреждающей защите, анализировать логи и отслеживать состояние сетей. Пентестеры узнают, как проводить атаки, используя колоссальный функционал, встроенный практически в любую версию Linux. 16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ББК 32.988.02-018-07 УДК 004.056.53 Права на издание получены по соглашению с O’Reilly. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как на- дежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет- ресурсы были действующими. ISBN 978-1492041313 англ. Authorized Russian translation of the English edition of Cybersecurity Ops with bash (ISBN 9781492041313) © 2019 Digadel Corp and Carl Albing This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. ISBN 978-5-4461-1514-3 © Перевод на русский язык ООО Издательство «Питер», 2020 © Издание на русском языке, оформление ООО Издательство «Питер», 2020 © Серия «Для профессионалов», 2020 Оглавление Введение...................................................................................................................................................12 Для.кого.эта.книга..........................................................................................................................13 Bash.или.bash...................................................................................................................................13 Надежность.скриптов...................................................................................................................13 Рабочая.среда...................................................................................................................................14 Условные.обозначения.................................................................................................................14 Использование.примеров.кода..................................................................................................15 Благодарности.................................................................................................................................15 От.издательства.....................................................................................................................................16 Часть I. Основы Глава 1..Работа.с.командной.строкой............................................................................................18 Определение.командной.строки...............................................................................................18 Почему.именно.bash......................................................................................................................19 Примеры.использования.командной.строки........................................................................19 Запуск.Linux.и.bash.в.Windows.................................................................................................20 Основы.работы.с.командной.строкой.....................................................................................22 Выводы...............................................................................................................................................28 Упражнения.....................................................................................................................................28 Глава 2. Основы.работы.с.bash.........................................................................................................30 Вывод..................................................................................................................................................30 Переменные......................................................................................................................................31 6 Оглавление Ввод.....................................................................................................................................................33 Условия..............................................................................................................................................33 Циклы.................................................................................................................................................37 Функции............................................................................................................................................39 Шаблон.соответствия.в.bash......................................................................................................41 Написание.первого.сценария:.определение.типа.операционной.системы.................43 Выводы...............................................................................................................................................44 Упражнения.....................................................................................................................................45 Глава 3. Регулярные.выражения.....................................................................................................46 Используемые.команды...............................................................................................................47 Метасимволы.регулярного.выражения..................................................................................48 Группирование................................................................................................................................50 Квадратные.скобки.и.классы.символов..................................................................................50 Обратные.ссылки...........................................................................................................................53 Квантификаторы............................................................................................................................54 Якоря.и.границы.слов...................................................................................................................55 Выводы...............................................................................................................................................55 Упражнения.....................................................................................................................................55 Глава 4..Принципы.защиты.и.нападения.....................................................................................57 Кибербезопасность........................................................................................................................57 Жизненный.цикл.атаки................................................................................................................59 Выводы...............................................................................................................................................63 Часть II. Защитные операции с использованием bash Глава 5. Сбор информации ...............................................................................66 Используемые.команды...............................................................................................................67 Сбор.информации.о.системе......................................................................................................71 Поиск.в.файловой.системе..........................................................................................................81 Передача.данных.............................................................................................................................93 Выводы...............................................................................................................................................94 Упражнения.....................................................................................................................................94 Оглавление 7 Глава 6..Обработка.данных...............................................................................................................96 Используемые.команды...............................................................................................................96 Обработка.файлов.c.разделителями......................................................................................101 Обработка.XML............................................................................................................................103 Обработка.JSON...........................................................................................................................105 Агрегирование.данных...............................................................................................................107 Выводы.............................................................................................................................................109 Упражнения...................................................................................................................................109 Глава 7. Анализ.данных....................................................................................................................110 Используемые.команды.............................................................................................................110 Ознакомление.с.журналом.доступа.к.веб-серверу...........................................................111 Сортировка.и.упорядочение.данных.....................................................................................113 Подсчет.количества.обращений.к.данным..........................................................................114 Суммирование.чисел.в.данных................................................................................................118 Отображение.данных.в.виде.гистограммы..........................................................................120 Поиск.уникальности.в.данных................................................................................................126 Выявление.аномалий.в.данных...............................................................................................128 Выводы.............................................................................................................................................131 Упражнения...................................................................................................................................131 Глава 8. Мониторинг.журналов.в.режиме.реального.времени...........................................133 Мониторинг.текстовых.журналов..........................................................................................133 Мониторинг.журналов.Windows............................................................................................136 Создание.гистограммы,.актуальной.в.реальном.времени..............................................137 Выводы.............................................................................................................................................143 Упражнения...................................................................................................................................143 Глава 9..Инструмент:.мониторинг.сети......................................................................................145 Используемые.команды.............................................................................................................146 Шаг.1..Создание.сканера.портов.............................................................................................146 Шаг.2..Сравнение.с.предыдущим.выводом.........................................................................149 Шаг.3..Автоматизация.и.уведомление..................................................................................152 Выводы.............................................................................................................................................155 Упражнения...................................................................................................................................156 8 Оглавление Глава 10. Инструмент:.контроль.файловой.системы.............................................................157 Используемые.команды.............................................................................................................157 Шаг.1..Определение.исходного.состояния.файловой.системы...................................158 Шаг.2..Обнаружение.изменений.в.исходном.состоянии.системы..............................159 Шаг.3..Автоматизация.и.уведомление..................................................................................162 Выводы.............................................................................................................................................166 Упражнения...................................................................................................................................166 Глава 11. Анализ.вредоносных.программ..................................................................................168 Используемые.команды.............................................................................................................168 Реверс-инжиниринг.....................................................................................................................171 Извлечение.строк.........................................................................................................................174 Взаимодействие.с.VirusTotal....................................................................................................176 Выводы.............................................................................................................................................183 Упражнения...................................................................................................................................183 Глава 12..Форматирование.и.отчетность...................................................................................184 Используемые.команды.............................................................................................................184 Форматирование.для.отображения.в.виде.HTML-документа.....................................185 Создание.панели.мониторинга................................................................................................191 Выводы.............................................................................................................................................195 Упражнения...................................................................................................................................196 Часть III. Тестирование на проникновение Глава 13. Разведка..............................................................................................................................198 Используемые.команды.............................................................................................................198 Просмотр.веб-сайтов...................................................................................................................199 Автоматический.захват.баннера..............................................................................................200 Выводы.............................................................................................................................................205 Упражнения...................................................................................................................................205 Глава 14..Обфускация.сценария...................................................................................................207 Используемые.команды.............................................................................................................207 Обфускация.синтаксиса............................................................................................................208 Обфускация.логики.....................................................................................................................210 Шифрование..................................................................................................................................213 Оглавление 9 Выводы.............................................................................................................................................224 Упражнения...................................................................................................................................224 Глава 15..Инструмент:.Fuzzer.........................................................................................................226 Реализация......................................................................................................................................227 Выводы.............................................................................................................................................231 Упражнения...................................................................................................................................232 Глава 16..Создание.точки.опоры...................................................................................................233 Используемые.команды.............................................................................................................233 Бэкдор.одной.строкой.................................................................................................................234 Пользовательский.инструмент.удаленного.доступа........................................................237 Выводы.............................................................................................................................................242 Упражнения...................................................................................................................................242 Часть IV. Администрирование систем обеспечения безопасности Глава 17..Пользователи,.группы.и.права.доступа...................................................................244 Используемые.команды.............................................................................................................244 Пользователи.и.группы..............................................................................................................247 Права.доступа.к.файлам.и.списки.управления.доступом..............................................250 Внесение.массовых.изменений................................................................................................253 Выводы.............................................................................................................................................254 Упражнения...................................................................................................................................254 Глава 18..Добавление.записей.в.журнал....................................................................................255 Используемые.команды.............................................................................................................255 Запись.событий.в.журнал.Windows.......................................................................................256 Создание.журналов.Linux.........................................................................................................257 Выводы.............................................................................................................................................258 Упражнения...................................................................................................................................258 Глава 19..Инструмент:.мониторинг.доступности.системы..................................................259 Используемые.команды.............................................................................................................259 Реализация......................................................................................................................................260 Выводы.............................................................................................................................................262 Упражнения...................................................................................................................................262 10 Оглавление Глава 20..Инструмент:.проверка.установленного.программного.обеспечения............263 Используемые.команды.............................................................................................................264 Реализация......................................................................................................................................266 Определение.остального.программного.обеспечения.....................................................267 Выводы.............................................................................................................................................269 Упражнения...................................................................................................................................269 Глава 21..Инструмент:.проверка.конфигурации.....................................................................270 Реализация......................................................................................................................................270 Выводы.............................................................................................................................................275 Упражнения...................................................................................................................................276 Глава 22..Инструмент:.аудит.учетных.записей........................................................................277 Меня.взломали?............................................................................................................................277 Проверяем,.не.взломан.ли.пароль..........................................................................................278 Проверяем,.не.взломан.ли.адрес.электронной.почты......................................................280 Выводы.............................................................................................................................................285 Упражнения...................................................................................................................................285 Глава 23..Заключение........................................................................................................................286