DIA#12-Ethical Hacking Tools (Metasploit- MSFConsole)

    Hoje continuo com o tutorial do Offensive Security. Onde retomo a partir da introdução ao Interface MSFConsole (o interface mais popular do Metasploit que proporciona uma consola centralizada que fornece acesso a basicamente todas as opções existentes do MSF).

Como aceder à MSFConsole

    O tutorial começa mencionando o comando usado para correr a msfconsole: "msfconsole -q":em que o "-q" é usado para correr a msfconsole em modo quiet, que faz com que não apareça a banner do msfconsole e qualquer texto desnecessário, é possível ver o que fica escondido com o comando "banner" enquanto se corre a msfconsole 
    Mostra também como aceder à ajuda:"msfconsole -h": em que o "-h" é usado para fazer aparecer a help, de modo a observar as diferentes maneiras de usar a consola.

Dentro da MSFConsole

    Após correr a msfconsole usa-se o comando:"help"ou "?" para mostrar os comandos existentes na msfconsole e as suas respectivas descrições.
    Passa-se agora para uma mais detalhada análise dos comandos da msfconsole, entre os quais se encontram os comandos:
  • "help": mostra a ajuda para os comandos da msfconsole 
  • "back": usado para sair do contexto em que se encontra actualmente, por exemplo, no caso de se encontrar num módulo(pedaço de software que o MSF usa para realizar alguma tarefa, existem sete diferentes tipos de módulos: exploits, payloads, auxiliary, encoders, post, nops e evasion) particular, uma das opções para sair daí é usar o comando;
  • "check": usa-se para verificar se um alvo é vulnerável (este comando não é suportado por muitos exploits);
  • "color": permite decidir se os outputs obtidos têm cor;
  • "connect": é um clone do Netcat (ferramenta de rede que permite abrir ports TCP/UDP e HOST, permitindo também forçar conexões UDP/TCP, útil para realizar rastreamento de portas ou realizar transferências de arquivos bit a bit entre equipamentos) implementado na msfconsole que suporta SSL, proxies(servidor que funciona como intermediário para requisições de clients, pedindo informação de outros servidores), pivoting (método que usa um PC comprometido para infectar outro da sua network de modo a evitar restrições, como por exemplo, da firewall) e file transfers. Ao usar este comando é possível ligar a um host remoto através da mfsconsole;
  • "edit": usado para editar o módulo corrente ou o que se especifica;
  • "exit": para sair da consola;
  • "grep": tal como o grep do Linux, compara o output de outro comando utilizado, por exemplo, com o comando "grep http search oracle", vão-se escolher os outputs da "search oracle" que incluem a string "http";
  • "info": dá informação detalhada acerca de um módulo particular escolhido, incluindo as opções, targets e outra informação. Antes de utilizar um módulo deve-se ler sempre a sua descrição;
  • "irb": com este comando entra-se numa shell de Ruby onde se podem colocar comandos e criar Metasploit scripts on the fly. Este comando é também útil para perceber melhor a framework internamente, por exemplo "Framework::Version" depois de usar o comando "irb" dá a versão da framework existente;
  • "jobs": com este comando é possível ver os jobs (módulos  que estão a correr em background), usando"jobs -h" acede-se à ajuda relativamente a este comando (isto também se verifica nos outros comandos); 
  • "kill <job id>": usa-se para parar de correr o job proporcionado;
  • "load": usado para fazer load de um plugin da directoria de plugins do Metasploit;
  • "loadpath <diretoria onde se encontra o módulo>": para fazer load de um módulo third-party;
  • "unload": faz retira o load feito anteriormente de um módulo;
  • "resource": faz correr resource batch (arquivo de texto quer contém linhas com comandos para serem executados) files: 
    • Alguns ataques como o Karmetasploit usam resource files para correr comandos num ficheiro karma.rc;
    • Os Batch files podem acelerar bastante a velocidade com que se fazem testes e implementação, podendo também automatizar bastantes tarefas. Para alem de fazer load de um batch file dentro da msfconsole é também possível fazer isso através do uso de "-r", por exemplo, colocando "echo version > version.rc" e "msfconsole -r version.rc" cria-se um batch file que mostra a versão do Metasploit ao iniciar.
  • "route": permite fazer o route de sockets através de uma sessão, proporcionando capabilidades de pivoting básicas. Para adicionar uma route passa-se a subnet e a network mask seguidas pelo número da sessão;
  • "search <string>": serve para fazer pesquisa de uma string:
    • "help search": mostra que tipos de pesquisas é possível fazer;
    • "search name:<nome>": para pesquisar usando um nome descritivo;
    • "search platform:<platform>": para pesquisar consoante a plataforma afretada pelos módulos;
    • "search type:<type>": pesquisa pelo tipo de módulo, como por exemplo, auxiliary, post, exploit, etc;
    • "search author:<author>": pesquisa pelo autor do módulo;
    • "search <tipo de pesquisa>:<string> <tipo de pesquisa>:<string>": é possível criar pesquisas com diversos parâmetros.
  • "sessions -h": permite abrir a ajuda relativamente à manipulação e interacção de sessões:
    • "sessions -l": usa-se para listar sessões activas.
    • "sessions -i <número da sessão>": usa-se para interagir com uma determinada sessão 
  • "set": permite configurar parâmetros e opções da framework do módulo onde se está a trabalhar, por exemplo, "set RHOST 172.16.194.134" cria um RHost(Remote Host) no IP descrito (não tem que se meter apenas IPs ou RHosts, também não é necessário escrever RHOST uma vez que o Metasploit é case-insensitive);
  • "unset": oposto do comando "set", permitindo retirar um parâmetro anteriormente configurado;

  • "setg": define uma configuração global que pode ser utilizada em diferentes exploits e módulos auxiliares;
  • "unsetg": retira a configuração global;
  • "save": usado para gravar as configurações correntes, de modo a que estas sejam automaticamente carregadas quando se começa a utilizar o msfconsole;
  • "show": mostra todos os módulos existentes no Metasploit:
    • "show encoders": permite ver os encoders. Estes são usados em run-time, de modo a poder mudar o enconding method até encontrar o que funciona com um exploit especifico;
    • "show auxiliary": mostra os módulos auxiliares existentes, que incluem scanners denial of service modules, fuzzers, etc;
    • "show exploits": mostra os exploits contidos na framework;
    • "show payloads": mostra os diferentes payloads existentes para todas as plataformas existentes no Metasploit. Quando se corre no contexto de um exploit especifico, apenas se irá mostrar os payloads compativeis com esse exploit;
    • "show options": mostra os settings disponiveis e/ou requeridos para um módulo especifico;
    • "show targets": corre-se no contexto de um módulo de exploit de modo a mostrar que targets são supported;
    • "show advanced": mostra as opções mais avançadas quando corrida no contexto de um módulo;
    • "show nops": mostra os geradores NOP (representam instruções no-operation, que não fazem nada, usadas de modo a fazer correr a flow da instruction execution do CPU para a sua destinação desejada, normalmente usadas para manter o tamanho da payload consistente pao longo das tentativas de exploit) disponíveis;
    • "show evasion": para mostrar evasion modules (módulos usados para criar payloads que "enganem" os antivírus)
  • "use": serve para escolher o módulo usado ,por exemplo, com o uso do comando "use <nome do módulo a usar>" é possível seleccionar o módulo que será usado, ou em caso de não se saber o nome do módulo total irá pesquisar os módulos que têm o nome colocado no comando.

PS. Para mais informação relativa a msfconsole (por exemplo mais tipos de pesquisas) aconselho ir a "https://www.offensive-security.com/metasploit-unleashed/msfconsole-commands/

Comentários

Mensagens populares deste blogue

DIA#36-OverTheWire-Bandit (LVL 2)

DIA#45-OverTheWire-Bandit (LVL 11)

DIA#52-OverTheWire-Bandit (LVL 18)