Mire la salida del last
comando y cualquier cosa con una dirección IP o nombre de host en lugar de un espacio en blanco entró por la red. Si sshd
es la única forma de hacerlo en este sistema, entonces ahí lo tienes.
Alternativamente (si se trata de Linux), puede verificar /var/log/secure
(en distribuciones basadas en RH) o /var/log/auth.log
(en distribuciones basadas en Debian) dónde sshd
generalmente se realizará un seguimiento de las conexiones realizadas, incluso si no dan como resultado inicios de sesión exitosos (que impacta utmp
/ wtmp
, que es lo last
que leerá de). Ejemplo:
Apr 3 16:21:01 xxxxxxvlp05 sshd[6266]: Connection closed by xxx.xxx.13.76
...
Apr 3 09:09:49 xxxxxxvlp05 sshd[26275]: Failed password for invalid user __super from xxx.xxx.13.76 port 45229 ssh2
IIRC Solaris sshd
(que puede no ser necesariamente OpenSSH sshd
) registrará esta información en/var/adm/messages
EDITAR:
@derobert hace un excelente punto. Es importante recordar que en cualquier sistema, si su cuenta de superusuario se ve comprometida, entonces todas las apuestas están canceladas, ya que el atacante puede modificar /var/log/wtmp
o /var/adm/messages
modificar los archivos de registro . Esto puede mitigarse si empuja los registros fuera del servidor a una ubicación segura.
Por ejemplo, en una tienda en la que solía trabajar teníamos una máquina "Audit Vault" que estaba asegurada para recibir solo los archivos de registro de auditoría de los distintos servidores en el centro de datos. Recomendaría tener una configuración similar en el futuro (ya que "Tengo una máquina de prueba" parece que estás operando en una tienda grande)
Esto debería darte una lista:
Luego puede usar
geoiplookup
elgeoip-bin
paquete para ir del nombre de host o la dirección IP al país.fuente
sed
habilidades no son ese dios. Para hacer algo más complejo, use Python o un analizador de registro dedicado. Pero puedes probar esto:zgrep sshd /var/log/auth.log* -h |grep -F 'Failed password'
Bueno, como se esperaba, y como dijo @Joel Davis, se borraron todos los registros, pero hubo un archivo que @Ramesh mencionó que tiene algunos intentos de acceder al usuario raíz pero no ingresó la contraseña correcta varias veces, luego la desconexión para demasiados reintentos.
Ejecuté un traceroute en tres de las direcciones y dos son de China y el otro es de Pakistán; Estas son las IP:
Más información sobre la botnet que se inyectó en el servidor después de que se vio comprometida:
Los hackers editan crontab para ejecutar 7 ejecutables que, cada x cantidad de tiempo, usarán toda la CPU, maximizarán la salida de red de los servidores y luego simplemente morirán. También agregan el archivo Léame al crontab 100 veces para ocultar las líneas agregadas, de modo que cuando lo haga
crontab -l
, el archivo Léame le enviará correo no deseado con líneas ocultas. Para evitar esto, usécrontab -l | grep -v '^#'
y aquí está la salida de ese comando:Como puede ver, todos los archivos de registro se borran, es por eso que no pude recuperar mucha información.
Derribó todo el servidor (todas las máquinas virtuales) causando tiempos de espera en los sitios y en proxmox. Aquí hay un gráfico (los picos denotan que la botnet DDoS'ing activa y notan la salida de la red):
Como resultado, agregaré todo el rango de direcciones IP chinas a un cortafuegos para bloquear todas las conexiones (no tengo ningún usuario chino, así que no me importa), también rechazaré los inicios de sesión remotos y usaré complejos largos contraseñas Lo más probable es que también cambie el puerto ssh y use también claves privadas ssh.
fuente
De esta respuesta, veo la siguiente información.
Hablando de servidores SSH, te daré soluciones de línea de comandos.
Realizar un seguimiento de los inicios de sesión de usuario y cierres de sesión . Eso es fácil, el archivo
/var/log/auth.log
debe tener esta información.Rastree la actividad de esos usuarios : si son algo inocentes, puede consultar el archivo
.bash_history
en su directorio de inicio. Verá una lista de los comandos que ejecutaron. El problema es, por supuesto, que pueden eliminar o editar este archivo.Evitar que los usuarios eliminen registros : los usuarios no deberían poder tocar
auth.log
. Para evitar que jueguen,bash_history
debes hacer un par de trucos.¿Qué pasa si el usuario logra obtener acceso de root? : Estás jodido. A menos que cometa un error, podrá ocultar todos sus pasos.
Además, a partir de esta respuesta, podemos ver la dirección IP de un cliente que usa la
SSH_CLIENT
variable.También de esta respuesta, veo que el historial ssh podría almacenarse en estos archivos.
Además de
/var/log/lastlog
, hay 3 archivos en/var/run
y/var/log
:utmp
,wtmp
ybtmp
, que contienen información sobre los inicios de sesión actual (y información adicional), histórica y los inicios de sesión fallidos. Ver wiki para una descripción detallada. No puede editar los archivos con editores normales, pero podría borrarlos.fuente
El comando más simple para que los últimos 10 usuarios inicien sesión en la máquina es
last|head
.Para obtener todos los usuarios, simplemente use el
last
comandofuente
Esta máquina ha sido comprometida. Esto significa que ya no se puede confiar en los datos, históricos o actuales.
En resumen, la respuesta es no. No puede estar seguro de haber encontrado la dirección de origen de cualquier archivo de registro registrado en esta máquina.
Limpie y vuelva a instalar. Y parche.
fuente
Para ver solo intentos exitosos de inicio de sesión con contraseña:
fuente
para Debian, la búsqueda de prueba está redactada ligeramente diferente
fuente