Runtime GOT poisoning from injected shared object |
[Mar. 13th, 2015|02:36 pm] |
[Tags | | | glibc, got, hijacking, inject, link_map, linux, plt, poisoning, rtld, runtime, so | ] |
[ | Current Mood |
| | calm | ] | This short article describes how the combination of the two well-known techniques would allow to intercept library calls in runtime without PIC-code (as in [2]), patching the library functions or searches in the /proc/PID/maps.
( TL;DR ) |
|
|
nspr4!PR_Write |
[Mar. 9th, 2015|03:05 pm] |
[ | Current Mood |
| | bitchy | ] | Так как никто ничего дельного не пишет, приходится копаться во всяком УГ, типа Hand of Thief. Оно находит nspr4!PR_Write из проинжектированной либы, и затем затирает пролог jmp (0xe9). Естественно, так как FF хрень многопоточная, то при постоянной перезаписи пролога, креш броузера - это вопрос времени. (У мну пять секунд). Так как, NSPR подгружается динамически, то у PR_Write нет записи в GOT/PLT и PLT Redirection/GOT poisoning работать не будет. Так что нужно либо хватать dlsym до старта, либо внимательнее смотреть на PR_Write, который изначально определен вот так (mozilla/nsprpub/pr/src/io/priometh.c , теперь понятно на чем они сидят ;-):
( TL;DR ) |
|
|