elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Crear red P2P descentralizada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear red P2P descentralizada  (Leído 6,382 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Crear red P2P descentralizada
« en: 5 Septiembre 2015, 21:51 pm »

Hola a todos, quería informarme de como crear una red P2P descentralizada, me he estado informando y según he leído no requiere un servidor que haga de enroutador. Simplemente los usuarios actuan como cliente y servidor a la vez, vale. Pero mi pregunta es, ¿como hago que los usuarios busquen a más usuarios entre sí?.

Mi idea es programar algo sencillo en C++, sería una red P2P descentralizada. El cliente haría de cliente y servidor a la vez, es decir, se conectaría a otro cliente o usuario de la red y a la vez permitiría que estos se conectaran a el, para compartir información. Una vez tenga la IP  de estos sería fácil para mi por medio de sockets realizar la conexion, pero la pregunta es:

¿Como encuentro la IP de los clientes conectados, cual es el método de programación que he de usar? ¿Como obtengo la lista de todos los clientes conectados de la red? (Tendría que preguntar al que ya tengo y este a los que ya tiene y así hasta acabar supongo).

Algo de información pls, estoy leyendo pero no se como implementar.

Podría hacer una centralizada, pero no busco eso, quiero está que es más difícil y supongo que más estable ya que no depende de un server central.

Saludos y gracias.


En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Crear red P2P descentralizada
« Respuesta #1 en: 5 Septiembre 2015, 22:16 pm »

que sea descentralizada significa que no hay servidores de datos que sirvan como nodos mayores, sin embargo, debe haber servidores trackers fijos que los clientes busquen y tengan la información de la colmena (los cientes conectados y las cosas utiles que se merezcan conocer) de resto es practicamente imposible la implementación sin trackers


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Crear red P2P descentralizada
« Respuesta #2 en: 5 Septiembre 2015, 22:31 pm »

Sumado a lo que dice engel, trata de usar UPnP por si tenes que pasar por algun routeador que tiene la posibilidad de usarlo para no tener que hacer explicitamente el port forward (redireccion de puertos, o "abrir puertos" como se dice mal, porque en realidad eso es otra cosa que es dejar pasar el trafico).

La arquitectura de un servicio P2P sencillo es tener un tracker, y varios clientes.
Los clientes conectan al tracker, piden la informacion de un archivo (por ejemplo) y a base de esa informacion solicitan pares. Luego el servidor devuelve la direccion de base dentro de la red para que te conectes directamente a ellos y, por ejemplo, transfieras archvos con DCC.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Crear red P2P descentralizada
« Respuesta #3 en: 5 Septiembre 2015, 22:44 pm »

cierto... aunque hay  una tecnica llamada "port bashing" o algo similar, que es que el tracker le avisa a ambos clientes que deben comunicarse entre ellos y los puertos a usar, ambos empiezan a enviarse mensajes por la ruta indicada, haciendo que el NAT haga el forwarding y enrutando todo correctamente
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Crear red P2P descentralizada
« Respuesta #4 en: 5 Septiembre 2015, 22:54 pm »

El NAT automatizado funciona con UPnP en plataformas Windows :P

Es la forma de decirle al router "che, todo lo que te llegue en el puerto 8976 no lo tires porque es para mi" sino el routueador ve que tiene su IP pero el mismo no tiene ese puerto en estado de escucha y descarta los paquetes..

Lo que se hace es port knocking de ultima, pero eso requiere que haya una configuracion previa de ese puerto, lo que no hace falta es que el mismo sea conocido.. Digamos que es como hacer banner grabbing para saber que es lo que eesta del otro lado..
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Crear red P2P descentralizada
« Respuesta #5 en: 6 Septiembre 2015, 00:48 am »

Hola compañeros, muchas gracias por las respuestas.

Entonces lo que buscaba era un "tracker", entiendo. Pero eso ¿no sería una red P2P centralizada? Mmmm nos estamos conectando a un servidor para obtener información de los hosts. Si cae el servidor adiós red.

Mi idea de implementación en base a mis conocimientos, sería crear un servidor, o usar un servidor web gratuito, donde los clientes hagan HTTP request  al servidor y el servidor los vaya metiendo en una tabla, con su IP, y si pasado X tiempo no llegan datos de uno se eliminaría de la tabla. Allí mostraría los usuarios de la red en una tabla con IP y puerto. Al hacer HTTP request a la página obtendrían el listado de hosts online, con los que poder compartir información.

Incluso podría dar órdenes desde el servidor web a un cliente, y hacer que este envíe un comando a los demás, ese comando quedaría intraceable ya que pasaría de nodo a nodo.

El problema es que la página web que haría de "tracker" podría fallar, o desaparecer al ser de dominio gratuito, y si es atacada caería la red, ¿cómo podría comunicar entonces a los usuarios? ¿qué más maneras se os ocurren?.

Claro que el server solo recojería las IPs que hacen HTTP request y las mostraría, y pasaría de response las que tiene en la tabla, luego los clientes harían la red.

Me gustaría tener una mejor solución que esa XD.

Saludos.

Edito: El problema es que sería muy fácil tumbarla pues el cliente se estaría conectando todo el rato al servidor web para ver quienes están conectados, alguien que tiene el cliente abre wireshark ve el server de donde extrae la info de la red y se puede cargar fácilmente el server así como la red.

OOoo mejor, se me acaba de ocurrir que cuando entre un nuevo cliente haga post al tracker, y luego mande a los hosts un "hola estoy aqui" y estos lo añadan en la tabla sin necesidad de que tengan que estar todo el tiempo comunicandose con el server, bien.
De esta manera se comunicarían solo una vez, pero si un cliente se apaga seguiría figurando en la tabla del servidor..(pero luego al bajarse la tabla y que saltase el timeout lo descartaría), pero abría que eliminarlos del server (para eso hacer un ping cada hora aunque sea podría funcionar) a ver a ver...  :rolleyes: :rolleyes:
« Última modificación: 6 Septiembre 2015, 01:13 am por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Crear red P2P descentralizada
« Respuesta #6 en: 6 Septiembre 2015, 02:07 am »

a tu pregunta

Entonces lo que buscaba era un "tracker", entiendo. Pero eso ¿no sería una red P2P centralizada?


ya respondí
que sea descentralizada significa que no hay servidores de datos que sirvan como nodos mayores

si crees que enviandose entre pcs el mensaje no es rastreable es un chiste XD entre más pc encadenen el mensaje, más agarrarán por vez si la posicía se involucra...

y si... que sea un tracker fijo la hace vulnerable... esa es una de las vulnerabilidades del p2p, por eso todo nodo puede hacer de tracker...

si te fijas un magnet link de torrent (p2p descentralizado)

Código:
magnet:?xt=urn:btih:70569d196dafccbebf9b9f72d6ae609f19d51496&dn=Tyrant+S02E12+2015+HDTV+x264+-+AFG&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969

el formato es
Código:
magnet:?xt=hash_identificador&dn=nombre+del+torrent&tr=tracker1&tr=tracker2&tr=trackerN
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Crear red P2P descentralizada
« Respuesta #7 en: 6 Septiembre 2015, 12:04 pm »

Ahh vale, ahora entiendo bien. Podría hacer algo "persistente" creando varios servidores web HTTP y poniendo su IP en el cliente, de esta manera si falla uno saltarían al siguiente, y desde el siguiente que pueda mandar una orden o que lo haga desde un cliente (con una firma) diciendo que añadan un nuevo dominio de web que he creado y que eliminen el anterior.

Pero ayer estuve leyendo acerca del troyano más sofisticado actualmente el "Gameover Zeus" o "zbot", y si no puede conectarse a la red por medio del tracker creaba un dominio en función del día y la hora, para que se conectaran a él me pareció entender.

También, para no perder conexión con el tracker en caso de que el tracker principal cayera, el programa hacía peticiones HTTP a dominios random con terminaciones .com, .biz, .net ... con una palabra clave como "gameover-zeus-dga.com" etc.

Citar
P2P layer peer communication entries – tagged “gameover-zeus-peer“
HTTP proxy layer connections – tagged “gameover-zeus-proxy“
Fallback DGA requests (to 1000 random domains per week in the .biz, .com, .info, .net, .org and .ru TLDs) – tagged “gameover-zeus-dga“

De esta manera si cae todos los trackers el cliente mandará peticiones a dominios aleatorios y cuando el controlador de la red cree ese dominio, habrá podido reconectar toda la botnet y controlar los bots. Es bastante fino.

LEEAN: http://blog.shadowserver.org/2014/06/08/gameover-zeus-cryptolocker/

Muy interesante, así se comunica el troyano más potente del mundo.
Y con esto ya creo que puedo partir a hacer pequeños programillas.

Saludos y gracias.

Edito: Aunque si pongamos que "la policia" tomará el control del primer tracker, y se apoderara de ese dominio, ¿como reconectaríamos?, yo creo que aunque haya conexión con el tracker principal, habría que mandar peticiones a los demás servidores frecuentemente, o mejor aún a servidores que se generen aleatoriamente, y que solo el autor sepa cuales son.

Así pues podríamos tener un programa que genere en orden 1000 dominios distintos, solo el creador sabría que dominios generaría y cuando cree uno reconectaría la botnet, a pesar de tener conexión con el tracker principal, debería de hacerlo por si nos quieren robar la botnet que no puedan, ya que cada cierto tiempo se conectaría a uno de estos 1000 dominios. Bastante fino la verdad.

Edito:
Citar
que sea descentralizada significa que no hay servidores de datos que sirvan como nodos mayores

Okey se me debió de pasar engelx, gracias por la respuesta. Ya no tengo dudas.

Muuucho tiempo, laaargo proyecto.

Edito: Podria generar 1000 cadenas usando una semilla única en todos los clientes obtendría los mismos dominios, ya solo sería que lanzaran peticiones a ellos y si alguno responde con la adecuada respuesta, se reconectaría la red. Muchas cosas.
« Última modificación: 6 Septiembre 2015, 12:37 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
crear crear menu de cds y intros
Multimedia
Gokuman 3 2,938 Último mensaje 14 Junio 2005, 14:16 pm
por Songoku
Crear Instalacion [Crear enlace ODBC desde Visual]
Programación Visual Basic
{_The_Alwar_} 2 7,123 Último mensaje 15 Julio 2005, 00:15 am
por {_The_Alwar_}
Crear nueva entrada en menú contextual de CREAR ARCHIVO TXT « 1 2 3 »
Windows
Esgrimidor 25 20,968 Último mensaje 30 Junio 2012, 08:26 am
por Eleкtro
crear archivo .bat para crear clave HKLM
Hacking
kitara94 3 3,542 Último mensaje 29 Agosto 2015, 18:14 pm
por kitara94
Montar P2P descentralizada « 1 2 »
Programación C/C++
Kaxperday 10 3,859 Último mensaje 17 Diciembre 2015, 01:38 am
por Kaxperday
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines