Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
scallion — Generatore di hash Onion basato su GPU | Kitploit
Strumenti/GitHubGitHub/lachesis/scallion
Password CrackingRicognizioneRaccolta InformazioniCrittografia
GitHublachesis/scallion

scallion

Generatore di hash Onion basato su GPU

Vedi Repository
1.3k16265 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Aggiornamento del Progetto 2020

Scallion era un progetto hobbistico per imparare OpenCL e RSA. Attualmente non manteniamo più scallion. È andato in degrado in due modi importanti:

  1. Tor è passato agli indirizzi Onion v3, che scallion non supporta. I vecchi indirizzi v2 smetteranno di funzionare nell'ottobre del 2021. La nuova specifica utilizza primitive crittografiche diverse ed è complessivamente più complicata. Il trucco che usiamo per generare lotti di chiavi RSA sulla GPU non funziona allo stesso modo per le nuove chiavi ECDSA richieste. È possibile generare chiavi ECDSA simili (ma non compatibili) sulla GPU, per la generazione di indirizzi Bitcoin. Vedi vanitygen-plus o il più vecchio oclvanitygen. Per un elenco di strumenti per la generazione di vanity (basati su CPU) che funzionano per i servizi nascosti Tor v3, vedi questo post sul blog.
  2. La versione di OpenSSL su cui ci basiamo è stata deprecata e non è disponibile nella maggior parte dei sistemi operativi moderni. Non è semplice aggiornarla, poiché utilizziamo alcune funzioni matematiche di basso livello in OpenSSL che non sono disponibili nei binding C# per le versioni più recenti. Personalmente eseguo Scallion usando il dockerfile nvidia, che si basa su Ubuntu 16.04 Xenial, che ancora fornisce la vecchia OpenSSL. Questa è un'opzione solo per gli utenti con GPU Nvidia, comunque. Potresti anche provare a compilare la vecchia libreria OpenSSL e linkarla direttamente, o eseguire una versione più vecchia del tuo sistema operativo da una live USB o una VM (con PCI-e passthrough).

Con sufficiente attenzione e sforzo, sarebbe possibile superare entrambe le sfide sopra indicate. Potremmo implementare il supporto per l'algoritmo di generazione delle chiavi ECDSA sulla GPU per ottenere il supporto Tor v3. Potremmo aggiornare OpenSSL e sostituire le funzioni matematiche con un'altra libreria, o creare un nostro wrapper di codice gestito per la libreria OpenSSL. Tuttavia, sarebbe probabilmente meglio aggiungere il supporto per gli indirizzi onion v3 a un progetto mantenuto come vanitygen-plus.

Scallion

Scallion ti permette di creare chiavi GPG vanity e indirizzi .onion (per i servizi nascosti di Tor) usando OpenCL.

Scallion funziona su Mono (testato su Arch Linux) e .NET 3.5+ (testato su Windows 7 e Server 2008).

Scallion è attualmente in fase beta e in sviluppo attivo. Tuttavia, riteniamo che sia pronto per l'uso. I miglioramenti sono previsti principalmente nelle prestazioni, nell'interfaccia utente e nella facilità di installazione, non nell'algoritmo complessivo utilizzato per generare le chiavi.

Scallion è disponibile sotto licenza MIT. Se usi codice da questo progetto nei tuoi progetti, apprezziamo che ce lo comunichi a [email protected].

FAQ

Ecco alcune domande frequenti e le relative risposte:

  • Perché generare chiavi GPG?

    Scallion è stato utilizzato per trovare collisioni per ogni ID chiave a 32 bit nel set forte del Web of Trust, dimostrando quanto insicuri siano gli ID chiave a 32 bit. C'è/era un talk al DEFCON (video) e ulteriori informazioni si trovano su https://evil32.com/.

  • Quali sono i caratteri validi?

    Gli indirizzi .onion di Tor usano Base32, composto da tutte le lettere e dalle cifre da 2 a 7 incluse. Non fanno distinzione tra maiuscole e minuscole.

    Le impronte GPG usano esadecimale, composto dalle cifre 0-9 e dalle lettere A-F.

  • Si possono usare ASIC Bitcoin (es. Jalapeno, KnC) per accelerare questo processo?

    Purtroppo no. Mentre il processo usato da Scallion è concettualmente simile (incrementare un nonce e controllare l'hash), i dettagli sono diversi (SHA-1 vs doppio SHA-256 per Bitcoin). Inoltre, gli ASIC Bitcoin sono così veloci perché sono estremamente specializzati per le applicazioni di mining Bitcoin. Ad esempio, ecco il datasheet per il CoinCraft A-1, un ASIC che non è mai uscito, ma probabilmente è indicativo dell'approccio generale. Il microcontrollore invia lavoro sotto forma degli ultimi 128 bit di un blocco Bitcoin, lo stato intermedio dell'hash dei bit precedenti, una difficoltà target e il nonce massimo da provare. L'ASIC sceglie la posizione in cui inserire il nonce e sceglie quali blocchi soddisfano l'hash. Scallion deve inserire il nonce in una posizione diversa e controlla una corrispondenza di pattern piuttosto che semplicemente "inferiore a XXXX".

  • Come si possono usare più dispositivi?

    Esegui più istanze di Scallion. 😄 Le ricerche di Scallion sono probabilistiche, quindi non ripeterai lavoro con il secondo dispositivo. Il supporto multi-dispositivo reale non sarebbe troppo difficile, ma non aggiungerebbe molto. Ho eseguito con successo diverse istanze di scallion in tmux o screen. Dovrai solo interrompere manualmente tutti i lavori quando uno trova un pattern (o scrivere uno script shell per monitorare il file di output e ucciderli tutti quando vede risultati).

Dipendenze

  • OpenCL e driver pertinenti installati e configurati. Fare riferimento alla documentazione della propria distribuzione.
  • OpenSSL. Per Windows, sono incluse le DLL x86 precompilate
  • Solo su Windows, VC++ Redistributable 2008

Download Binario

Vuoi solo l'ultima versione binaria? Scaricala qui.

Compilazione Linux

Prerequisiti

  • Ottieni l'ultimo mono per la tua distribuzione Linux:

    http://www.mono-project.com/download/

  • Installa le dipendenze comuni:

    root@kitploit:~
    sudo apt-get update
    sudo apt-get install libssl-dev mono-devel
    
  • Compilazione AMD/OpenSource sudo apt-get install ocl-icd-opencl-dev

  • Compilazione Nvidia sudo apt-get install nvidia-opencl-dev nvidia-opencl-icd

  • Infine msbuild scallion.sln

Docker Linux (solo GPU nvidia)

  1. Avere il runtime nvidia-docker container

  2. Compila il container:

    root@kitploit:~
    docker build -t scallion -f Dockerfile.nvidia .
    
  3. Esegui:

    root@kitploit:~
    docker run --runtime=nvidia -ti --rm scallion -l
    

    screenshot dell'output previsto

Compilazione Windows

  1. Apri 'scallion.sln' in VS Express for Desktop 2012
  2. Compila la soluzione, ho fatto tutto in modalità debug.

Utilizzo

Riavviare Scallion durante una ricerca non farà perdere "progressi". È una ricerca probabilistica e Scallion non fa "progressi"

Elenca i dispositivi

root@kitploit:~
$ mono scallion/bin/Debug/scallion.exe -l

Genera un hash

root@kitploit:~
$ mono scallion/bin/Debug/scallion.exe -d 0 prefisso
Cooking up some delicious scallions...
Using kernel optimized from file kernel.cl (Optimized4)
Using work group size 128
Compiling kernel... done.
Testing SHA1 hash...
CPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
GPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
Looks good!
LoopIteration:40  HashCount:671.09MH  Speed:9.5MH/s  Runtime:00:01:10  Predicted:00:00:56  Found new key! Found 1 unique keys.
<XmlMatchOutput>
  <GeneratedDate>2014-08-05T07:14:50.329955Z</GeneratedDate>
  <Hash>prefix64kxpwmzdz.onion</Hash>
  <PrivateKey>-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCmYmTnwGOCpsPOqvs5mZQbIM1TTqOHK1r6zGvpk61ZaT7z2BCE
FPvdTdkZ4tQ3/95ufjhPx7EVDjeJ/JUbT0QAW/YflzUfFJuBli0J2eUJzhhiHpC/
1d3rb6Uhnwvv3xSnfG8m7LeI/Ao3FLtyZFgGZPwsw3BZYyJn3sD1mJIJrQIEB/ZP
ZwKBgCTUQTR4zcz65zSOfo95l3YetVhfmApYcQQd8HTxgTqEsjr00XzW799ioIWt
vaKMCtJlkWLz4N1EqflOH3WnXsEkNA5AVFe1FTirijuaH7e46fuaPJWhaSq1qERT
eQT1jY2jytnsJT0VR7e2F83FKINjLeccnkkiVknsjrOPrzkXAkEA0Ky+vQdEj64e
iP4Rxc1NreB7oKor40+w7XSA0hyLA3JQjaHcseg/bqYxPZ5J4JkCNmjavGdM1v6E
OsVVaMWQ7QJBAMweWSWtLp6rVOvTcjZg+l5+D2NH+KbhHbNLBcSDIvHNmD9RzGM1
Xvt+rR0FA0wUDelcdJt0R29v2t19k2IBA8ECQFMDRoOQ+GBSoDUs7PUWdcXtM7Nt
QW350QEJ1hBJkG2SqyNJuepH4PIktjfytgcwQi9w7iFafyxcAAEYgj4HZw8CQAUI
3xXEA2yZf9/wYax6/Gm67cpKc3sgKVczFxsHhzEml6hi5u0FG7aNs7jQTRMW0aVF
P8Ecx3l7iZ6TeakqGhcCQGdhCaEb7bybAmwQ520omqfHWSte2Wyh+sWZXNy49EBg
d1mBig/w54sOBCUHjfkO9gyiANP/uBbR6k/bnmF4dMc=
-----END RSA PRIVATE KEY-----
</PrivateKey>
  <PublicModulusBytes>pmJk58BjgqbDzqr7OZmUGyDNU06jhyta+sxr6ZOtWWk+89gQhBT73U3ZGeLUN//ebn44T8exFQ43ifyVG09EAFv2H5c1HxSbgZYtCdnlCc4YYh6Qv9Xd62+lIZ8L798Up3xvJuy3iPwKNxS7cmRYBmT8LMNwWWMiZ97A9ZiSCa0=</PublicModulusBytes>
  <PublicExponentBytes>B/ZPZw==</PublicExponentBytes>
</XmlMatchOutput>
init: 491ms / 1 (491ms, 2.04/s)
generate key: 1193ms / 6 (198.83ms, 5.03/s)
cpu precompute: 10ms / 6 (1.67ms, 600/s)
total without init: 70640ms / 1 (70640ms, 0.01/s)
set buffers: 0ms / 40 (0ms, 0/s)
write buffers: 3ms / 40 (0.08ms, 13333.33/s)
read results: 67442ms / 40 (1686.05ms, 0.59/s)
check results: 185ms / 40 (4.63ms, 216.22/s)

9.50 million hashes per second

Stopping the GPU and shutting down...

Hashing Multi-Pattern

Scallion supporta la ricerca di uno o più pattern multipli attraverso una sintassi regex primitiva. Sono supportate solo le classi di caratteri (es. [abcd]). Il carattere . rappresenta qualsiasi carattere. Gli indirizzi Onion sono sempre lunghi 16 caratteri e le impronte GPG sono sempre 40 caratteri. Puoi trovare un suffisso mettendo $ alla fine della corrispondenza (es. DEAD$). Infine, la sintassi pipe (es. pattern1|pattern2) può essere usata per trovare più pattern. Cercare più pattern (entro limiti ragionevoli) NON produrrà una significativa diminuzione della velocità. Molte regexp produrranno un singolo pattern sulla GPU e non comporteranno alcuna riduzione di velocità.

Alcuni casi d'uso con esempi:

  • Genera un prefisso seguito da un numero per una migliore leggibilità:

    root@kitploit:~
      mono scallion.exe prefix[234567]
    
  • Cerca più pattern contemporaneamente (n.b. -c fa sì che scallion continui a generare anche dopo aver trovato un risultato)

    root@kitploit:~
      mono scallion.exe -c prefisso scallion hashes
      mono scallion.exe -c "prefisso|scallion|hashes"
    
  • Cerca il suffisso "badbeef"

    root@kitploit:~
      mono scallion.exe .........badbeef
      mono scallion.exe --gpg badbeef$ # Genera chiave GPG
    
  • Esempio complicato auto-esplicativo:

    root@kitploit:~
      mono scallion.exe "suffixa$|suffixb$|prefixa|prefixb|a.suffix$|a.test.$"
    

Come funziona Scallion?

Ad alto livello, Scallion funziona come segue:

  1. Genera una chiave RSA usando OpenSSL sulla CPU
  2. Invia la chiave alla GPU
  3. Incrementa l'esponente pubblico della chiave
  4. Hasha la chiave
  5. Se la chiave hashata non è una collisione parziale, torna al passo 3
  6. Se la chiave non supera i controlli di integrità raccomandati da PKCS #1 v2.1 (controllati sulla CPU), torna al passo 3
  7. Nuova chiave con collisione parziale!

L'algoritmo di base è descritto sopra. La velocità/prestazione è il risultato di una massiccia parallelizzazione, sia sulla GPU che sulla CPU.

Velocità / Prestazioni

È importante rendersi conto che Scallion esegue una ricerca probabilistica. I tempi effettivi possono variare significativamente da quelli previsti

La generazione iniziale della chiave RSA viene eseguita sulla CPU. Un i7 Ivybridge può generare 51 chiavi al secondo usando un singolo core. Ogni chiave può fornire 1 gigahash di esponenti da minare e una CPU decente può tenere il passo con diverse GPU come implementato attualmente.

L'hashing SHA1 viene eseguito sulla GPU. I tassi di hash per diverse GPU che abbiamo testato sono riportati di seguito (raggruppati per produttore e ordinati per potenza):

MH/s = milioni di hash al secondo

Vale la pena notare che Intel ha rilasciato driver OpenCL per i suoi processori e si possono trovare collisioni brevi sulla CPU.

Per calcolare il numero di secondi necessari per una data collisione parziale (in media), usa la formula:

TipoTempo stimato
Chiave GPG2^(4*lunghezza-1) / velocitàhash
Indirizzo .onion2^(5*lunghezza-1) / velocitàhash

Ad esempio sulla mia nVidia Quadro K2000M, vedo circa 90 MH/s. Con quella velocità posso generare un prefisso .onion di otto caratteri in circa 1h 41m, 2^(5*8-1)/90 milioni = 101 minuti.

Dimensione del Workgroup

Per impostazione predefinita, Scallion utilizzerà la dimensione del workgroup preferita riportata dal tuo dispositivo. Questo è un valore predefinito ragionevole, ma sperimentare con il workgroup potrebbe aumentare le prestazioni.

Sicurezza

Le chiavi generate da Scallion sono abbastanza simili a quelle generate da shallot. Hanno esponenti pubblici insolitamente grandi, ma vengono sottoposte all'intera serie di controlli di integrità raccomandati da PKCS #1 v2.1 tramite la funzione RSA_check_key di openssl. Scallion supporta diverse dimensioni di chiave RSA, con kernel ottimizzati per 1024b, 2048b e 4096b. Altre dimensioni di chiave potrebbero funzionare, ma non sono state testate.

Ringraziamenti / Riferimenti

  • Scallion si basa in parte su shallot ed è ispirato da vanitygen
  • L'implementazione OpenCL di SHA-1 è stata adattata da NearSHA
  • Include componenti da OpenTK e OpenSSL-net

Donazioni

Sentiti libero di indirizzare donazioni all'indirizzo Bitcoin: 1FxQcu6vhpwsqcTjPsjK43CZ9vjnuk4Hmo

Scarica lo strumento
GPUVelocità
Intel i7-2620M9.9 MH/s
Intel i5-5200U118 MH/s
NVIDIA GT 52038.7 MH/s
NVIDIA Quadro K2000M90 MH/s
NVIDIA GTS 250128 MH/s
NVIDIA GTS 450144 MH/s
NVIDIA GTX 670480 MH/s
NVIDIA GTX 9702350 MH/s
NVIDIA GTX 9803260 MH/s
NVIDIA GTX 1050 (M)1400 MH/s
NVIDIA GTX 10704140 MH/s
NVIDIA GTX 1070 TI5100 MH/s
NVIDIA GTX TITAN X4412 MH/s
NVIDIA GTX 10805760 MH/s
NVIDIA Tesla V10011646 MH/s
AMD A8-7600 APU120 MH/s
AMD Radeon HD5770520 MH/s
AMD Radeon HD6850600 MH/s
AMD Radeon RX 460840 MH/s
AMD Radeon RX 470957 MH/s
AMD Radeon R9 380X2058 MH/s
AMD FirePro W91002566 MH/s
AMD Radeon RX 4802700 MH/s
AMD Radeon RX 5803180 MH/s
AMD Radeon R9 Nano3325 MH/s
AMD Vega Frontier Edition7119 MH/s