कैसे बताएं कि लिनक्स पर एक विशिष्ट पोर्ट किस प्रक्रिया से खुला है?


32

मैंने अपने सर्वर पर नैम्प चलाया और एक अजीब पोर्ट खुला पाया। मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या उस पोर्ट को किसी विशिष्ट प्रक्रिया में मैप करने का एक तरीका है, लेकिन इस तरह के उपकरण होने पर कोई विचार नहीं है।

कोई सुझाव?


Gogle जून 2018 में # 1 उत्तर होने के लिए
अपवोट करें।

जवाबों:


57

नेटस्टैट के साथ-साथ अन्य पदों में उल्लेखित, lsof कमांड यह ठीक करने में सक्षम होना चाहिए। बस इस का उपयोग करें:

lsof -i :<port number>

और सभी प्रक्रियाएँ सामने आनी चाहिए। मैं इसे ओएस एक्स पर काफी बार उपयोग करता हूं।

Lsof के लिए डेबियन प्रशासन लेख


दिलचस्प। मुझे इसकी जानकारी नहीं थी। हालाँकि, मैं इसे एक हैक प्रयास के परिणाम के रूप में देख रहा हूँ। मशीन एक दोस्त की है आप अपकमिंग पोर्ट BUT lsof और netstat को टेलनेट कर सकते हैं, दोनों ही पोर्ट को ओपन होने का खुलासा नहीं करते हैं।

पोर्ट 5631 है जो / etc / services के अनुसार pcanywheredata है इसलिए बहुत संदिग्ध है।

अब, यह अच्छा है, मुझे नहीं पता था कि! हमेशा नेटस्टैट का इस्तेमाल किया। साभार
बस्टर

4
यदि न तो नेटस्टैट और न ही एलएसओएफ पोर्ट को उपयोग किए जाने के रूप में दिखाता है, लेकिन मशीन इसका जवाब दे रही है, तो संभावना है कि एक रूट किट स्थापित किया गया है। मैं मशीन से किसी भी डेटा को कहीं और स्थानांतरित करने की सलाह देता हूं और फिर इसे nuking करता हूं।
कामिल किसिल

6
यह वास्तव में एक rootkit है। मैंने इस व्यवहार को पहले देखा है, और यह हमेशा एक रूटकिट है। आपके सिस्टम से समझौता किया जाता है, और आपके द्वारा उपयोग किए जा रहे किसी भी उपकरण पर भरोसा नहीं किया जा सकता है। एक लाइव सीडी में बूट करें (जिसमें रीड-ओनली विश्वसनीय बायनेरिज़ है) और इसका उपयोग अपने डेटा, सेटिंग्स आदि को निकालने के लिए करें। आपके पास जो भी प्रोग्राम, कोई स्क्रिप्ट थी, उन्हें छोड़ दें। उन्हें मत लाओ। इस प्रणाली को मानो कि यह कुष्ठ रोग है, क्योंकि यह / करता है /। एक बार जब आप कर रहे हैं, यह कक्षा से nuke। इसे जल्द से जल्द करें। ओह, और अपने नेटवर्क कनेक्शन को अनप्लग करें - अपने हमलावर की पहुंच से इनकार करें।
एवरी पायने

23

चेतावनी: आपकी प्रणाली से समझौता किया गया है।

आपके लिए आवश्यक उपकरण है lsof, जो फाइलों (और सॉकेट्स और पोर्ट्स) को सूचीबद्ध करेगा। यह सबसे अधिक संभावना है, और यह सबसे अधिक संभावना है हमलावर का संस्करण, जिसका अर्थ है कि यह आपके लिए झूठ होगा ।

यह वास्तव में एक rootkit है। मैंने इस व्यवहार को पहले देखा है, और यह हमेशा एक रूटकिट है। आपके सिस्टम से छेड़छाड़ की जाती है, और जो भी उपकरण आप उपयोग कर रहे हैं, उसी मशीन से उत्पन्न होने पर भरोसा नहीं किया जा सकता है। एक लाइव सीडी में बूट करें (जिसमें रीड-ओनली विश्वसनीय बायनेरिज़ है) और इसका उपयोग अपने डेटा, सेटिंग्स आदि को निकालने के लिए करें। आपके पास जो भी प्रोग्राम, कोई स्क्रिप्ट थी, उन्हें छोड़ देंउन्हें मत लाओ । उनका इलाज करो, और सिस्टम, जैसे कि उन्हें कुष्ठ रोग है, क्योंकि वे करते हैं

एक बार जब आप कर रहे हैं, यह कक्षा से nuke

आदमी पर खेल, खेल खत्म।

इसे जल्द से जल्द करें। ओह, और अपने नेटवर्क कनेक्शन को अनप्लग करें - अपने हमलावर की पहुंच से इनकार करें।


1
यह सब सच में कहता है। पता करें कि क्या गलत हुआ, सर्वर को समतल करें, अंतिम ज्ञात अच्छे बैकअप से पुनर्स्थापित करें। गेम खेलने के लिए जीवन बहुत छोटा है।
रोब मोइर

2
बस जोड़ना: सुनिश्चित करें कि आप ब्रेक-इन की तारीख के बारे में जानते हैं, क्योंकि आप उसी रूटकिट को पुनर्स्थापित कर रहे हैं जिसे आपने अभी हटाया था। अन्यथा, हाँ, / से पहले / उस तिथि से पुनर्स्थापित करें।
अवनी पायने

1
यह एक अजीब ग्राफिक है। मुझे पता है कि सिस्टम समझौता है (शुक्र है कि यह मेरा नहीं है)। जिस प्रश्न के बारे में मैं अधिक उत्सुक था, वह नीचे ट्रैक कर रहा था कि वह पहली जगह में कैसे मिला। मुझे php / joomla के माध्यम से संदेह है, लेकिन यह समझना चाहता था कि यह पोर्ट कैसे / क्यों खुला रह रहा था जब रूट किट का कोई भी पता लगाने वाले उपकरण उस पोर्ट को नहीं दिखा रहे थे।
jnman

1
lol @ "ओह, और अपने नेटवर्क कनेक्शन को अनप्लग करें"
theman_on_osx

6
इससे पहले कि आप उस निष्कर्ष पर जाएं , अप्रत्याशित बंदरगाहों के खुले रहने के अन्य संभावित स्पष्टीकरण हैं; इस तरह के एक पैकेज के रूप में आप स्थापित लेकिन के बारे में भूल गया।
डेविड जे।

14
sudo netstat -lnp  

उन बंदरगाहों को सूचीबद्ध करता है जो आने वाले कनेक्शन के लिए सुन रहे हैं और संबंधित प्रक्रिया जिसमें बंदरगाह खुला है।


4

netstat -anp

"-पी" इसे पोर्ट खोलने वाली प्रक्रिया-आईडी को सूचीबद्ध करने के लिए कहता है। -An इसे सुनते हुए बंदरगाहों को सूचीबद्ध करने के लिए कहता है और नामों को हल नहीं करता है। व्यस्त प्रणालियों पर जो बहुत तेजी से वापस आ सकती है।

netstat -anp | grep "सूची"

वह आपको केवल खुले पोर्ट देगा।


4

यदि आप ऑपरेटिंग सिस्टम टूल के साथ पोर्ट को खोलकर नहीं देख सकते हैं और आपको संदेह है कि यह एक घुसपैठ है तो यह हो सकता है कि रूटकिट इंस्टॉल किया गया हो।

रूटकिट कुछ प्रक्रियाओं और बंदरगाहों या परिवर्तित कर्नेल मॉड्यूल से बचने के लिए सिस्टम टूल बदल सकता था।

आप कई स्वचालित उपकरणों के साथ रूटकिट के लिए जांच कर सकते हैं। 'एप्ट-कैश सर्च रूटकिट' उबंटू में निम्नलिखित दिखाता है:

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

यदि आपके पास एक रूटकिट होता है तो आप अपने सिस्टम में 'परिवर्तित' को वापस कर सकते हैं, लेकिन मेरा सुझाव है कि आपको पता चले कि इंट्रसियन कैसे बनाया गया था और इसे दोहराने के लिए नहीं।


वे उबंटू के लिए अनन्य नहीं हैं, आप उन्हें CentOS में भी उपयोग कर सकते हैं। बस पैकेज की तलाश करें या इसे अपने पेज से डाउनलोड करें।


उस पोर्ट से आउटपुट से ऐसा लगता है कि आप वास्तव में pcanywhere चला रहे हैं: "> <Enter>" बहुत ही समान है "कृपया दबाएं <Enter>" जो कि pcanywhere का स्वागत संदेश है। मुझे नहीं पता कि प्रक्रिया प्रक्रिया सूची में क्यों नहीं दिखाई देती है। क्या तुम जड़ हो?

आप यह देखने के लिए रिबूट करने की कोशिश कर सकते हैं कि क्या यह एक बार चलने वाली प्रक्रिया है, साथ ही।


सेंटो के लिए कोई सुझाव?
man

अजीब तरह से, अनहाइड-टीसीपी कोई संदिग्ध पोर्ट नहीं दिखाता है। chkrootkit / rkhunter ने सभी स्पष्ट (लेकिन ज्यादातर इसलिए कि मैंने इस सवाल को पूछने से पहले संदिग्ध
डायरियों

FWIW, रूटकिट ने अपाचे के रूप में / var / tmp / ... और /var/tmp/.ICE-Unix/* में स्थापित किया था। दूसरा तब से डर गया था क्योंकि मैंने इसे पहली बार नोटिस नहीं किया था और मैं सोच रहा था कि कैसे ... बिल्ली काटने की प्रक्रिया ने खुद को मारे जाने के बाद खुद को बचाए रखा।
jnman

पटाखा निकला एक क्रॉन नौकरी स्थापित की।
jnman

0

@Bjtitus के जवाब पर विस्तार से जानने के लिए आप कुछ विस्तृत जानकारी प्राप्त कर सकते हैं, उदाहरण के लिए:

$ 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

मैं वहीं देख सकता हूं कि स्क्वीड प्रक्रिया है, लेकिन यह वास्तविक squid-deb-proxyहै जो बंदरगाह को ले जा रहा है।

एक जावा ऐप का एक और अच्छा उदाहरण:

$ 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) में देख सकते हैं कि यह जावा है, जो सहायक से कम है। psPID के साथ कमांड चलाने से हम तुरंत देख सकते हैं कि यह CrashPlan है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.