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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 [278] 279 280 281 282 283 284 285 286 287
2771  Foros Generales / Dudas Generales / Re: Busco un Maestro en: 18 Mayo 2019, 04:31 am
Venga discipulo fiel, a leer. Y si no sabes leer en inglés a aprender.

-Tony Buzan the speed reading book.
-Bruce Schneier applied criptography second edition
-Georgia Weidman Penetration testing A Hands-On introduction to hacking.
-Gray hat hacking the ethical hacker's hand book. Third edition.
-The offical ubuntu book seventh edition
-Robin Nixon Php mysql javascript & css second edition step by step guide
-Alexei white javascript programers referece.

2772  Foros Generales / Noticias / Re: Los hackers de WhatsApp todavía tienen acceso a millones de móviles en: 18 Mayo 2019, 02:56 am
Que cojones tienen no forzando una actualizacion automatica. Tienes que ir a la play store xD
2773  Programación / Desarrollo Web / Re: ¿Como salgo? en: 18 Mayo 2019, 02:28 am
A ver calamidad xD. Le das 200.000 vueltas a lo mismo. Te dije que te viene toda la información necesaria en el link que te pasé:

Código
  1. Step 1, Make a DNS record in your FreeDNS account.
  2.  
  3.    Make your account -> freedns.afraid.org -> Signup
  4.    Make a dns record (subdomains -> add -> save)
  5.    (You'll see your entry appear in the 'subdomains' page)
  6.  
  7.  
  8. Step 2, Router stuff
  9.  
  10. All you need is your update key from FreeDNS, so lets get that.
  11.  
  12.    Navigate to FreeDNS -> 'Dynamic DNS'.
  13.    Copy the 'Direct URL' link.
  14.  
  15. You want the 'update key', which is the part after the '?' in the URL.
  16.  
  17. Next, in your router's admin interface [Screenshot Here]:
  18.  
  19.    Navigate to : Setup tab -> DDNS subtab ...
  20.  
  21. Select 'freedns.afraid.org' in the drop down menu, then enter:
  22.  
  23.    Username: guest
  24.    Password: guest
  25.    Hostname: dns_name,update_key
  26.    (Example: zeus.afraid.org,AFFEEFFFCCDDEEEFFFCC==)
  27.  
  28. The router just ignores the username and password fields, so do not worry about those. The 'dns_name', and 'update key', and its placement after the comma are the most important thing.
  29.  
  30. Hit Save, then Apply changes. Within 30 seconds or so it will come back up, automatically do an update, then display the update log to you on the same page.
  31.  
  32. Congratulations! You're done. Thats it!
  33.  
  34. Additional Tips: If you change your password, or you delete your DNS within FreeDNS, your key WILL change, and you will have to put your new 'update key' in your router.

Esto es para que el router informe del cambio de ip. Es una opción en el caso de que tu router lo soporte. Que ya sabemos que si.





Otra opción sin tocar nada en el router es crear un subdominio, le pones el nombre que quieras, seleccionas el dominio publico al que formará parte tu subdominio (esto da un poco igual si luego vas a usar un dominio.tk, pero lo necesitas para configurar el DDNS para tener una ip estatica que de ka cara por ti en lugar de tu ip dinamica.

Si vas a usar directamente un subdominio Pincha en resgistry para seleccionar el dominio a partir dek cual crearas tu subdominio.

Despues de crear tu subdominio vas a Dynamic DNS, en esta pagina te apareceran todos los dominios que hayas creado. Copia el link con click derecho de Direct URL. Pega el link en cualquier sitio y pilla solo las letras a partir del ? Guarda esas letras en el portapapeles.

Crea un script de la siguiente manera:
sudo nano /etc/cron.d/freedns_update.sh

Pega este script dentro:

#!/bin/sh # freedns_update.sh: Update the public IP on freedns.afraid.org only if it has changed. ## Place this script in the cron's job directory /etc/cron.d and assign the proper permissions ## and owner ## sudo chmod 500 /etc/cron.d/freedns_update.sh ## sudo chown root:root /etc/cron.d/freedns_update.sh ## Add to /etc/crontab to execute on reboot and every 5 minutes ## Edit /etc/crontab and append these two lines: ## @reboot root /etc/cron.d/freedns_update.sh >/dev/null ## */5 * * * * root /etc/cron.d/freedns_update.sh >/dev/null #Use your own values DOMAIN=raspberry.liar.info.tm HASHKEY=c29Q2s1Ml9df604bba2b1359ff62MTEyMT185e7= UPDATE_URL="http://freedns.afraid.org/dynamic/update.php?${HASHKEY}" current_ip=$(wget -q --output-document - http://checkip.dyndns.org | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}') registered_ip=$(ping -qn -c 1 $DOMAIN | head -n 1 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}') if [ "${current_ip}" != "${registered_ip}" ]; then wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --output-document /dev/null $UPDATE_URL if [ $? -eq 0 ]; then echo "$(date +"%b %_d %T") $(hostname) $0: IP address updated on freedns.afraid.org: new IP '${current_ip}', old IP '${registered_ip}'" >> /var/log/messages else echo "$(date +"%b %_d %T") $(hostname) $0: ERROR IP address could not be updated on freedns.afraid.org: current IP '${current_ip}', registered IP '${registered_ip}'" >> /var/log/messages fi fi

Cambia  DOMAIN= y HASHKEY= Por tu dominio y y el hasg que te venia a partir del interrogante en Direct URL.

Dale control+o para guardar el archivo y control+X para salir del archivo abierto por Nano. Te pedira confirmación.

Escribe otra vez en la terminal:
sudo chmod 500 /etc/cron.d/freedns_update.sh
sudo chown root:root /etc/cron.d/freedns_update.sh
para darle permisos a la carpeta.

Despues abres el crontab para programar una tarea:
sudo nano /etc/crontab

En el final del archivo añades 2 nuevas lineas:
@reboot root /etc/cron.d/freedns_update.sh >/dev/null */5 * * * * root
/etc/cron.d/freedns_update.sh >/dev/null

Guardas con control +o y cierras con control+x
Por ultimo reinicia cron con el comando:
sudo /etc/init.d/cron restart
2774  Sistemas Operativos / Windows / Re: Liberador de RAM en Windows en: 17 Mayo 2019, 19:46 pm
Que bien haya resultado útil, espero compartas el mini tuto cuando lo termines amigo
https://foro.elhacker.net/gnulinux/minituto_cargar_cache_y_archivos_temporales_en_ram-t495680.0.html
2775  Programación / Programación C/C++ / Re: Consulta sobre punteros y doble punteros en: 17 Mayo 2019, 18:49 pm
Lo que almacenas en la direccion de memoria es un char, que ocupa 1byte.
No se te imprime el texto entero por arte de magia al tener la direccióm de memoria del primer char.

Digamos que tu texto es "hola" el puntero apunta a 0xff0033 en esa direccion de memoria esta la letra h
Entonces para imprimir la letra o, lo que se hace es una operación, direccion de memoria del puntero + 1byte es decir 0xff0033 + 8bits. Que vendria a ser 0xff003A. Como las cadenas de caracteres se guardan en direcciones de memoria contiguas, podemos imprimir todos los chars de la cadena con una operación sencilla. Sería algo así internamente:
Imprimir en pantalla el char dentro de la direccion de memoria a la que apunta el puntero, direccion de memoria del puntero + 8 bits, direccion de memoria del puntero + 16 bits, dirección de memoria del puntero +24 bits.
La dirección de puntero contiene h, la direccion del puntero + 8 bits contiene o, la direccion del puntero +16 bits contiene l, la dirección del pumtero + 24 bits contiene a.

Por si no te queda claro sería algo así:
Imprimir contenido de la dirección de memoria del puntero.
Imprimir contenido de la dirección de memoria +1byte del puntero
Imprimir contenido de la dirección de memoria +2bytes del puntero.
Imprimir contenido de la dirección de memoria+3bytes del puntero.

Como ves es el mismo puntero todo el rato. Con este unico puntero hacemos operaciones con la memoria a la que apunta para acceder al siguiente caracter.
El caracter está en binario, este caracter en binario se transforma en decimal. Y de decimal se transforma en letra. Busca en google tabla ascii y podras ver que valor decimal corresponde a cada letra/caracter. Ese valor al transformarse en binario ocupa los 8 bits.
Puedes incluso poner char miletra =valorDecimal; y se transformara en la letra correspondienteen la tabla ascii. Saber esto sirve para codificar en otras bases. Por ejemplo base64 que se usa mucho.
Busca en google como transformar un string a base64 y veras como tienes que transformar cada caracter en binario y una vez todos en binario se pillan los bits de 6 en 6 en vez de 8 en 8 para conseguir el string en base64.
Podrias hacer un programa que te convierta un texto a base64 para ver como funciona todo y recordarlo.

Recuerda que 1 byte es lo mismo que 8 bits. Estas operaciones podrías realizarlas tu manualmemte con un puntero apuntando al primer caracter de una cadena y sumarle los bits a la direccion de memoria para obtener todo el string con solo un puntero, no es nada complejo. Las funciones, metodos e incluso el compilador realizan muchas de estas tareas por nosotros para facilitarnos el codigo. Espero que me entendieses. Si no, pregunta.
2776  Foros Generales / Noticias / Re: MediaMarkt no respeta una oferta y amenaza con denunciar a un cliente por ... en: 17 Mayo 2019, 18:18 pm
Estos progres siempre abusando de sus derechos... Qué será lo próximo? Pedir una baja médica por un accidente? Qué asco de socialistas...
2777  Programación / Programación C/C++ / Re: Un programa con varias funciones y sin entradas en: 17 Mayo 2019, 18:03 pm
Orientate por mi funcion Potencia, si no te fias de si funciona correctamente compruebalo de la siguiente manera.
resultado = pow(base, exponente);
cout << resultado;
resultado = Potencia(base, exponente);
cout <<endl << resultado;

2778  Seguridad Informática / Hacking / Re: Como aprovecharse de que el metodo HTTP TRACE este activo en: 17 Mayo 2019, 17:39 pm
Para protegerte de la vulnerabilidad desactiva el TRACE en el servidor web. Se utiliza solo para debug y analisis.
Da igual que metas protecciones concretas contra por ejemplo XSS, denegando Active Scripts, se puede explotar con Java, Flash, vbscript, shockwave....

No te voy a indicar como explotarla sin más dandote un par de scripts, te voy a explicar como se realiza para que entiendas como funciona la vulnerabilidad, nada más.

TRACE es un metodo de peticiones. Basicamente responde a las peticiones que le hagas por el protocolo http.
Estas peticiones son enviadas a un servidor web que tenga TRACE disponible. El servidor entonces contesta a tu petición con la información que le mandes. Aquí tienes un ejemplo de una petición sencilla, fijate que el servidor me responde con la info que le mandé:

$ telnet ipdemiapache 80
Trying 127.0.0.1...
Connected to dominiodemiweb.bar
Escape character is ‘^]’.
TRACE / HTTP/1.1
Host: dominiodemiserver.bar
X-Header: holaxD
HTTP/1.1 200 OK
Date: Fri, 17 May 2019 17:15:47 GMT
Server: Apache/2.4.39 (Unix)
Content-Type: message/http
TRACE / HTTP/1.1
Host: dominiodemiserver.bar
X-Header: holaxD

Si la opción httponly está activa, no se permite insertar scripts para por ejemplo hacer ataques XSS al objeto document.cookie

Si intentas acceder al objeto con scripts se te devuelve el string vacio. Por lo que no puedes ver el contenido del string. Como no podemos sacar el string del objeto con scripts, podemos abusar de peticiones TRACE para buscar el string en sí.
Para esto necesitas editar las cabeceras con por ejemplo un proxy que intercepte tus peticiones para poder editar las cabeceras antes de ser enviadas al servidor web. En estas peticiones mandas un script con una funcion que abra TRACE en el target, y otra que abra el archivo que contiene el string usando por ejemplo ActiveX. El servidor te respondera con las cookies. Y ya nos saltamos la protección de httpOnly.  
Los navegadores suelen incluir una politica de protección de dominio para proteger de ataques XSS que te tienes que saltar. Asique tienes que buscar una vulnerabilidad en tu navegador o uno que no tenga estas politicas. Es muy sencillo en muchos casos.
Es repetir el proceso de antes explotando la vulnerabilidad del navegador en una peticion en la cual pidas las credenciales  mediante TRACE para que el servidor web te las mande.

2779  Programación / Programación C/C++ / Re: Un programa con varias funciones y sin entradas en: 17 Mayo 2019, 10:41 am
La formula que está en main es la que saqué de wikipedia. Tenia un problema con los resultados que no coincidian, concretamente a partir del 3 numero primo que me daba 9 y en wikipedia me salia que era 31 cambie mi función Potencia por pow en el main para ver si implementara mal la funcion y todos los resultados coincidian, primos y perfectos. Entonces arreglé mi función Potencia y los resultados eran los mismos que con pow.
2780  Programación / Programación C/C++ / Re: Un programa con varias funciones y sin entradas en: 17 Mayo 2019, 09:42 am
+O sea estos trabajos que te ayudan a pensar de forma lógica y a saber implementar las ideas que tienes en la cabeza son un coñazo y leerte un libro de 1000 páginas que ya adelantas ser "el asco teórico más grande" es mejor para alguien que está empezando?? Será buena idea si lo que quieres es que abandone la programación por parecerle "un coñazo".

-Sacar formulas de wikipedia no es implementar ideas que tienes en la cabeza. Hacer programas que se te ocurran tras leer un trozo pequeño de un libro teorico escrito por el creador de C++ sí. Asco de extenso, no asco de aburrido. Le recomendé uno más ameno de 296 paginas que explica absolutamente todo lo necesario para empezar mientras programas un videojuego. Quizás si lo primero que haces es crear un juego con una muy buena orientación le pilles más cariño al lenguaje que formulas matemáticas que de momento no te interesan para nada.

+En esa función <Potencia()> si tomas el caso de que exponente valga 0 de forma aislada (y no es un error eso) no tienes que inicializar <potencia> a 1 sino a <base> (es más puedes usar la propia variable base que no está pasada por referencia ni es constante para ahorrarte una variable y una iteración). Tal y como está implementado ahí, el bucle funciona también para el exponente 0 por lo que no es necesario tratarlo de forma aislada.

-Me refería a que el return 1 era para finalizar la funcion como un error. Aunque no sea eso lo que haga. No tenía ganas de incluir más codigo, ya que el programa imprime correctamente el resultado. Lo deje ahí como un complemento para si alguiem quiere tratar ese caso en específico de forma diferente a la implementada en el else.

+La función <esPrimo()> aparte de hacer iteraciones de más de forma innecesaria usa una variable para guardar true/false antes de retornar cuando se puede retornar el valor directamente. Y el <else> tampoco es necesario.

-Lo puse así para que entienda mejor el codigo.

+Ese programa no calcula los primos de Mersenne, calcula los números de Mersenne (no aseguras en ninguna parte que sean primos, es más, no lo son) por lo que los resultados no son correctos tampoco.

-Por lo que entendí de la formula en wikipedia, cualquier numero primo al que se le aplique la formula pasa a ser automáticamente un numero primo de Mersenne sin necesidad de nada mas. De no ser así con volver a llamar a la función EsPrimo ya estaría el problema solucionado. Pero consulte la salida de los valores de la variable que almacena los numeros primos de Mersenne y coincidian con los que encontre en google. Estás seguro de que son incorrectos? Porque también comprobé los 10 numeros perfectos en google y eran los mismos que me da la salida de mi programa.

+Y el uso correcto del <do while> es para bloques que deben ejecutarse una vez antes de comprobar la condición siempre, lo cual no es el caso. Para este caso por convención se emplea un <while>.

-Siempre uso el do while por si quiero meter en algún momento algún trozo de codigo que itere en caso de que no se cumpla la condición. Malos habitos.

+Al final los trabajos "coñazo" van a servir para ver los fallos que comete uno.

-Y los que no son coñazo tambien. Yo pico código palante, me da igual que no esté perfecto en uso de recursos. No trabajo ni voy a trabajar nunca para una empresa. Trabajo para mi y mis proyectos nunca van a requerir tanta eficiencia. Con que lo que salga en pantalla sea lo que quiero ver me vale.
Páginas: 1 ... 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 [278] 279 280 281 282 283 284 285 286 287
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines