Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | |
Есть идея! 30.07.03 15:10 Число просмотров: 1851
Автор: DgtlScrm Статус: Member Отредактировано 30.07.03 15:16 Количество правок: 1
|
Слушайте, а у меня есть идея! Поскольку это HTML, я напишу шеллкод, который ищет свое реальное тело в памяти и запускает! А реально тело, можно закинуть в HTML... вот и снимится ограничение на 56b. Все буду писать о результатак сообщу =)
Новсетаки, не ленитесь киньте адрес входа в kernel... Оно и так пригодится когда то!
А на тему поиска в пямяти: http://www.lsd-pl.net/documents/winasm-1.0.1.pdf
DigitalScream resident 'SecurityLevel5'
|
<hacking>
|
Нужны адреса входа в kernel32.dll 29.07.03 23:56
Автор: DgtlScrm Статус: Member Отредактировано 30.07.03 01:09 Количество правок: 3
|
Нужны адреса входа в kernel32.dll? для максимального количества ОС Windows к разным серв. пакам.
Воспользуйтесь LoadLibrary() и напишите в форум, вашу ОС,серв. пак.,язык, билд и адрес естественно =)
Да и по возможности в CreateProcessA, хотя это уже не так важно...
И вообще пришлите максимальное колличство адресов к системным DLL, может небольшей справочник выпустим. Как FAQ ;)
--------------------------------------------------------------------------------------------------
А задача собственно следующая
Вот код:
...
xor ebx, ebx
mov edx, esp
add dh, 0xFF
mov dword ptr[edx-4], 0x01646D63 ("cmd\x01")
mov byte ptr[edx-1], bl
lea eax, [edx-4]
mov esi, ebp
push esi; push edx
push ebx
push eax; push ebx
mov eax, 0xBFF77741 //CreateProcessA
call eax
mov eax, 0xBFF8D4F8 //ExitProcess
call eax
int 3
...
---
это шеллкод запускающий cmd. Чтобы он работал везде, надо сами знаете что, адреса. Если есть какието другие варианты(поиск адреса в памяти) предлагайте, не стесняйтесь =)
Одна проблема шеллкод не должен привышать 56 байт...
Вообщето целевая задача - закачать и запустить.
Эксплуатируется Internet Explorer.
Жду советов... и все-таки "Нужны адреса входа в kernel32.dll" =)
не слишком ли много для одного поста? =)
DigitalScream resident 'SecurityLevel5'
|
|
Вообще привязываться к конкретным адресам, если можно сделать иначе - не есть хорошо 30.07.03 09:34
Автор: amirul <Serge> Статус: The Elderman
|
Вводная:
1) Любой процесс под NT-ями так или иначе импортирует kernel32.dll
2) Образ любого модуля впечатывается по границе страницы, если даже придется просмотреть ВСЕ страницы (а такого делать не придется, но все же), то всего в пользовательском адресном пространстве (0x00000000 - 0x80000000) есть всего 500000 страниц. То есть нужно проверить всего 500 тысяч коротких слов (сигнатуру для сравнения можно хранить в регистре и сравнивать сразу с памятью, указатель на которую хранить в другом). Причем делать это в коротком цикле, который полностью поместится в кеш-строку - задача не из самых сложных.
3) Образ любого модуля начинается с сигнатуры MZ (и кроме того там еще есть смещение к сигнатуре PE)
4) Формат PE-файла хорошо задокументирован и хранит в себе название модуля.
5) Образ большинства dll-ок (по крайней мере всех системных, так как они сделаны в VC, а его линкер собирает все именно так) имеет не одну, а две таблицы импорта. Одна заменяется при динамическом связывании, а одна остается оригинальной.
Если еще не понятно к чему я веду, то вот примерный алгоритм:
1) Начинаем постранично просматривать память на предмет сигнатуры MZ (лучше с конца и назад - там всегда много системных dll-ок)
2) Если найдена, проверяем еще и синатуру PE
3) Если и она присутствует, проверяем имя модуля. Если это kernel32.dll - находим адреса GetModuleHandle (адрес на имя kernel32.dll у нас уже есть :-) ) и getprocaddress (в принципе этого делать не обязательно - просто для облегчения дальнейшей жизни). Для этого нужно идти не по основной (измененной таблице импортов), а по второй - неизменной.
4) Если не kernel32 - возможны варианты. Либо продолжать планомерную проверку страниц с того места, где мы нашли этот модуль, либо использовать вторую таблицу импортов (большинство dll-ок тоже импортирует kernel32), либо (если dll-ка собрана в билдере и второй IAT нет) проверять в тех адресах, которые импортируются и искать назад. Или использовать комбинацию: если это VC-шная dll-ка со второй IAT - искать сразу по адресам модулей, если BC-шная - по адресам импортов можно быстро найти адреса модулей.
В общем успехов. Можешь конечно и не делать такого, но зато этот шеллкод будет универсальным.
|
| |
А у тебя есть рабочий вариант в 56k? 30.07.03 10:57
Автор: DgtlScrm Статус: Member
|
|
| | |
Дык тебе на сколько надо: 56 килобайт или 56 байт? 30.07.03 14:25
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| | | |
Сорри, на 56 байт 30.07.03 15:02
Автор: DgtlScrm Статус: Member
|
|
| | |
Я видел, и 56k - слишком много 30.07.03 13:45
Автор: amirul <Serge> Статус: The Elderman
|
Весь шеллкод так навскидку может поместиться в полкило. Ну максимум - килобайт-полтора. Я где-то видел реализацию, но точно не скажу этих всяких разных хакерских журналов - завались. Вот в одном из них и видел.
Чем искать - проще написать самому. Если нужна инфа по работе с PE-файлами - могу подкинуть. Код загрузчика (в смысле PE-loader-а) тоже есть: один пример, лучше, чем туча документации.
Если надо - могу поискать. Но в осталоном помочь ничем не могу - придется писать самому. Тем более, что там не так уж много и остается.
|
| | | |
Есть идея! 30.07.03 15:10
Автор: DgtlScrm Статус: Member Отредактировано 30.07.03 15:16 Количество правок: 1
|
Слушайте, а у меня есть идея! Поскольку это HTML, я напишу шеллкод, который ищет свое реальное тело в памяти и запускает! А реально тело, можно закинуть в HTML... вот и снимится ограничение на 56b. Все буду писать о результатак сообщу =)
Новсетаки, не ленитесь киньте адрес входа в kernel... Оно и так пригодится когда то!
А на тему поиска в пямяти: http://www.lsd-pl.net/documents/winasm-1.0.1.pdf
DigitalScream resident 'SecurityLevel5'
|
| | | | |
Все готово 26.08.03 11:22
Автор: DgtlScrm Статус: Member
|
Спасибо всем, кто помогал.
А тем, кто не захотел... фиг с вами :Р
DigitalScream resident Security Level 5
|
| | | | |
Из такого эксплойта получится неплохой html вирь. Если еще организовать поиск по диску других htmlек при открытии этой... 30.07.03 16:51
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
| |
в 56 байт не влезет однако 30.07.03 09:42
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
|
Слушай, а ты где собтраешься версию OS узнавать — в шелкоде? 30.07.03 06:51
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| |
Удаленно вероятно 30.07.03 08:07
Автор: Killer{R} <Dmitry> Статус: Elderman Отредактировано 30.07.03 08:11 Количество правок: 1
|
есть такая вещ - os fingerprinting зовется, а если экплоит локальный будет то просто в эбауте винды Ж)
|
| | |
Удаленно вероятно 30.07.03 10:53
Автор: DgtlScrm Статус: Member
|
> есть такая вещ - os fingerprinting зовется, а если экплоит > локальный будет то просто в эбауте винды Ж)
в принципе если на то пошло, то fingerprint не единственный выход
поскольку все идет через интернет экспролер, я могу открыть несколько окон с разными адресами...
А еще есть JavaScript, а он может дать некоторое представление о удаленной ОС...
Давайте адреса =)
|
|
|