- Регистрация
- 6 Ноя 2025
- Сообщения
- 138
- Реакции
- 3
- Баллы
- 18
Afrog. Быстрый сканер уязвимостей на Go. Ставим, настраиваем, гоняем по целям
Ситуация: надо быстро проверить сайт на дыры, а лопатить всё руками — времени нет. Можно, конечно, запустить какой-нибудь тяжелый сканер типа Nessus, но он будет полчаса молотить, да ещё и денег стоит. Тут на помощь приходит Afrog.
Afrog — это штука на Go, которая жрёт мало ресурсов, но умеет находить дофига всего: от банальных SQL-инъекций до раскрытия конфигов и кривых наст роек. Я его заюзал, когда надо было быстро прогнать пачку клиентских сайтов перед пентестом. За вечер разобрался, теперь рассказываю.
Часть 1: Что за зверь и зачем он нужен
Afrog — это сканер уязвимостей с открытым кодом. Работает по принципу "правил" (rules) — YAML-файлов, в которых описано, что искать и как проверять. Правил там уже дофига встроенных, но можно и свои дописывать.
Чем он хорош:
· Быстрый. Go — он и в Африке Go. Многопоточность, низкое потребление памяти.
· Гибкий. Хочешь — только критические уязвимости ищи, хочешь — все подряд.
· Правила обновляются. Регулярно выходят апдейты с новыми дырами.
· Отчёты в HTML. Красиво, удобно, можно клиенту скинуть.
· Бесплатно. В отличие от того же Nessus.
Часть 2: Ставим
Тут несколько вариантов.
Способ 1: через Go (если он уже есть)
```
go install -v github.com/zan8in/afrog@latest
```
После этого afrog должен появиться в ~/go/bin/. Проверяем:
```
afrog -h
```
Если видишь помощь — ок.
Способ 2: бинарник с гитхаба
Идём на https://github.com/zan8in/afrog/releases, качаем под свою систему. Для Linux это будет afrog_linux_amd64.zip, для Windows — afrog_windows_amd64.zip. Распаковываем, кидаем куда-нибудь в PATH.
Способ 3: сборка из исходников
```
git clone https://github.com/zan8in/afrog.git
cd afrog
go build -v -o afrog .
```
Получится бинарник в текущей папке.
Часть 3: Первый запуск
Перед первым запуском обязательно обновляем правила:
```
afrog -u
```
Это скачает свежие правила в ~/.afrog/ или в папку рядом с бинарником.
Теперь можно сканировать:
```
afrog -t https://example.com
```
Будет сканировать все правила подряд и выводить результаты в консоль. Если хочешь сохранить отчёт, добавляй -o:
```
afrog -t https://example.com -o report.html
```
Откроешь этот файл в браузере — там красивая табличка с найденными уязвимостями, описанием, как чинить и ссылками.
Часть 4: Основные опции
Цель можно указать разными способами:
· один URL: -t https://example.com
· IP-адрес: -t 192.168.1.100
· список целей из файла: -l targets.txt (по одному на строку)
Уровень серьезности:
Если нужно отсеять инфу и низкие риски:
```
afrog -t https://example.com -s high,critical
```
Доступно: info, low, medium, high, critical.
Количество потоков:
По умолчанию Afrog сам выбирает, но можно указать руками:
```
afrog -t https://example.com -c 50
```
Если цель слабая или есть WAF, лучше ставить меньше, например 20. Если надо быстро и не жалко — можно 100.
Таймаут:
На случай, если сервер тупит:
```
afrog -t https://example.com --timeout 10
```
Прокси:
Если нужно через прокси гонять:
```
afrog -t https://example.com -p http://127.0.0.1:8080
```
Для SOCKS5:
```
afrog -t https://example.com -p socks5://127.0.0.1:9050
```
Свои заголовки:
Например, добавить куку или подменить User-Agent:
```
afrog -t https://example.com -H "Cookie: PHPSESSID=abc123" -H "User-Agent: Mozilla/5.0"
```
Безголовый режим:
Если сайт грузится через JS и без этого не видно дыр:
```
afrog -t https://example.com -headless
```
Но работает медленно, так что только когда надо.
Часть 5: Включаем и исключаем правила
Если нужно проверить только конкретные уязвимости, например SQL-инъекции и XSS:
```
afrog -t https://example.com -i sql-injection,xss
```
Или наоборот, исключить что-то, что даёт много ложных срабатываний:
```
afrog -t https://example.com -e info-disclosure,default-login
```
Часть 6: Свои правила
Afrog позволяет дописывать свои проверки. Это удобно, когда нашёл новую дыру или хочешь проверить что-то специфическое.
Правила пишутся в YAML. Пример простого правила:
```yaml
id: custom-test-rule
name: Custom Test Rule
description: Проверяем наличие /admin панели
severity: medium
requests:
- method: GET
path:
- "/admin"
- "/administrator"
matchers:
- type: word
words:
- "admin"
- "dashboard"
- "login"
condition: or
```
Сохраняем такой файл в папку my_rules/ и запускаем сканирование с указанием этой папки:
```
afrog -t https://example.com --rules-dir ./my_rules/
```
Часть 7: Интеграция в CI/CD
Afrog можно встроить в пайплайн, чтобы автоматически проверять новые версии приложения.
Пример для GitHub Actions:
```yaml
name: Afrog Scan
on: [push]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: '1.20'
- name: Install Afrog
run: go install -v github.com/zan8in/afrog@latest
- name: Run scan
run: |
afrog -u
afrog -t ${{ secrets.TARGET_URL }} -o report.html -s high,critical
- name: Upload report
uses: actions/upload-artifact@v3
with:
name: afrog-report
path: report.html
```
Такой скрипт при каждом пуше будет гонять сканер и сохранять отчёт как артефакт.
Часть 8: Мои грабли
Грабли 1. Забывал обновлять правила перед сканированием. Afrog находил старьё, а новые дыры пропускал. Теперь всегда делаю afrog -u перед запуском.
Грабли 2. Слишком много потоков на слабом сервере. Положил клиентский хостинг, пришлось извиняться. Теперь ставлю -c 20-30 для начала.
Грабли 3. Сканировал сайт с WAF, меня забанили по IP. Пришлось гонять через прокси.
Грабли 4. Пытался сканировать HTTPS-сайт с просроченным сертификатом. Afrog ругался и ничего не делал. Добавил флаг (если есть) для игнора ошибок сертификата.
Грабли 5. Не читал документацию по своим правилам. Долго тупил, почему матчер не срабатывает. Оказалось, надо указывать condition: or.
Часть 9: Советы
· Всегда обновляй правила перед сканированием.
· Начинай с малого числа потоков, особенно если цель не твоя.
· Используй прокси, если есть риск блокировки.
· Сохраняй отчёты — потом можно вернуться и посмотреть, что менялось.
· Пиши свои правила для специфических проверок — это несложно, а экономит кучу времени.
Итог
Afrog — годный инструмент для быстрой проверки веб-приложений. Он не заменит полноценный пентест, но для первичного анализа или регулярного мониторинга — самое то.
Ставь, обновляй правила, гоняй по целям и не забывай про лимиты.
Ситуация: надо быстро проверить сайт на дыры, а лопатить всё руками — времени нет. Можно, конечно, запустить какой-нибудь тяжелый сканер типа Nessus, но он будет полчаса молотить, да ещё и денег стоит. Тут на помощь приходит Afrog.
Afrog — это штука на Go, которая жрёт мало ресурсов, но умеет находить дофига всего: от банальных SQL-инъекций до раскрытия конфигов и кривых наст роек. Я его заюзал, когда надо было быстро прогнать пачку клиентских сайтов перед пентестом. За вечер разобрался, теперь рассказываю.
Часть 1: Что за зверь и зачем он нужен
Afrog — это сканер уязвимостей с открытым кодом. Работает по принципу "правил" (rules) — YAML-файлов, в которых описано, что искать и как проверять. Правил там уже дофига встроенных, но можно и свои дописывать.
Чем он хорош:
· Быстрый. Go — он и в Африке Go. Многопоточность, низкое потребление памяти.
· Гибкий. Хочешь — только критические уязвимости ищи, хочешь — все подряд.
· Правила обновляются. Регулярно выходят апдейты с новыми дырами.
· Отчёты в HTML. Красиво, удобно, можно клиенту скинуть.
· Бесплатно. В отличие от того же Nessus.
Часть 2: Ставим
Тут несколько вариантов.
Способ 1: через Go (если он уже есть)
```
go install -v github.com/zan8in/afrog@latest
```
После этого afrog должен появиться в ~/go/bin/. Проверяем:
```
afrog -h
```
Если видишь помощь — ок.
Способ 2: бинарник с гитхаба
Идём на https://github.com/zan8in/afrog/releases, качаем под свою систему. Для Linux это будет afrog_linux_amd64.zip, для Windows — afrog_windows_amd64.zip. Распаковываем, кидаем куда-нибудь в PATH.
Способ 3: сборка из исходников
```
git clone https://github.com/zan8in/afrog.git
cd afrog
go build -v -o afrog .
```
Получится бинарник в текущей папке.
Часть 3: Первый запуск
Перед первым запуском обязательно обновляем правила:
```
afrog -u
```
Это скачает свежие правила в ~/.afrog/ или в папку рядом с бинарником.
Теперь можно сканировать:
```
afrog -t https://example.com
```
Будет сканировать все правила подряд и выводить результаты в консоль. Если хочешь сохранить отчёт, добавляй -o:
```
afrog -t https://example.com -o report.html
```
Откроешь этот файл в браузере — там красивая табличка с найденными уязвимостями, описанием, как чинить и ссылками.
Часть 4: Основные опции
Цель можно указать разными способами:
· один URL: -t https://example.com
· IP-адрес: -t 192.168.1.100
· список целей из файла: -l targets.txt (по одному на строку)
Уровень серьезности:
Если нужно отсеять инфу и низкие риски:
```
afrog -t https://example.com -s high,critical
```
Доступно: info, low, medium, high, critical.
Количество потоков:
По умолчанию Afrog сам выбирает, но можно указать руками:
```
afrog -t https://example.com -c 50
```
Если цель слабая или есть WAF, лучше ставить меньше, например 20. Если надо быстро и не жалко — можно 100.
Таймаут:
На случай, если сервер тупит:
```
afrog -t https://example.com --timeout 10
```
Прокси:
Если нужно через прокси гонять:
```
afrog -t https://example.com -p http://127.0.0.1:8080
```
Для SOCKS5:
```
afrog -t https://example.com -p socks5://127.0.0.1:9050
```
Свои заголовки:
Например, добавить куку или подменить User-Agent:
```
afrog -t https://example.com -H "Cookie: PHPSESSID=abc123" -H "User-Agent: Mozilla/5.0"
```
Безголовый режим:
Если сайт грузится через JS и без этого не видно дыр:
```
afrog -t https://example.com -headless
```
Но работает медленно, так что только когда надо.
Часть 5: Включаем и исключаем правила
Если нужно проверить только конкретные уязвимости, например SQL-инъекции и XSS:
```
afrog -t https://example.com -i sql-injection,xss
```
Или наоборот, исключить что-то, что даёт много ложных срабатываний:
```
afrog -t https://example.com -e info-disclosure,default-login
```
Часть 6: Свои правила
Afrog позволяет дописывать свои проверки. Это удобно, когда нашёл новую дыру или хочешь проверить что-то специфическое.
Правила пишутся в YAML. Пример простого правила:
```yaml
id: custom-test-rule
name: Custom Test Rule
description: Проверяем наличие /admin панели
severity: medium
requests:
- method: GET
path:
- "/admin"
- "/administrator"
matchers:
- type: word
words:
- "admin"
- "dashboard"
- "login"
condition: or
```
Сохраняем такой файл в папку my_rules/ и запускаем сканирование с указанием этой папки:
```
afrog -t https://example.com --rules-dir ./my_rules/
```
Часть 7: Интеграция в CI/CD
Afrog можно встроить в пайплайн, чтобы автоматически проверять новые версии приложения.
Пример для GitHub Actions:
```yaml
name: Afrog Scan
on: [push]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: '1.20'
- name: Install Afrog
run: go install -v github.com/zan8in/afrog@latest
- name: Run scan
run: |
afrog -u
afrog -t ${{ secrets.TARGET_URL }} -o report.html -s high,critical
- name: Upload report
uses: actions/upload-artifact@v3
with:
name: afrog-report
path: report.html
```
Такой скрипт при каждом пуше будет гонять сканер и сохранять отчёт как артефакт.
Часть 8: Мои грабли
Грабли 1. Забывал обновлять правила перед сканированием. Afrog находил старьё, а новые дыры пропускал. Теперь всегда делаю afrog -u перед запуском.
Грабли 2. Слишком много потоков на слабом сервере. Положил клиентский хостинг, пришлось извиняться. Теперь ставлю -c 20-30 для начала.
Грабли 3. Сканировал сайт с WAF, меня забанили по IP. Пришлось гонять через прокси.
Грабли 4. Пытался сканировать HTTPS-сайт с просроченным сертификатом. Afrog ругался и ничего не делал. Добавил флаг (если есть) для игнора ошибок сертификата.
Грабли 5. Не читал документацию по своим правилам. Долго тупил, почему матчер не срабатывает. Оказалось, надо указывать condition: or.
Часть 9: Советы
· Всегда обновляй правила перед сканированием.
· Начинай с малого числа потоков, особенно если цель не твоя.
· Используй прокси, если есть риск блокировки.
· Сохраняй отчёты — потом можно вернуться и посмотреть, что менялось.
· Пиши свои правила для специфических проверок — это несложно, а экономит кучу времени.
Итог
Afrog — годный инструмент для быстрой проверки веб-приложений. Он не заменит полноценный пентест, но для первичного анализа или регулярного мониторинга — самое то.
Ставь, обновляй правила, гоняй по целям и не забывай про лимиты.

