Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pspy — Monitore processos Linux sem permissões de root. | Kitploit
Ferramentas/GitHubGitHub/dominicbreuker/pspy
Escalada de PrivilégiosReconhecimentoColeta de InformaçõesCTFTestes de Penetração
GitHubdominicbreuker/pspy

pspy

Monitore processos Linux sem permissões de root.

Ver Repositório
6.1k56718há 7 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

pspy - espionagem de processos Linux sem privilégios

Go Report Card Maintainability Test Coverage CircleCI

pspy é uma ferramenta de linha de comando projetada para espionar processos sem necessidade de permissões de root. Ela permite que você veja comandos executados por outros usuários, tarefas cron, etc., à medida que são executados. Ótima para enumeração de sistemas Linux em CTFs. Também ótima para demonstrar aos seus colegas por que passar segredos como argumentos na linha de comando é uma má ideia.

A ferramenta coleta informações de varreduras do procfs. Observadores Inotify colocados em partes selecionadas do sistema de arquivos acionam essas varreduras para capturar processos de curta duração.

Primeiros passos

Download

Obtenha a ferramenta na máquina Linux que deseja inspecionar. Primeiro obtenha os binários. Baixe os binários lançados aqui:

  • 32 bit versão estática grande: pspy32 download
  • 64 bit versão estática grande: pspy64 download
  • 32 bit versão pequena: pspy32s download
  • 64 bit versão pequena: pspy64s download

Os arquivos compilados estaticamente devem funcionar em qualquer sistema Linux, mas são bastante grandes (~4MB). Se o tamanho for um problema, tente as versões menores que dependem da libc e são comprimidas com UPX (~1MB).

Compilar

Use Go instalado no seu sistema ou execute o processo de compilação baseado em Docker que foi executado para criar o lançamento. Para este último, certifique-se de que o Docker esteja instalado e execute make build-build-image para construir uma imagem Docker, seguido por make build para compilar os binários com ela.

Você pode executar pspy --help para aprender sobre as flags e seus significados. O resumo é o seguinte:

  • -p: ativa a impressão de comandos para stdout (ativado por padrão)
  • -f: ativa a impressão de eventos do sistema de arquivos para stdout (desativado por padrão)
  • -r: lista de diretórios para observar com Inotify. O pspy observará todos os subdiretórios recursivamente (por padrão, observa /usr, /tmp, /etc, /home, /var e /opt).
  • -d: lista de diretórios para observar com Inotify. O pspy observará apenas esses diretórios, não os subdiretórios (vazio por padrão).
  • -i: intervalo em milissegundos entre as varreduras do procfs. O pspy verifica regularmente novos processos independentemente de eventos Inotify, apenas no caso de alguns eventos não serem recebidos.
  • -c: imprime comandos em cores diferentes. Eventos do sistema de arquivos não são mais coloridos, comandos têm cores diferentes com base no UID do processo.
  • --debug: imprime mensagens de erro verbosas que de outra forma ficam ocultas.

As configurações padrão devem ser suficientes para a maioria das aplicações. Observar arquivos dentro de /usr é o mais importante, pois muitas ferramentas acessarão bibliotecas dentro dele.

Alguns exemplos mais complexos:

# print both commands and file system events and scan procfs every 1000 ms (=1sec)
./pspy64 -pf -i 1000 

# place watchers recursively in two directories and non-recursively into a third
./pspy64 -r /path/to/first/recursive/dir -r /path/to/second/recursive/dir -d /path/to/the/non-recursive/dir

# disable printing discovered commands but enable file system events
./pspy64 -p=false -f

Exemplos

Observação de tarefas cron

Para ver a ferramenta em ação, basta clonar o repositório e executar make example (Docker necessário). É sabido que passar senhas como argumentos de linha de comando não é seguro, e o exemplo pode ser usado para demonstrar isso. O comando inicia um contêiner Debian no qual uma tarefa cron secreta, executada por root, altera a senha de um usuário a cada minuto. O pspy é executado em primeiro plano, como usuário myuser, e verifica processos. Você deve ver uma saída semelhante a esta:

~/pspy (master) $ make example
[...]
docker run -it --rm local/pspy-example:latest
[+] cron started
[+] Running as user uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),27(sudo)
[+] Starting pspy now...
Watching recursively    : [/usr /tmp /etc /home /var /opt] (6)
Watching non-recursively: [] (0)
Printing: processes=true file-system events=false
2018/02/18 21:00:03 Inotify watcher limit: 524288 (/proc/sys/fs/inotify/max_user_watches)
2018/02/18 21:00:03 Inotify watchers set up: Watching 1030 directories - watching now
2018/02/18 21:00:03 CMD: UID=0    PID=9      | cron -f
2018/02/18 21:00:03 CMD: UID=0    PID=7      | sudo cron -f
2018/02/18 21:00:03 CMD: UID=1000 PID=14     | pspy
2018/02/18 21:00:03 CMD: UID=1000 PID=1      | /bin/bash /entrypoint.sh
2018/02/18 21:01:01 CMD: UID=0    PID=20     | CRON -f
2018/02/18 21:01:01 CMD: UID=0    PID=21     | CRON -f
2018/02/18 21:01:01 CMD: UID=0    PID=22     | python3 /root/scripts/password_reset.py
2018/02/18 21:01:01 CMD: UID=0    PID=25     |
2018/02/18 21:01:01 CMD: UID=???  PID=24     | ???
2018/02/18 21:01:01 CMD: UID=0    PID=23     | /bin/sh -c /bin/echo -e "KI5PZQ2ZPWQXJKEL\nKI5PZQ2ZPWQXJKEL" | passwd myuser
2018/02/18 21:01:01 CMD: UID=0    PID=26     | /usr/sbin/sendmail -i -FCronDaemon -B8BITMIME -oem root
2018/02/18 21:01:01 CMD: UID=101  PID=27     |
2018/02/18 21:01:01 CMD: UID=8    PID=28     | /usr/sbin/exim4 -Mc 1enW4z-00000Q-Mk

Primeiro, o pspy imprime todos os processos em execução no momento, cada um com PID, UID e a linha de comando. Quando o pspy detecta um novo processo, ele adiciona uma linha a este registro. Neste exemplo, você encontra um processo com PID 23 que parece alterar a senha do myuser. Isso é o resultado de um script Python usado no crontab privado do root /var/spool/cron/crontabs/root, que executa este comando shell (verifique crontab e script). Observe que o myuser não pode ver nem o crontab nem o script Python. Com o pspy, ele pode ver os comandos mesmo assim.

Exemplo de CTF do Hack The Box

Abaixo está um exemplo da máquina Shrek do Hack The Box. Neste desafio de CTF, a tarefa é explorar uma tarefa cron oculta que está alterando a propriedade de todos os arquivos em uma pasta. A vulnerabilidade é o uso inseguro de um caractere curinga junto com chmod (detalhes para o leitor interessado). Requer um trabalho de adivinhação considerável para encontrá-la e explorá-la. Com o pspy, porém, a tarefa cron é fácil de encontrar e analisar:

animated demo gif

Como funciona

Baixar ferramenta