Linux'ta belirli bir bağlantı noktasının hangi sürecin açık olduğunu nasıl anlarım?


32

Nmap'ı sunucumda çalıştırdım ve garip bir portu açık buldum. Bu bağlantı noktasını belirli bir işlemle eşleştirmenin bir yolu olup olmadığını anlamaya çalışıyorum ancak böyle bir araç olup olmadığını bilmiyoruz.

Baska öneri?


Haziran 2018’de
Gogle’ın

Yanıtlar:


57

Netstat'ın yanı sıra diğer yazılarda da belirtildiği gibi, lsof komutu bunu iyi yapabilmelidir. Sadece şunu kullan:

lsof -i :<port number>

ve tüm süreçler ortaya çıkmalı. OS X'te oldukça sık kullanıyorum.

Lsof için Debian İdaresi yazısı


ilginç. Bunu bilmiyordum. Ancak, bu bir hack girişimi sonucu olarak bakıyorum. makine bir arkadaşın. ve netstat'ın rahatsız edici portuna telnet yapabilirsiniz, her ikisi de portun açık olduğunu ortaya çıkarmaz.
jnman

Limanın 5631 olduğu / etc / services göre pcanywheredata kadar çok şüpheli.
jnman

Şimdi, bu çok hoş, bunu bilmiyordum! Her zaman netstat kullanılır. Teşekkürler
buster

4
Ne netstat ne de hiçbiri portun kullanıldığını göstermiyorsa, ancak makine buna cevap veriyorsa, bir kök kiti takılmış olma ihtimali vardır. Herhangi bir veriyi makineden başka bir yere taşımayı ve ardından çekmeyi öneririm.
Kamil Kisiel

6
Bu gerçekten bir rootkit. Bu davranışı daha önce görmüştüm ve her zaman bir rootkit. Sisteminiz tehlikeye girmiştir ve kullandığınız hiçbir araca güvenilemez. Canlı bir CD'ye (salt okunur güvenilir ikili dosyalara sahip) önyükleme yapın ve verilerinizi, ayarlarınızı vb. Çıkartmak için kullanın. Onları getirme. Sisteme cüzzamış gibi davranın, çünkü / yapar /. İşiniz bittiğinde, yörüngeden çıkarın. Bunu mümkün olan en kısa sürede yapın. Oh ve ağ bağlantınızı çıkarın - saldırgan erişiminizi reddedin.
Avery Payne,

23

Uyarı: Sisteminiz tehlikede.

İhtiyacınız olan araç lsof, dosyaları (ve yuvaları ve bağlantı noktalarını) listeleyecektir. Büyük olasılıkla yüklü ve büyük olasılıkla saldırganın sürümü, bu size yalan söyleyeceği anlamına geliyor .

Bu gerçekten bir rootkit. Bu davranışı daha önce görmüştüm ve her zaman bir rootkit. Sisteminiz tehlikeye giriyor ve aynı makineden çıkan kullandığınız hiçbir araca güvenilemiyor. Canlı bir CD'ye (salt okunur güvenilir ikili dosyalara sahip) önyükleyin ve verilerinizi, ayarlarınızı vb. Çıkarmak için kullanın. Sahip olduğunuz tüm programlar, sahip olduğunuz komut dosyaları, onları terk edin . Onları getirme . Onlar çünkü onlar, cüzzam varmış gibi, onları ve ifllemlenir yapmak .

İşiniz bittiğinde, yörüngeden çıkarın .

Erkek bitti, bitti.

Bunu mümkün olan en kısa sürede yapın. Oh ve ağ bağlantınızı çıkarın - saldırgan erişiminizi reddedin.


1
Bu gerçekten her şeyi söylüyor. Neyin yanlış gittiğini anlayın, sunucuyu düzeltin, bilinen en iyi yedeklemeden geri yükleyin. Hayat oyun oynamak için çok kısa.
Rob Moir,

2
Ekleme: Ekleme tarihini bildiğinizden emin olun, çünkü kaldırdığınız aynı kök diziyi geri yüklüyorsunuz. Aksi takdirde, evet, o tarihten önce / sonra geri yükleyin.
Avery Payne,

1
Bu komik bir grafik. Sistemin tehlikeye girdiğini biliyorum (neyse ki benim değil). En çok merak ettiğim soru, ilk etapta nasıl girdiğini bulmaktı. Php / joomla ile şüpheleniyorum, ancak hiçbir kök kiti tespit etme aracının o portu göstermediği zamanlarda bu portun neden / neden açık kaldığını anlamak istedim.
jnman

1
lol @ "Oh, ve ağ bağlantınızı çıkarın"
theman_on_osx

6
Bu sonuca atlamadan önce , beklenmedik bağlantı noktalarının açık olmasının olası diğer açıklamaları var; yüklediğiniz ama unuttuğunuz bir paket gibi.
David J.

14
sudo netstat -lnp  

Gelen bağlantıları dinleyen portları ve portun açık olduğu ilgili işlemi listeler.


4

netstat -anp

"-P", portun açık olduğu işlem kimliğini listelemesini söyler. -An dinleme portlarını listelemesini ve isimleri çözmemesini söyler. Ne kadar hızlı döndüğünü büyük ölçüde hızlandıran yoğun sistemlerde.

netstat -anp | grep "LIST"

Bu sadece size açık portları verecek.


4

Bağlantı noktasını işletim sistemi araçlarıyla açık olarak göremiyorsanız ve izinsiz girildiğinden şüpheleniyorsanız, bir rootkit kurulu olabilir.

Kök seti, belirli işlem ve bağlantı noktalarından veya değişen çekirdek modüllerinden kaçınmak için sistem araçlarını değiştirmiş olabilir.

Rootkit'i çeşitli otomatik araçlarla kontrol edebilirsiniz. 'apt-cache search rootkit' Ubuntu’da aşağıdakileri gösterir:

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

Rootkit'iniz varsa, sisteminize 'değiştirilmiş olanı' geri döndürebilirsiniz, ancak izinsiz girişin nasıl yapıldığını bulmanızı ve sistemi tekrar etmemesi için sertleştirmenizi öneririm.


Ubuntu'ya özel değillerdir, bunları CentOS'ta da kullanabilirsiniz. Sadece paketi arayın veya sayfalarından indirin.


Bu bağlantı noktasından çıkan çıktıda, gerçekten de pcanywhere çalıştırıyorsunuz gibi görünüyor: " Ы <Enter>", "pcanywhere hoş geldiniz mesajı olan" Lütfen <Enter> "tuşuna basın. İşlemin neden işlem listesinde görünmediğini bilmiyorum. Kök müsün?

Ayrıca, çalışan tek bir işlem olup olmadığını görmek için yeniden başlatmayı deneyebilirsiniz.


centos için herhangi bir öneriniz?
jnman

garip bir şekilde, unhide-tcp şüpheli bağlantı noktaları göstermiyor. chkrootkit / rkhunter her şeyi açık bir şekilde bildirdi (ancak bu soruyu sormadan önce şüpheli yönlendirmeleri sildiğimden dolayı)
jnman

FWIW, rootkit kendini / var / tmp / ... ve /var/tmp/.ICE-Unix/* 'de apache olarak kurmuştu. İkincisi, ilk kez farketmediğimden beri sinsi davranıyordu ve nasıl olduğunu merak ediyordum. heck bir bash süreci öldürüldükten sonra kendini yumurtlamaya devam etti.
jnman

Krakerin bir cron işi kurduğunu ortaya koydu.
jnman

0

@Bjtitus tarafından verilen cevabı açıklamak için, örneğin çok detaylı bilgiler alabilirsiniz:

$ 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

Orada kalamarın süreç olduğunu görebiliyorum, ama gerçekte benim squid-deb-proxylimanı çeken benim .

Java uygulamasının bir başka güzel örneği:

$ 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

lsof(LiSt Open Files) içinde Java'dan daha faydalı olduğunu görebilirsiniz. psKomutu PID ile çalıştırarak CrashPlan olduğunu hemen görebiliriz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.