Manipulando Processos
Um processo é um programa em execução. Cada processo tem um ID de processo númerico chamado de PID. Entender sobre processos é essencial para um Pentester, principalmente quando estamos realizando algum PrivEsc.
Listando Processos
Para vermos os processos que estão sendo executados no momento, utilize o seguinte comando:
EXPLICAÇÃO: a = Mostra os processos do usuário atual e de outros usuários u = Inclui informações mais detalhadas sobre os processos x = Mostra os processos em execução w = Mostra os nomes completos dos comandos e não apenas o que cabe em uma linha
Os campos estão descritos a seguir:
COLUNA
DESCRIÇÃO
PID
ID do processo
TTY
É o dispositivo de terminal em que o processo está executando
STAT
Status do processo, ou seja, o que o processo está fazendo e em que local está a sua memória. Os valores podem ser S
(Sleeping) ou R
(Running)
TIME
Quantidade de tempo de CPU em minutos e segundos que o processo usou até o momento
COMMAND
Isso parece ser óbvio, mas saiba que um processo pode alterar esse campo em relação ao seu valor original
Matando Processos
Para matar (encerrar) um processo, vamos enviar uma sinal para o Kernel informando o que queremos fazer com o processo. Iremos utilizar o seguinte comando kill
seguido o PID
do processo.
Podemos informar o tipo de sinal (por default é TERM
(terminate). Esse processo encerra o processo da maneira correta (dando a chance do processo fazer uma limpeza antes de encerrar), mas podemos encerrá-los de outras maneiras também.
Temos o sinal INT
(Interrupt) para interromper um processo (quando estamos no terminal e pressionamos CTRL
+ C
, estamos mandando esse sinal automaticamente).
Diferente das formas anteriores, temos o sinal KILL
, que mata o processo de uma forma mais agressiva, forçando a remoção da memória.
Geralmente vemos o comando kill -9 <pid>, que muitas pessoas tem o costume de usar sem saber ao certo o que está acontecendo. Esse comando é equivalente ao sinal -KILL, então utilize somente se necessário.
E para finalizar, vamos aprender um método mais prático (útil para quem ainda não tem muita familiaridade com o uso do terminal ou simplesmente acha mais prático) para matar processos. Para isso, deixe o seu terminal aberto em um canto da tela e a outra janela (a que está rodando o processo que deseja finalizar) em outro canto, de um modo que consiga ver as duas janelas na tela simultaneamente.
Agora no terminal, digite xkill
(note o ponteiro do mouse irá ficar com o formato de um X) e então clique na janela do processo que deseja finalizar.
Gerenciando Processos
Vimos que os processos podem ser inicializados e também encerrados, mas ainda não vimos como fazer um processo ficar em modo STOP
(congelado) e depois voltando ao estado de execução.
Caso esteja no terminal vendo o serviço ser executado, pressione CTRL
+ Z
para congelar o serviço (equivalente ao sinal STOP
) e o comando fg
para retornar o processo em modo de execução (equivalente ao sinal CONT
).
NOTA: É comum pressionar CTRL
+ Z
ao invés de CTRL
+ C
acidentalmente, e fazer um processo ficar congelado. Utilize o comando jobs
para ver todos processos que estão congelados.
Last updated