• Бесплатный ВЕБИНАР по OSINT с Екатериной Тьюринг: ➡️9 февраля в 19:00 (мск) пройдет урок

    Как безопасно искать информацию в открытых источниках

    🔥 Записаться 🔥

Заметка Как мы отбивались от ddos-атаки и другой хакерской нечисти! (Заметка)

Темы, которые НЕ подходят по объему под префикс "Статья"
Автор: @Местный
Специально для codeby.net

Всех приветствую! Решил написать небольшое руководство для пользователей, которые держат свой небольшой блог или форум. Поскольку данный форум индексируется в поисковиках, подумал хорошей идеей будет выложить именно сюда. Мой товарищ решил поднять небольшой wordpress блог duty-free.cc и заодно forum.duty-free.cc на xenforo и столкнулся с множеством проблем.

Конкуренты и другие недоброжелатели не дремлют. Постоянно пытаются вывести ресурс из строя. Поэтому важно было выбрать нормального хостера.

Защита блога wordpress

1. Не рекомендую устанавливать непроверенные плагины, рекомендую вообще плагины не устанавливать. Из-за них 90% проблем с безопасностью.

2. Отключите возможность оставлять комментарии. Мы оставили возможность оставлять комментарии и нас засорили полезными нагрузками для SQLI и XSS, около 160 полезных нагрузок было отправлено=) Даже, если версия не уязвима, зачем вам хранить лишний мусор на сервере и нагружать его.

1738952159909.webp


3. Если регистрация в вашем блоге отключена, то заблокируйте путь к wp-login.php для всех ip, кроме разрешенных. Сделать это можно через cloudflare или веб-сервер. Если даже учетки от админки утекут злоумышленник не сможет авторизоваться, поскольку он не находится в вашей сети. Помимо wp-login.php мы можете блокировать всех, кто обращается к /wp-json/ чтобы никнеймы зарегистрированных пользователей были недоступны. Можно также запретить и другой функционал, чтобы если злоумышленник проник в админку не смог удалить ваши статьи и выложить свою вредоносную рекламу. Также отключите API, xmlrpc, чтобы защититься от брутфорс атак.

Вот вам небольшая шпаргалка. Примерно так можно настроить cloudflare.

1738953383107.webp


4. Обрывать все соединения напрямую по ip адресу. Если вы этого не сделаете школьники будут заниматься примерно подобным=))
45.84.107.172 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-favicongH9Atp96vHnISBsOqUZHdoBMVx33I88j0OshdBJ9Ondf2JhwBzD0SEIs6Fuu04TtIbmnfifBRPEAQ6c8GtxsOp6C7GxGL20dBGEhXivZaWyKwwfvSr71ZgdQnZqXlM5dC.ico HTTP/1.1" 404 7095 " " "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0 TO-Browser/TOB7.124.0.305_01"
185.220.101.96 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconxNuDWxvSEf3wCFV3llcZm6Wj6W1aWkf5WqslxKi450DDE4peDXFKY3FVXhKCtJa31qTWAeD4RPrwXW2vid7qr0uJcFVB84rKJs7Df0AM9sbOccF1WOUtOdhMIGSqiPbi3.ico HTTP/1.1" 404 7097 " " "Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"
104.244.73.193 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconAoHOMMhD4801Lh06VTFYnjZoYG3Au5ZrDLdCBEW0HxMUtPQKIqMK3fwlGqKT36ytQCCvrbiYsJLGv7rW.ico HTTP/1.1" 404 7054 " " "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/117.0.5938.0 Safari/537.36"
185.129.61.10 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconNVQ3YisoETOoOqK8XSC7utsgtzr619O40akV2ZKwsbup8WXoTOBPVJSETyHrJF4Yuir2IuJHoQOVsUSly.ico HTTP/1.1" 404 7050 " " "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/103.0.5060.114 Safari/537.36"
193.189.100.202 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconMhnD3FUjYyeqFGhazbNaXhBbtNDYn7XZ8jCBKJxosoe3vW.ico HTTP/1.1" 404 7014 " " "Mozilla/5.0 (iPhone; CPU iPhone OS 16_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1"
185.220.101.12 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconkiHdGVdVnQUybIx0pQQzYyDR2D9kJBJaDcjRHD8jIVG2Io41FpnI.ico HTTP/1.1" 404 7023 " " "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/123.0.6312.123 Safari/537.36"
109.70.100.3 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconpvOiviIr94vX44CJIz2wZWISunwh8o01q2txtm4VHnYjBIPz2ykZQ3FQfCZDfu.ico HTTP/1.1" 404 7029 " " "Mozilla/5.0 (iPhone; CPU iPhone OS 17_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/308.0.615969171 Mobile/15E148 Safari/604.1"
185.220.100.252 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconTa7p7gLqRYlLoBCpgJz2usI666IiO7w8XmdTlyVtyOZvfdq4jN0xQwYKrKXzhQz4YICRjq9x1emkhHWUGKFMxAHhbpsTT0Gz.ico HTTP/1.1" 404 7067 " " "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
185.220.101.102 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconnN16o0OHfhUBpdx8WgAEBERAMt3lM.ico HTTP/1.1" 404 6997 " " "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15"
109.70.100.69 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconuFF9tD5bCgGj90xrh3FITUYhYg08fQde9zbu9R0iEP7wUvXYRF1RGv88IO0Hd4j8x5qtj.ico HTTP/1.1" 404 7039 " " "Mozilla/5.0 (iPad; CPU OS 15_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6,2 Mobile/15E148 Safari/604.1"
185.220.101.31 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconjIJ2lasPylgvcvrjpHERV4Nnqzp5IGA4lSx7zi7WcnCWdVXJuGt4yGY5tqg531SCGVUTAzWjIWYF9kr48h4AFv6VV.ico HTTP/1.1" 404 7059 " " "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
109.70.100.70 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconT3AcBfQvdnLbW08azhOgke0yq1jHR8q0fISjutOZvgtXadz8obIURp2aQSSZ0q1CfiyHnuYqI8rmmoBdd.ico HTTP/1.1" 404 7045 " " "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"
194.26.192.142 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-faviconzoW1w07ZoUqxmBkEIHJv5jzCgbFOWKJTUTpZS4W5CY1oqgdfojNZu1zudHDnOsHxnAXxNp7M0f3f1sNhR2KSooOe0Qj.ico HTTP/1.1" 404 7058 " " "Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604.1"
185.220.101.8 - - [07/Feb/2025:07:49:55 +0100] "GET /styles/default/xenforo/xenforo-favicon8STVAnwGxmx7VW4rUJkV9IoC2jD4x9ltMpBj0RZ8IKBnc9BRBTmo4aTpj.ico HTTP/1.1" 404 7024 " " "Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4695.0 Mobile Safari/537.36 Chrome-Lighthouse"

Идем в /var/log/nginx посмотрим сколько бомжик отправил запросов на наш сервер.

cat access.log | wc -l
11165004

Неудивительно, что наш ресурс был недоступен.

logrotate -f /etc/logrotate.d/nginx

Очистим логи. Зачем нам 11 миллионов бесполезной информации. Перед выполнением этой операции не забудьте отключить nginx, если вы под атакой. Теперь осталось запретить ему стучать напрямую по нашему ip.

Код:
ufw allow from 103.21.244.0/22 to any port 443
ufw allow from 103.21.244.0/22 to any port 80

Добавляем сюда пулл айпи адресов вашего CDN, я использую CF:

После этого мой сайт заработал и злоумышленник перестал vCPU нагружать=)

5. Убедитесь, что у вас не торчат наружу порты или файлы в которых конфиденциальная информация например .env или .git.
6. Поставьте MFA на аккаунт администратора.

После проделанных действий атака частично остановилась. Теперь вместо миллионов запросов он отправлял пару штучек, поскольку средств на пркоси у него нет, мы просто взяли заблокировали айпи злоумышленника.

ufw deny from 45.148.10.111
Код:
ufw deny from 172.70.57.196
ufw deny from 45.84.107.33

Также в дополнение хотелось бы рассказать, что в качестве CDN ранее мы использовали stormwall.pro. Хороший вещь, поддержка отвечает частенько. Но пришлось отказаться из-за стоимости, пока такая защита не нужна=)

Продолжение выйдет, когда нас продолжат атаковать.
 
  • Нравится
Реакции: N1GGA и f22
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!