it-swarm-vi.com

Làm thế nào để biết quá trình nào có một cổng cụ thể mở trên Linux?

Tôi chạy nmap trên máy chủ của mình và thấy một cổng lạ mở. Tôi đang cố gắng tìm hiểu xem có cách nào để ánh xạ cổng đó tới một quy trình cụ thể không nhưng không biết có công cụ nào như vậy không.

Bất kỳ đề xuất?

32
jnman

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.

Bài viết quản trị Debian cho lsof

57
bjtitus

Cảnh báo: Hệ thống của bạn bị xâm nhập.

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 với bạn.

Đây thực sự là một rootkit. Tôi đã thấy hành vi này trước đây và đó là luôn luôn 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 CD Live (có các tệp nhị phân đáng tin cậy chỉ đọc) và sử dụng dữ liệu đó để 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ó, từ bỏ chúng. Đừng mang chúng. Hãy đối xử với họ và hệ thống, như thể họ mắc bệnh phong, vì họ do.

Khi bạn đã hoàn tất, nuke nó từ quỹ đạo .

Game over man, game over.

Thực hiện việc này càng sớm càng tốt. Ồ, và rút 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.

23
Avery Payne
Sudo netstat -lnp  

Liệt kê các cổng đang lắng nghe các kết nối đến và quá trình liên quan có cổng mở.

14
Joe

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ở.

4
sysadmin1138

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.

4
chmeee

Để 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ế squid-deb-proxy Của tôi đang chiếm lấy cổng.

Một ví dụ điển hình 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 lệnh ps với PID chúng ta có thể thấy ngay đó là CrashPlan.

0
ErebusBat