IPtables и обнаружение исходящих атак.

Один из клиентов попросил разобраться с исходящими с его севера атаками на другие сайты. Атака шла на админ-панели WordPress, это значит что злоумышленники обращались к адресам, в которых встречается строка с «wp-login.php». С помощью iptables мы можем отследить такие обращения, например, вот такой вот командой:

# iptables -I OUTPUT -p tcp -m tcp -m string --string "wp-login.php" --algo kmp --dport 80 -j LOG --log-prefix "Outgoing attack: " --log-level 4 --log-uid

С помощью этой команды, мы отлавливаем все исходящие на 80 порт tcp соединения, в которых встречается вхождение «wp-login.php». Если такое обращение будет зафиксировано, в лог упадёт запись вида:

# cat /var/log/messages | grep "Outgoing attack:"
May 10 20:30:59 srv kernel: Outgoing attack: IN= OUT=ens2f0 SRC=1.2.3.4 DST=11.12.13.14 LEN=93 TOS=0x00 PREC=0x00 TTL=64 ID=36084 DF PROTO=TCP SPT=56706 DPT=80 WINDOW=229 RES=0x00 ACK PSH URGP=0 UID=1288 GID=1288
# journalctl --no-pager -b 0 -k | grep "Outgoing attack:" 
May 10 20:30:59 srv kernel: Outgoing attack: IN= OUT=ens2f0 SRC=1.2.3.4 DST=11.12.13.14 LEN=93 TOS=0x00 PREC=0x00 TTL=64 ID=36084 DF PROTO=TCP SPT=56706 DPT=80 WINDOW=229 RES=0x00 ACK PSH URGP=0 UID=1288 GID=1288

Здесь мы должны обратить внимание на UID=1288 — это UID того пользователя в системе, от которого был сделано исходящий запрос к wp-login.php. Теперь мы можем пойти в логи веб-сервера для этого пользователя, и проверить его на предмет подозрительных POST запросов:

# cat /etc/passwd | grep 1288
user:x:1288:1288::/home/user:/usr/local/cpanel/bin/noshell
# cat /home/user/access-logs/superdomain.com | grep POST
21.22.23.24 - - [10/May/2017:20:30:13 +0300] "POST /data/engine/setup.php HTTP/1.0" 200 441 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"
21.25.26.27 - - [10/May/2017:20:30:23 +0300] "POST /data/theme/dbd.php HTTP/1.0" 200 441 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"

Проверяем скрипты /data/engine/setup.php и /data/theme/dbd.php у пользователя user, убеждаемся что они действительно являются подозрительными и удаляем их. Не забываем принять необходимые профилактические меры во избежание повторения проблем.

  • Не стоит забывать, что некоторые скрипты могут генерировать и вполне легитимные исходящие запросы. Признаком проблемного скрипта может стать большое количество запросов за короткий промежуток времени.
  • На серверах, где работает связка фронтенд-бекенд (apache+nginx на разных портах например), при некоторых условиях конфигурации, в лог могут попадать легитимные запросы, при этом в SRC= и в DST= будет прописан IP сервера. Исключить логирование таких запросов можно, например с помощью ! -o lo в правиле для iptables.
  • Если на сервере используется CSF, то правило для iptables нужно записать в /etc/csf/csfpost.sh, сохранить файл, сделать его исполняемым и перезапустить CSF.

Таким образом, достаточно просто мы можем определить источник исходящих с сервера атак.

One thought on “IPtables и обнаружение исходящих атак.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *