Câu trả lời:
Cũng như Netstat, được đề cập trong các bài viết khác, lệnh lsof sẽ có thể làm điều này tốt. Chỉ cần sử dụng này:
lsof -i :<port number>
và tất cả các quy trình sẽ được đưa ra. Tôi sử dụng nó trên OS X khá thường xuyên.
Công cụ bạn cần là lsof
, sẽ liệt kê các tệp (và ổ cắm và cổng). Nó rất có thể đã được cài đặt và rất có thể là phiên bản của kẻ tấn công, có nghĩa là nó sẽ nói dối bạn.
Đây thực sự là một rootkit. Tôi đã thấy hành vi này trước đây và nó luôn luôn là một rootkit. Hệ thống của bạn bị xâm phạm và bất kỳ công cụ nào bạn đang sử dụng có nguồn gốc từ cùng một máy đều không thể tin cậy được. Khởi động vào Live CD (có các tệp nhị phân đáng tin cậy chỉ đọc) và sử dụng nó để trích xuất dữ liệu, cài đặt của bạn, v.v ... Bất kỳ chương trình nào bạn có, bất kỳ tập lệnh nào bạn có, đều từ bỏ chúng . Đừng mang chúng . Đối xử với họ và hệ thống, như thể họ mắc bệnh phong, vì họ làm .
Làm điều này càng sớm càng tốt. Ồ, và rút phích cắm kết nối mạng của bạn - từ chối quyền truy cập kẻ tấn công của bạn.
netstat -anp
"-P" bảo nó liệt kê ID tiến trình có cổng mở. -A bảo nó liệt kê các cổng nghe và không giải quyết tên. Trên các hệ thống bận rộn có thể tăng tốc độ nhanh như thế nào.
netstat -anp | grep "DANH SÁCH"
Điều đó sẽ chỉ cung cấp cho bạn các cổng mở.
Nếu bạn không thể thấy cổng mở bằng các công cụ hệ điều hành và bạn nghi ngờ có sự xâm nhập thì đó có thể là rootkit đã được cài đặt.
Rootkit có thể đã thay đổi các công cụ hệ thống để tránh các quy trình và cổng nhất định hoặc thay đổi các mô-đun hạt nhân.
Bạn có thể kiểm tra rootkit bằng một số công cụ tự động. 'Bộ tìm kiếm apt-cache' hiển thị như sau trong Ubuntu:
chkrootkit - rootkit detector
rkhunter - rootkit, backdoor, sniffer and exploit scanner
unhide - Forensic tool to find hidden processes and ports
Nếu bạn tình cờ có một rootkit, bạn có thể hoàn nguyên 'đã thay đổi' cho hệ thống của mình nhưng tôi khuyên bạn nên tìm hiểu cách thức xâm nhập được thực hiện và làm cứng hệ thống để nó không lặp lại.
Chúng không độc quyền với Ubuntu, bạn cũng có thể sử dụng chúng trong CentOS. Chỉ cần tìm gói hoặc tải xuống từ trang của họ.
Với đầu ra từ cổng đó, có vẻ như bạn đang chạy pcanywhere thực sự: "<Enter>" rất giống với "Vui lòng nhấn <Enter>", đó là thông báo chào mừng ở mọi nơi. Tôi không biết tại sao quy trình không hiển thị trong danh sách quy trình. Bạn đã root chưa
Bạn cũng có thể thử khởi động lại để xem đó có phải là quá trình một lần không.
Để giải thích câu trả lời của @bjtitus, bạn có thể lấy một số thông tin rất chi tiết, ví dụ:
$ lsof -i :8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
squid3 1289 proxy 15u IPv6 14810490 0t0 TCP *:8000 (LISTEN)
$ ps -fp 1289
UID PID PPID C STIME TTY TIME CMD
proxy 1289 1 0 09:48 ? 00:00:00 /usr/sbin/squid3 -N -f /etc/squid-deb-proxy/squid-deb-proxy.conf
Tôi có thể thấy ngay đó là mực là quá trình, nhưng thực tế là tôi squid-deb-proxy
đang chiếm cảng.
Một ví dụ khác về ứng dụng java:
$ lsof -i :4242
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 3075 root 86u IPv4 12019 0t0 TCP *:4242 (LISTEN)
$ ps -fp 3075
UID PID PPID C STIME TTY TIME CMD
root 3075 1 15 May24 ? 3-16:07:25 /usr/local/crashplan/jre/bin/java -Dfile.encoding=UTF-8 -Dapp=CrashPlanService -DappBaseName=CrashPl
Bạn có thể thấy trong lsof
(LiSt Open Files) rằng đó là java, ít hữu ích hơn. Chạy ps
lệnh với PID chúng ta có thể thấy ngay đó là CrashPlan.