A Debian-first guide to reviewing abnormal processes, tracing what launched them, checking network activity, and responding safely.
Suspicious processes are running programs that do not fit your normal system behavior, appear under unusual names, consume unexpected resources, execute from odd locations, or maintain unexplained network connections.
In many cases, suspicious processes are one of the earliest visible signs that something went wrong.
/tmp, /dev/shm, or user home directoriesps aux --sort=-%cpu | head -n 25
ps auxf
A suspicious shell or script often makes more sense when you see what launched it.
sudo ss -tulnp
sudo ss -tpn
This helps correlate processes with ports and active connections.
ps aux | grep -E "/tmp|/dev/shm|/var/tmp|/home/"
sudo readlink -f /proc/<PID>/exe
sudo ls -lah /proc/<PID>/cwd
sudo tr '\0' ' ' < /proc/<PID>/cmdline; echo
sudo ufw deny out to <IP_ADDRESS>
If a process is communicating with an untrusted endpoint, contain the network path before making deeper changes.
sudo kill -TERM <PID>
sudo kill -KILL <PID>
Prefer TERM first. Use KILL only when necessary.
sudo systemctl stop <service_name>
sudo systemctl disable <service_name>
ps auxf
sudo systemctl list-units --type=service --state=running
crontab -l
sudo crontab -l
Recovery means finding the source, not just killing the symptom.
sha256sum /path/to/binary
file /path/to/binary
strings /path/to/binary | less
sudo systemctl list-unit-files --type=service
sudo find /etc/cron* -type f
sudo find /etc/systemd /lib/systemd -type f | less
If the process was malicious or unexplained, review related accounts, startup paths, and recent file changes before assuming the system is clean.
The best defense is reducing what can run, where it can run from, and how quickly you notice something abnormal.
sudo systemctl list-units --type=service --state=running
sudo ls -lah /tmp
sudo ls -lah /dev/shm
sudo ls -lah /var/tmp
sudo apt list --installed
sudo ss -tulnp
sudo ufw status numbered
sudo ss -tpn
Manual process review should come first. Future recommendations may include options that make service visibility, alerting, or host isolation easier, but the core workflow remains command-driven and Debian-first.
All commands shown are based on Debian-based systems unless otherwise noted.