Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
HLF_TxTime_spoofing — PoC cobrindo o problema de manipulação do tempo de transação (CVE-2024-45244) no blockchain Hyperledger Fabric. | Kitploit
Ferramentas/GitHubGitHub/shanker-sec/hlf_txtime_spoofing
Análise de VulnerabilidadesExploraçãoCriptografiaAprendizado e Educação
GitHubshanker-sec/hlf_txtime_spoofing

HLF_TxTime_spoofing

PoC cobrindo o problema de manipulação do tempo de transação (CVE-2024-45244) no blockchain Hyperledger Fabric.

Ver Repositório
214há 2 anosAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

HLF_TxTime_spoofing

HLF_TxTime_spoofing - uma Prova de Conceito (PoC) que aborda o problema da manipulação do tempo de transação (usando GetTxTimestamp() ou GetHistoryForKey()) na blockchain Hyperledger Fabric. Testado nas versões v2.5.5 e v3.0.0-beta

O projeto consiste em várias partes:

  1. time_insecure - variante de chaincode vulnerável que usa GetTxTimestamp() para calcular juros a partir do depósito
  2. time_secure_ntp - um chaincode que usa a obtenção de tempo de um servidor NTP (Network Time Protocol) para proteger contra falsificação de tempo por um atacante ao calcular juros sobre um depósito.
  3. time_secure_nts - um chaincode que usa a obtenção de tempo de um servidor NTS (Network Time Security) para proteger contra falsificação de tempo por um atacante ao calcular juros sobre um depósito.
  4. time_secure_localtime - chaincode que usa o tempo do SO onde o smart-contract é executado para proteger contra falsificação de tempo por um atacante ao calcular juros a partir do depósito

Em todos os casos (ou seja, chaincodes), o depósito equivale a 20% ao ano.

Funções adicionais para entender o funcionamento da lógica de negócio: CalcDividents() - retorna o dividendo acumulado para um determinado número de dias e o valor do depósito inicial subtractTimestamp() - retorna a diferença entre o tempo atual e o tempo do depósito inicial

Fluxo de trabalho do time_insecure

Chame Stake_insecure() para adicionar um depósito com o valor inicial. Chame CheckDividents_insecure() para verificar se o valor do depósito não mudou. Altere o horário local no cliente e chame CheckDividents_insecure() novamente.

Ataque financeiro: avançar o tempo em 1 ano permitiu obter 20% de juros anuais.


Ataque financeiro bem-sucedido

Da mesma forma, verificamos que o tempo da transação pode ser manipulado em GetHistoryForKey().

Fluxo de trabalho do time_secure_ntp

Nesta variante do chaincode, verificamos o tempo da transação em relação ao tempo recebido do servidor NTP (Network Time Protocol) (usando o pacote ntp client). Cada chaincode possui seu próprio endereço de servidor NTP (ou seja, pacotes de chaincode diferentes) para distribuição. Em caso de desvio de tempo, um erro será exibido: "horário incorreto". Observe que os dados de tráfego NTP podem ser falsificados (os dados são transmitidos em texto simples).


Ataque financeiro mal-sucedido

Fluxo de trabalho do time_secure_nts

Nesta variante do chaincode, verificamos o tempo da transação em relação ao tempo recebido do servidor NTS (Network Time Security) (usando o pacote nts client). Cada chaincode possui seu próprio endereço de servidor NTS (ou seja, pacotes de chaincode diferentes) para distribuição. Em caso de desvio de tempo, um erro será exibido: "horário incorreto".


Ataque financeiro mal-sucedido

Fluxo de trabalho do time_secure_localtime

Nesta variante do chaincode, verificamos o tempo da transação em relação ao tempo local (ou seja, o tempo no nó peer). Em caso de desvio de tempo, um erro será exibido: "horário incorreto". Observe que a sincronização correta do horário é necessária em todos os nós peers.


Ataque financeiro mal-sucedido

Time Oracle

hlf-time-oracle é um chaincode para a blockchain Hyperledger Fabric que fornece tempo preciso para outros chaincodes. hlf-time-oracle é baseado no pacote ntp e no pacote nts. Resolvendo assim o problema de segurança associado à possível manipulação do tempo de transação pelo cliente da blockchain. O chaincode fornece as funções GetTimeNtp() e GetTimeNts(). Chamar essas funções cria uma chamada aos servidores NTP (Network Time Protocol) e NTS (Network Time Security). O tempo recebido de qualquer um desses servidores pode ser usado para verificar a correção do tempo da transação definido no lado do cliente. Desenvolvedores de chaincodes para blockchain podem usar hlf-time-oracle em vez de escrever código independente para interagir com servidores NTP e NTS. hlf-time-oracle não salva nenhum dado na blockchain durante sua operação.

Baixar ferramenta