it-swarm-id.com

Bagaimana cara mengetahui proses apa yang memiliki port tertentu terbuka di Linux?

Saya menjalankan nmap di server saya dan menemukan port aneh terbuka. Saya mencoba mencari tahu apakah ada cara untuk memetakan port itu ke proses tertentu tetapi tidak tahu apakah ada alat seperti itu.

Ada saran?

32
jnman

Seperti halnya Netstat, yang disebutkan dalam posting lain, perintah lsof harus dapat melakukan ini dengan baik. Gunakan ini saja:

lsof -i :<port number>

dan semua proses harus muncul. Saya menggunakannya pada OS X cukup sering.

Artikel Administrasi Debian untuk lsof

57
bjtitus

Peringatan: Sistem Anda terganggu.

Alat yang Anda butuhkan adalah lsof, yang akan mencantumkan file (dan soket dan port). Kemungkinan besar diinstal, dan kemungkinan besar versi penyerang, yang berarti akan bohong untuk Anda.

Ini memang rootkit. Saya telah melihat perilaku ini sebelumnya, dan itu adalah selalu rootkit. Sistem Anda terganggu, dan alat apa pun yang Anda gunakan yang berasal dari mesin yang sama tidak dapat dipercaya. Boot ke Live CD (yang memiliki binari tepercaya yang hanya dapat dibaca) dan gunakan itu untuk mengekstrak data, pengaturan, dll. Program apa pun yang Anda miliki, skrip apa pun yang Anda miliki, abaikan. Jangan bawa mereka. Perlakukan mereka, dan sistem, seolah-olah mereka menderita kusta, karena mereka lakukan.

Setelah selesai, nuke dari orbit .

Game over man, game over.

Lakukan ini sesegera mungkin. Oh, dan cabut koneksi jaringan Anda - tolak akses penyerang Anda.

23
Avery Payne
Sudo netstat -lnp  

Daftar port yang mendengarkan koneksi masuk dan proses terkait yang memiliki port terbuka.

14
Joe

netstat -anp

"-P" memberitahukannya untuk mencantumkan proses-ID yang membuka porta. -An mengatakannya untuk mendaftar port mendengarkan dan tidak menyelesaikan nama. Pada sistem sibuk yang dapat sangat mempercepat seberapa cepat ia kembali.

netstat -anp | grep "DAFTAR"

Itu hanya akan memberi Anda port terbuka.

4
sysadmin1138

Jika Anda tidak dapat melihat port terbuka dengan alat sistem operasi dan Anda mencurigai adanya gangguan, bisa jadi rootkit telah diinstal.

Rootkit dapat mengubah alat sistem untuk menghindari proses dan port tertentu atau mengubah modul kernel.

Anda dapat memeriksa rootkit dengan beberapa alat otomatis. 'apt-cache search rootkit' menampilkan yang berikut di Ubuntu:

chkrootkit - rootkit detector
rkhunter - rootkit, backdoor, sniffer and exploit scanner
unhide - Forensic tool to find hidden processes and ports

Jika Anda memiliki rootkit, Anda dapat mengembalikan 'perubahan' ke sistem Anda, tetapi saya sarankan Anda mencari tahu bagaimana intrusi dibuat dan mengeraskan sistem agar tidak mengulangi.


Mereka tidak eksklusif untuk Ubuntu, Anda dapat menggunakannya di CentOS juga. Carilah paket atau unduh dari halaman mereka.


Dengan output dari port itu sepertinya Anda menjalankan pcanywhere memang: "�Ы� <Enter>" sangat mirip dengan "Silakan tekan <Enter>" yang merupakan pesan selamat datang pcanywhere. Saya tidak tahu mengapa prosesnya tidak muncul dalam daftar proses. Apakah Anda root?

Anda dapat mencoba mem-boot ulang untuk melihat apakah itu proses satu kali yang berjalan juga.

4
chmeee

Untuk menguraikan jawaban oleh @bjtitus Anda bisa mendapatkan info yang sangat rinci, misalnya:

$ 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

Saya dapat melihat di sana bahwa cumi-cumi adalah prosesnya, tetapi sebenarnya saya squid-deb-proxy yang mengambil port.

Contoh bagus lain dari aplikasi 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

Anda dapat melihat dalam lsof (LiSt Open Files) bahwa itu adalah Java, yang kurang bermanfaat. Menjalankan perintah ps dengan PID yang dapat kita lihat segera bahwa itu adalah CrashPlan.

0
ErebusBat