QUẢN LÝ TIẾN TRÌNH — ps, top, htop, kill, pkill, pgrep


 💡 Mục tiêu: Hiểu cách xem, giám sát và điều khiển các tiến trình (process) đang chạy — kỹ năng cần thiết để:

  • Tìm service đang lắng nghe port
  • Kill process chiếm port hoặc gây crash
  • Duy trì shell ổn định
  • Phát hiện process khả nghi (reverse shell, backdoor...)

✅ 1. ps — XEM TIẾN TRÌNH ĐANG CHẠY

🔹 ps là gì?

  • PS = Process Status
  • Dùng để liệt kê các tiến trình đang chạy trên hệ thống.

🔹 Các tùy chọn hay dùng:

ps
Chỉ hiển thị tiến trình của user hiện tại, trong terminal hiện tại
ps aux
Hiển thịtất cả tiến trình— của mọi user, mọi terminal
ps -ef
Hiển thị đầy đủ dạng cây (parent/child process)

💡 Ví dụ thực tế trong pentest:

bash
ps aux | grep "python"

→ Tìm xem có script Python nào đang chạy — có thể là web server, reverse shell...

bash
ps aux | grep "nc"

→ Tìm netcat — có thể là bind shell hoặc reverse shell.

bash
ps -ef | grep 1234

→ Tìm tiến trình có PID 1234.

✅ 2. top & htop — GIÁM SÁT HỆ THỐNG THEO THỜI GIAN THỰC

🔹 top

  • Hiển thị danh sách tiến trình đang chạy, sắp xếp theo mức sử dụng CPU.
  • Cập nhật tự động mỗi vài giây.
  • Giao diện dòng lệnh — có sẵn trên mọi hệ thống.

→ Gõ top → nhấn q để thoát.


🔹 htop (nâng cao — cần cài đặt)

  • Giao diện đẹp hơn, màu sắc, hỗ trợ chuột, dễ dùng.
  • Có thể kill process trực tiếp bằng phím F9.

→ Cài đặt nếu chưa có:

bash
sudo apt install htop

→ Gõ htop → dùng phím mũi tên → chọn process → F9 để kill.

💡 Trong pentest:

  • Dùng top để xem:
    • Tiến trình nào đang ngốn CPU/RAM → có thể là exploit đang chạy.
    • Tiến trình lạ → có thể là backdoor.
    • Kiểm tra xem shell của bạn có bị kill không.
    • ✅ 3. kill — GIẾT TIẾN TRÌNH THEO PID

      🔹 Cú pháp:

      bash
      kill [PID]

      → Gửi tín hiệu SIGTERM — yêu cầu process tự kết thúc.

      bash
      kill -9 [PID]

      → Gửi tín hiệu SIGKILL — buộc process dừng ngay lập tức (không cho phép dọn dẹp).


      💡 Cách lấy PID:

      bash
      ps aux | grep "apache"

      → Kết quả:

      root 1234 0.0 0.5 12345 6789 ? Ss 10:00 0:00 /usr/sbin/apache2

      → PID = 1234

      → Kill:

      bash
      kill 1234
      # hoặc nếu không chịu chết:
      kill -9 1234

      ✅ 4. pkill — GIẾT TIẾN TRÌNH THEO TÊN

    • 🔹 Cú pháp:

      bash
      pkill [tên_process]

      → Không cần biết PID — chỉ cần biết tên.


      💡 Ví dụ:

      bash
      pkill apache2
      pkill python
      pkill nc

      → Giết tất cả tiến trình có tên chứa “apache2”, “python”, “nc”.

      ⚠️ Cẩn thận: pkill python → có thể giết luôn script bạn đang chạy!

       

      ✅ 5. pgrep — TÌM PID THEO TÊN

      🔹 Cú pháp:

      bash
      pgrep [tên_process]

      → Chỉ in ra PID — không làm gì thêm.


      💡 Ví dụ:

      bash
      pgrep sshd

      → Kết quả: 1234 → đó là PID của sshd.

      bash
      pgrep -f "python3 exploit"

      -f = tìm trong toàn bộ dòng lệnh → hữu ích khi bạn chạy script với tham số dài.

       

    • 🧠 TÌNH HUỐNG THỰC TẾ

    • 🔍 Tình huống 1: Port 80 bị chiếm → cần kill Apache để chạy web server của bạn

      bash
      ps aux | grep apache
      # → tìm thấy PID 1234

      sudo kill 1234
      # hoặc
      sudo pkill apache2

      → Giờ port 80 đã trống → bạn có thể chạy python3 -m http.server 80.

    • 🔍 Tình huống 2: Bạn chạy reverse shell bằng netcat — muốn kill nó để chạy lại

      bash
      pgrep nc
      # → kết quả: 5678

      kill 5678

      → Hoặc:

      bash
      pkill nc

      🔍 Tình huống 3: Hệ thống chậm — bạn nghi ngờ có process lạ

      bash
      top

      → Nhìn cột %CPU, %MEM → tìm process ngốn tài nguyên.

      → Nhấn P để sắp xếp theo CPU, M theo RAM.

      → Nếu thấy process lạ → ghi lại PID → kill -9 [PID].

    •  ✍️ BÀI TẬP THỰC HÀNH (TRONG KALI)

      1. Mở terminal → chạy ps aux | head -5 → xem 5 tiến trình đầu tiên.
      2. Chạy top → xem các process đang ngốn CPU → nhấn q để thoát.
      3. Mở terminal mới → chạy:
        bash
        sleep 100 &
        → Tạo tiến trình sleep chạy nền.
      4. Dùng ps aux | grep "sleep" → tìm PID của nó.
      5. Dùng kill [PID] → kill tiến trình đó.
      6. Chạy lại sleep 100 & → dùng pkill sleep để kill.
      7. Dùng pgrep sleep → xem có còn PID không.
      8. Cài htop (nếu chưa có): sudo apt install htop
      9. Chạy htop → dùng phím mũi tên → chọn process → F9Enter để kill.
      10. Thoát htop → dọn dẹp.
    • ⚠️ MẸO & LƯU Ý

    •  Dùng htop nếu được — dễ dùng, trực quan.

    • Không kill process hệ thống quan trọng (sshd, systemd...) → tránh crash máy.
    • Luôn dùng ps aux | grep [service] để tìm process đang chiếm port.
    • Dùng kill -9 khi process không chịu chết — nhưng tránh dùng bừa bãi.
    • ps aux → xem tất cả tiến trình top → giám sát hệ thống real-time htop → top nâng cao (cần cài) kill [PID] → giết process theo ID kill -9 [PID] → giết cứng, không cho phản kháng pkill [tên] → giết process theo tên pgrep [tên] → tìm PID theo tên

No comments:

Post a Comment