Page cover

Shared Library Hijacking

When we find the binary file as setuid or sudo command, check the strings of the binary file.

strings ./example
strace ./example
gdb ./example

...
foo.so
...
Copied!

If the binary file uses a shared library (e.g. foo.so) and this library can be modified, we can update it and get a root shell.

find / -type f -name "foo.so" 2>/dev/null
ls -al /path/to/foo.so

drwxrwxrwx 1 user user 64 Dec 15 09:13 foo.so
Copied!

Create "foo.c".

Then compile it to shared object.

Put the shared file to /path/to/foo.so . Now run the binary.

Last updated