
Здарова, Перцы! Допустим, досталось тебе хозяйство. По описи — сайт, база и один сервак. На рабочем столе прошлого админа лежит файлик "пароли старые НЕ УДАЛЯТЬ", а в понедельник бухгалтерия просит продлить сертификат для какого-то test2. В описи такой зверь вообще не значится. Зато за него, оказывается, третий год платят.
— Вот с этой мелочи и начнем. Заодно разберем 30 софтин и инструментов, которые обычно сваливают в одну папку "ХАК" и благополучно там забывают. По 5 штук на дело. Хозяйство у нас условное, сервера для активных проверок – свои.
Разведка – кто прописан в нашей сетке?
Subfinder: скормишь ему домен – он пошарит по пассивным источникам и принесет имена поддонов. В кучке знакомых www и mail может обнаружиться тот самый test2. Если у коллеги список длиннее, погоди чинить прогу. Возможно, он прикрутил ключ к источнику, куда тебя пока пускают только полюбоваться на форму регистрации.
Censys: теперь любопытно, каким наш сервак виден из большого инета. У Censys можно посмотреть сведения о хостах, сервисах и сертификатах, которые платформа успела собрать. Глазом зацепись за дату наблюдения. Вчерашний снимок старой железки запросто переживит саму железку.
OWASP Amass: годится для случая, когда доменов несколько, адреса менялись, а карту хозяйства последний раз рисовали на салфетке. Amass собирает сведения об активах и связывает их между собой. У него есть и активные методы разведки – для первого знакомства со своей коллекцией имен заранее выбери, куда ему можно стучаться.
theHarvester: этот товарищ интересуется еще и мылом. Из открытых источников вытаскивает адреса, поддомены и прочие следы организации. Старый адрес поддержки может подсказать, у кого спросить про забытый сервис. Только проверь когда его в последний раз публиковали. Почтовый ящик мог пережить отдел, которому принадлежал.
SpiderFoot: модули этой софтины умеют подхватывать находки друг друга. Один добыл адрес, следующий принес связанные с ним сведения и вот у тебя на экране уже целое фамильное древо. На общем хостинге "родственников" особенно много :) Приписывать соседские сайты своей конторе пока рановато.
В опись запиши имя, источник, дату и того, кто подтвердил принадлежность. Строчка "test2 – бухгалтерский стенд, уточнила Лена" переживет смену админа с большей пользой, чем граф на 4 экрана.
Веб – куда делась кнопка?
Допустим бухгалтерский стенд нашелся. У обычного юзера кнопка выгрузки серая, у начальника зеленая. Для художника работа закончена. Для нас самое интересное прячется между браузером и серваком
Burp Suite: через proxy видно, что браузер послал и что прилетело обратно. В Repeater удобно положить рядом запросы двух своих тестовых учеток и проверить какие данные сервер отдает каждой. Эти инструменты есть в комьюнити. За встроенным автоматическим сканером придется идти в Профессионал.
ZAP: можно походить по стенду с прокси и дать проге наблюдать за обменом в пассивном режиме. Есть и активные проверки. Приглядись к истории запросов после входа. Если там 10 раз подряд красуется форма логина, то ты уже весьма тщательно изучил форму логина. До бухгалтерии сканер пока не добрался.
Nuclei: пригодится админу, которому после обновления надо повторить одну и ту же проверку на нескольких своих сервисах. Условия записаны в шаблоне. Открой его когда в отчете что-то покраснело. По чему софтина узнавала проблему – по номеру версии в ответе или по поведению самого приложения? От этого зависит, что именно ты можешь написать в тикете.
ffuf: веб-фаззер. Умеет перебирать варианты путей и параметров, а результаты можно разбирать по статусу и размеру ответа. У некоторых движков есть чудная привычка отвечать кодом 200 даже на страницу "Ничего не найдено". Так что к тыще зеленых строк в отчете очень идет один взгляд на содержимое страницы.
sqlmap: спец по SQL-инъекциям. Когда предмет разбора – конкретный параметр приложения, эта прога помогает исследовать, как сервер обрабатывает его при обращении к базе. Для отчета разработчику пригодятся имя параметра, контекст и точка в коде. где собирается запрос. Одну надпись "нашли SQLi" ему потом придется расшифровать за тебя.
Инфраструктура: из бухгалтерии видно, из дома – фиг
Nmap: показывает какие порты доступны с машины, где его запустили и помогает опознать сервисы. Взять хотя бы коротенькое слово filtered. За ним скрывается вполне честное "отсюда не разобрать, открыт порт или закрыт". Запиши откуда смотрел, через неделю сам же будешь гадать, был у тебя тогда включен VPN или ты сидел на кухне с кружкой чая.
Wireshark: тут можно разглядеть обмен по пакетам. Клиент спросил DNS, получил адрес, попробовал установить соединение. На каком шаге все заглохло? Даже когда содержимое HTTPS зашифровано, в захвате остаются детали установления соединения. А вот за текстом накладной внутрь TLS без подходящих ключей лезть бессмысленно.
Greenbone Community Edition / OpenVAS: сканер OpenVAS входит в систему Greenbone. Удобно завести туда свои хосты, настроить задания и разобрать найденные проблемы. Перед сравнением двух отчетов глянь, обновлялась ли база проверок. Вчера одна дырка, завтра семь – иногда за ночь поумнел сканер, а сервак как стоял так и стоит.
Lynis: этот софт запускают на самой машине с Linux или другой поддерживаемой Unix-подобной системе. Она копается в настройках и подсказывает, что подкрутить. Возле каждого совета держи в голове для чего тачка работает. рядовой веб-сервер и рабочая станция разработчика могут иметь веские причины жить с разными конфигами.
testssl.sh: разбирается на каких версиях TLS и шифрах готов общаться сервис. Есть маленькая засада к моменту торжества. Ты весь вечер правил конфиг на бэкенде, а снаружи клиентов встречает балансировщик со своим TLS. Наутро клиент видит ровно то, что ему показал балансировщик – про твои вечерние подвиги он вообще не в курсе
Дежурка – в три часа ночи сервак куда-то полез
Zeek: пишет структурированные журналы сетевой активности. В conn.log удобно посмотреть, с кем общалась тачка, когда началось соединение и сколько данных прошло. Для дежурного это хорошая первая зацепка. Имя процесса, который полез в сеть придется искать на самой машине
Wazuh: собирает события с хостов и умеет следить за изменениями файлов. При разборе ночного шороха через него можно поднять нужные журналы – если их сбор был настроен. Есть дешевый способ проверить хозяйство заранее. На тестовом хосте измени файл в каталоге под наблюдением и посмотри какую запись получит дежурный.
Suricata: сетевой датчик, который разбирает трафик и поднимает тревогу, когда обмен подходит под правило. В записи о срабатывании посмотри имя сигнатуры, адреса и время. Это уже можно сверять с журналом соединений. А громкое имя сигнатуры пока побережем – начальство еще спит.
Sigma: как из песни. Формат, в котором аналитики описывают, какие события искать в логах. Правило можно перевести в запрос для своей системы. Есть деталь, которую легко проглядеть при переезде. Если правило ждет командую строку процесса, а в твоем журнале пишется только имя программы, нужной строки в данных просто нет. Хоть трижды переведи.
YARA: ищет сочетания строк и байтов по заданному правилу. Годится когда на разбор пришел файл и хочется найти похожие экземпляры в своей коллекции. Если правило опирается на одну надпись "Setup", в улове вполне может оказаться половина старого диска с дровами. Подбери признаки поточнее и прогони по заведомо обычным файлам.
Форензика: от вчерашнего дня остался винт
Autopsy: открываешь образ диска и разбираешь файлы, каталоги и метаданные. В нашем случае можно отыскать ночную выгрузку и выяснить, где она лежала. Только с выводом про автора файла погоди. Полное имя бухгалтера в названии в названии мог написать кто угодно, включая скрипт бэкапа с художественными наклонностями.
Velociraptor: когда машин два десятка, а вопрос к ним один, пригодится удаленный сбор артефактов. На подключенных хостах можно запросить нужные сведения и свести их вместе. Сначала прикинь, что тебе действительно нужно. Пара подходящих журналов с каждой тачки занимает куда меньше места, чем 20 комплектов "берите все, потом разберемся"
Placo: вытаскивает события из поддерживаемых файлов и журналов и складывает их на временную шкалу. Оставь рядом с отметкой времени ее происхождение. В строке журнала может стоять время входа, у файла – время изменения. В один столбец они прекрасно влезают, а означают разные вещи.
Timesketch: в него удобно загрузить временные линии и разбирать их с коллегой. Один ищет входы пользователя, второй помечает события на сервере. Если выгрузка якобы закончилась часа за три до начала, загляни в часовые пояса обеих источников. Бухгалтерия порой творит чудеса, но машину времени сперва стоит поискать в настройках импорта.
Разработка: кто притащил это в сборку?
Gitleaks: допустим, разработчик случайно закоммитил токен, спохватился и убрал строку из конфига. В нынешней версии файла все чистенько, а в предыдущем коммите секрет по прежнему читается. Gitleaks умеет искать такие штуки в истории Git. Если ключ настоящий, его надо отозвать у того, кто его выдал.
Trivy: заглядывает в контейнерный образ и ищет в том числе пакеты с известными уязвимости. Когда отчет ругается на библиотеку полезно установить как она попала внутрь. Если ее приволок базовый образ, можно долго рыться в списке зависимостей самого приложения и ничего там не нарыть.
OWASP Dependency-Check: разбирает зависимости проекта и сопоставляет их с опубликованными уязвимости. У Java-проекта его удобно пристроить к Maven или Gradle. Для подозрительной находки сверь, какую именно библиотеку опознала прога и какая версия ушла в сборку. Похожее название еще может устроить тебе занятный вечер с чужим багом.
Semgrep: читает исходники и ищет конструкции описанные в правилах. Например, в команде решили убрать устаревший вызов функции – можно сначала поймать один знакомый случай, затем проверить где еще встречается та же конструкция. При обсуждении правки у тебя будет файл со строкой, на которую можно ткнуть пальцем.
Checkov: разбирает конфиги инфраструктуры, в том числе Terraform. Если в предложенной правке сервис внезапно становится доступен всему инету, обсуждать эту находку гораздо приятнее, пока правка лежит на ревью. И обязательно загляни какую конфигурацию в конце концов выкатили. Бывает, в репе все образцово, а на живом стенде админ вчера "всего на минутку" открыл доступ руками.
ЗЫ. Возвращаемся к Лене и ее test2, теперь в описи можно записать, кому нужен стенд, с каких машин до него достучаться и где на самом деле обновлять сертификат. В следующем году Лена напишет про продление, а ты откроешь одну нужную запись.
Мы в Telegram: https://t.me/+jAjZcfEdOx42NzRi
