Переведено для codeby. Net
Разное: найти адрес "/bin/sh"
Download 0.92 Mb. Pdf ko'rish
|
эксплуатация систем arm linux AFANX
- Bu sahifa navigatsiya:
- 5. ARM Shellcoding
- 5.1 Концепция шеллкода
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling