Skip to content

Instantly share code, notes, and snippets.

@webnitros
Created April 22, 2024 04:55
Show Gist options
  • Save webnitros/cc5481bf09e0711b9a4d44eab32f8d6c to your computer and use it in GitHub Desktop.
Save webnitros/cc5481bf09e0711b9a4d44eab32f8d6c to your computer and use it in GitHub Desktop.
Отправка статистики на сервер для анализа трафика
#!/bin/bash
echo "DDoS-атака на порт 443"
COUNT_PACKETS=$1
echo "Количество пакетов: $COUNT_PACKETS"
SITE_MONITORING=$2
echo "Сайт мониторинга: $SITE_MONITORING"
# Бесконечный цикл
while true; do
DATE=$(date +%H:%M:%S)
# фиксировать время начала
echo "Начало отсложения: $(date)"
# Удалить attack.log с помощью sudo
sudo rm -f attack.log >/dev/null 2>&1
# Запустить tcpdump для записи трафика на порт 443 в файл attack.log
tcpdump -v -n -w attack.log dst port 443 -c 100000 >/dev/null 2>&1
# Передать права на файл attack.log пользователю root
sudo chown root attack.log >/dev/null 2>&1
compressed_data=$(tcpdump -nr attack.log | awk '{print $3}' | grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' | sort | uniq -c | sort -rn)
# фиксировать время окончания сравнивая скоросько секунд прошло
TOTAL_TIME=$(($(date +%s) - $(date -d "$DATE" +%s)))
echo "Прошло: $(($(date +%s) - $(date -d "$DATE" +%s))) секунд"
echo "Окончание отсложения: $(date)"
response=$(curl -X POST -d "$compressed_data" "$SITE_MONITORING&timer=$TOTAL_TIME")
# Печать ответа сервера
echo "Ответ сервера:"
echo "$response"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment