Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hlf-time-oracle — Chaincode para blockchain Hyperledger Fabric que proporciona tiempo preciso a otros chaincodes, resolviendo así el problema de seguridad asociado con la manipulación del tiempo de transacción (CVE-2024-45244). | Kitploit
Herramientas/GitHubGitHub/shanker-sec/hlf-time-oracle
Herramientas DefensivasAnálisis de VulnerabilidadesSeguridad de RedesCriptografía
GitHubshanker-sec/hlf-time-oracle

hlf-time-oracle

Chaincode para blockchain Hyperledger Fabric que proporciona tiempo preciso a otros chaincodes, resolviendo así el problema de seguridad asociado con la manipulación del tiempo de transacción (CVE-2024-45244).

Ver Repositorio
313hace 2 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Sitio web
Compartir

hlf-time-oracle

hlf-time-oracle es un chaincode para blockchain Hyperledger Fabric que proporciona hora precisa a otros chaincodes. hlf-time-oracle se basa en el paquete ntp y en el paquete nts. De esta manera se resuelve el problema de seguridad asociado con la posible manipulación del tiempo de transacción por parte del cliente de blockchain (CVE-2024-45244). El chaincode proporciona las funciones GetTimeNtp() y GetTimeNts(). Llamar a estas funciones genera una llamada a los servidores NTP (Network Time Protocol) y NTS (Network Time Security). El tiempo recibido de cualquiera de estos servidores puede usarse para verificar la corrección del tiempo de transacción definido en el lado del cliente. Los desarrolladores de chaincodes para blockchain pueden usar hlf-time-oracle en lugar de escribir código independiente para interactuar con los servidores NTP y NTS. hlf-time-oracle no guarda ningún dato en la blockchain durante su funcionamiento. hlf-time-oracle para Hyperledger Fabric versión 2.4.x se encuentra en la carpeta hlf_2.4. hlf-time-oracle para Hyperledger Fabric versión 2.5.x se encuentra en la carpeta hlf_2.5.

Lista de servidores públicos

Resolviendo el problema de centralización

Características del protocolo NTS

Resistencia al ataque de hombre en el medio

Licencia

Lista de servidores públicos

Servidores NTP públicos

Servidores NTS públicos

Resolviendo el problema de centralización

Si no quieres depender de un único servidor de tiempo, puedes usar múltiples oráculos de tiempo.


Oráculos

Características del protocolo NTS

NTS es una mejora de NTP (ver RFC 8915). Hay 2 conexiones: TCP para TLS y UDP para NTP. El puerto para la conexión NTP lo determina el servidor NTS. Puede ser diferente del estándar 123/UDP. Ten esto en cuenta al configurar el firewall.

Para que el establecimiento de la conexión TLS sea correcto, se requiere que el cliente (es decir, el sistema en el que se ejecuta hlf-time-oracle) tenga una hora del sistema relativamente correcta (dentro del período de validez del certificado del servidor NTS). De lo contrario, la conexión no se establecerá.

Resistencia al ataque de hombre en el medio

Se recomienda usar GetTimeNts() en lugar de GetTimeNtp(). A diferencia de NTP, el uso de NTS es resistente al ataque de hombre en el medio. En caso de suplantación no autorizada de la parte de datos abierta, se registra el siguiente error: authentication failed on client. En caso de un intento de suplantar el certificado del servidor NTS, se registra el siguiente error: key exchange failure: tls: failed to verify certificate: x509: certificate signed by unknown authority.

Experimento


Modelo

hlf-time-oracle se ejecuta en docker (red docker 172.18.0.0/24). En el host docker (Host_1) se ejecutan netsed (puerto 4000/UDP) y mitmproxy (puerto 8080/TCP). El tráfico hacia ellos desde hlf-time-oracle pasará a través de iptables. El segundo host (Host_2) accede a las funciones GetTimeNtp() y GetTimeNts() del oráculo (mediante una llamada peer chaincode query). Llamar a estas funciones hace que el oráculo llame al servidor NTP y al servidor NTS, respectivamente.

NTP

Una regla de iptables para redirigir el tráfico a netsed:

root@kitploit:~
iptables -t nat -A PREROUTING -s 172.18.0.0/24 -d 213.234.203.30/32 -p udp -m udp --dport 123 -m udp -j REDIRECT --to-ports 4000

Ejecute netsed con la regla.


Cree una regla en netsed para reemplazar %ea%33 por %eF%33


El resultado de un ataque exitoso.

NTS

netsed

Una regla de iptables para redirigir el tráfico a netsed (el servidor NTS ntp1.glypnod.com tiene una dirección IP 104.131.155.175):

root@kitploit:~
iptables -t nat -A PREROUTING -s 172.18.0.0/24 -d 104.131.155.175/32 -p udp -m udp --dport 8123 -m udp -j REDIRECT --to-ports 4000

Ejecute netsed con la regla.


Cree una regla en netsed para reemplazar %ea%33 por %eF%33


El resultado de un ataque fallido.

Veamos los registros de docker:


registros de docker

mitmproxy

Una regla de iptables para redirigir el tráfico a mitmproxy (el servidor NTS ntp1.glypnod.com tiene una dirección IP 104.131.155.175):

root@kitploit:~
iptables -t nat -A PREROUTING -p tcp -s 172.18.0.0/24 --dport 4460 -m tcp -d 104.131.155.175 -j REDIRECT --to 8080

Veamos los registros de mitmproxy:


registros de mitmproxy

Veamos los registros de docker:


registros de docker

Licencia

MIT

Descargar herramienta