SELinux - Linux - Security und Firewall Labor
Zur Navigation springen
Zur Suche springen
- Als Angriffsziel modifizieren wir den Apache2 Server: Command Injection Proof of Concept
- Ein Benutzer versucht ein Programm aufzurufen.
- Dem Benutzer ist ein Benutzer Typ zugeordnet.
- Dem Pragamm ist ein Progamm Typ zugeordnet.
- SELinux checkt nun ob der Benutzer Typ das Programm anhand des Programm Typ aufrufen darf.
- Dann wird gecheckt ob der Benutzer Typ zu dem Prozess Typ transitieren darf.
- Wenn dies erlaubt ist transitiert der Benutzer Typ zum Prozess Typ.
- Der Prozess läuft dann mit den entsprechenden Rechten unter seinem Prozess Typ.
- Diese Command Injection Schwachstelle lässt sich mit SELinux beheben
- Damit der Ping aber weiterhin funktioniert, muss noch ein Richtlinienmodul geladen werden, der speziell für Apache2 das Pingen erlaubt
- setenforce 0
- Normal auf der Weboberfläche pingen (Keine Reverse Shell aufbauen!)
- Nun kann man die Verstöße in ein ladbares Modul umwandeln, welches speziell nur die Rechte vergibt, um Ping zuzulassen
- ausearch -m AVC -ts recent | audit2allow -M apache2-ping
- semodule -i apache2-ping.pp
- setenforce 1
- Nun sollte das Öffnen eines Portes durch Command Injection durch SELinux verhindert werden
- Die Verstöße kann man sich nochmal mit ausearch anzeigen lassen
- !!Achtung!! Andere Kommandos könnten jedoch immernoch ausgeführt werden, z.B. 1.1.1.1 ; ls zeigt uns den Inhalt des Ordners /var/www/html