Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
PowerShellArmoury — Un arsenale PowerShell per ragazzi e ragazze della sicurezza | Kitploit
Strumenti/GitHubGitHub/cfalta/powershellarmoury
Strumenti di Crittografia/DecrittografiaGenerazione di PayloadScripting e AutomazionePenetration TestingUtilità e FrameworkRed TeamingArchived
GitHubcfalta/powershellarmoury

PowerShellArmoury

Un arsenale PowerShell per ragazzi e ragazze della sicurezza

Vedi Repository
47069182 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

[!IMPORTANT]
Questo repository è ora archiviato. Sebbene sia stato un percorso divertente, penso che PSArmoury abbia esaurito la sua utilità.


PowerShellArmoury

PowerShell Armoury è pensato per penetration tester, "inserisci-colore-qui"-team e chiunque altro utilizzi una varietà di strumenti PowerShell durante i propri impegni. Ti permette di scaricare e memorizzare tutti i tuoi script PowerShell preferiti in un unico file offuscato.

Non devi più preoccuparti di aggiornare Rubeus, PowerView, ... manualmente. Basta creare un file di configurazione una volta o utilizzare quello predefinito incluso nello strumento. D'ora in poi, ti basterà eseguire "New-PSArmoury" prima di passare al prossimo impegno. Inoltre, PSArmoury offusca il tuo codice e include un AMSI bypass integrato. Il design modulare dovrebbe rendere facile per te modificare il codice di evasione o offuscamento in caso di rilevamento su di esso.



Struttura generale

La versione attuale di PSArmoury predilige un design modulare.

 New-PSArmoury.ps1
 PSArmoury.json
 utilities
    ConvertTo-Powershell.ps1
    Invoke-Shuffle.ps1
 modules
    evasion.ps1
    obfuscation.ps1

Il codice è suddiviso in uno script generatore principale chiamato New-PSArmoury.ps1, che è quello da eseguire. Il codice per evasione, offuscamento e deoffuscamento è memorizzato in file .ps1 separati nella directory modules. Questi file separati vengono invocati dallo script principale e dovrebbero semplificare la modifica di funzioni specifiche (come un AMSI bypass). Oltre alla directory modules, esiste anche la directory utilities. Qui troverai script autonomi che possono essere utili in scenari specifici.

La directory modules

Il percorso predefinito della directory modules è .\modules dove il punto si riferisce alla directory di lavoro corrente della shell. Puoi cambiare il percorso della directory modules usando l'argomento -ModulesDirectory di New-PSArmoury. I nomi dei file script stessi sono comunque hard-coded nello script principale e sono sempre attesi come:

  • evasion.ps1
  • obfuscation.ps1

Diamo un'occhiata più da vicino a questi due.

evasion.ps1

Questo script dovrebbe contenere il codice inteso a bypassare ciò che intendi bypassare. Per impostazione predefinita, contiene un noto AMSI bypass (grazie amsi.fail). Tieni presente che:

  • il codice qui viene eseguito PRIMA di tutto il resto (ad esempio il deoffuscamento)
  • NON C'È ALCUN TIPO DI CONVALIDA! Tutto ciò che inserisci qui verrà passato a IEX così com'è.

obfuscation.ps1

Questo script dovrebbe contenere il codice utilizzato per l'offuscamento e il deoffuscamento. L'obfuscation.ps1 predefinito utilizza la crittografia RC2. Esempi pronti all'uso:

  • TEMPLATE_obfuscation_RC2.ps1 --> questo è il predefinito
  • TEMPLATE_obfuscation_byte_convert.ps1
  • TEMPLATE_obfuscation_empty.ps1

Nota che TEMPLATE_obfuscation_empty.ps1 non fa davvero nulla e funge da modello per creare la tua funzione.

Se vuoi utilizzare uno di questi, rinominalo semplicemente in "obfuscation.ps1" ed elimina il file predefinito.

Se desideri creare una versione personalizzata, tieni presente quanto segue riguardo all'offuscamento:

  • Il nome della funzione DEVE essere sempre "Get-PSArmouryObfuscation" con un singolo parametro stringa chiamato "Code" perché è ciò che lo script principale chiamerà su ogni elemento che vuoi inserire nell'armoury.
  • La funzione DOVREBBE restituire nuovamente la versione offuscata del codice come singolo valore stringa. Il codice principale degli script esegue un ulteriore ciclo di codifica/decodifica base64 per garantire di poter gestire anche altre cose che gli lanci, ma sarebbe più semplice se potessi restituire solo una stringa ;-)
  • La corrispondente funzione di deoffuscamento DEVE comprendere qualsiasi cosa tu restituisca qui. Lo script principale si limita a passare i risultati, non avviene alcuna magia.

E assicurati di ricordare queste cose per il deoffuscamento:

  • Il nome della funzione DEVE essere sempre Get-PSArmouryDeObfuscation senza parametri poiché itera su una variabile globale fissa.
  • La funzione DEVE restituire nuovamente la versione deoffuscata del codice come singolo valore stringa, pronta per l'esecuzione. Passiamo tutto ciò che restituisci a IEX, quindi il resto dipende da te.

La directory utilities

La directory utilities contiene script autonomi utili.

  • ConvertTo-Powershell.ps1
    • Converte un'applicazione console c# in uno script PowerShell. Per maggiori dettagli, vedi il corrispondente post sul blog.
  • Invoke-Shuffle.ps1
    • Un semplice script di offuscamento che converte una singola riga di codice in più variabili che contengono parti della stringa originale, che vengono poi unite e invocate durante l'esecuzione.

Riferimento configurazione

Il file di configurazione deve essere un JSON valido composto da un singolo array con uno o più oggetti, dove ogni oggetto viene interpretato come una singola fonte di script. Ogni oggetto ha i seguenti attributi:

Name (Obbligatorio)

Un nome a tua scelta per identificare lo script incluso in questo oggetto. È solo un riferimento per te.

URL (Obbligatorio)

La posizione da cui ottenere il contenuto dello script. Può essere un URL a una risorsa web (https://) o un percorso locale (C:) o una risorsa di rete (\...). L'URL viene passato rispettivamente a Net.Webclient o a Get-Item di PowerShell. Quindi, in pratica, qualsiasi formato gestito da uno dei due dovrebbe funzionare.

Type (Obbligatorio)

Fornisce un suggerimento sulla posizione dello script al creatore dell'armoury. Esistono tre tipi validi:

  • GitHub
    • Chiederà le credenziali per autenticarsi tramite l'API di GitHub. Proverà anche a distinguere tra un URL "raw" che punta direttamente a un file o un URL che punta a un repository. Se l'URL punta a un repository, lo script cercherà automaticamente tutti i file PowerShell in quel repository e li includerà. Ad esempio "https://github.com/cfalta/PoshRandom"
  • WebDownloadSimple
    • Indica un file che può essere scaricato senza autenticazione o altro utilizzando una richiesta HTTP GET. Ad esempio "http://mywebserver.com/file.ps1"
  • LocalFile
    • Un file su disco come "C:\temp\test.ps1". Se il percorso punta a una directory, verranno inclusi tutti i file (ricorsivamente) con estensione ".ps1".

FileInclusionFilter (Opzionale)

Verrà interpretato solo in un oggetto di tipo "GitHub". Verrà confrontato con l'operatore di confronto "like" di PowerShell rispetto all'intero nome del file, quindi tieni presente che devi includere i caratteri jolly da solo. Non dimenticare di includere un asterisco (*) se vuoi corrispondere a parte di un nome file. "*.ps1" significa tutti i file che terminano con ".ps1", ma ".ps1" significa solo ".ps1".

Non sei obbligato a includere un filtro, ma se lo fai, devi usarlo. Un InclusionFilter vuoto significa nessun file.

FileExclusionFilter (Opzionale)

Come InclusionFilter, ma ovviamente al contrario. L'esclusione ha la precedenza.

Argomenti

Consulta la guida inline di PowerShell (man -full New-PSArmoury) per maggiori dettagli.

-Path

Il percorso del tuo nuovo file armoury. Il valore predefinito è ".\MyArmoury.ps1"

-FromFile

Carica i tuoi script PowerShell direttamente da una cartella o file locale senza dover fornire un file di configurazione.

-Config

Il percorso del tuo file di configurazione JSON. Dai un'occhiata all'esempio incluso con questo script per idee.

-ModulesDirectory

Il percorso della directory modules. Il valore predefinito è ".\modules". Se viene utilizzato ModulesDirectory, i parametri EvasionPath e ObfuscationPath non possono essere utilizzati.

Scarica lo strumento