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
sharem — SHAREM è un framework di analisi di shellcode, in grado di emulare più di 45.000 WinAPI e virtualmente tutte le system call di Windows. Include anche un proprio disassemblatore personalizzato, con molte funzionalità innovative, come la possibilità di mostrare il disassemblaggio deoffuscato di uno shellcode codificato o di integrare dati di emulazione per migliorare il disassemblaggio. | Kitploit
Strumenti/GitHubGitHub/bw3ll/sharem
Analisi Dinamica (Sandboxing)Reverse EngineeringShellcodeDebuggerFuzzingAnalisi MalwareAnalisi di BinariSicurezza dell'IA
GitHubbw3ll/sharem

sharem

Vedi Repository
491685 mesi 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 →

Informazioni

SHAREM è un framework di analisi di shellcode, in grado di emulare più di 45.000 WinAPI e virtualmente tutte le system call di Windows. Include anche un proprio disassemblatore personalizzato, con molte funzionalità innovative, come la possibilità di mostrare il disassemblaggio deoffuscato di uno shellcode codificato o di integrare dati di emulazione per migliorare il disassemblaggio.

Condividi

SHAREM

Benvenuto in SHAREM!

SHAREM è stato presentato al DEFCON 31 in "Game-Changing Advances in Windows Shellcode Analysis" e al Black Hat USA Arsenal. Un plugin companion per Ghidra è stato reso disponibile (separatamente) da Trellix, per gentile concessione di Max Kersten. Pertanto, puoi estendere la potenza di SHAREM a Ghidra, se lo desideri.

SHAREM è pensato per essere lo strumento definitivo per shellcode Windows, con il supporto per emulare oltre 45.000 WinAPI, praticamente tutte le syscall Windows in modalità utente, e SHAREM fornisce numerose nuove funzionalità. SHAREM contiene un emulatore, un disassemblatore, debugging senza tempo, deoffuscazione brute-force e molte altre caratteristiche. L'emulatore di SHAREM può anche visualizzare strutture complete (o persino strutture all'interno di strutture) e può permettere allo shellcode codificato di deoffuscarsi da solo. SHAREM registra l'output di tutte le WinAPI e le syscall Windows analizzate e le suddivide anche in molte categorie e sottocategorie. La copertura completa del codice di SHAREM consente anche di scoprire funzionalità non raggiungibili.

Il disassemblatore di SHAREM è in grado di integrare le funzioni scoperte nel disassemblato, etichettandole nel disassemblatore. SHAREM mostrerà anche la forma decifrata dello shellcode codificato nel disassemblatore, quindi non è necessario eseguire il debug dello shellcode.

Abbiamo creato una SHAREM Wiki che fornisce alcune informazioni didattiche sull'uso di SHAREM, anche se ci sono parti e funzionalità significative attualmente non documentate. SHAREM è stato sviluppato in un periodo di due anni da diverse persone. Il disassemblatore di SHAREM è significativamente più accurato rispetto ai principali disassemblatori. Inoltre, SHAREM può integrare i dati di emulazione nel disassemblatore, consentendo di ottenere un disassemblaggio quasi perfetto.

Tieni presente che, poiché SHAREM è appena stato rilasciato, la documentazione qui è un po' scarsa. Aggiorneremo GitHub con ulteriori informazioni nelle prossime settimane.

Se sei nuovo di SHAREM, sentiti libero di dare un'occhiata a un breve video demo che mostra alcune delle sue capacità. Clicca sull'immagine per visualizzare la demo: Guarda il video

Aggiornamenti Recenti

Marzo 2026: SHAREM caricava fino a 61 DLL all'avvio, ma con l'ultimo aggiornamento ora supporta 369 DLL e 45538 WinAPI uniche. Inoltre, le DLL vengono caricate su richiesta secondo necessità. Le funzionalità interne di Windows (come elenchi di moduli, flink, blink, ecc.) verranno automaticamente aggiornate se devono essere caricate DLL aggiuntive, ad esempio tramite LoadLibraryA. Sono stati apportati numerosi altri aggiornamenti per migliorare la funzionalità. Sono state apportate modifiche per semplificare alcuni problemi che mi sono stati segnalati riguardo alle difficoltà di installazione.

22 Marzo 2026: La logica per uscire dai cicli è stata perfezionata con più sfumature. Gran parte di essa è stata riscritta e testata nuovamente. In generale, non consigliamo di modificare il valore predefinito in config.cfg, se decidi di utilizzare questa funzionalità.

2024/2025: SHAREM può opzionalmente sfruttare l'IA per analizzare i risultati, con una chiave OpenAI (fornita dall'utente). Nota che SHAREM è stato realizzato prima dei recenti progressi nell'IA e il suo utilizzo dell'IA avviene solo dopo che l'analisi iniziale di SHAREM è completa. Questa funzionalità opzionale può consentirgli di esaminare ciò che è stato trovato e applicarlo al framework MITRE ATT&CK e molto altro ancora.

Istruzioni di Installazione

Windows

SHAREM viene installato come pacchetto Python locale, in modo da avervi accesso in altri progetti. Questo consente di importare parti di SHAREM. Pertanto, deve essere installato come pacchetto. Nota: ho sentito segnalazioni di alcuni problemi di installazione. Le modifiche recenti dovrebbero correggere questo problema.

  1. Git è richiesto per l'installazione di sharem. Può essere installato da https://git-scm.com/download/win. Dopo l'installazione, riavvia il computer e continua con l'installazione di SHAREM. Git serve per automatizzare l'installazione di SSDeep di Windows. Puoi anche farlo manualmente e modificare il file .bat per escludere SSDeep, se lo fai da solo. L'installazione manuale evita la necessità di usare Git. Nota: per Windows, stiamo passando a un fork di SSDeep sull'account Bw3ll che corregge alcuni problemi di installazione della versione precedente. Questa versione e la precedente erano wrapper per SSDeep.

  2. Esegui il file .bat. Chiamerà il file setup.py. A seconda di come richiami Python, potresti dover usare il file .bat alternativo o persino modificarlo leggermente, se usi qualcosa di non standard.

  3. Esegui py -m pip list o python3 -m pip list per verificare che SHAREM sia installato localmente come pacchetto. Deve essere installato come pacchetto per funzionare. Cosa succede se NON lo vedi? Allora NON è installato come pacchetto e SHAREM NON funzionerà. Assicurati di usare i file .bat e di eseguirli nel prompt dei comandi di Windows dalla directory degli installer. Se non funziona, cerca eventuali messaggi di errore. Se presenti, prova a correggerli. Puoi provare alcune volte. Se ancora non funziona, apri un ticket e prova a includere tutte queste informazioni, così possiamo cercare di capire cosa non va. Di solito, non sarà necessario, ma occasionalmente potrebbe esserlo. Se hai disinstallato una volta e deciso di reinstallare, potrebbe essere necessario eseguire nuovamente lo script di installazione. Una volta che vedi sharem apparire quando esegui py -m pip list, sai che è correttamente installato come pacchetto locale.

Dopo l'installazione di SHAREM, la prima volta che esegui uno shellcode, devi trovarti nella cartella sharem_cli. Ad esempio, quando sei in quella directory, puoi eseguire py main.py -r32 shellcode.bin. Nessuno shellcode? Va bene, puoi trovare alcuni esempi nel repository di esempi di shellcode che ospito in un repository separato.

Nota: La prima volta che tenti di emulare uno shellcode su Windows, proverà a raccogliere e inflare le DLL di Windows. Questo processo inizia automaticamente quando si tenta di emulare per la prima volta uno shellcode. Copierà le DLL, spostando le copie (e successivamente inflate) in una directory di SHAREM. Ci sono passaggi aggiuntivi, ma l'intero processo iniziale può richiedere diversi minuti, o anche 10-15 minuti, con una CPU molto vecchia. Una volta completato, non dovrai più ripeterlo. Questo deve essere fatto separatamente sia per shellcode a 32 bit che a 64 bit. Puoi navigare in sharem/sharem/sharem/sharem/DLLs/x86 - e dovresti vedere le DLL apparire lentamente. Queste vengono prese dal sistema operativo, modificate per emulare ciò che il sistema operativo farebbe con esse e salvate in questa directory. Ce ne saranno poco più di 60. Se vedi circa quel numero di DLL e non vengono salvate altre DLL, significa che probabilmente si è bloccato. Premi semplicemente Invio di nuovo. Se fallisce, riavvia e prova a emulare di nuovo. Una volta salvate le DLL, non dovrai più ripetere questa operazione; solo la prima volta potrebbe richiedere tempo in attesa, a seconda della velocità della CPU. Dovresti vedere i risultati dell'emulazione quando finisce, come l'enumerazione di diverse WinAPI o syscall Windows.

Se il file termina con .txt, assumerà che lo shellcode sia una rappresentazione ASCII di HEX (piuttosto che esadecimale puro) e lo interpreterà come tale. Questo funziona con qualcosa trovato online. Se si utilizza una rappresentazione ASCII dell'esadecimale, è necessario che il nome del file termini con .txt.

Linux

  1. chmod +x linux_installer.sh Abilita l'esecuzione dell'installer.
  2. sudo ./linux_installer.sh Esegui l'installer.
  3. Aggiungi i file DLL

Dovrai aggiungere i file DLL di Windows. Al momento non li abbiamo disponibili come download separato per gli utenti Linux. Per ora, gli utenti dovrebbero raccoglierli installandoli tramite Windows. (Nota: Queste DLL DEVONO essere inflate da SHAREM. Le DLL non possono essere utilizzate se non sono inflate. La maggior parte, se non tutte, probabilmente falliranno se non vengono inflate nella quantità corretta.) In seguito, potremmo fornirle come download separato nelle prossime settimane. Ma nel frattempo, l'utente può seguire i passaggi di Windows per generarli e spostarli su Linux, posizionandoli in sharem\sharem\sharem\DLLs\x64 e sharem\sharem\sharem\DLLs\x86. Avrai anche bisogno di foundDLLAddresses32.json e FoundDLLAddresses64.json, che dovrebbero andare in sharem\sharem\sharem.

OpenAI

Nel 2024 SHAREM ha aggiunto il supporto per OpenAI, così possiamo sfruttare l'IA per automatizzare alcune attività di analisi. Questo può essere attivato tramite A dal menu principale - "leverage AI". Per fare ciò, devi avere una chiave OpenAI e inserirla nel file config.cfg, che si trova in sharem/sharem/sharem/sharem/config.cfg. Inoltre, devi emulare uno shellcode prima di poter sfruttare l'IA. Attualmente questo è l'unico modo per utilizzare l'IA - non funziona in modalità headless - ma se qualcuno ne ha bisogno, apri un ticket e aggiungerò il supporto come altra opzione selezionabile tramite config. Se hai già installato SHAREM e ottieni la versione aggiornata, potrebbe bastare installare manualmente OpenAI, ad esempio pip install openai. L'ho aggiunto anche ai requisiti per il file setup.py che viene attivato quando si eseguono gli script di installazione iniziali.

Script Ghidra

L'eccellente script Ghidra di Max Kersten, mostrato al Black Hat e DEFCON dell'agosto 2023, si trova qui: https://github.com/advanced-threat-research/GhidraScripts/blob/main/Sharem.java Alcune istruzioni di Max sono qui: https://github.com/advanced-threat-research/GhidraScripts/ Questo plugin Ghidra è per gentile concessione di Trellix! Devi comunque usare SHAREM. Questo script importa l'output JSON prodotto da SHAREM e lo converte in un formato utile per Ghidra. Maggiori informazioni su Max stesso si trovano su https://maxkersten.nl/.

Documentazione

La documentazione può essere trovata sulla SHAREM Wiki, che fornisce alcune informazioni didattiche sull'uso di SHAREM, anche se ci sono parti e funzionalità significative attualmente non documentate.

Aggiornamenti

  • 29 Settembre 2022: Abbiamo apportato un aggiornamento molto minore a setup.py riguardante numpy, che potrebbe influenzare alcune persone con l'ultima versione di Python.
  • 25 Novembre 2022: In ritardo, abbiamo apportato alcune modifiche per supportare lo stile di syscall di ShellWasp. Sebbene avessimo precedentemente implementato il supporto per le syscall, lo stile ShellWasp non funzionava, solo gli SSN hardcoded (valori di syscall). OSMajorVersion, OSMinorVersion e OSBuild sono stati inizializzati per 32 e 64 bit. Qualunque versione del sistema operativo l'utente abbia nel config o tramite UI verrà ora riflessa internamente - ad esempio, selezionando Windows 10 20H2 verranno popolati i valori corretti, consentendo alla tecnica ShellWasp di funzionare, come mostrato in questo output di esempio. Al momento solo Windows 7, 10 e 11 sono supportati per l'emulazione della tecnica ShellWasp.
  • 29 Novembre 2022: Aggiunto supporto di emulazione per i nuovi OSBuild, 22H2 per Windows 10 e 11. Questo è rilevante solo per l'emulazione delle syscall Windows. Numerose correzioni minori di bug e miglioramenti della qualità della vita. Migliore distinzione delle funzionalità quando SHAREM viene utilizzato per shellcode (il suo focus principale) e quando viene utilizzato per analizzare file PE.
  • 1 Dicembre 2022: Modificata la posizione predefinita dei file per l'output di bin/ASCII - spostato in logs. Aggiunta la possibilità di produrre bin/ASCII deoffuscati con questo comando. L'ASCII deoffuscato è stato aggiunto ai log - anche l'ASCII del bin sembrava mancare dai log - questo è stato corretto.
  • 29 Dicembre 2022: Ho aggiunto una funzionalità opzionale di debugging senza tempo per lo stack. In precedenza, il debugging senza tempo catturava solo le istruzioni eseguite e i valori dei registri prima e dopo. Ora possiamo vedere +/- 0xA0 da ESP. Sfortunatamente, è un po' lento. Questo deve essere abilitato separatamente. Inoltre, ho scoperto alcuni bug che davano risultati errati dall'uscita dai cicli, che in alcuni casi potevano causare la terminazione prematura di un'emulazione. Ho corretto questo problema. Ho anche fatto in modo che SHAREM ora restituisca quando esce dai cicli, indicando dove va una volta uscito da un ciclo.
  • 4 Gennaio 2023: Ho rivisto notevolmente la copertura completa del codice, migliorandone le prestazioni. Ho anche esposto diverse funzionalità opzionali che possono essere modificate da utenti esperti caso per caso tramite l'interfaccia utente o il file di configurazione. Maggiori informazioni sulla pagina wiki della copertura completa del codice.

Schermate

SHAREM è un framework molto potente con numerose capacità, alcune ben documentate e altre no. Questa sezione mostrerà un piccolo numero di queste capacità.

SHAREM può prendere uno shellcode codificato e deoffuscarlo tramite emulazione. Non solo cattura tutte le informazioni sulle WinAPI o syscall, ma se scegli di visualizzarlo nel disassemblatore, mostra la forma decodificata dello shellcode:

image

SHAREM non solo può enumerare oltre 12.000 funzioni WinAPI, ma può anche farlo con praticamente tutte le syscall Windows in modalità utente. Inoltre, per alcune mostra informazioni sulle strutture. Per chi ha a che fare con il registro, estrarrà le informazioni del registro e le aggiungerà al nostro Registry Manager:

image

SHAREM ha anche la capacità di scaricare file tramite UrldownloadToFileA, se esistono. Questi vengono scaricati nella memoria dell'emulatore - non salvati su disco. Se ha successo, catturerà l'hash. C'è anche un pseudo file system limitato, quindi puoi vedere correlazioni, come un file scaricato come una cosa e rinominato in un'altra. Se il download necessario non è disponibile, verrà semplicemente simulato come un download riuscito. Il download live è un'opzione che può essere abilitata o disabilitata nel config.

image

Co-Autori e Collaboratori

Dr. Bramwell Brizendine, Austin Babcock, Jake Hince, Shelby VandenHoek, Sascha Walker, Evan Read, Dylan Park, Kade Brost, James Tate Forcella, William Lochte, Hunter Murphy e Tarek Abdelmotaleb.

Riconoscimento

Questa ricerca e alcuni co-autori sono stati sostenuti dal NSA Grant H98230-20-1-0326.

Scarica lo strumento
  • 5 Gennaio 2023: Aggiunta una scorciatoia da tastiera al sottomenu della copertura completa del codice dal menu Emulator. Per chi ha già scaricato l'aggiornamento di ieri, la scorciatoia è la lettera "o".
  • 16 Gennaio 2023: Aggiunti tre nuovi campi ai file JSON di disassemblaggio generati. Questo aggiornamento NON è necessario per chi non utilizza quei JSON, che è un modo non standard di usare SHAREM.
  • 3 Agosto 2023: Sono state aggiunte circa 5000-6000 API da circa 30 DLL aggiuntive. Altri miglioramenti a supporto di ciò.
  • 2024/2025: SHAREM può opzionalmente sfruttare l'IA per analizzare i risultati, con una chiave OpenAI (fornita dall'utente). Nota che SHAREM è stato realizzato prima dei recenti progressi nell'IA e il suo utilizzo dell'IA avviene solo dopo che l'analisi iniziale di SHAREM è completa. Questa funzionalità opzionale può consentirgli di esaminare ciò che è stato trovato e applicarlo al framework MITRE ATT&CK e molto altro ancora.
  • Marzo 2026: SHAREM caricava fino a 61 DLL all'avvio, ma con l'ultimo aggiornamento ora supporta 369 DLL e 45538 WinAPI uniche. Sono stati apportati numerosi altri aggiornamenti per migliorare la funzionalità. Sono state apportate modifiche per semplificare alcuni problemi che mi sono stati segnalati riguardo alle difficoltà di installazione.
  • 22 Marzo 2026: La logica per uscire dai cicli è stata perfezionata con più sfumature.