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 - kub0x

#621
Buenas!

He ejecutado tu snippet y va perfecto. Ahora, el método main me queda así:

Código (csharp) [Seleccionar]
static void Main(string[] args)
        {
            System.Threading.Thread t = new System.Threading.Thread(Listen);
            t.Start();
            System.Threading.Thread.Sleep(1000);
            Connect();
        }


Debes de hacer un método para el Listen y otro para el Connect y primero llamas al Listen desde el hilo, esperas 1 seg y llamas a Connect.

No he tocado nada de tu code. Pruébalo y nos cuentas.

Saludos.
#622
Bienvenido a la comunidad Sr Limone.

Supongo que estarás aprendiendo programación. Cuando instancias un array con un tamaño fijo y se te queda pequeño debes de redimensionarlo haciendo uno más grande y copiando el contenido del viejo al nuevo.

En .NET como bien sabrás estas cosillas no las tienes que implementar o programar, bastaría con utilizar la clase ArrayList, la cual subyacente o por debajo hace el redimensionamiento al quedarse sin espacio o bien, con llamar al método Array.Resize() conseguirías el mismo resultado.

Saludos.
#623
Programación C/C++ / Re: i++ e ++i
11 Agosto 2015, 14:02 PM
Por ejemplo:

Código (cpp) [Seleccionar]

int i = 0;
std::cout << Array[i++] << std::endl;


Imprime el primer elemento (Array[0]) y después incrementa 'i'.

Código (cpp) [Seleccionar]

int i = 0;
std::cout << Array[++i] << std::endl;


Incrementa 'i' e imprime el segundo elemento (Array[1]).

Vamos que ++i incrementa primero y ejecuta la instrucción subyacente e i++ ejecuta la instrucción subyacente y después incrementa 'i'.

Saludos.
#624
Procura no utilizar el término cifrar junto a la clave privada, ya que el término real es firmar.

Para firmar primero calculas el digest o hash de un mensaje o  de un bloque de de datos. Después firmas dicho digest (m^d (mod N)) y se lo entregas al destinatario junto al mensaje cifrado por AES o en plano. Entonces el destinatario descifra el hash cifrado con tu pública y calcula el hash para el mensaje que le has entregado. Si ambos hashes coinciden el mensaje no ha sido modificado y ha sido enviado por quien dice ser.

Es decir, se respetan los 3 principios clave de la criptografía de clave pública: Integridad (mensaje no modificado), Confidencialidad (aunque capturen el mensaje no podrán hacer nada) y No repudio (sabemos que proviene del emisor y no de otra persona que lo suplante).

Sobre la longitud del mensaje a cifrar, bueno te lo aclaro:

El esquema de cifrado/descifrado en RSA se basa en los grupos multiplicativos de enteros módulo N. La clave pública es un semiprimo llamado N compuesto por dos primos 'p' y 'q'. Al cifrar o descifrar tu utilizas una base 'm' elevada a la 'e' o 'd' como ya dije antes ('e' y 'd' satisfacen la multiplicativa inversa mod phi(N)).

En este caso la base 'm' es una clase de congruencia, es decir, es un número coprimo con N menor que N que genera un conjunto de congruencias coprimas con N.

Básicamente el mensaje tiene que tener longitud N - 1. Te dejo la referencia oficial, está en Inglés, pero su lectura es obligatoria para saber como se implementa RSA en la práctica. La teoría sobre RSA se aprende bien en .pdfs varios, o mismamente KhanAcademy o YouTube. Aunque realmente es aprender sobre teoría de números (number theory).

https://tools.ietf.org/html/rfc3447

Te dejo una pequeña reflexión sobre el cifrado/firma en RSA:

Imagina dos archivos diferentes entre sí pero con hashes casi idénticos. Imagina también que a la hora de firmar firmasemos el hash como tu dices, byte a byte en vez de lo máximo posible.

Si el Hash de ambos dos es de 160bit y son idénticos en los primeros 128bit (16bytes), la firma del mensaje será idéntica en los primeros 16bytes y el problema se reduce a una fuerza bruta de 32bit (4byte), de esta forma consegurías falsificar la firma. Por eso para firmar se firma el hash entero de 160bit o lo que pese ya que N en bits es igual o superior a 1024bits por ende el módulo es superior en tamaño al mensaje.

Saludos.
#625
Cita de: SheKeL_C$ en 28 Julio 2015, 06:11 AM
Sobre el ring0...

Se puede instalar un driver en una maquina desde codigo?? Hace falta algun tipo de certificado?

A partir de Windows Vista se introdujo la Driver Signature Enforcement Policy la cual hace uso de la Kernel Mode Code Signing Policy.

Te dejo una breve explicación: tanto en x86 y x64 si Secure Boot está activo tu driver debe de estar firmado por una CA perteneciente al programa de certificación de Microsoft. Obviamente si Secure Boot está activo lo tendrás díficil para bypassearlo, a no ser que exista una vulnerabilidad que te permita deshabilitarlo vía UEFI (alterando la Platform Key).

Si Secure Boot está desactivado, en x86 podrás cargar drivers unsigned o sin firmar, es decir, no necesitan firma digital ni certificado alguno. En x64 sin Secure Boot el driver puede ir firmado por cualquier entidad certificadora (CA) en la que confíe el módulo CI (Code Integrity). La lista es la siguiente -> https://msdn.microsoft.com/en-us/library/windows/hardware/dn170454%28v=vs.85%29.aspx

Info útil:

Como firmar un driver para testeo en nuestro equipo (paso a paso): https://msdn.microsoft.com/en-us/library/windows/hardware/dn653569%28v=vs.85%29.aspx
Política de firmado de drivers en Windows Vista y superior: https://msdn.microsoft.com/en-us/library/windows/hardware/ff548231%28v=vs.85%29.aspx

Cita de: SheKeL_C$ en 28 Julio 2015, 06:11 AM
Alguien sabe que "operaciones" matematicas hace gnupg para validar que un archivo firmado corresponde a una key publica ??? Me gustaria implementarlo  en el bot para no tener que depender de otro archivo.

Para abstraerte de GNUPG debes de saber como funciona la criptografía asimétrica. Cuando envías un archivo cifrado por RSA, lo que haces es generar una clave simétrica (AES) aleatoria, cifras el mensaje con dicha clave y cifras el mensaje y la clave con la clave pública del destinatario. Además, hasheas el mensaje cifrado y la clave y lo cifras con tu clave privada, de esta forma incluyes tu clave pública en el mensaje para que el destinatario pueda verificar la integridad de los digest o hashes.

El destinatario hará las siguientes operaciones:

- Descifras el contenido con la clave privada una vez llegue el mensaje. Computas el hash del descifrado y descifras con la pública del emisor la firma digital. Si ambos hashes coincides el mensaje viene del emisor y no ha sido modificado, por lo tanto confiamos en la clave simétrica y procedemos a descifrar el mensaje.

OJO, hay varias variantes, pero a mí es la que más me tira.

¿Qué operaciones matemáticas? Usando RSA:

Cifrar: m^e (mod N) o m^d (mod N) para firmas digitales.
Descifrar: m^d (mod N) o m^e (mod N) para firmas digitales.

Lo suyo es que si estas en Win$ utilices el la API de RSA o bien utilices las librerías OpenSSL o NSS. También puedes hacerlo tú mismo a mano, no es tedioso una vez sabes el proceso.

Saludos.
#626
Hacking / Re: MITM transparente
28 Julio 2015, 14:12 PM
Cita de: nonpromisc en 28 Julio 2015, 13:16 PM
Hola. ¿Me gustaría saber como es posible un Man in the Middle transparente usando SSLstrip.
He estado probando desde el ordenador con una ataque ARP, el típico, y sslstrip, pero cuando quiero entrar en facebook, no carga la pagina, por eso de que debe ir por https y tal, pero si lo hago desde una app llamada ZAnti, que supongo que todos conoceréis, cuando hago un MitM con lo que ahí pone: sslstrip, permite el trafico a paginas como facebook o twitter, haciendo que sea transparente totalmente, y no se note el ataque, además cumpliendo su funcion, porque en páginas como tuenti.com si que puedes ver las contraseñas y tal.
Me gustaría saber como se hace eso desde Linux. He intentado hacerlo poniendo excepciones a ciertas paginas como Facebook o Gmail en IPTables, pero sigue sin ser 100% transparente.
¿Alguna aportacion?

Antes de apretar el botón tienes que saber que botón estás apretando. Vamos que no estás familiarizado para nada con SSLStrip y HSTS.

HSTS se introdujo como medida de seguridad contra SSLStrip, piensa que SSLStrip lo que hace es bloquear el redireccionamiento a HTTPS vía código fuente. Si la víctima visita http://bbva.es el código fuente de esa web le redirige a https://bbva.es (nótese el HTTPS la S indica seguro). Si el atacante corre SSLStrip incapacitará el redireccionamiento en la víctima, por lo que la web se quedará en HTTP.

Te lo doy mascado, te explico cuando no funciona SSLStrip:

- HSTS está activo en la web dentro de la caché HSTS del navegador, aunque la víctima visite una página en HTTP el navegador forzará la conexión por TLS (HTTPS).
- Si la víctima escribe la dirección web vía HTTPS la conexión irá en HTTPS siendo imposible determinar el contenido del paquete.
- Si el sitio web bloquea el protocolo HTTP.

Saludos.
#627
Hardware / Re: Placa base hackeada
28 Julio 2015, 00:34 AM
Lo que debes de hacer es comprar una placa con UEFI y Secure Boot activo. Así mismo adquirir una licencia para el OS si es Win$ sino GNU/Linux irá bien.

Si la placa no está contaminada Secure Boot tratará de validar la integridad de la imagen del cargador del arranque (Boot Loader). Si un bootkit (rootkit modo boot) modifica el MBR/VBR el bootloader no pasará el control de integridad por lo que evitarás rootkits a ese nivel.

Aunque esto no te libre de otro tipo de amenazas, incluso de otros rootkits, sabrás con certeza que el sistema no está infectado de base (desde el arranque) por lo que la detección del malware se hace más amena.

Lo que dices tiene mala pinta, no sabemos tu historia pero debe ser importante ya que eres víctima de un ataque dirigido. Si estás tan seguro de que la placa va contaminada, puede que la hayan flasheado actualizándo la versión del chipset sin permiso, o si existe alguna vulnerabilidad pueden reescribir gran parte del code del firmware. Lo mejor es confiar en la criptografía de clave pública y en su infraestructura (certificados) para verificar la integridad de los drivers de tus dispositivos y OS.

Saludos.
#628
Cita de: engel lex en 27 Julio 2015, 09:02 AM
justamente por eso lo digo XD

tan simple como que C++ es C... solo que con añadidos que le dan la abstracción de POO de resto es el mismo nivel XD e incluso si usas new y class, no te alejas tanto de de C como muchos hacen creer... es una implementacion de unas asignaciones de memoria adicionales... de resto y fuera de eso creo que muy pocos pueden nombrar donde C++ pueden decir donde se diferencia de C

Piensa que una clase en C++ es una estructura en C la cual contiene punteros a funciones o a miembros internos. Si te fijas en C++ las clases tienen una Virtual Table (vt) el cual es un array de pointers a functions.

Podría elaborar una respuesta gigantesca, pero mejor indico cuales son los mejores procedimientos a seguir en base a tus cuestiones.

Cita de: xaps en 26 Julio 2015, 12:40 PM
   1. Localización del malware: ¿Cual es la mejor localización de un malware dentro de un sistema? ¿Sistema de arranque, drivers, archivos temporales, ...?

La mejor localización es infectar el arranque del OS para que cargue nuestro Kernel Boot Driver antes de que cargue los drivers del sistema, entre los que se incluyen los del AV. Otras opciones serían modificar un driver legítimo, pero su firma digital cambiaría por lo que "Code Integrity" no podría verificar de manera satisfactoria el módulo, por lo que tendrías que patchear Code Integrity y el módulo que carga Code Integrity en el Boot, es decir, patchear CI, Winload y BootMgr.

Con secure boot habilitado BootMgr es verificado por la UEFI gracias a la clave pública embebida en el code del firmware de UEFI (en mi caso ASRock (placa base manufacturer)). Si arrancas antes del AV ganas, así de facil.

Cita de: xaps en 26 Julio 2015, 12:40 PM
2. Antivirus: ¿Cómo un antivirus identifica un proceso malicioso? ¿Que reglas siguen los antivirus más modernos?

Mediante firmas, módulos y llamadas a APIs utilizadas, heurística, detección en tiempo de ejecucción. Un AntiVirus piensa que apenas hace nada, suelen incluir módulos adicionales para lograr lo que he dicho, en mi caso cuento con un AV, FW y un HIPS, siendo el HIPS el módulo que protege los cambios sobre mi sistema (abrir claves del registro, copia de archivos, hookeo de funcs, apertura de handles, elevación ... cualquier cosa que haga un ejecutable).

Cita de: xaps en 26 Julio 2015, 12:40 PM
3. ¿Que "estructura o diseño" consideráis la mejor para este tipo de malware? ¿Porque?

Sobre programación en Win$ utiliza la DDK (Driver Development Kit) de Win 8.1, pues podrás desarrollar user-mode y kernel-mode drivers para WinVista, Win7 y Win8/8.1. La DDK utiliza su propia implementación para el desarrollo de drivers basado en diseño y uso de interfaces ya definidas.

Sobre las características a incluir, bueno, esto ya es subjetivo, a mi apenas me gusta hacer ruido. Dependiendo del rootkit, éste hará ruido o no. No todos los rootkits son tan potentes como los pintan ahí fuera, lo que hay es un miedo extremo a este tipo de amenazas. Pero su detección si que es algo más tediosa, pero si la amenaza no es gran cosa sigue siendo trivial su eliminación.

Si tienes dudas con los temas de criptografía simplemente postea en el foro correcto y te ayudaré encantado.

Saludos.
#629
Foro Libre / Re: edad tardía
24 Julio 2015, 21:17 PM
Tengas la edad que tengas, el error más grande que podrías cometer en tu vida sería dejar de estudiar, aún trabajando hay que seguir estudiando. Sino para que vivir. La edad no importa mientras tengas pasión por lo que amas.

Saludos.
#630
Cita de: Kaxperday en 23 Julio 2015, 00:47 AM
Hola a todos, os voy a comentar mi caso, suerte que leí este post, cuando windows me obligó a hacer las "actualizaciones", traté de cancelarlo, no funciono era persistente, y bueno lo reinicié. Al encenderlo me iba lento el ordenador, la pantalla mal, tiene como minibloqueos espontaneos y todo me va lento, hasta el compilador se nota mucho mas lento y al abrir algunas apps tengo que pasar el raton por encima para que se cargue la interfaz, en definitiva tengo medio jodido el ordenador, y creo que es por esa actualizacion, antes de ella funcionaba perfectamente todo, ahora ya no...

Saludos.

Es otra de las cosas que tiene Windows. Ciertas actualizaciones no son estables en todos los equipos y los problemas que ocasiona son los siguientes:

- La instalación da error llegado a un % determinado y se reinicia el equipo entrando en bucle, que puede durar horas (a mi me ha pasado en W7 ya 4 veces).
- El touchpad me dejó de funcionar.
- De vez en cuando me daban pantallazos negros intermedios, por lo que deduje que el driver de la gráfica había sido actualizado por WinUpdate.
- En algunos post los usuarios comentan que el rendimiento se ha visto reducido. Seguramente debido a algún conflicto con el equipo, o por algún nuevo servicio integrado gracias a la update.

Como recomendación, como ya dije, seleccionar la opción de descargar las actualizaciones e instalarlas cuando desees, de esta forma Windows te avisa en el inicio del sistema.

Este es el precio a pagar por este sistema tan bueno. Si no fuera por Visual Studio me movía a Linux :D.

P.D = Si el equipo te va mal, prueba a volver a un punto anterior (restaurar equipo).

Saludos.