IT-Sicherheit

Setup Virtual Machines

apt update && apt upgrade -y

apt install net-tools tcpdump iptables iptables-persistent -y
  1. Firewall erstellen
    1. IP: 10.10.10.2
    2. ssh installieren
  2. Webserver erstellen
    1. IP: 10.10.10.3
    2. apache2 installieren
  3. Adminserver erstellen
    1. IP: 10.10.10.4
    2. ssh installieren

Nach Software-Installation die Interfaces ins Internet auf Webserver und Admin deaktivieren!

Netzwerkkonfiguration (/etc/network/interfaces)

# Webserver

auto ens256
iface ens256 inet static
  address 10.10.10.3
  gateway 10.10.10.2
  netmask 255.255.255.0

# Firewall

auto ens256
iface ens256 inet static
  address 10.10.10.2
  netmask 255.255.255.0

# Adminserver

auto ens256
iface ens256 inet static
  address 10.10.10.4
  gateway 10.10.10.2
  netmask 255.255.255.0

Firewall-Regeln

Firewall-Maschine:

iptables -A PREROUTING -t nat -i ens256 -p tcp --dport 80 -j DNAT --to 10.10.10.3:80

iptables -A PREROUTING -t nat -i ens256 -p tcp --dport 22 -j DNAT --to 10.10.10.4:22

Commands

Enable ip-forwarding (auf der Firewall):

echo 1 > /proc/sys/net/ipv4/ip_forward

Persistieren vom ip-forwarding: In Datei /etc/sysctl.conf

netstat:

netstat -rn

tcpdump:

tcpdump -i <INTERFACE> port <PORT>

iptables Regeln anzeigen:

iptables -L PREROUTING -t nat

VMs Internet geben (auf Firewall):

iptables -t nat -A POSTROUTING -o <PUBLIC-INTERFACE-NAME> -j MASQUERADE

Schaubild

Bildschirmfoto 2024-08-16 um 09.53.25.png

Härtung Firewall

image.png

Firewall-Commands (auf Webserver und Firewall)

# Akzeptiert Verbindung von Adminserver
iptables -A INPUT -p tcp -s 10.10.10.4 --dport 22 -j ACCEPT

# Lässt keine erstmal keine Verbindung auf Port 22 zu
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP

# Für jeden weiteren Eintrag - Input auf 2 damit die 0.0.0.0/0 Regel an Pos 1 bleibt
iptables -I INPUT 2 -p tcp -s hier neue ip --dport 22 -j ACCEPT 

Intrusion Detection System

image.png

image.png

image.png

image.png

Suricata

image.png

ICMP-Alerts

image.png

# Start von Suricata
# -D = Detatched

# suricata -i [INTERFACE1] -i [INTERFACE2] -D

suricata -i ens160 -i ens256 -D

Commands zum Beenden eines Prozesses

# Prozess anzeigen
ps aux | grep suricata

# Prozess killen
kill -9 [PID]
# oder
kill [PID]

DNS-Alerts

image.png

Diese Regel in Suricata überwacht den DNS-Verkehr (Domain Name System) und löst eine Warnung aus, wenn eine DNS-Anfrage den Begriff "google" enthält.

Mit folgenden Befehlen kann man testen:

# Google pingen
ping google.com

# DNS-Auflösung
nslookup google.com

image.png

Ausgehende SSH-Verbindungen erkennen und alterten

alert tcp 10.10.10.0/24 any -> any 22 (msg:"Ausgehende SSH-Verbindung erkannt"; flow:established,to_client; sid:1000002; rev:1;) 

Suricata als Service in Debian machen

create user for suricata

useradd -r -s /usr/sbin/nologin suricata

change the IFACE at /etc/default/suricata and make it listen to our infterface

image.png

change the owner of /var/log/suricata using command below

chown -R suricata:suricata /var/log/suricata

edit interfaces at /etc/suricata/suricata.yaml and make it listen to our infterface

image.png

start the Suricata and make sure it has been running well

systemctl start suricata
systemctl status suricata

Weiteres

Ausblick nächstes Semester

Kali Linux

Tools

SQLMap

Webseite testen:

sqlmap -u "http://192.168.108.129/" --dbs
sqlmap -u "http://192.168.108.129/login.php" --data="username=test&password=test" --dbs
sqlmap -u "http://192.168.108.129/" --cookie="PHPSESSID=12345" --dbs

Log-Dateien ansehen:

Härtung Suricata [SQL-Injection]

Alerts für SQL-Injection

# Kritisch weil gibt schnellen Alarm wenn jemand irgendwas mit select schreibt
alert http any any -> any any (msg: "SQL-Injection erkannt! (content: Select)"; content:"Select"; nocase; sid:1000004;)
# Leicht umgehbar weil userAgent geändert werden kann
alert http any any -> any any (msg: "SQLmap erkannt! (user_agent: sqlmap)"; http.user_agent; content:"sqlmap"; nocase; sid:1000005;)

Weitere Möglichkeiten:

Penetration Testing

Was ist Pentesting?

Definition

Rechtliches

Beauftragung

Briefing

Black Box Test

White Box Test

Gray Box Test

Umfang des Pentests

Pflichten Auftraggeber und Auftragnehmer

"Permission to attack"

Durchführung

Abschlussbericht

Tools - Kali Linux

Ausgewählte Tools: