Quem sou eu e onde estou?
Last updated
Last updated
Essa pergunta pode ser meio óbvia para quem está acostumado a shells linux que trazem já essas informações por padrão.
Vejamos, por exemplo, a configuração de um terminal padrão Ubuntu:
midnight refere-se ao usuário que executou a shell;
midnight-hackings é o nome da máquina na qual a shell está sendo executada;
/opt é o diretório atual que a shell está executando. Ele é útil para nos localizarmos e referenciarmos arquivos utilizando ;
Por fim, $ representa que a shell não está sendo executada com privilégios de root (administrativos), que pode negar certas ações do usuário. Ao contrário, um # significa que é uma shell root e pode executar qualquer comando no sistema.
Entretanto, tal configuração pode não estar disponível em todos os sitemas ou shells, como o /bin/sh:
Isso é bem comum na execução de certos exploits, que fornecem ao atacante uma shell mais restrita e sem configurações customizadas. Para conseguir coletar essas informações, devemos executar os comandos abaixo. Eles também são úteis para a criação de scripts.
Para descobrir mais informações sobre o usuário (inclusive de privilégios), os comandos whoami
, groups
e id
podem ser usados. Nenhum deles requer parâmetros.
whoami - retorna o nome do usuário.
id - retorna informações resumidas do usuário e os grupos que ele faz parte.
groups - retorna os grupos que ele faz parte.
Nesse caso, note que o comando id
retorna o UID do usuário, que é um número que o identifica no sistema, sendo o UID=0 reservado para o usuário root, além dos grupos. Ele é mais completo que os demais, mas não invalida o uso dos demais em ambientes mais restritivos.
Os grupos podem revelar informações importantes na fase de Discovery de um pentest, no pós-exploração. Nesse caso, meu usuário está no grupo sudo
, que dá permissões para execução privilegiada de comandos.
Para saber os usuários logados no sistema atual, utilize os comandos who
ou w
.
A saída do comando w
é mais detalhada quanto ao comando atualmente executado em cada usuário logado. O usuário "user" está executando o comando w
Por fim, só falta saber qual a máquina e o diretório atual, informações que podem ser obtidas com hostname
e pwd
(print working directory), respectivamente.
Curiosidade: Essa configuração pode ser alterada através do que chamamos de variável de ambiente - teremos uma seção mais a frente só as explicando. Por agora, pense que existe uma configuração, que guarda o formato da shell, e seu nome é PS1. está um exemplo de customizador desse formato.