Copy Link
Add to Bookmark
Report
3x05 Arquitectura Basica Client/Server de un trojano
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
kSh kSh kSh kSh kSh kSh kSh
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
.:: Arquitectura Basica Client/Server de un trojano ::.
-------------------------------------------------------
No tiene caso utilizar un trojan y conformarse con usarlo sin saber que
pasa detras de la pantalla, (Porque dejar cabida a la ignorancia?
Para entender la arquitectura Client/Server de un trojano debemos entender
que el server puede ser de dos formas: de codigo Dinamico o Arbitrario.
- Server Dinamico: Es aquel (el mas comun) que tiene los comandos ya
programados y los ejecutara al recibir orden del Client.
- Server Arbitrario: Es aquel (mas avanzado) que envia codigo arbitrario
(CRUDO) directamente al Kernel del sistema, tal y como lo recibe del Client.
.:: Funcionamiento ::.
Una vez se ejecuta el Server. El trojano empieza a escuchar conexiones.
Por ejemplo, el boserve.exe (server del Back Orifice) una vez ejecutado
empieza a escuchar conexiones en el puerto udp 31337.
Cuando el client hace un llamado al puerto 31337 (ping) el server da una
respuesta (pong) y acepta la coneccion.
tu blanco
/--------\ PING 12.128.85.32:31337 /--------\
| Client | -------------------------> | Server |
\--------/ <------------------------- \--------/
127.0.0.1 PONG 127.0.0.1 12.128.85.32
.:: Caceria ::.
Algunos trojanos tienen la funcion de SWEEP o Subnet Scan que es una
busqueda en una cadena de IPs, para encontrar Servers corriendo.
Esto se hace de la siguiente manera:
El client empieza a hacer solicitudes de coneccion al puerto del trojano
en una cadena de IP (3 primeros cifras de un IP). Y le agrega un numero
desde 1. Si se conecta, lo notifica al usuario, si lo rechaza
sigue con otro numero hasta el 255.
/--------\
| Client |
\--------/
|_ 206.105.232.1 Conection Refused. proximo
|_ 206.105.232.2 Conection Refused. proximo
|_ 206.105.232.3 Conection Established. Reportar al Usuario
|_ 206.105.232.4 Conection Refused. proximo
|_ 206.105.232.5 Conection Established. Reportar al Usuario
|_ 206.105.232.6 Conection Refused. proximo
|_ ....
|_ 206.105.232.255 Conection Refused. Scan Ended.
Este proceso es Identico al de un Buscador de Proxy.
.:: CLIENT/SERVER ::.
Una vez conectado, el servidor aguarda recibir los comandos del client.
el servidor al recibir una cadena especifica, este ejecuta una accion
preprogramada y le da respuestas al servior
Ejemplo:
Supongamos que tienes un trojano que tiene un comando para borrar archivos
El comando es KILL
El parametro es c:\command.com
1) el Client envia comando al Server
/--------\ KILL c:\command.com /--------\
| Client | -------------------------> | Server |
\--------/ \--------/
2) el Server al escucharlo ejecuta
/--------\ /--------\ borrar
| Client | | Server | --------> C:\COMMAND.COM
\--------/ \--------/
3) el Server notifica al Client. (ECHO)
/--------\ c:\command.com KILLED /--------\
| Client | <------------------------- | Server |
\--------/ \--------/
.:: Plugins ::.
Algunas funciones llevarian tanto codigo que ampliaria demasiado el espacio
en bytes de el Server. Por tanto, algunos trojanos tienen plugins, que son
agregados para que el server puda hacer funciones avanzadas fuera de su
alcance.
Por ejemplo: El BOice es un plugin del Back Orifice que convierte texto en
una voz sintetizada. Esta funcion ocuparia mucho espacio en el programa del
Server, lo cual haria que el Server fuera mas dificil de transmitir.
1) El Client ordena al Server a cargar el plugin.
/--------\ Use Plugin BOice.dll /--------\
| Client | -------------------------> | Server |
\--------/ \--------/
2) El Server lo prepara.
/--------\ /--------\
| Client | | Server |-----.
\--------/ \--------/ |
/------\
|Plugin|
\------/
3) El Client ordena una funcion.
/--------\ Plugin: Say "Hola amigo!" /--------\ Say "Hola Amigo!" /------\
| Client | -------------------------> | Server |-----------------> |Plugin|
\--------/ \--------/ \------/
|
"Hola Amigo!">>>> Sonido <--------------/
.:: Notify ::.
El notify es una forma de no perder el contacto con un Server de un trojano
a pesar de tener un IP dinamico.
Todos sabemos que hay dos tipos de IP. Estaticos y Dinamicos.
-Direcciones IP estaticos son los que nunca cambian, es decir, aqueyos que
poseen los servidores de internet o computadoras que NO pueden cambiar el
IP para no perder el contacto de sus usuarios.
-Direcciones IP dinamicos son los que cambian con cada coneccion.
Estos son los que poseen los usuarios comunes de Internet, que constantemente
se conectan y desconectan.
Hay diferentes tipos de notify:
Se puede programar el Server para que te notifique cada vez que se conecte a
la red. Esta notificacion puede ser via e-mail, irc, icq, un puerto abierto
en tu PC, a una shell, etc...
Digamos que tenemos una victima que parece tener informacion importante
o que simplemente nos sentimos a gusto en su pc, PERO de repente se siente
harto de muelear ni$as de 13 o 14 a$os en #dominicanos y se desconecta.
(Historia Real, hehehe)
Seria un dolor en el Cu... En el OUTPUT del ser humano.
Gam3-0v3r
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
kSh kSh kSh kSh kSh kSh kSh
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^