Senior Security Consultant/Penetration Tester | CEO
Ret2LibC = Return to LibC
Das Ganze ist ein klassischer Angriff, denn man sich so vorstellen kann: Wir wollen NX umgehen, so dass wir wieder unseren Stack ausführbar machen, damit unsere Payload ausgeführt wird.
Doch was genau brauchen wir jetzt? Wir müssen schauen, ob LibC eingebunden ist. Als Beispiel: Wir nehmen in Linux einen GBD und laden das File, sehen jedoch, dass NX aktiviert ist.
Bei Ret2LibC braucht man ein paar wichtige Sachen:
1. Schau ob man im Binary eine LibC findet. Wenn man sie findet, muss man sich das Offset (virtuelle Adresse) davon merken. Nimm NICHT die relative virtuelle Adresse, denn nur mit der virtuellen Adresse findet man den genauen Standort. Bei mehreren Einträgen nimmt man immer den Ersten.
2. Wir brauchen nun den System Call innerhalb von LibC. Mit dem Ropper kann man das String System suchen und diesen plus die LibC Adresse rechnen. Danach braucht man einen Return und "/bin/sh" (String).