Detectar Keylogger

  • 4 Respuestas
  • 417 Vistas

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

Desconectado banderas20

  • *
  • Underc0der
  • Mensajes: 86
  • Actividad:
    20%
  • Reputación 0
    • Ver Perfil
    • Email

Detectar Keylogger

  • en: Marzo 10, 2020, 02:43:51 pm
Buenas tardes,

Aparte de pasar un Antivius o Antimalware, ¿Hay alguna manera de detectar si en un equipo hay instalado un Keylogger?

Aparte de mirar el árbol de procesos. Algún comportamiento extraño, o algo así.

Saludos!
« Última modificación: Abril 06, 2020, 08:41:13 pm por Gabriela »

Desconectado sapewick

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    6.67%
  • Reputación 1
    • Ver Perfil

Re:Detectar Keylogger

  • en: Abril 06, 2020, 12:30:11 pm
podrias mirar las  conexiones salientes el inicio en windows en las carpetas %appdata% %temp% (varia ya que en muchos malwares tenes la posibilidad de modificar donde se guarde) activando ver archivos ocultos.
Vale más saber alguna cosa de todo, que saberlo todo de una sola cosa.

Blaise Pascal (1623-1662)

Conectado DtxdF

  • *
  • Moderator
  • Mensajes: 688
  • Actividad:
    100%
  • Reputación 16
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Detectar Keylogger

  • en: Abril 08, 2020, 01:27:14 am
@You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login
podrias mirar las  conexiones salientes el inicio en windows en las carpetas %appdata% %temp% (varia ya que en muchos malwares tenes la posibilidad de modificar donde se guarde) activando ver archivos ocultos.

¿Que pasaría si el Keylogger es local y no remoto?...  :-X

You are not allowed to view links. Register or Login
Buenas tardes,

Aparte de pasar un Antivius o Antimalware, ¿Hay alguna manera de detectar si en un equipo hay instalado un Keylogger?

Aparte de mirar el árbol de procesos. Algún comportamiento extraño, o algo así.

Saludos!

La API del sistema operativo :-) (Windows en tu caso, supongo)

~ DtxdF
Los seres humanos son robots, cuyo combustible es el afanado dinero.

Desconectado animanegra

  • *
  • Colaborador
  • *
  • Mensajes: 257
  • Actividad:
    80%
  • Country: 00
  • Reputación 10
    • Ver Perfil

Re:Detectar Keylogger

  • en: Abril 08, 2020, 02:37:29 am
You are not allowed to view links. Register or Login

¿Que pasaría si el Keylogger es local y no remoto?...  :-X


Que si es local probablemente vuelque  la información a fichero y puedes mirar la lista de ficheros abiertos por cada proceso y mirar cuales están en uso. En linux tienes el lsof para ver procesos y ficheros abiertos por ejemplo.

Si ves un fichero que está siempre abierto y además sólo crece en tamaño podría ser un indicativo también de keyloger.

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

Conectado DtxdF

  • *
  • Moderator
  • Mensajes: 688
  • Actividad:
    100%
  • Reputación 16
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Detectar Keylogger

  • en: Abril 08, 2020, 10:29:45 am
Agregando un poco de lo que dice aminanegra.

Supongo que deseas saber de la detección de un keylogger que no estás probando, tu amigo será lsof (Linux) como nos lo comenta el compañero y  El monitor de recursos (Windows) y debes tener en cuenta que el directorio que mayormente se usaría para estos actos es "/tmp" (Linux), "%tmp%" (Windows). En Linux tiene todos los permisos (drwxrwxrwt) incluido el sticky bit, por lo que no habrá problemas al escribir y leer aquí.

Puedes usar el siguiente comando:

Código: Bash
  1. watch --precise --interval 1 lsof -i +D /tmp

Para ver en tiempo real lo que se está haciendo en el directorio temporal, además de mostrar todas las conexiones pertenecientes.

Sin embargo la cosa se complica un poco cuando un atacante puede ejecuar el siguiente comando:

Código: Bash
  1. find / -type d -perm 0777

O bueno también se podría "buscar todos los directorios que tengan permiso de escritura y lectura"; eso en caso de que "/tmp" no funcione.

Una cosa más antes de que se me olvide. Use ltrace si tiene el binario para ver las llamadas que está haciendo el programa: Por ejemplo, yo me descarge un keylogger ya hecho desde "You are not allowed to view links. Register or Login" y ejecuté lo siguiente:

Código: Bash
  1. make
  2. ltrace ./keylog -f keys.txt

Y obtuve:

Código: Text
  1. scandir(0x557bf0fa7299, 0x7fff0ef9ec60, 0x557bf0fa6bf5, 0x7eff97d975b0 <unfinished ...>
  2. snprintf("/dev/input/.", 512, "%s%s", "/dev/input/", ".")                                             = 12
  3. __xstat(1, "/dev/input/.", 0x7fff0ef9e910)                                                            = 0
  4. snprintf("/dev/input/..", 512, "%s%s", "/dev/input/", "..")                                           = 13
  5. __xstat(1, "/dev/input/..", 0x7fff0ef9e910)                                                           = 0
  6. snprintf("/dev/input/event9", 512, "%s%s", "/dev/input/", "event9")                                   = 17
  7. __xstat(1, "/dev/input/event9", 0x7fff0ef9e910)                                                       = 0
  8. snprintf("/dev/input/event8", 512, "%s%s", "/dev/input/", "event8")                                   = 17
  9. __xstat(1, "/dev/input/event8", 0x7fff0ef9e910)                                                       = 0
  10. snprintf("/dev/input/event7", 512, "%s%s", "/dev/input/", "event7")                                   = 17
  11. __xstat(1, "/dev/input/event7", 0x7fff0ef9e910)                                                       = 0
  12. snprintf("/dev/input/event6", 512, "%s%s", "/dev/input/", "event6")                                   = 17
  13. __xstat(1, "/dev/input/event6", 0x7fff0ef9e910)                                                       = 0
  14. snprintf("/dev/input/event5", 512, "%s%s", "/dev/input/", "event5")                                   = 17
  15. __xstat(1, "/dev/input/event5", 0x7fff0ef9e910)                                                       = 0
  16. snprintf("/dev/input/by-id", 512, "%s%s", "/dev/input/", "by-id")                                     = 16
  17. __xstat(1, "/dev/input/by-id", 0x7fff0ef9e910)                                                        = 0
  18. snprintf("/dev/input/by-path", 512, "%s%s", "/dev/input/", "by-path")                                 = 18
  19. __xstat(1, "/dev/input/by-path", 0x7fff0ef9e910)                                                      = 0
  20. snprintf("/dev/input/event4", 512, "%s%s", "/dev/input/", "event4")                                   = 17
  21. __xstat(1, "/dev/input/event4", 0x7fff0ef9e910)                                                       = 0
  22. snprintf("/dev/input/event3", 512, "%s%s", "/dev/input/", "event3")                                   = 17
  23. __xstat(1, "/dev/input/event3", 0x7fff0ef9e910)                                                       = 0
  24. snprintf("/dev/input/event2", 512, "%s%s", "/dev/input/", "event2")                                   = 17
  25. __xstat(1, "/dev/input/event2", 0x7fff0ef9e910)                                                       = 0
  26. snprintf("/dev/input/event1", 512, "%s%s", "/dev/input/", "event1")                                   = 17
  27. __xstat(1, "/dev/input/event1", 0x7fff0ef9e910)                                                       = 0
  28. snprintf("/dev/input/event0", 512, "%s%s", "/dev/input/", "event0")                                   = 17
  29. __xstat(1, "/dev/input/event0", 0x7fff0ef9e910)                                                       = 0
  30. snprintf("/dev/input/mouse0", 512, "%s%s", "/dev/input/", "mouse0")                                   = 17
  31. __xstat(1, "/dev/input/mouse0", 0x7fff0ef9e910)                                                       = 0
  32. snprintf("/dev/input/mice", 512, "%s%s", "/dev/input/", "mice")                                       = 15
  33. __xstat(1, "/dev/input/mice", 0x7fff0ef9e910)                                                         = 0
  34. <... scandir resumed> )                                                                               = 12
  35. snprintf("/dev/input/event0", 512, "%s%s", "/dev/input/", "event0")                                   = 17
  36. open("/dev/input/event0", 0, 01676365161)                                                             = 3
  37. ioctl(3, -2147203808, 0x7fff0ef9ea5c)                                                                 = 4
  38. ioctl(3, -2147203807, 0x7fff0ef9ea5c)                                                                 = 4
  39. strdup("/dev/input/event0")                                                                           = 0x557bf2a0b260
  40. close(3)                                                                                              = 0
  41. free(0x557bf2a134b0)                                                                                  = <void>
  42. free(0x557bf2a13480)                                                                                  = <void>
  43. free(0x557bf2a13450)                                                                                  = <void>
  44. free(0x557bf2a13420)                                                                                  = <void>
  45. free(0x557bf2a133f0)                                                                                  = <void>
  46. free(0x557bf2a133c0)                                                                                  = <void>
  47. free(0x557bf2a13390)                                                                                  = <void>
  48. free(0x557bf2a13360)                                                                                  = <void>
  49. free(0x557bf2a13330)                                                                                  = <void>
  50. free(0x557bf2a13300)                                                                                  = <void>
  51. free(0x557bf2a135c0)                                                                                  = <void>
  52. free(0x557bf2a13590)                                                                                  = <void>
  53. free(0x557bf2a134e0)                                                                                  = <void>
  54. getopt(3, 0x7fff0ef9edb8, "sn:f:")                                                                    = 102
  55. getopt(3, 0x7fff0ef9edb8, "sn:f:")                                                                    = -1
  56. open("keys.txt", 1089, 04)                                                                            = 3
  57. open("/dev/input/event0", 0, 02101)                                                                   = 4
  58. signal(SIGINT, 0x557bf0fa6582)                                                                        = 0
  59. read(4, "3\317\215^", 3072)                                                                           = 72
  60. sigemptyset(<>)                                                                                       = 0
  61. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  62. strlen("CAPSLOCK")                                                                                    = 8
  63. write(3, "CAPSLOCK", 9)                                                                               = 9
  64. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  65. sigemptyset(<>)                                                                                       = 0
  66. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  67. strlen("\n")                                                                                          = 1
  68. write(3, "\n", 2)                                                                                     = 2
  69. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  70. read(4, "3\317\215^", 3072)                                                                           = 48
  71. read(4, "3\317\215^", 3072)                                                                           = 72
  72. read(4, "3\317\215^", 3072)                                                                           = 72
  73. sigemptyset(<>)                                                                                       = 0
  74. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  75. strlen("U")                                                                                           = 1
  76. write(3, "U", 2)                                                                                      = 2
  77. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  78. sigemptyset(<>)                                                                                       = 0
  79. Usigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  80. strlen("\n")                                                                                          = 1
  81. write(3, "\n", 2)                                                                                     = 2
  82. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  83. read(4, "3\317\215^", 3072)                                                                           = 72
  84. read(4, "3\317\215^", 3072)                                                                           = 72
  85. sigemptyset(<>)                                                                                       = 0
  86. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  87. strlen("CAPSLOCK")                                                                                    = 8
  88. write(3, "CAPSLOCK", 9)                                                                               = 9
  89. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  90. sigemptyset(<>)                                                                                       = 0
  91. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  92. strlen("\n")                                                                                          = 1
  93. write(3, "\n", 2)                                                                                     = 2
  94. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  95. read(4, "3\317\215^", 3072)                                                                           = 72
  96. read(4, "3\317\215^", 3072)                                                                           = 48
  97. read(4, "3\317\215^", 3072)                                                                           = 72
  98. sigemptyset(<>)                                                                                       = 0
  99. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  100. strlen("N")                                                                                           = 1
  101. write(3, "N", 2)                                                                                      = 2
  102. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  103. sigemptyset(<>)                                                                                       = 0
  104. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  105. strlen("\n") n                                                                                         = 1
  106. write(3, "\n", 2)                                                                                     = 2
  107. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  108. read(4, "3\317\215^", 3072)                                                                           = 72
  109. read(4, "3\317\215^", 3072)                                                                           = 72
  110. sigemptyset(<>)                                                                                       = 0
  111. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  112. strlen("D")                                                                                           = 1
  113. write(3, "D", 2)                                                                                      = 2
  114. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  115. sigemptyset(<>)                                                                                       = 0
  116. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  117. strlen("\n")                                                                                          = 1
  118. write(3, "\n", 2d)                                                                                     = 2
  119. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  120. read(4, "3\317\215^", 3072)                                                                           = 72
  121. read(4, "3\317\215^", 3072)                                                                           = 72
  122. sigemptyset(<>)                                                                                       = 0
  123. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  124. strlen("E")                                                                                           = 1
  125. write(3, "E", 2)                                                                                      = 2
  126. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  127. sigemptyset(<>)                                                                                       = 0
  128. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  129. strlen("\n")                                                                                          = 1
  130. write(3, "\n", 2)                                                                                     = 2
  131. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  132. read(4e, "3\317\215^", 3072)                                                                           = 72
  133. read(4, "3\317\215^", 3072)                                                                           = 72
  134. sigemptyset(<>)                                                                                       = 0
  135. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  136. strlen("R")                                                                                           = 1
  137. write(3, "R", 2)                                                                                      = 2
  138. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  139. sigemptyset(<>)                                                                                       = 0
  140. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  141. strlen("\n")                                                                                          = 1
  142. write(3, "\n", 2)                                                                                     = 2
  143. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  144. read(4r, "4\317\215^", 3072)                                                                           = 72
  145. read(4, "4\317\215^", 3072)                                                                           = 72
  146. sigemptyset(<>)                                                                                       = 0
  147. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  148. strlen("C")                                                                                           = 1
  149. write(3, "C", 2)                                                                                      = 2
  150. sigaction(SIGPIPE, { 0, <>, 0, 0 }c, nil)                                                              = 0
  151. sigemptyset(<>)                                                                                       = 0
  152. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  153. strlen("\n")                                                                                          = 1
  154. write(3, "\n", 2)                                                                                     = 2
  155. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  156. read(4, "4\317\215^", 3072)                                                                           = 72
  157. read(4, "4\317\215^", 3072)                                                                           = 72
  158. sigemptyset(<>)                                                                                       = 0
  159. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  160. strlen("0")                                                                                           = 1
  161. write(3, "0", 2)                                                                                      = 2
  162. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  163. sigemptyset(<>)                                                                                       = 0
  164. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  165. strlen("\n"0)                                                                                          = 1
  166. write(3, "\n", 2)                                                                                     = 2
  167. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  168. read(4, "4\317\215^", 3072)                                                                           = 72
  169. read(4, "4\317\215^", 3072)                                                                           = 72
  170. sigemptyset(<>)                                                                                       = 0
  171. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  172. strlen("D")                                                                                           = 1
  173. write(3, "D", 2)                                                                                      = 2
  174. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  175. sigemptyset(<>)                                                                                       = 0
  176. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  177. strlen("\n")                                                                                          = 1
  178. write(3, "\n", 2)                                                                                     = 2
  179. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  180. read(4d, "4\317\215^", 3072)                                                                           = 72
  181. read(4, "4\317\215^", 3072)                                                                           = 72
  182. sigemptyset(<>)                                                                                       = 0
  183. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  184. strlen("E")                                                                                           = 1
  185. write(3, "E", 2)                                                                                      = 2
  186. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  187. sigemptyset(<>)                                                                                       = 0
  188. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  189. strlen("\n")                                                                                          = 1
  190. write(3, "\n", 2)                                                                                     = 2
  191. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  192. read(4e, "4\317\215^", 3072)                                                                           = 72
  193. read(4, "J\317\215^", 3072)                                                                           = 72
  194. sigemptyset(<>)                                                                                       = 0
  195. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  196. strlen("LEFTCTRL")                                                                                    = 8
  197. write(3, "LEFTCTRL", 9)                                                                               = 9
  198. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  199. sigemptyset(<>)                                                                                       = 0
  200. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  201. strlen("\n")                                                                                          = 1
  202. write(3, "\n", 2)                                                                                     = 2
  203. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  204. read(4, "J\317\215^", 3072)                                                                           = 72
  205. sigemptyset(<>)                                                                                       = 0
  206. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }^C <no return ...>
  207. --- SIGINT (Interrupt) ---
  208. <... sigaction resumed> , { 0, <>, 0, 0 })                                                            = 0
  209. strlen("C")                                                                                           = 1
  210. write(3, "C", 2)                                                                                      = 2
  211. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  212. sigemptyset(<>)                                                                                       = 0
  213. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  214. strlen("\n")                                                                                          = 1
  215. write(3, "\n", 2)                                                                                     = 2
  216. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  217. sigemptyset(<>)                                                                                       = 0
  218. sigaction(SIGPIPE, { 0x1, <>, 0, 0 }, { 0, <>, 0, 0 })                                                = 0
  219. strlen("\n")                                                                                          = 1
  220. write(3, "\n", 2)                                                                                     = 2
  221. sigaction(SIGPIPE, { 0, <>, 0, 0 }, nil)                                                              = 0
  222. close(4)                                                                                              = 0
  223. close(3)                                                                                              = 0
  224. free(0x557bf2a0b260)                                                                                  = <void>
  225. +++ exited (status 0) +++

Que leyendo el archivo generado:

Código: Bash
  1. tr -d "\n" < keys.txt && echo

Obtenemos:

Código: Text
  1. HOLALEFTCTRLCCAPSLOCKUCAPSLOCKNDERC0DELEFTCTRLC

Creo que le será de utilidad para detectar keylogger's manualmente, pero claro, hay muchas maneras de detectarlos y más complejas y efectivas, incluso igual que los AVs (Aunque a veces la mano humana es más efectiva >:-)).

~ DtxdF
« Última modificación: Abril 08, 2020, 10:45:40 am por DtxdF »
Los seres humanos son robots, cuyo combustible es el afanado dinero.

 

[SOLUCIONADO] Keylogger pero solo de unas variables post de una pagina web

Iniciado por sancakoky1

Respuestas: 6
Vistas: 3515
Último mensaje Noviembre 29, 2013, 08:23:13 am
por Psymera
[SOLUCIONADO] ¿Keylogger para obtener datos de otra persona?

Iniciado por LittleJ

Respuestas: 4
Vistas: 2468
Último mensaje Noviembre 03, 2015, 09:35:14 am
por ANTRAX
[SOLUCIONADO] Como puedo crear mi própio keylogger?

Iniciado por Stafa

Respuestas: 7
Vistas: 2222
Último mensaje Diciembre 21, 2018, 01:53:38 am
por AXCESS
Crear usb keylogger para logeo de linux

Iniciado por javibr1

Respuestas: 1
Vistas: 737
Último mensaje Enero 30, 2019, 06:02:44 pm
por jonathanvlan
Keylogger para android remoto smtp

Iniciado por Velrus

Respuestas: 0
Vistas: 631
Último mensaje Abril 29, 2019, 07:13:21 am
por Velrus