Identifier / Programs / Linux and Unix
ldconfig
Configure symlinks and cache for shared library dependencies. tldr-pages
GTFOBins library-load 1 documented command
How ldconfig is abused
library-load
-fEach abuse is GTFOBins's category and the options and words it uses; the full write-up is on GTFOBins's page for ldconfig.
1 documented command
library-load unprivileged, with sudo, as SUID
This allows to override one or more shared libraries (e.g., libpcap) globally, then triggers the execution by running a program that uses it, e.g., ping. This is particularly useful if the target binary is SUID. Beware though that it is easy to end up with a broken target system.
First identify the shared libraries used by the target program, for example:
$ ldd /bin/ping | grep libcap
libcap.so.2 => /path/to/temp-dir/libcap.so.2 (0x00007f8417eef000)Then create the shared library override, named libcap.so.2, and put in in /path/to/temp-dir/. The program might require some exported symbols from the library override, in that case make sure to add them (e.g., void cap_get_flag() {}).
echo /path/to/temp-dir/ >/path/to/temp-file
ldconfig -f /path/to/temp-file
pingIdentifyThe command the identifier reads trips no Sigma process-creation rule. This command is, with GTFOBins’ notes, from GTFOBins, at commit acd524623f9c of 2026-05-27, under the GPL-3.0, with no warranty. Changed: Markdown is shown formatted. The source is in lolbas-gtfobins-commands.json.gz, and the full entry is on GTFOBins’s page for ldconfig. The identifier reads the line that runs ldconfig.
Everyday use
Update symlinks and rebuild the cache (usually run when a new library is installed)
sudo ldconfigIdentifyUpdate the symlinks for a given directory
sudo ldconfig -n path/to/directoryIdentifyPrint the libraries in the cache and check whether a given library is present
ldconfig --print-cache | grep library_nameIdentifyNone of the 3 examples the identifier reads matches GTFOBins abuse or trips a Sigma process-creation rule.