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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 223
51  Seguridad Informática / Criptografía / Re: Rompecabezas de Bitcoin, Medio millón USD en premios en: 10 Febrero 2021, 02:24 am
Pues tras la inversión de Elon Musk y la inmediata subida hasta por encima de los 40.000 tentado está uno...  :laugh: :laugh: :laugh: :laugh:

Si que esta tentador.


¿qué se supone que se busca y qué son esos datos?

Esos datos estan en el siguiente formato:

Código:
#Numero de Bits ( Dirección public de bitcoin ) Monto actual de la cartera
Inicio del rango del privatekey
Fin del rango del privatekey
Llave publica en formato comprimido

Se puede leer un poco mas de como se construyen las direcciones de bitcoin aqui:

https://www.oreilly.com/library/view/mastering-bitcoin-2nd/9781491954379/ch04.html

Basicamente existe un numero secreto (Private Key) con el cual se pueden gastar el bitcoin, Este llave privada funciona bajo curvas elipticas existe un Punto genertador en la curva, dado por la especificación del diseño de la misma.

El punto generador "G" es un punto (x,y) si a este punto le multiplicamos nuestra llave privada K tendremos que k*G = P(x,y) donde P(x,y) es otro punto en la curva y es nuestro publickey este numero se puede compartir para que nos envien mensajes cifrados si eso queremos, pero en el caso del bitcoin este numero P(x,y) se presentan en 2 formatos, comprimido y descomprimido para el caso del puzzle 120 esto son los datos:

Public Key Comprimida: 02CEB6CBBCDBDF5EF7150682150F4CE2C6F4807B349827DCDBDD1F2EFA885A2630
Public Key Descomprimida: 04ceb6cbbcdbdf5ef7150682150f4ce2c6f4807b349827dcdbdd1f2efa885a26302b195386bea3f5f002dc033b92cfc2c9e71b586302b09cfe535e1ff290b1b5ac

Estas llaves tienen  sus respectivas Direcciones de Bitcoin:
Public Address Comprimida: 17s2b9ksz5y7abUm92cHwG8jEPCzK3dLnT
Public Address Descomprimida: 14cUMZFxWnma7fZR6hL3nrDiSQw5eC4smT

Este ultimo dato se consigue mediante una codificación base58check, descrita en el primer link de esta respuesta.

¿qué se supone que se busca?

Se busca el privatekey de esa publickey o public address, para poder reclamar el bitcoin.

Hay varias herramientas para tratar de conseguir ese dato por fuerza bruta pero en la mayoría de los casos no son rentables por el costo de energia gastada por los GPU.

La idea seria tratar de encontrar una forma para tratar de calcular la privatekey sin tener que esperar años, Existen varias aproximaciones para hacer esto pero en muchos casos sigue siendo necesario mucho poder de computo.

Saludos!







52  Seguridad Informática / Criptografía / Rompecabezas de Bitcoin, Medio millón USD en premios en: 8 Febrero 2021, 19:28 pm
Muy buen día a todos últimamente hablando con Kub0x sobre curvas elípticas me sugirió publicar aquí los rompecabezas existentes de bitcoin, hay aproximadamente 12 bitcoin en premios. Para los rompecabezas Importantes y algunos otros bitcoin para rompecabezas pequeños.

Los rompecabezas se puede abordar de varias formas, pero abordarlos por fuerza bruta es casi imposible a no ser que tengan mucha mucha mucha suerte (El tema de Fuerza bruta exclusiva no va a ser tratado aqui).

Estos rompecabezas fueron hechos con el propósito explicito de ser crackeados desde el 2015 y en caso de conseguirlo pueden tomar el bitcoin de premio que se encuentra ahi, ya que el autor para eso los creo, fueron creados cuando el bitcoin se cambiaba por  160 Dolares cada uno, hoy en dia cuesta cada uno mas de 40 Mil dólares

A continuación los rompecabezas en el siguiente formato:
Código:
#Numero de Bits ( Dirección public de bitcoin ) Monto actual de la cartera
Inicio del rango del privatekey
Fin del rango del privatekey
Llave publica en formato comprimido

Puzzles:

Código:

#120 bits ( 17s2b9ksz5y7abUm92cHwG8jEPCzK3dLnT ) 1.20000000 BTC
800000000000000000000000000000
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
02CEB6CBBCDBDF5EF7150682150F4CE2C6F4807B349827DCDBDD1F2EFA885A2630

#125 bits ( 1PXAyUB8ZoH3WD8n5zoAthYjN15yN5CVq5 ) 1.25000000 BTC

10000000000000000000000000000000
1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
0233709EB11E0D4439A729F21C2C443DEDB727528229713F0065721BA8FA46F00E

#130 bits ( 1Fo65aKq8s8iquMt6weF1rku1moWVEd5Ua ) 1.30000000 BTC
200000000000000000000000000000000
3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
03633CBE3EC02B9401C5EFFA144C5B4D22F87940259634858FC7E59B1C09937852

#135 bits ( 16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v ) 1.35000000 BTC
4000000000000000000000000000000000
7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
02145D2611C823A396EF6712CE0F712F09B9B4F3135E3E0AA3230FB9B6D08D1E16

#140 bits ( 1QKBaU6WAeycb3DbKbLBkX7vJiaS8r42Xo ) 1.40000000 BTC
80000000000000000000000000000000000
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
031F6A332D3C5C4F2DE2378C012F429CD109BA07D69690C6C701B6BB87860D6640

#145 bits ( 19GpszRNUej5yYqxXoLnbZWKew3KdVLkXg ) 1.45000000 BTC
1000000000000000000000000000000000000
1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
03AFDDA497369E219A2C1C369954A930E4D3740968E5E4352475BCFFCE3140DAE5

#150 bits ( 1MUJSJYtGPVGkBCTqGspnxyHahpt5Te8jy ) 1.50000000 BTC
20000000000000000000000000000000000000
3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
03137807790EA7DC6E97901C2BC87411F45ED74A5629315C4E4B03A0A102250C49

#155 bits ( 1AoeP37TmHdFh8uN72fu9AqgtLrUwcv2wJ ) 1.55000000 BTC
400000000000000000000000000000000000000
7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
035CD1854CAE45391CA4EC428CC7E6C7D9984424B954209A8EEA197B9E364C05F6

#160 bits ( 1NBC8uXJy1GiJ6drkiZa1WuKn51ps7EPTv )  1.60000793 Bitcoin
8000000000000000000000000000000000000000
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
02E0A8B039282FAF6FE0FD769CFBC4B6B4CF8758BA68220EAC420E32B91DDFA673


Para quienes piensen  abordar el puzzle por fuerza bruta, estos son mas o menos los tiempos estimados para escanear el rango completo de acuerdo a la velocidad conseguida:

Código:
Puzzle 120 @ 1 Terakeys/s :     21074771622667996 años
Puzzle 120 @ 1 Petakeys/s :     21074771622667 años
Puzzle 120 @ 1 Exakeys/s :      21074771622 años
Puzzle 120 @ 1 Zettakeys/s :    21074771 años
Puzzle 120 @ 1 Yottakeys/s :    21074 años
Puzzle 125 @ 1 Terakeys/s :     674392691925375886 años
Puzzle 125 @ 1 Petakeys/s :     674392691925375 años
Puzzle 125 @ 1 Exakeys/s :      674392691925 años
Puzzle 125 @ 1 Zettakeys/s :    674392691 años
Puzzle 125 @ 1 Yottakeys/s :    674392 años
Puzzle 130 @ 1 Terakeys/s :     21580566141612028377 años
Puzzle 130 @ 1 Petakeys/s :     21580566141612028 años
Puzzle 130 @ 1 Exakeys/s :      21580566141612 años
Puzzle 130 @ 1 Zettakeys/s :    21580566141 años
Puzzle 130 @ 1 Yottakeys/s :    21580566 años
Puzzle 135 @ 1 Terakeys/s :     690578116531584908094 años
Puzzle 135 @ 1 Petakeys/s :     690578116531584908 años
Puzzle 135 @ 1 Exakeys/s :      690578116531584 años
Puzzle 135 @ 1 Zettakeys/s :    690578116531 años
Puzzle 135 @ 1 Yottakeys/s :    690578116 años
Puzzle 140 @ 1 Terakeys/s :     22098499729010717059011 años
Puzzle 140 @ 1 Petakeys/s :     22098499729010717059 años
Puzzle 140 @ 1 Exakeys/s :      22098499729010717 años
Puzzle 140 @ 1 Zettakeys/s :    22098499729010 años
Puzzle 140 @ 1 Yottakeys/s :    22098499729 años
Puzzle 145 @ 1 Terakeys/s :     707151991328342945888372 años
Puzzle 145 @ 1 Petakeys/s :     707151991328342945888 años
Puzzle 145 @ 1 Exakeys/s :      707151991328342945 años
Puzzle 145 @ 1 Zettakeys/s :    707151991328342 años
Puzzle 145 @ 1 Yottakeys/s :    707151991328 años
Puzzle 150 @ 1 Terakeys/s :     22628863722506974268427923 años
Puzzle 150 @ 1 Petakeys/s :     22628863722506974268427 años
Puzzle 150 @ 1 Exakeys/s :      22628863722506974268 años
Puzzle 150 @ 1 Zettakeys/s :    22628863722506974 años
Puzzle 150 @ 1 Yottakeys/s :    22628863722506 años
Puzzle 155 @ 1 Terakeys/s :     724123639120223176589693541 años
Puzzle 155 @ 1 Petakeys/s :     724123639120223176589693 años
Puzzle 155 @ 1 Exakeys/s :      724123639120223176589 años
Puzzle 155 @ 1 Zettakeys/s :    724123639120223176 años
Puzzle 155 @ 1 Yottakeys/s :    724123639120223 años
Puzzle 160 @ 1 Terakeys/s :     23171956451847141650870193314 años
Puzzle 160 @ 1 Petakeys/s :     23171956451847141650870193 años
Puzzle 160 @ 1 Exakeys/s :      23171956451847141650870 años
Puzzle 160 @ 1 Zettakeys/s :    23171956451847141650 años
Puzzle 160 @ 1 Yottakeys/s :    23171956451847141 años

Si tienen alguna duda favor de comentarla en este hilo.

He creado un canal privado de Telegram, si alguno gusta discutir el tema ahí, favor de enviarme mensaje privado a https://t.me/albertobsd y si lo considero oportuno los agregare al grupo.

Saludos!
53  Seguridad Informática / Criptografía / Re: Sucesion parcial o completa entre numeros primos. en: 8 Febrero 2021, 18:55 pm
Por lo general quien busca trabajar con numeros primos, lo necesita con numeros extremandamente grandes, los programas que trabajan con variables de 32 y 64 bits se quedan MUY atras de las necesidades reales.

Ademas de ser rapidos y trabajar con numeros primos grandes se necesita cierta flexibilidad a la hora de calcularlos, he trabado de esta forma obteniendo muy buenos resultados para encontrar factores primos de numeros muy grandes utilizando la libreria libgmp para linux: ejemplo

Código:
$ ./test_factors
random number: 1283947691350704095109854943824966739
Factor 1 : 3
Factor 2 : 3
Factor 3 : 3
Factor 4 : 4177
Factor 5 : 22027
Factor 6 : 516849070416585562079175083

Saludos!
54  Programación / Programación General / Ordenar archivo binario de 100GB en: 21 Enero 2021, 05:02 am
Ok, veamos necesito una forma eficiente de ordenar un archivo de de 100 GB, Cada registro del archivo son 36 Bytes en binario.

Usualmente lo hacia con archivos pequeños 10 o 5 GB pero en RAM. Esto con el algoritmo Introsort y es bastante eficiente, pero ahora estoy utilizando el mismo método pero en Disco duro ya que el archivo es muy grande, Lo que estoy haciendo es leer los registros del disco, cargarlos en memoria, compararlos y escribir en disco en caso de que necesiten ser ordenados. Este proceso es muy lento directo en el disco duro.

Podría tratar de dividir el proceso he ir cargando de 10 en 10 GB en RAM u otra cantidad ordenarlos en memoria y seguir con los demás pedazos, sin embargo el problema es ordenar entre pedazos separados.

El proceso de generación de registros es aleatorio y no se en que orden se generaran los registros, quiero hacer este proceso lo mas eficiente y rápido posible, ya que si funciona este archivo tendré que generar un archivo similar de 500 o 1000 GB. No tengo problemas de Espacio en disco.

¿Alguna idea adicional a hacerlo directo desde el disco duro?


Edit:

Ayer miestras publicaba este teme tambien pense en la solucion, pero no queria publicarla hasta implementarla.

Dado que la generación de los registros es aleatoria y es uniforme entre el rango de A a B entonces se me ocurre que una vez generado el archivo de 100 GB, dividir el rango de A a B en subrangos manejables en RAM
por decil algo tengo los siguientes rangos para registros de 32 bytes:

Código:
From 0000000000000000000000000000000000000000000000000000000000000000 to 0ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
From 0ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc to 1999999999999999999999999999999999999999999999999999999999999998
From 1999999999999999999999999999999999999999999999999999999999999998 to 2666666666666666666666666666666666666666666666666666666666666664
From 2666666666666666666666666666666666666666666666666666666666666664 to 3333333333333333333333333333333333333333333333333333333333333330
From 3333333333333333333333333333333333333333333333333333333333333330 to 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
From 3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc to 4cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc8
From 4cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc8 to 5999999999999999999999999999999999999999999999999999999999999994
From 5999999999999999999999999999999999999999999999999999999999999994 to 6666666666666666666666666666666666666666666666666666666666666660
From 6666666666666666666666666666666666666666666666666666666666666660 to 733333333333333333333333333333333333333333333333333333333333332c
From 733333333333333333333333333333333333333333333333333333333333332c to 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8
From 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8 to 8cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc4
From 8cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc4 to 9999999999999999999999999999999999999999999999999999999999999990
From 9999999999999999999999999999999999999999999999999999999999999990 to a66666666666666666666666666666666666666666666666666666666666665c
From a66666666666666666666666666666666666666666666666666666666666665c to b333333333333333333333333333333333333333333333333333333333333328
From b333333333333333333333333333333333333333333333333333333333333328 to bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4
From bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4 to ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0
From ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0 to d99999999999999999999999999999999999999999999999999999999999998c
From d99999999999999999999999999999999999999999999999999999999999998c to e666666666666666666666666666666666666666666666666666666666666658
From e666666666666666666666666666666666666666666666666666666666666658 to f333333333333333333333333333333333333333333333333333333333333324
From f333333333333333333333333333333333333333333333333333333333333324 to ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Entonces buscamos en el archivo los valores que entren en alguno de los rango anteriores, se ordenan en RAM y se escriben en un archivo aparte. Una vez completado el proceso para todos los sub-rangos se unen los archivos en uno solo y se borra el archivo desordenado.

Esto se puede hacer así debido a que la distribución de los registros es uniforme en el rango original de A a B, en caso de que la data este sesgada y existan mas valores en un sub-rango dado es conveniente poner un limite de cantidad de registros leídos para que el mismo no sobrepase la cantidad de RAM.

Saludos!
55  Seguridad Informática / Criptografía / Re: Cifrado Schneider en: 4 Enero 2021, 21:56 pm
Hay un espacio entre un hash y otro, o solo fue error al copiar y pegar?
Realmente hay que buscar mas información de como cifran esos dispositivos. Ya que podria ser cualquier cosas ese hash, md5, sha256, hmac de alguno de los anteriores o otros, tambien puede ser algun Key derivation iterado N cantidad de veces.

Asi como lo pintas ni idea. Busca en google que tipo de cifrado utiliza ese dispositivo.

Saludos!
56  Seguridad Informática / Hacking Ético / Re: ¿Diferencias en cuanto a la seguridad en las cookies http vs https? en: 27 Diciembre 2020, 06:39 am
¿eso quiere decir que teniendo un sitio web sin certificado SSL/TSL estoy bajo un riesgo SI O SI?

Si.

Sencillamente en una comunicación sin cifrado toda la información va en texto plano, cualquier router intermedio entre el cliente y el servidor puede examinar los paquetes y extraer información sensible, Cookies, Datos de formularios, etc..

Saludos!
57  Programación / Bases de Datos / Re: Extraño: select con offset y limit devuelve datos duplicados en: 26 Diciembre 2020, 06:28 am
si todos los registros tienen el mismo valor en el campo fecha no deberia el gestor ordenarlos por algun otro campo o debo indicarlo explicitamente???

Debes de indicarlo explícitamente., De hecho no deberias de utilizar la fecha como campo para ordenarlos, lo ideal es utilizar el ID.

Saludos
58  Programación / Desarrollo Web / Re: [Pregunta]: ¿Existe una vulnerabilidad de inyección en esta consulta? en: 7 Diciembre 2020, 21:46 pm
aclarar que tanto los parametros $x, como $y son constantes y no son datos que el usuario envía, un ejemplo:

Código
  1. $datos = x::Consulta('id_user', 61); // son constantes, no datos que un usuario ingresa

Correcto no es vulnerable solo por esa parte, por que aseguras que son constantes.

Los prepare statements ayudan a prevenir los SQL injection si, si y solo si se utilizan como debe de ser, es decir  utilizando la funcion diseñada para pasar los parametros al sql statement bindParam()

De otra forma y tomando los datos directo del input del user si serian vulnerables.

Saludos!
59  Seguridad Informática / Hacking Ético / Re: Base de datos web en: 6 Diciembre 2020, 03:44 am
Pues si quieres vulnerar bases de datos, lo ideal es que aprendas SQL para los distintos gestores como mysql, sqlserver, sqlite etc... aunque en general es muy similar entre unos y otros, hay diferencias sutiles que te pueden ayudar entre un sistema y otro.

Seria algo tonto decir que puedes hackear una base datos cuando no se sabe realizar consultas, subconsultas, uniones etc..

Minimo aprender lo basico.

Saludos!
60  Programación / Bases de Datos / Re: Extraño: select con offset y limit devuelve datos duplicados en: 6 Diciembre 2020, 03:38 am
El problema es la fecha de inserción "order by fecha_insercion asc", como hay registros duplicados de fecha no es posible que mysql guarde que registros en base a la fecha ya te envió previamente, tiene que ser forzosamente un order by ID.

Sobre que te devuelva 6 registros en lugar de 5, eso parece ser error de la funcion que llama a ese procedimiento de mysql.

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