Переведено для codeby. Net


Разное: найти адрес "/bin/sh"


Download 0.92 Mb.
Pdf ko'rish
bet22/36
Sana09.05.2023
Hajmi0.92 Mb.
#1449564
TuriРеферат
1   ...   18   19   20   21   22   23   24   25   ...   36
Bog'liq
эксплуатация систем arm linux AFANX

4.2.5 Разное: найти адрес "/bin/sh"
В некоторых случаях было бы очень удобно получить адрес "/bin/sh" для
использования в качестве аргумента для system(), особенно если наша
атакующая строка недостижима и стек не является исполняемым. К счастью,
есть еще одно место, где мы можем найти эту строку.
libc использует строку "/bin/sh" для некоторых своих функций, поэтому все, что
нам нужно сделать, это узнать ее адрес. Инструментом, который может помочь
нам в поиске, является bgrep(bgrep by Felix Domke:
http://debugmo.de/2009/04/bgrep-a-binary-grep/) . Давайте попробуем загрузить и
использовать его:
root@armstation# wget --no-check-certificate \
> http://github.com/tmbinc/bgrep/raw/master/bgrep.c
...
100%[======================================>] 4,357
42


--.-K/s
in 0s
2000-01-02 00:55:16 (15.7MB/s)-‘bgrep.c’saved [4357/4357]
root@armstation# make bgrep
cc
bgrep.c
-o bgrep
root@armstation# ./bgrep 2F62696E2F7368 /lib/libc.so.6
/lib/libc.so.6: 0010e130
root@armstation#
Мы только что нашли адрес "/bin/sh", который, с небольшими вычислениями,
таков:
0x40026000 + 0x0010e130 = 0x40134130
Теперь у нас есть адрес, который нужно поместить в регистр r0, если мы
вызываем system() или другую подобную функцию.
43


5. ARM Shellcoding
В последнем разработанном нами эксплойте был использован шеллкод, без
введения темы. В этой части документа будет дано определение понятию
"шеллкод", и будут проанализированы различные техники шеллкодинга, т.е.
создания шеллкодов.
5.1 Концепция шеллкода
Шелл-код - это небольшая программа, написанная в машинном коде. Она
называется "shellcode", потому что она обычно запускает командную оболочку
(например, "/bin/sh"), но, конечно конечно, этим не ограничивается.
Существует бесчисленное множество шеллкодов, выполняющих различные
операции: от добавления пользователей в systemby, до модификации сетевых
адресов машины и т.д. …
То, что позволяет существовать шеллкодам, - это тонкая грань, отделяющая
данные от инструкций: буфер, содержащий строку, может быть преобразован во
фрагмент кода если перенаправить счетчик программы в его начало.
В следующих параграфах мы рассмотрим на многочисленных примерах, как
разрабатывать шеллкоды для процессоров ARM.

Download 0.92 Mb.

Do'stlaringiz bilan baham:
1   ...   18   19   20   21   22   23   24   25   ...   36




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling