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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
31  Programación / PHP / ¿Cómo mantener una sesión en PHP? en: 20 Marzo 2016, 04:18 am
Buenas noches caballeros, resulta que tengo un servidor PHP y quiero tener usuarios que sean capaces de registrarse e iniciar sesión, para mantener la sesión de cada uno.

El problema es que no se como funciona lo de las cookies para mantener sesión, lo que quiero es iniciar sesión con un cliente y que pasado un rato caduque la cookie restringiendo de nuevo el acceso.
Y que nadie sea capaz de acceder a ese contenido más que el cliente que tenga esas cookies.

¿que debería de hacer en PHP para hacer esto posible?.

Código, ¿cómo sería?, y ¿qué es lo más recomendable?.

Como adicional, dejo caer cual es la mejor manera de guardar los logins de los usuarios registrados Y saber si hay formas de detectar archivos en una página que tiene index vacío, me refiero a que si por ejemplo tengo un index.html vacio y en ese directorio tengo un archivo llamado 1091y30r9u9efum92uf901u90r1un3r.nada si ese archivo podría ser detectado por alguna técnica por un atacante o el atacante para encontrarlo tendría que ir metiendo random urls hasta encontrarlo.

Un saludo y mcuhas gracias socios.
32  Programación / Programación C/C++ / Enviar archivo con HTTP POST a servidor PHP. en: 11 Marzo 2016, 13:27 pm
Hola, a todos llevo muchos días sin estar al tanto del foro, pero he vuelto a programar un poco, y he tenido un problema para enviar un archivo con HTTP POST, os dejo el código del cliente C++ y del servidor PHP.

Hay otros métodos como PUT pero no me interesan. Quiero enviarlo por POST que funciona para todo tipo de archivos. La idea es que al subirlo envio 2 variables, una con el nombre del archivo y su extensión y otra con el contenido del archivo en binario. Quizás pueda tener que ver con el fallo.

Ojo, solo quiero subir todos los bytes del archivo y su nombre en 2 variables (nombre y contenido), y con el script PHP guardarlo. La idea sería poner cifrado a los bytes del archivo y desencriptarlo en el PHP, pero eso ya más adelante. Pero por eso necesito enviar el archivo en una variable como un array de bytes.

Código
  1. //_path C:\\Users\\User\\Desktop\\bicieta.jpg
  2. bool tracker::send_file(std::string _path)
  3. {
  4. WSADATA wsa;
  5. SOCKET sock;
  6. sockaddr_in addr;
  7. std::string data;
  8. std::string peticion;
  9.  
  10. WSAStartup(MAKEWORD(2, 0), &wsa);
  11.  
  12. if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == SOCKET_ERROR){
  13. WSACleanup();
  14. return CODIGO::ERR_RED;
  15. }
  16.  
  17. memset(&addr, 0, sizeof(addr));
  18. addr.sin_family = AF_INET;
  19. addr.sin_port = htons(IPPORT_HTTP);
  20. addr.sin_addr.s_addr = inet_addr("71.60.170.21");//ip
  21. domain = "web.com";//quitar
  22. std::ifstream filer(_path, std::ifstream::ate | std::ifstream::binary);
  23. int size = filer.tellg();
  24. char* buffer = new char[size];
  25. filer.seekg(0, std::ios::beg);
  26. filer.read(buffer, size);
  27. filer.close();
  28.  
  29. char aux[8];
  30. int len;
  31. data = "n=" + _path.substr(_path.find_last_of('\\') + 1) + "&c=";
  32. len = data.size();
  33. data += std::string(buffer, size);
  34. len = len + size;
  35. _itoa(len, aux, 10);
  36.  
  37. peticion += "POST /catcher.php HTTP/1.1\r\n";
  38. peticion += "Host: " + domain + "\r\n";
  39. //peticion += "Cookie: " + cookie + "\r\n";
  40. peticion += "Content-type: application/octet-stream\r\n";//multipart/form-data también he probado..
  41. peticion += "Content-length: " + std::string(aux);// data.length();
  42. peticion += "\r\n\r\n";
  43. peticion += data;
  44.  
  45. if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR){
  46. closesocket(sock);
  47. WSACleanup();
  48. return CODIGO::ERR_RED;
  49. }
  50.  
  51. if (send(sock, peticion.c_str(), peticion.length(), 0) == SOCKET_ERROR){
  52. closesocket(sock);
  53. WSACleanup();
  54. return CODIGO::ERR_RED;
  55. }
  56.  
  57. char respuesta[1024];
  58. memset(respuesta, 0, sizeof(respuesta));
  59. if (recv(sock, respuesta, 1024, 0) == SOCKET_ERROR){
  60. closesocket(sock);
  61. WSACleanup();
  62. return CODIGO::ERR_RED;
  63. }
  64.  
  65. return CODIGO::CORRECTO;
  66. }
  67.  

Código
  1. <?
  2. $name = htmlspecialchars($_POST["n"]);
  3. $content = htmlspecialchars($_POST["c"]);
  4. file_put_contents($name, $content);
  5. ?>
  6.  

Bueno el cliente funciona sin problemas, sin embargo el php me dice que la variable "c" esta vacía. "empty". Luego la función salta error, pero no entiendo porque cuando le estoy enviando el contenido a la variable "c".

Edito: Y sí el código no es de lo mejorcito estoy de pruebas xd, hay chapuzillas y faltan cosas para que quede la función como tal.

Un saludo y gracias.

Edito: Bueno lo acabo de enviar como application/octet-stream y me daba error de que el filename estaba vacio que no se porque, de todas maneras lo elimine y dije que el server pusiera el nombre y solo mandar el contenido de la imagen, y se ha subido con éxito solo que al ver la imagen me dice que hay error y no me deja verla :""D.. bueno quizas no lo habra porque tiene 0 bytes.. por lo mismo que me daba error de que el nombre estaba vacio, la variable del contenido también esta vacia, quizás sea por el htmlgetspecialchars.

Lo suyo sería hacerlo con el boundary.. pero no entiendo porque de esta manera no deja. Solo quiero mandar los bytes en una variable cifrados y que al llegar los desencripte y los meta en un archivo.

Bueno continuando un poco la mejor manera creo que es enviandolo con el application/x-www-form-urlencoded, recibe la variable del nombre correctamente y el contenido a medias 1,900kb cuando el archivo es de 80kb, así que luego al abrir la foto me dice que no la puede mostrar. Creo que es el htmlgetspecialchars que lo corta al encontrar un caracter o algo porque los 80kb se mandan por wireshark. Sin el specialshars se corta en el 1,6kb XD.

Habrá un caracter nulo que corte el array o algo :).

Seguramente haya que usar octet-stream pero en el PHP me aparecen nulas cuando las mando con ese formato.
33  Sistemas Operativos / Windows / NDIS driver en windows 10 - ARP spoofing windows en: 27 Febrero 2016, 15:47 pm
Buenos días a todos, siento que ya no me conecte mucho al foro pero bueno como ya sabéis esto va por rachas.

Como algunos sabréis estaba haciendo un sniffer para windows 10 y anteriores versiones. Anteriormente el sniffer funcionaba bien y era capaz de realizar ARP spoofing, interceptar paquetes y modificarlos que ahí era por donde me quede la última vez que me funcionó.

Para hacer el ARP spoofing necesitaba usar un driver NPF para poder inyectar los paquetes ARP spoofeados donde mando un ARP response con mi MAC asociandola a la IP del router como sabréis. Lo que ocurre es que los paquetes ARP donde asocio mi MAC la IP del router son bloqueados en drivers de nivel más bajo que el NPF (Intermediate drivers, NDIS...) y no salen a la red, aunque el wireshark del atacante los capture.

Os dejo un link donde viene muy bien explicado:
https://www.winpcap.org/docs/docs_412/html/group__NPF.html

NPF funciona correctamente y manda el paquete a la NIC correspondiente sin error luego el problema es lo que ocurre más allá de usar el protocol driver, el paquete una vez enviado a la NIC pasa por drivers intermedios hasta salir y es allí donde uno filtro lo capa impidiendo el ARP spoofing en windows 10 y probablemente en 8 también. Lo que necesito saber es cual es el driver que filtra ese paquete en última instancia para de alguna manera suplantarlo por una versión de driver anterior al mismo.

En windows 10 (principal SO) las versiones de NDIS que tengo son: VirtualBox Host-Only Network 6.0, Wi-Fi 6.50, Ethernet 6.30. En windows 7 (VirtualBox): No pude comprobarlos por un error de la PS. En windows 10 (VirtualBox): Ethernet 6.0. Quizás las versiones NDIS anteriores no tengan implementado el filtro.

Todas las máquinas virtuales usan adaptador puente de red y cuando utilizo mi programa de ARP spoofing es capaz de spoofear las máquinas virtuales y las máquinas virtuales spoofean el SO principal, pero no son capaces de spoofear paquetes de fuera de la red.

El caso es que con máquinas virtuales no puedo comprobar si funciona en otras versiones de windows porque como driver de última instancia usan el de windows 10 al ser máquinas virtuales, así que es perder el tiempo, necesitaría probar con los SOs instalados en la BIOS directamente.
Si alguien hiciera una prueba de si le funciona en su windows el ARP spoofing le estaría agradecido y que me diera información de los drivers de red que usa.

El caso es que con máquinas virtuales no puedo comprobar si funciona en otras versiones de windows porque como driver de última instancia usan el de windows 10 al ser máquinas virtuales, así que es perder el tiempo, necesitaría probar con los SOs instalados en la BIOS directamente.

Drivers NDIS windows 10: ndis.sys, ndisuio.sys, ndisimplatform.sys, ndisvirtualbus.sys, ndiscap.sys, ndistapi.sys, ndiswan.sys. Tanto en el primario como en el de la máquina virtual.

Drivers NDIS windows 7: ndis.sys, ndisuio.sys, ndistapi.sys, ndiswan.sys, ndiscap.sys.

Vemos que se han añadido al menos 2 drivers intermedios: ndisimplatform.sys(Network Adapter Multiplexor Protocol service), ndisvirtualbus.sys (Virtual Network Adapter Enumerator service).

Creo que en windows 7 si que funcionaría (al menos con las primeras versiones de sus drivers al igual con windows 10 ya que antes me funcionaba hasta que modifico sus drivers de red), si ese fuera el caso, supongo que tendría que hacer algo como reinstalar los drivers afectados de windows 7 en windows 10... como nunca he tratado con drivers no sabría como hacerlo pero seguro habrá alguna manera como desinstalar el driver que bloquea los paquetes una vez detectado o bypassear su filtro ARP.

Continuará...

https://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwib5dj-_5rLAhXC0hoKHZ7zC7QQFgggMAA&url=http%3A%2F%2Fwww.ipcsit.com%2Fvol29%2F004-ICSST2012-S013.pdf&usg=AFQjCNEd2xNu_jS1FBga6oMv2pSw41tYdg

Saludos.

34  Programación / .NET (C#, VB.NET, ASP) / Regex.Matches() error de uso C# en: 21 Febrero 2016, 18:22 pm
Hola,

Código
  1. Regex r = new Regex("<div class=\"logo\">.*<a href=\".*\"");
  2.  
  3.                foreach (Match m in r.Matches(responseData))
  4.                {
  5.                    MessageBox.Show(m.Value);
  6.                }
  7.  

No encuentra coincidencias (matches), sin embargo hay varias. ¿que le falla a la expresión?.

Le digo que empiece en <div class=\"logo\"> que continue independientemente de lo que haya hasta llegar a <a href=\" y que siga hasta llegar a la siguiente doble comilla.

HTML de la página:

Código
  1. div class="logo">
  2.                                <a href="/randomlink/here/"
  3.  

No entra siquiera en el bucle, 0 matches found.

Saludos, gracias.

35  Programación / Ingeniería Inversa / Error ollydbg: "Low memory" en: 21 Enero 2016, 13:56 pm
Bueno, resulta que quería empezar a aprender algo de ingeniería inversa y me ví un vídeo de hackingmexico de youtube jajaja, y bueno en concreto el vídeo es este:

https://www.youtube.com/watch?v=DBLG86ubU4U

Que crackea el software de "malwarebytes" en unos sencillos pasos que interesan mucho a novatos como yo.

El caso que me crecí y dije voy a abrir firefox para ver como hace a la hora de mostrar las contraseñas guardadas, a que funciones llama, que librerías carga y demás para tener idea de que necesito para intentar hacer el password recovery.

El caso, lo cargo en olly, lo ejecuto, voy a firefox y abro opciones -> seguridad -> contraseñas guardadas, y allí lo detengo (pause) para luego ver el "callstack", se queda cargando y me salta un error de que no puede cargar tanta memoria.

¿Cómo puedo evitar este error?.

Saludos y gracias.

Edito: Hehehe, también puedes descargar passwordfox.exe y ver como lo hace, aunque eso sería ya depender de programas terceros XD.

Edito: Por cierto aparte de lo del error, ¿qué necesitaría para poder hacer un password recovery para cualquier buscador?, ¿necesitaría saber los módulos que carga no? (es decir las dll que usa), y ¿después?, ¿como se los archivos de cabecera que usa para llamar a las funciones de las dll?

Si no los tengo, ¿como se haría?, miraría las llamadas a las funciones en el ejecutable, luego obtendría el tipo de los parámetros, y con esa info me crearía un ".h" con el nombre de la función y sus parámetros, y luego solo sería añadirlo al programa y cargar las librerías que utilizan esas funciones, ¿no?, ¿O no tiene nada que ver?.

Me pregunto si con el ollydbg se puede mirar a que módulo pertenece una función que se llama en la rutina, ¿se puede hacer? XD.

Muchas preguntas lo se srry.

36  Foros Generales / Foro Libre / ¿Cómo se llama la canción del final? en: 20 Enero 2016, 23:43 pm
Pues eso, os estaría muy agradecidos ;)



Saludos!.
37  Programación / Programación C/C++ / Programar programa incerrable C++ en: 20 Enero 2016, 21:41 pm
Hola, resulta que después de leer un hilo del foro me ha entrado curiosidad por crear un programa que no se pueda cerrar, que de el conocido mensaje de alerta que tienen algunos procesos del administrador de tareas cuando los tratamos de cerrar. "La operación no se pudo completar, acceso denegado".

Bueno, he estado buscando y leyendo y parece que tiene que ver sobre ponerlo como crítico o algo así ya os digo que lo acabo de buscar, el caso encontré un código que me funcionó después de algunas desgracias con otros que no funcionaron:

http://www.codeproject.com/Articles/43405/Protecting-Your-Process-with-RtlSetProcessIsCriti

Lo he ejecutado y funciona eso si, necesita permisos de administrador para ponerse como proceso crítico, pero a pesar de eso estoy frustrado, porque no muestra lo de "La operación no se pudo completar, acceso denegado", sino que muestra "¿desea finalizar programa.exe?, si lo finaliza windows podrá quedar inutilizable o apagarse, y perderá los datos que no haya guardado. ¿está seguro de que desea continuar".

Es decir te acojona, pero te abre la opción de cerrarlo. En otros procesos que usan estos métodos como smss.exe, csrss.exe, o services.exe te sale directamente el mensaje de error sin opción a cerrarlo.

¿Cómo lograr los mismos resultados?.

Saludos.

Edito: Esto lo probé y no funcionó, obtuve error, pero sin embargo la idea es la misma.

http://web-athentication.googlecode.com/svn/trunk/MalwareCode/RtlSetProcessIsCritical/RtlSetProcessIsCritical.cpp
38  Sistemas Operativos / Windows / Windows 10 NDIS me bloquea paquetes de ARP spoofing en: 20 Enero 2016, 11:34 am
Bueno, pues ha pasado esta última semana. Resulta que todo funcionaba bien excepto el ARP poisoning. Utilizo C++ y winpcap para hacer el spoofing, todo estaba bien, todo era correcto y era la misma red. Abría wireshark y no detectaba errores, era todo correcto como las otras veces. Al ver que no me funcionaba el programa probé con mis propios backups que si funcionaban anteriormente sin éxito tampoco. Entonces me descargué programas que hacían ARP spoofing (mejor dicho ya los tenía descargados), me refiero al nighthawk que es de código abierto y en numerosas ocasiones lo he probado con éxito, pero esta vez no funcionaba.

No era posible los paquetes estaban bien, la misma red, siempre me habían funcionado... algo pasaba pero creo que no tenía que ver ni con los programas ni con winpcap ni nada.
Entonces instalé wireshark en una víctima para comprobar que le llegaban mis paquetes ARP poisonning, y SORPRESA no le llegaban, pero todos los demás paquetes si llegaban como preguntas de broadcast etc, solo no llegaban los ARP response falsos.

En mi wireshark diciendo que los estaba mandando, en mi programa diciendo que los estaba mandando, pero sin embargo a las víctima no le llegaban. Creo que puede ser debido a una actualización de un driver de windows que detecta si el ARP es falso o no.

El caso una putada, porque siempre me ha funcionado esto y parece que windows lo ha capado o el antivirus, que de alguna manera detecta los paquetes falsos y no los envía.

Saludos.

Edito: Bueno aunque si de verdad lo han capado, no hay problema pasaré al MITM con DHCP u otros métodos, no me pararán XD.

Os invito a probar nighthawk y comentarme si os funciona para win10, podréis encontrarlo por github.
39  Comunicaciones / Redes / Winpcap mitm&proxy vs Sockets mitm&proxy en: 17 Enero 2016, 17:02 pm
Buenas, como algunos sabréis estoy tratando de implementar un MITM con SSLStrip, bueno empezar con winpcap fue fácil, era un proyecto que al principio no aspiraba a ser más que un sniffer.

Pero me he dado cuenta que winpcap se queda bastante corto, necesitamos sockets. Con winpcap puedes hacer fácilmente un escaneo de red, hacer un arp spoofing (mandar paquetes y esperar respuestas a nuestros paquetes), incluso hacer ip fordwarding modificando unos campos y reenviando al router el paquete y del router al host. Todo eso lo tengo hecho, bien.

Pero, ¿y cuando se necesita mantenimiento de la conexión?, es decir, cuando le enviamos paquetes que pueden o no llegar, ¿como hacemos el control de errores?, ¿metemos un filtro en todos los paquetes que nos diga si se ha recibido el ACK o no?..

He mirado otros programas que hacen ataques de red, como intercepter-ng, usa winpcap. He mirado si abre puertos y actua como servidor puedinedo conectar los sockets de las victimas, y no abre puertos si no me confundí.

Hacer IP fordwarding con winpcap no tiene complicacion y es eficiente, pero al hacerlo solo reenvias paquetes no hay control de los mismos, el control lo lleva la victima y el server, pero si queremos hacer ataques de red tenemos que modificar paquetes, suplantar descargas etc, y ahí el control lo llevamos nosotros de los paquetes, debemos de hacer lo mismo que el servidor, ¿pero como hacerlo sin sockets?.

Me vendrían bien unos consejos e ideas. Tengo 2 opciones ahora solo, una hacer todo con winpcap que va a quemar el ordenador, pues estaría llamando a  pcap_next_ex todo el rato en muchas funciones y pcap_sendpacket()... todas estas funciones con un parametro en común (pcap_t*).
Puede funcionar, pero debería de estar muy bien programado y no sé ni si aún así sería viable.

Otra opción sería abrir un puerto en el firewall (80, 21..) se conectarían las victimas a el pensando que es del router y comenzarían el protocolo, aceptaría conexiones y mandaría sus paquetes yo actuando por cada uno de ellos, me lo descargaría todo y se lo enviaría después.

¿alguna opción más?. ¿ideas?.

Saludos y gracias.

Edito: Ahora estoy tratando de suplantar un archivo con winpcap. Cuando una victima solicite descargar un archivo con GET o POST lo detecto y trato de suplantarlo, Y ES DE LOCOS, formando los paquetes campo a campo, byte a byte.
Tengo que formar todo el paquete TCP de pies a cabeza, actuar como el servidor del archivo, pasando por todas las capas, checksums, numeros de secuencia, acks... solo por esto me pasaba a sockets, pero puede merecer la pena intentarlo, quizás los resultados sean mejores de lo esperado.
40  Programación / Programación C/C++ / Librería chilkat para C++ en: 16 Enero 2016, 18:46 pm
Bueno la acabo de encontrar y parece que tiene cosas bastante útiles:

https://www.chilkatsoft.com/downloads.asp

¿Alguien la ha probado? ¿es 100% gratuita, sin trampa?, había oído hablar de CURL pero esta parece incluso mejor, me pregunto si habrá gato encerrado.

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