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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19
131  Programación / Programación C/C++ / Ayuda obtener gateway con winapi en: 18 Junio 2015, 10:12 am
Hola foreros, estoy intentando obtener la gateway que me ofrece servicio a internet con la winapi, el problema es que tras discriminar todas las interfaces de red, me quedan 2 que son la de el wifi y la de ethernet, pero la de ethernet no tiene conexión, ¿qué hacer entonces para coger la correcta?, también puede darse el caso de que tenga ethernet y no wifi.

Código
  1. #include <pcap.h>
  2. #include <winsock.h>
  3. #define IPTOSBUFFERS 12
  4. bool escaner();
  5. bool seleccionar_interfaz(pcap_if_t *interfaz);
  6. char* ip_string(u_long in);
  7. bool escaner()
  8. {
  9. pcap_if_t * adaptadores_lista;
  10. pcap_if_t * adaptador;
  11. pcap_t * capturador = nullptr;
  12.  
  13. if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &adaptadores_lista, NULL) == -1)
  14. return NULL;
  15.  
  16. if (adaptadores_lista == NULL)
  17. return NULL;
  18.  
  19. for (adaptador = adaptadores_lista; adaptador != NULL; adaptador = adaptador->next)
  20. {
  21. if (seleccionar_interfaz(adaptador) == true)
  22. break;
  23. }
  24.  
  25. sniffer(adaptador->name,capturador);
  26. pcap_freealldevs(adaptadores_lista);
  27. }
  28.  
  29. bool seleccionar_interfaz(pcap_if_t *interfaz)
  30. {
  31. pcap_addr_t *a;
  32.  
  33. for (a = interfaz->addresses; a; a = a->next)
  34. {//Está la wifi y ethernet. Coje la primera por defecto; Wi-Fi
  35. if (a->addr->sa_family == AF_INET)
  36. if (strcmp(ip_string(((struct sockaddr_in *)a->addr)->sin_addr.s_addr), "0.0.0.0") != 0)
  37. return true;
  38. }
  39. return false;
  40. }
  41.  
  42. char* ip_string(u_long in)
  43. {
  44. static char output[IPTOSBUFFERS][3 * 4 + 3 + 1];
  45. static short which;
  46. u_char *p;
  47.  
  48. p = (u_char *)&in;
  49. which = (which + 1 == IPTOSBUFFERS ? 0 : which + 1);
  50. _snprintf_s(output[which], sizeof(output[which]), sizeof(output[which]), "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
  51. return output[which];
  52. }

Una solución sería abrirlas en orden y comprobar que existe tráfico en ellas y coger la que tenga tráfico. Pero tampoco me convence, ¿tenéis algo seguro para obtener la ip de la gateway en funcionamiento?

Saludos.
132  Programación / .NET (C#, VB.NET, ASP) / Creando un bot para adfly en: 15 Junio 2015, 20:02 pm
Bueno pues estoy en ello, seguramente se pueda hacer con una buena lista de servidores proxy, que el programa podría actualizar directamente con webscraping de páginas como esta.

Y luego lanzar peticiones http a las direcciones de adfly a traves de los servidores proxy:

190.37.199.133:8080 (direccion ip y puerto de servidor proxy de venezuela)

Que trataríamos de conectar con esto:

Código
  1. HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
  2. WebProxy myproxy = new WebProxy("[your proxy address]", [your proxy port number]);
  3. myproxy.BypassProxyOnLocal = false;
  4. request.Proxy = myproxy;
  5. request.Method = "GET";
  6. HttpWebResponse response = (HttpWebResponse) request.GetResponse();

Ahora el truco sería simplemente, visitar los links al azar. Y usar cada vez un servidor proxy distinto, no hay problema pues actualizan cada minuto según dice la página XP, pero también podemos usar cualquier otra.

Aqui podéis descargar lo que acabo de hacer, básicamente hice la interfaz gráfica, e implemente el botón de actualizar y su función correspondiente que debería obtener la respuesta del servidor, un html.

Toda ayuda es bienvenida, si queréis colaborar podéis hacerlo por aquí o mandarme un privado, esto no es nada comparado con lo que se puede hacer.

Edito: El codigo tiene un error en req.host, es igualado a esto "proxy-list.org".
Ya lo he subido modificado XD.

Saludos.
133  Programación / Ingeniería Inversa / Ingenieria inversa en c++ en: 9 Junio 2015, 18:03 pm
Hola no se si me podrán decir algun programa que decompile un ejecutable en cpp. Como por ejemplo hace el .NET reflector para C#. Es decir obtener del ejecutable el código directamente a ser posible. Saludos
134  Programación / .NET (C#, VB.NET, ASP) / Programa persistente en C# en: 30 Mayo 2015, 18:33 pm
Hola he visto que hay troyanos que al cerrarlos se vuelven a ejecutar pasado un tiempo, ¿como es eso posible?, ¿cómo puedo implementarlo?

¿Será otra aplicación que lo ejecuta no? ¿2 programas en uno entonces?

Saludos.
135  Programación / Programación General / Hacer programa que conecta a servidor TOR en: 30 Mayo 2015, 17:15 pm
Hola, estoy pensando en como hacer un programa que corra en windows y sea capaz de conectarse a los servidores .onion, quizás alguna librería o algo para hacerlo de TOR vendría bien, programo en C#.

Toda ayuda es bien recibida, leí que era necesario intalar TOR y ejecutar tor.exe y luego capturarlo de alguna manera pero preferiría no intalar TOR, y encontrar alguna manera de ejecutar sus proxies con la app, o crear una DLL compilando TOR y luego llevarla a C#, ¿alguna idea?

Saludos.
136  Programación / Desarrollo Web / ¿como se aloja un dominio en la red y en la deep web? en: 27 Mayo 2015, 16:23 pm
Imaginemos que monto un servidor linux debian. El DNS asigna una IP a el dominio, pero al usar TOR la IP varía constantemente, si uso mi portatil para montar el server y me muevo ya cambiaría la IP, ¿como se puede producir el enlace entonces?

Los servidores normales (no los de TOR me refiero) ¿como lo hacen?, contratan un dominio en plan "www.olakase.com" y luego a ese dominio lo asignan una IP en el mismo sitio que lo contratan, si esa IP cambia ya no funcionaría, entonces ¿como lo podemos hacer funcionar sin servidores dedicados?

Es decir lo que busco es montar el servidor en 2 clicks y hacerlo funcionar con mi portátil desde donde sea, solo quiero hacerlo correr donde sea y que al momento la gente al buscar mi dominio le cargue mi página, si no lo hago correr pues no le carga nada.

Saludos y gracias.
137  Sistemas Operativos / Windows / ¿Que necesito para instalar app y que no vuelva a pedir permisos de aplicacion? en: 21 Mayo 2015, 01:31 am
Pues eso, quiero instalar un programa que necesita elevacion UAC y no se como ponerlo.

Pues le pongo requireAdministrator, y lo anclo al registro, pero luego no funciona y sigue con los permisos de administrador, ¿que hago entonces?.

Ayuda please.
138  Programación / .NET (C#, VB.NET, ASP) / Homologo a EthernetPacket para WiFi en C# en: 20 Mayo 2015, 20:31 pm
Hola a todos, quiero mandar un ARPPacket a través de un tipo de paquete para wifi (que es la clase que estoy buscando, para eth0 es EthernetPacket), quiero encontrar su homologo para wifi, ya se usar SendARP y no es lo que busco, saludos.

Si mi red fuera de tipo ethernet sería así:

Código
  1. ARPPacket arp = new ARPPacket(ARPOperation.Response, dstMac, dstIP, srcMac, srcIP);
  2.            EthernetPacket eth = new EthernetPacket(srcMac, dstMac, EthernetPacketType.Arp);
  3.            arp.PayloadData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  4.            eth.PayloadPacket = arp;
  5.            device.SendPacket(eth);

Pero si trabajo con WiFi no funciona, ¿como sería entonces?.

DETALLES: A ver aqui he conseguido listar las clases de PacketDotNet la libreria que estoy usando.

¿Alguien sabe porque EthernetPacket tiene srcmac, dstmac y  tipopaquete?

¿Y la del Wifi supuestamente "Ieee8021QPacket" en teoria la del wifi tiene solo un argumento que no es ninguno de los 3? ¿no debería de tener los mismos?

Tengo un cacao, pero poco a poco me ire aclarando.

Edito: Me pregunto si esto funcionaria:

Código
  1. ARPPacket arp = new ARPPacket(ARPOperation.Response, dstMac, dstIP, srcMac, srcIP);
  2.            arp.PayloadData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  3.            device.SendPacket(arp);


Edito: He probado ambos enviando a mi movil paquetes ARP y ninguno funciona, lo que busco es hacer arp spoofing y seguramente falte algo mas. Puede que SendARP tenga la magia.

leyendo, a ver si consigo implementarlo en C#.

Saludos Benignos.
139  Programación / .NET (C#, VB.NET, ASP) / Problema obtener MAC asignadas a IP C# en: 20 Mayo 2015, 18:22 pm
La funcion muestra las IPs conectadas de un servicio o una interfaz (como por ejemplo la que estas conectado que puede ser WIFI) y su MAC correspondiente.

Mostraría las IPs de los usuarios conectados a la red y su correspondiente MAC, pero al obtener la MAC da error.

Código
  1. foreach (LibPcapLiveDevice dev in LibPcapLiveDeviceList.Instance)
  2.            {
  3.                for (int i = 0; i < dev.Addresses.Count; i++)
  4.                {
  5.                    var ip = dev.Addresses[i].Addr.ipAddress;
  6.  
  7.                    if (ip == null)
  8.                        continue;
  9.  
  10.                    Console.WriteLine(ip.ToString());
  11.                    Console.WriteLine(dev.Addresses[i].Addr.hardwareAddress.ToString());
  12.                }

El problema lo obtengo en la ultima linea, pues dev.Addresses.Addr.hardwareAddress que es de tipo PhysicalAddress es nulo, mientras que la IP la obtiene sin problemas.

Saludos.
140  Programación / .NET (C#, VB.NET, ASP) / Convertir IntPtr que apunta a sockaddr en sockaddr en: 18 Mayo 2015, 18:30 pm
Hola a todos no encuentro la manera de traducir este código en C++ a C#:

Código
  1. /* Print all the available information on the given interface */
  2. void ifprint(pcap_if_t *d)
  3. {
  4.  pcap_addr_t *a;
  5.  char ip6str[128];
  6.  
  7.  /* Name */
  8.  printf("%s\n",d->name);
  9.  
  10.  /* Description */
  11.  if (d->description)
  12.    printf("\tDescription: %s\n",d->description);
  13.  
  14.  /* Loopback Address*/
  15.  printf("\tLoopback: %s\n",(d->flags & PCAP_IF_LOOPBACK)?"yes":"no");
  16.  
  17.  /* IP addresses */
  18.  for(a=d->addresses;a;a=a->next) {
  19.    printf("\tAddress Family: #%d\n",a->addr->sa_family);
  20.  
  21.    switch(a->addr->sa_family)
  22.    {
  23.      case AF_INET:
  24.        printf("\tAddress Family Name: AF_INET\n");
  25.        if (a->addr)
  26.          printf("\tAddress: %s\n",iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr));
  27.        if (a->netmask)
  28.          printf("\tNetmask: %s\n",iptos(((struct sockaddr_in *)a->netmask)->sin_addr.s_addr));
  29.        if (a->broadaddr)
  30.          printf("\tBroadcast Address: %s\n",iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));
  31.        if (a->dstaddr)
  32.          printf("\tDestination Address: %s\n",iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));
  33.        break;
  34.  
  35.      case AF_INET6:
  36.        printf("\tAddress Family Name: AF_INET6\n");
  37.        if (a->addr)
  38.          printf("\tAddress: %s\n", ip6tos(a->addr, ip6str, sizeof(ip6str)));
  39.       break;
  40.  
  41.      default:
  42.        printf("\tAddress Family Name: Unknown\n");
  43.        break;
  44.    }
  45.  }
  46.  printf("\n");
  47. }

Lo que he conseguido traducir a C#:

Código
  1. public void GetDeviceInf(pcap_if dev)
  2.        {
  3.            String inf="";
  4.            pcap_addr addresses;
  5.            IntPtr ip6str;//char ip6str[128];
  6.            sockaddr addr;
  7.  
  8.            inf += "Nombre de la interfaz: " + dev.name + Environment.NewLine;
  9.  
  10.            if (dev.description!=null)
  11.             inf += "Descripción de la interfaz: " + dev.description + Environment.NewLine;
  12.  
  13.            //inf += "Loopback: " + dev.flags + PCAP_IF_LOOPBACK ",(d.flags & PCAP_IF_LOOPBACK)?"yes":"no");
  14.  
  15.            do
  16.            {
  17.                addresses=dev.addresses;
  18.                addr = (sockaddr)Marshal.PtrToStructure(addresses.addr, typeof(sockaddr));
  19.                inf += "ADDR.SA_DATA: " + addr.sa_data + Environment.NewLine;
  20.                inf += "Address Family:: " + addr.sa_family + Environment.NewLine;
  21.                Console.WriteLine(inf);
  22.                switch(addr.sa_family)
  23.                {
  24.                    //case AF_INET:
  25.                      //  Console.WriteLine("Address Family Name: AF_INET\n");
  26.                    /*//if (addresses)
  27.                        
  28.                         Console.WriteLine("Address: %s\n",iptos((addr.sin_addr.s_addr));
  29.                     if (addresses.netmask!=null)
  30.                         //Console.WriteLine("Netmask: %s\n",((struct sockaddr_in *)addresses.netmask).sin_addr.s_addr);
  31.                     if (addresses.broadaddr!=null)
  32.                         //Console.WriteLine("Broadcast Address: %s\n",iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));
  33.                     if (addresses.dstaddr!=null)
  34.                         Console.WriteLine("Destination Address: %s\n",iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));
  35.                     break;
  36.  
  37.                     case AF_INET6:
  38.                         Console.WriteLine("\tAddress Family Name: AF_INET6\n");
  39.                     if (a->addr)
  40.                         Console.WriteLine("\tAddress: %s\n", ip6tos(a->addr, ip6str, sizeof(ip6str)));
  41.                     break;
  42.  
  43.                     default:
  44.                     printf("\tAddress Family Name: Unknown\n");
  45.                     break;*/
  46.                }
  47.                Console.WriteLine(inf);
  48.                inf="";
  49.            }while(addresses.next!=IntPtr.Zero);
  50.        }

Addresses.addr es de tipo IntPtr y apunta a una estructura de tipo pcap_addr hasta ahí todo bien pues lo igualo sin problemas. Luego el puntero addresses.addr que es un puntero de tipo IntPtr que apunta a una estructura de tipo sockaddr trato de pasarlo a estrcutura con la siguiente linea de codigo:

Código
  1. addr = (sockaddr)Marshal.PtrToStructure(addresses.addr, typeof(sockaddr));

Y esto falla, ¿porque se produce este error?

Pues el objetivo final no es mas que sacar datos de la interfaz de red.

He leído esto y he buscado pero no consigo superarlo, ayuda y gracias de antemano.

Edito: me estoy mirando esto a ver si me lo saben resolver o al menos lo entiendo xD y funciona.

Saludos socios.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines