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
nopowershell — PowerShell ricostruito in C# per scopi di Red Teaming | Kitploit
Strumenti/GitHubGitHub/bitsadmin/nopowershell
RicognizioneRaccolta InformazioniPost-ExploitCommand and ControlRed Teaming
GitHubbitsadmin/nopowershell

nopowershell

PowerShell ricostruito in C# per scopi di Red Teaming

Vedi Repository
1.1k144710 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 →
Condividi
# NoPowerShell
NoPowerShell è uno strumento implementato in C# che supporta l'esecuzione di comandi simili a quelli di PowerShell rimanendo invisibile a qualsiasi meccanismo di logging di PowerShell. Questo binario compatibile con .NET Framework 2 può essere caricato in Cobalt Strike per eseguire comandi in memoria. Non viene utilizzato `System.Management.Automation.dll`; solo librerie .NET native. Un caso d'uso alternativo per NoPowerShell è avviarlo come DLL tramite `rundll32.exe` in un ambiente ristretto: `rundll32 NoPowerShell.dll,main`.

Questo progetto rende facile per chiunque estendere le sue funzionalità usando solo poche righe di codice C#. Per maggiori informazioni, vedere [CONTRIBUTING.md](https://github.com/bitsadmin/nopowershell/blob/master/CONTRIBUTING.md).

Gli ultimi binari sono disponibili nella pagina [Releases](https://github.com/bitsadmin/nopowershell/releases). Il branch MASTER non viene aggiornato molto regolarmente; il codice e i cmdlet più recenti sono disponibili nel branch [DEV](https://github.com/bitsadmin/nopowershell/tree/dev). Per iniziare subito con NoPowerShell, assicurati di dare un'occhiata anche al [Cheatsheet](https://github.com/bitsadmin/nopowershell/blob/master/CHEATSHEET.md) dei cmdlet.

# Schermate
## Esecuzione in Cobalt Strike
![Comandi supportati da NoPowerShell](https://assets.kitploit.com/production/public/readmes/48612/014d00ecef4a10f0b85f4f40c9c5c114de4e6d33d32531a7951467cc95bbf2e0.png "NoPowerShell in Cobalt Strike")
## Esecuzione di esempio dei comandi
![Comandi di esempio di NoPowerShell](https://assets.kitploit.com/production/public/readmes/48612/a63c01165cc158efe7611bd6e0155a94a7df02d1a79bb5a863dfdeb2e6718470.png "NoPowerShell in Cobalt Strike")
## Versione Rundll32
![NoPowerShellDll via rundll32](https://assets.kitploit.com/production/public/readmes/48612/790eb9cd888836c07b56f57f05fbb73272527537ef7342c77bde0eb772dd94c6.png "NoPowerShellDll via rundll32")

# Perché NoPowerShell
NoPowerShell è sviluppato per essere utilizzato con il comando `execute-assembly` di Cobalt Strike o in un ambiente ristretto tramite `rundll32.exe`.
Motivi per usare NoPowerShell:
- Esegue in modo piuttosto furtivo
- Funzionalità potenti
- Fornisce i cmdlet con cui hai già familiarità in PowerShell, quindi non c'è bisogno di imparare un altro strumento
- Se non hai ancora molta familiarità con PowerShell, sono disponibili anche gli alias di cmd.exe (ad es. `ping` invece di `Test-NetConnection`)
- Nel caso in cui tramite `powerpick` o `powershell` i cmdlet non siano disponibili, _lo sono_ in `nps` (ad es. cmdlet del modulo ActiveDirectory)
- Facilmente estendibile con solo poche righe di C#

# Utilizzo
## Esempi
Vedi [CHEATSHEET.md](https://github.com/bitsadmin/nopowershell/blob/master/CHEATSHEET.md).

## Utilizzo in Cobalt Strike tramite execute-assembly
Usa il comando `execute-assembly` di Cobalt Strike per avviare `NoPowerShell.exe`. Ad esempio `execute-assembly /path/to/NoPowerShell.exe Get-Command`.
Opzionalmente, `NoPowerShell.cna` può essere usato per aggiungere l'alias `nps` a Cobalt Strike.

## Utilizzo in Cobalt Strike tramite BOF.NET
1. Installa il BOF BOF.NET da https://github.com/CCob/BOF.NET
2. Carica il runtime BOF.NET: `bofnet_init`
3. Carica il modulo NoPowerShell: `bofnet_load /path/to/NoPowerShell.dll`
4. Esegui i cmdlet NoPowerShell: `bofnet_execute NoPowerShell.Program Get-Command`

## Utilizzo in Cobalt Strike con il fork di @williamknows di BOF.NET
Questo fork consente di eseguire eseguibili .NET normali.
1. Ottieni e compila il fork di BOF.NET di @williamknows da https://github.com/williamknows/BOF.NET
2. Carica il runtime BOF.NET: `bofnet_init`
3. Carica il modulo NoPowerShell: `bofnet_load /path/to/NoPowerShell.exe`
4. Esegui i cmdlet NoPowerShell: `bofnet_executeassembly NoPowerShell Get-Command`

## Avvio tramite rundll32
1. Crea un nuovo collegamento al file `NoPowerShell.dll` (trascina con il tasto destro -> Crea collegamenti qui)
2. Aggiorna il collegamento anteponendo al nome del file `rundll32` e aggiungendo `,main`
3. Il collegamento ora sarà simile a `rundll32 C:\Path\to\NoPowerShell.dll,main`
4. Fai doppio clic sul collegamento

## Nota
Quando si usa NoPowerShell da `cmd.exe` o PowerShell, è necessario eseguire l'escaping del carattere pipe (`|`) rispettivamente con un accento circonflesso (`^`) o un backtick (`` ` ``), ad esempio:

- cmd.exe: `ls ^| select Name`
- PowerShell: ```ls `| select Name```

# Problemi noti
- I caratteri pipe devono essere circondati da spazi
- TLS 1.1+ non è supportato da .NET Framework 2, quindi qualsiasi sito che lo impone causerà un errore di connessione

# Miglioramenti
- Correggere i problemi di cui sopra
- Supporto per gruppi di parametri
- Aggiungere il supporto per codice .NET nella riga di comando, ad es.: `[System.Security.Principal.WindowsIdentity]::GetCurrent().Name`

# Cmdlet NoPowerShell richiesti
| Cmdlet | Descrizione |
| - | - |
| Invoke-Command | Utilizza PSRemoting per eseguire un comando su una macchina remota (che in tal caso verrà ovviamente registrato nei log) |
| * | Altri comandi \*-Item\* |
| Search-ADAccount | |
| Get-ADPrincipalGroupMembership | |
| Get-ADOrganizationalUnits | |
| * | Altri comandi dal modulo PowerShell `ActiveDirectory` |
| * | Utility Sysinternals come `pipelist` e `sdelete` |

# Cmdlet NoPowerShell contribuiti
Gli autori di ulteriori cmdlet NoPowerShell vengono aggiunti alla tabella seguente. Inoltre, la tabella elenca i comandi che la comunità ha richiesto di aggiungere. Insieme possiamo sviluppare un potente toolkit NoPowerShell!

| Cmdlet | Contributo di | GitHub | Twitter | Descrizione |
| - | - | - | - | - |
|  |  |  |  |  |

# Cmdlet NoPowerShell inclusi
| Cmdlet | Module | Note |
| - | - | - |
| Get-ADUser | ActiveDirectory | |
| Get-ADObject | ActiveDirectory | |
| Get-ADReplicationSubnet | ActiveDirectory | |
| Get-ADGroup | ActiveDirectory | |
| Get-ADGroupMember | ActiveDirectory | |
| Get-ADComputer | ActiveDirectory | |
| Get-ADDomainController | ActiveDirectory | |
| Get-ADTrust | ActiveDirectory | |
| Copy-Acl | Additional | |
| Get-RemoteSmbShare | Additional | |
| Resolve-AdiDnsName | Additional | |
| Get-Whoami | Additional | |
| Get-WinStation | Additional | |
| Compress-Archive | Archive | Richiede .NET 4.5+ |
| Expand-Archive | Archive | Richiede .NET 4.5+ |
| Get-Help | Core | |
| Get-Command | Core | |
| Where-Object | Core | |
| Resolve-DnsName | DnsClient | |
| Get-LocalGroupMember | LocalAccounts | |
| Get-LocalGroup | LocalAccounts | |
| Set-Clipboard | Management | |
| Get-PSDrive | Management | |
| Get-HotFix | Management | |
| Stop-Process | Management | |
| Get-ChildItem | Management | |
| Copy-Item | Management | |
| Invoke-WmiMethod | Management | |
| Remove-Item | Management | |
| Get-ItemPropertyValue | Management | |
| Get-ItemProperty | Management | |
| Get-ComputerInfo | Management | |
| Get-DnsClientCache | Management | |
| Get-Process | Management | |
| Get-WmiObject | Management | |
| Get-Clipboard | Management | |
| Get-Content | Management | |
| Test-NetConnection | NetTCPIP | |
| Get-NetTCPConnection | NetTCPIP | |
| Get-NetNeighbor | NetTCPIP | Non supporta ancora IPv6 |
| Get-NetRoute | NetTCPIP | |
| Get-NetIPAddress | NetTCPIP | |
| Get-Service | NoPowerShell.Commands | |
| Get-LocalUser | NoPowerShell.Commands | |
| Get-WinEvent | NoPowerShell.Commands | |
| New-Shortcut | NoPowerShell.Commands | |
| Get-Acl | Security | |
| Get-SmbMapping | SmbShare | |
| Get-SmbShare | SmbShare | |
| Invoke-Sqlcmd | SQLPS | |
| Get-FileHash | Utility | |
| ConvertFrom-SddlString | Utility | |
| Sort-Object | Utility | |
| Measure-Object | Utility | |
| Invoke-WebRequest | Utility | |
| Select-Object | Utility | |
| Out-File | Utility | |
| Format-Table | Utility | |
| Format-List | Utility | |
| Export-Csv | Utility | |
| ConvertTo-Csv | Utility | |
| Write-Output | Utility | |

Assicurati anche di consultare il [Cheatsheet](https://github.com/bitsadmin/nopowershell/blob/master/CHEATSHEET.md) per esempi su come usare questi cmdlet.

# Ringraziamenti
Diversi cmdlet di NoPowerShell e la DLL NoPowerShell includono codice creato da altri sviluppatori.

| Chi | Sito web | Note |
| - | - | - |
| Contributori di pinvoke.net | https://www.pinvoke.net/ | Vari cmdlet usano frammenti di pinvoke |
| Michael Conrad | https://github.com/MichaCo/ | Parti del cmdlet Resolve-Dns sono basate sul codice del progetto DnsClient.Net |
| Rex Logan | https://stackoverflow.com/a/1148861 | La maggior parte del codice del cmdlet Get-NetNeighbor proviene dal suo post su StackOverflow |
| Sviluppatori di PowerShell | https://github.com/PowerShell/ | Il codice della DLL NoPowerShell si basa in gran parte sul codice che gestisce l'input della console di PowerShell |
| Benjamin Delpy | https://github.com/gentilkiwi/ | Il codice di Get-WinStation è ispirato al codice del comando ts::sessions di Mimikatz |
| Dan Ports | https://github.com/danports/ | Il codice di marshalling di Get-Winstation è parzialmente copiato dal progetto Cassia |
| Mazdak | https://www.codeproject.com/Articles/2937/Getting-local-groups-and-member-names-in-C | Chiamate a funzioni native per il cmdlet Get-LocalGroupMember |
| Rex Logan | https://stackoverflow.com/a/1148861 | Codice del cmdlet Get-NetNeighbor |

**Scritto da Arris Huijgen ([@bitsadmin](https://x.com/bitsadmin/) - https://github.com/bitsadmin/)**
Scarica lo strumento