Cómo ver si te hackearon
¿Crees que te hackearon? ¿Que tu ex pololo/polola se metió en tu tarro a buscar cosas? ¿Que el FBI anda detrás de tus planos para construir una bomba? ¿Quieres aprender a ver si fuiste hackeado? Aquí va una guía de comandos básicos, repito, bien básicos, sobre cómo averiguarlo.
Lo primero de todo, si crees que te están hackeando en este momento, revisa quién está dentro de tu tarro (vía SSH, por ejemplo)!
$ w
Segundo, si no hay nadie ma? que tú, entonce revisa los registros de bash (bash logs):
$ cat ~/.bash_history
O si tienes al usuario root activado:
$ cat /root/.bash_history
Después, si quieres ver los accesos al servidor:
$ last
O bien,
$ cat /var/log/auth.log
Para ver si crearon nuevas cuentas de usuario (¿hay algún nombre de usuario curioso al final del archivo?):
$ cat /etc/passwd
Para ver qué conexiones estás teniendo en éste momento (y a través de qué programa):
$ netstat -tap
Para ver qué puertos tienes abiertos (y si hay alguno que no debería estarlo):
$ sudo iptables -L
En todo caso, es bien difícil que hayas sido hackeado a menos de que tengas abierto un servidor SSH (openssh-server) o alguna otra forma de acceso remoto. E incluso si fuese así (y que hayas sido hackeado), probablemente no te hicieron ningún daño grave. ¿Por? Primero, porque precisamente la idea de hackear es vulnerar los sistemas de seguridad “pasando desapercibido” (si te descubren, entonces no se puede hacer mucho, ¿no?).
De hecho, generalmente lo único que hace un hacker es dejar un puerto abierto para entrar después (los llamados “back doors”). Y por lo mismo los últimos comandos son tan importantes! Si quieres ver cómo abrir o cerrar puertos, sigue esta flechita.


Buen post, de hecho si tienen un servidor SSH revisen /var/log/auth.log y quizas encontraran sorpresas.
Que bueno que recalcaste “hacker es dejar un puerto abierto para entrar después (los llamados “back doors”).” ya que muchos creen que los hackers te dañan tu sistema cosa que como tu y yo sabemos es completamente falso. de hecho los invito a leer este post que hize sobre el uso de la palabra “hack”
Saludos
así es kakei, el hackeo no tiene nada que ver con dañar sistemas, los que hacen eso son los malditos crackers.
gracias por alimentar mi paranoia, tomás. lo peor es que con “netstat -tap” me da, en la octava linea o algo así, una conexión de *:microsoft-ds, todas las veces. Me imagino que es normal incluso si tengo Suse 10.1, ¿o está revisando que no haya sido “víctima” de una “duplicacion de software”? jajaja
pero ya me dio miedo por si es una de las señales del apocalipsis y creo que voy a santificar mi cpu y colgarle una cruz, como en los espejos retrovisores de los taxis y los autobuses
muy buenos datos
gracias
A veces también te toca algún gracioso con ganas de probar truquitos o tocar las narices. En una LAN party me dejé el servidor de VNC abierto (con contraseña, claro) pero el majete se aprovechó de alguna vulnerabilidad (debilidad de la contraseña quizás, era muy corta, 5 caracteres) y me canceló la grabación de un dvd y charló con mis contactos de IM… Luego miré el log , vi su IP y le dije que se estuviese quietecito o le reportaba a organización y ahí acabó todo jeje
Buen post bastante útil gracias. También es buena idea mandar un mail automático por cada acceso ssh y revisar el o los logs de los smtp`s en caso de tener intalado o desintalarlos ya que algunos spamers les dan uso
Rodolfo, excelente recomendación
buena Rodolfo, buen tip. eso sí, si tienes un servidor SMTP, en vez de desinstalarlo puedes impedir el uso anónimo (sólo usuarios con login), y ahí matas a los spammers.
o sea, matas algunos spammers.
zetxek: mientras el tipo no le haya empezado a decir estupideces a tu polola vía IM, todo bien, jaja.
Seriamente, cualquier persona que sepa lo suficiente y realmente sea un hacker serio (o cracker, o como usted desee llamarlo, la idea aún estará ahí) no dejará marcas tan evidentes como ellas.
¿Alguien dijo rootkit?
Bueno lo del .bash_history no sirve de mucho ya que con un solo comando desactiva el registro en ese archivo (no lo voy a decir pero basta con buscar en la red) . Hay que ver también los archivos /usr/adm/lastlog y /var/log/lastlog.Lo mejor es no levantar servicios y puertos que uno no necesite.
estoy limpio…!
nótese que esto también se aplica a Mac OS X
bueno… casi, no tengo iptables
Una buena practica para asegurara SSH es agregar en la config los AllowUsers y no permitir accesos como root.
Raro que te hackeen.. yo he tenido varias maquinas corriendo linux y openbsd y nunca he tenido problemas (excepto por la primera maquina q maneje q me la hicieron pedazos..) pero en fin basta con instalar linux y desactivar el usuario root por ssh y listo.
Se que sonara tonto, pero como podria desactivar el usuario root del ssh??
Y existe alguna forma de lograr que el servidor ssh solo acepte conexiones de ip locales??
Precisamente antes de ayer entraron en una de las máquinas gestionadas por uno de nuestros clientes.
Parece que accedieron través de uno de los usuarios que tenian acceso por SSH (supongo que la contraseña la sacaron por fuerza bruta).
Por suerte este usuario no tenía muchos privilegios y no pudo hacer “mucho”: instaló y ejecutó un par de programas para penetrar a otras máquinas por SSH mediante fuerza bruta.
Si hubieran podido entrar como root seguramente hubiera tenido que reinstalar completamente la máquina.
En fin, los consejos que hay aquí estan bien pero es fácil olvidarse de usarlos de vez en cuando. Supongo que lo mejor es tener algun sistema que genere informes a partir de los logs del sistema y que te los envíe por email (ahora mismo estoy usando logwatch y estoy muy contento con él).
Ah, por cierto, también va muy bien saber qué está ejecutando la máquina:
ps aux --forestUn saludo.
NeoRagod, para desactivar el acceso para root pon esto en el archivo /etc/ssh/sshd_config (al menos en Debian/Ubuntu):
PermitRootLogin noPara filtrar por IP creo que puedes hacerlo editando los archivos /etc/hosts.* pero casi mejor que mires de hacerlo con iptables.
NeoRagod: para inhabilitar el acceso al usuario root ingresar por ssh, debes editar /etc/ssh/sshd_config y editar una linea que diga esto:
PermitRootLogin yes
por
PermitRootLogin no
ahora, si lo que deseas es solo aceptar el ingreso de algunos usuarios por ssh debes editar el mismo archivo y agregar lo siguiente:
AllowUsers mtoro usuario2 usuariox
una vez hecho eso, debes recargar la configuracion o bien reiniciar el servidor ssh.
Bueno gracias, realmente me senti como un noob de nuevo XD, de cualquier forma ya deshabilite la opcion de root, ahora el caso es que esta la opcion de :
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Me imagino que son para definir los accesos desde una IP, no?
El caso es que mir server lo manejo desde SSH, no tengo monitor ni nada y me conecto desde esta PC. Osea conectarme de 192.168.1.100 a 192.168.1.1 en red interna, solo me gustaria deshabilitar el mapeo del puerto 22 desde la inet, o tal vez escoja un puerto al azar.
De cualquier forma, gracias ^^
miedo, revisaré ahora.
catalina: ¿miedo? no te preocupes, son consejos que es bueno saberlos por si las moscas, pero de ahí a que te hayan hackeado es otra cosa. :)
Neoragod, Francesc y Marcos Toro: qué bueno ver que nos compartamos los tips… ese es el espíritu!
..mmm…bien basicos los consejos, la verdad es que todos esos “tips” son faciles de evitarlos desde la perspectiva de un script kiddie, manipular memoria, esconder registros en discos, esconder los sockets tcp/ip , por lo demas modificar los mismos binarios que estas usando para comprobar la “estabilidad” y usarlos para otros fines…entre muchas otras cosas.
Si sospechas que eres victima de un ataque , lo mejor !, desconecta la maquina, realiza un checksum MD5 o algun otro algoritmo , usa chkrootkit o busca ficheros con bits SUID activos (find / -perm 6000 o 4000),verifica la integridad de los archivos esenciales, saca una imagen del disco y analizala pausadamente con sleuthkit en busqueda de registros sospechosos, verifica que los usuarios de sistema y serivcios no tengan shells por defecto o se encuentren en grupos con GUID distinta a la que corresponda, incluso puedes hacer un kernel DUMP y debugear todas las conexiones realizadas sobre el STACK TCP/IP en un momento determinado, cerrar los servicios, entre muchas otras cosas…
Es una ciencia, no seamos tan simplistas, pero tampoco alarmistas.
Para evitar eso, no creen cuentas a locas, utilicen buenas contraseñas con cambios periodicos, no levanten servicios innecesarios y deshabiliten los por defecto, realicen checksums de integridad y almacenen esa imagen en un equipo sin acceso fisico ni a red o algun dispositivo electronico (en caso de que necesiten usarlo), comprueben la integridad MD5 de los ficheros que descargan, actualicen su sistema base, y siempre tengan el kernel en sus ultimas versiones estables, entre Otras.
Existe algo parecido que podamos probar para windows XP.
Y como hago lo contrario de borrar todo el historico de cambio?