
novahot
é uma estrutura de webshell para testadores de penetração. Ele implementa uma API baseada em JSON que pode se comunicar com trojans escritos em qualquer idioma. Por padrão, ele vem com trojans escritos em PHP, Ruby e Python.Além de executar comandos do sistema, novahot
é capaz de emular terminais interactivos, incluindo mysql
, sqlite3
e psql
. Além disso, implementa “comandos virtuais” que possibilitam o upload, o download, a edição e a visualização de arquivos remotos de maneira local, usando seus aplicativos preferidos.
Instalação
Instale o executável diretamente do npm:
[sudo] npm install -g novahot
Em seguida, semeie um arquivo de configuração:
novahot config > ~/.novahotrc
Uso
- Veja os trojans disponíveis com .
novahot trojan list
- Selecione um trojan em um idioma apropriado ao seu destino e copie sua origem para um novo arquivo. (Ex:
novahot trojan view basic.php > ~/my-trojan.php
) - Altere a senha de controle no trojan recém-criado.
- Carregue o trojan para um local acessível na Web no destino.
- Configurar informações de destino na
targets
propriedade em~/.novahotrc
. - Corra
novahot shell <target>
para abrir um shell.
Shell Modos
Internamente,novahot
usa “modos” e “adaptadores” para emular vários clientes interativos, atualmente incluindo asmysql
,psql
(postgres) esqlite3
clientes.
Para alterarnovahot
o modo, emita o “comando de ponto” apropriado:
.mysql { "username" : "mysql-user", "password" : "the-password", "database" : "the-database" }
(Os parâmetros de conexão podem ser especificados como JSON durante a mudança de modos ou, alternativamente, salvos como dados de configuração de destino ~/.novahotrc
.)
Por exemplo, o mysql
modo possibilita a execução direta de consultas como as seguintes:
mysql> SELECT ID, user_login, user_email, user_pass FROM wp_users;
Existe também um payload
modo que pode ser usado para POST
dados arbitrários para o trojan. Veja o wiki para mais informações .
O Virtual Commandsnovahot
implementa quatro “comandos virtuais” que utilizam cargas úteis embutidas nos trojans para estender a funcionalidade do shell:
download
download <remote-filename> [<local-filename>]
Transfere <remote-filename>
para --download-dir
, e opcionalmente renomeia para <local-filename>
se especificado.
Envio
upload <local-filename> [<remote-filename>]
Carrega <local-filename>
para o shell cwd
e, opcionalmente, renomeia <local-filename>
para <remote-filename>
se especificado.
Visão
view <remote-filename> [<local-filename>]
Downloads <remote-filename>
e --download-dir
, opcionalmente, renomeia para <local-filename>
Depois do download, o arquivo será aberto pelo aplicativo “viewer” especificado nas configurações .
editar
edit <remote-filename>
Faz o download <remote-filename>
para um arquivo temporário e, em seguida, abre esse arquivo para edição usando o “editor” especificado nas configurações . Depois, se as alterações no arquivo forem salvas localmente, o arquivo será reenviado para o servidor automaticamente.
Provisionando um Ambiente de Teste
Este repositório contém um ambiente de laboratório construído no Vagrant , Docker e o Damn Vulnerable Web Application (“DVWA”). As etapas para provisionar o ambiente variam dependendo dos recursos do seu host físico.
Usando o docker-compose
Se você possui docker
e docker-compose
instalou em seu host físico, você pode simplesmente fazer o seguinte:
- Clone e
cd
para este repositório - Corre:
docker-compose up
Após o início do contêiner do docker, o DVWA estará acessível em http: // localhost: 80 .
Usando vagrant
Se docker
não estiver instalado em seu host físico, você poderá usar o Vagrant / Virtualbox para acessar uma máquina virtual com docker:
- Clone e
cd
para este repositório - Provisionar uma máquina virtual:
vagrant up
- SSH na máquina virtual:
vagrant ssh
- Inicie o contêiner do docker:
sudo su; cd /vagrant; docker-compose up
O DVWA estará acessível em http: // localhost: 8000 .
Configurando o novahot no ambiente de laboratório
Especifique as seguintes seqüências de conexão no seu ~/.novahotrc
arquivo para conectar o novahot
cliente ao cavalo de tróia PHP incorporado ao container DVWA:
{
"targets": {
"dvwa" : {
"uri" : "http://localhost:8000/novahot.php",
"password" : "the-password",
"mysql" : {
"username": "root",
"password": "vulnerables",
"database": "dvwa"
}
}
}
}
Você pode então estabelecer um webshell via:
novahot shell dvwa
Informações Adicionais Informações
adicionais podem ser encontradas no wiki :
[sociallocker id=”1005″]
Download[/sociallocker]