Сейчас на форуме: Rio, johnniewalker, vsv1 (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› использование переполнения буфера в самописной программе
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 мая 2011 15:10
· Личное сообщение · #1

Подскажите где же я ошибся??

Итак [url=самописный сервер]-->http://zalil.ru/31023580<--[/url] который призван слушать порт 1180 и больше ничего. он написан с ошибкой переполнения буфера. при передаче на сервер строки символов длинной в 1000 байт сервер вылетает с ошибкой "0х41414141" - значит что моя строка переписала адрес возврата и при вылете сервер хотел вернуться по адресу выше но у него не получилось. под отладчиком действительно видно что адрес возврата переписан символами "А". что бы определить сколько байт нужно передать точно что бы дойти до адреса возврата сгенерировал последовательную строку тоже из 1000 байт и на этот раз ошибка была другого рода и дала возможность определить что до адреса возврата нужно записать 924 байта (на моей оси Win xp sp3 chip) проверка (отправив 924 х41 и 4 х42) подтвердила вычисления. теперь можно сменить адрес возврата направив в любое другое место на какую нить свою функцию. свой код сунул в регистр ESP, поскольку программа не имеет своих длл"лок она по любому использует стандартные. нашел адрес регистра в длл"ке ws2_32.dll" у меня их там оказалось два но это не проблемно. и последний этап все должно сработать так 924 байта разного мусора, адрес возврата в моем случае адрес регистра ESP =0x71A92B53, дальше несколько десятков нопов - х90 и наконец мой код (в качестве теста использовал шелл-код - windows/shell_bind_tcp) и все. в результате сервер вылетает но больше ничего не происходит.

ав и файерволл отключил, отключил функцию DEP. пробовал несколько адресов из длл, пробовал сменить шелл-код не срабатывает. кто может помочь определить где я накосячил?



Ранг: 35.4 (посетитель), 15thx
Активность: 0.020
Статус: Участник

Создано: 13 мая 2011 13:41
· Личное сообщение · #2

а подключить отладчик к уязвимому серверу что мешает?




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 13 мая 2011 14:46
· Личное сообщение · #3

Oro4imaru
как-то писал "эксплоит на коленке" статью =) поищи, мб поможет. все аналогично - там я описал, как правильно шелл-код писать и что вообще делать. Дома гляну
Oro4imaru пишет:
свой код сунул в регистр ESP

в стек?

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 13 мая 2011 20:02
· Личное сообщение · #4

и последний этап все должно сработать так 924 байта разного мусора
сгенерировал последовательную строку тоже из 1000 байт и на этот раз ошибка была другого рода
Подскажите где же я ошибся??
Прочти про слойт и shell_bind_tcp Там явно требуется чтобы вылет был стабилен при длине >1000 - для буфера содержащего шелл-код, а не для 1000 байт
Ты оптимист... Если бы так все было просто - все серверы бы уже лежали. Уязвимостей тьма, а вот найти сплойт - надо понимать что делаешь, а не КЛАСТЬ в ESP коды...
Также важно как ты попадаешь на АДРЕС. В статье на хакере простой RET. А у тебя. И на чем идет переполнение. Что можно класть в буфер не нарушая уязвимость...




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 14 мая 2011 06:31
· Личное сообщение · #5

В одном из журналов Xakep хорошо описан способ отключения DEP через то же переполнение. Советую.

-----
IZ.RU




Ранг: 19.9 (новичок)
Активность: 0.020
Статус: Участник

Создано: 16 мая 2011 17:28
· Личное сообщение · #6

неплохо было бы наработки выложить...


 eXeL@B —› Крэки, обсуждения —› использование переполнения буфера в самописной программе
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати