Linuxで特定のポートが開いているプロセスを確認する方法は?


32

サーバーでnmapを実行しましたが、奇妙なポートが開いています。そのポートを特定のプロセスにマップする方法があるかどうかを把握しようとしていますが、そのようなツールがあるかどうかはわかりません。

助言がありますか?


2018
SDsolar18年

回答:


57

他の投稿で言及されているNetstatと同様に、lsofコマンドはこれをうまく実行できるはずです。これを使用するだけです:

lsof -i :<port number>

そして、すべてのプロセスが起動するはずです。私はOS Xで非常に頻繁にそれを使用しています。

lsofのDebian管理記事


面白い。私はこれについて知りませんでした。しかし、私はハックの試みの結果としてこれを調査しています。マシンは友人のものです。問題のあるポートにtelnetで接続できますが、lsofとnetstatはどちらもポートが開いていることを明らかにしません。
jnman 2009年

ポートは5631で、/ etc / servicesによればpcanywheredataなので非常に疑わしいです。
jnman

今、それはいいです、私はそれを知りませんでした!常にnetstatを使用しました。ありがとう
バスター

4
netstatもlsofも使用中のポートを表示していないが、マシンがポートに応答している場合、ルートキットがインストールされている可能性があります。マシンからデータを別の場所に移動してから、それを消すことをお勧めします。
カミルKisiel 09年

6
これは確かにルートキットです。以前にこの動作を見たことがありますが、これは常にルートキットです。システムが危険にさらされており、使用しているツールは信頼できません。Live CD(読み取り専用の信頼できるバイナリを含む)を起動し、それを使用してデータ、設定などを抽出します。使用したプログラム、使用したスクリプトはすべて破棄します。それらを持ってこないでください。/ does /であるため、ハンセン病があるかのようにシステムを扱います。完了したら、軌道からそれを破棄します。できるだけ早くこれを行います。ああ、ネットワーク接続を外します-攻撃者のアクセスを拒否します。
エイブリーペイン

23

警告:システムが危険にさらされています。

必要なツールはでlsof、ファイル(およびソケットとポート)をリストします。インストールされている可能性が最も高く、攻撃者のバージョンである可能性が高いため、ユーザーにつきます。

これは確かにルートキットです。以前にこの動作を見たことがありますが、これは常にルートキットです。システムが危険にさらされており、同じマシンを起源とする使用中のツールは信頼できません。ライブCD(読み取り専用の信頼できるバイナリを含む)を起動し、それを使用してデータ、設定などを抽出します。使用していたプログラム、使用していたスクリプトはすべて破棄しますそれらを持ってこないでください。彼らはので、彼らは、ハンセン病を持っているかのように、それら、およびシステムを扱いません

完了したら、orbitから破棄します。

ゲームオーバーマン、ゲームオーバー。

できるだけ早くこれを行います。ああ、ネットワーク接続を外します-攻撃者のアクセスを拒否します。


1
これは本当にすべてを言います。問題の原因を特定し、サーバーを平坦化し、最後に確認された正常なバックアップから復元します。人生はゲームをプレイするには短すぎます。
ロブ・モイア

2
追加するだけ:削除したルートキットと同じルートキットを復元する可能性があるため、侵入の日付を必ず確認してください。そうでない場合は、はい、その日付の/ before /から復元します。
エイブリーペイン

1
それは面白いグラフィックです。私はシステムが危険にさらされていることを知っています(ありがたいことに私のものではありません)。私がもっと興味を持った質問は、そもそも彼がどうやって入ったのかを追跡することでした。私はphp / joomla経由で疑っていますが、ルートキット検出ツールのいずれもそのポートを表示していないときにこのポートがどのように/なぜ開いていたのかを理解したかったです。
jnman 09年

1
笑@「ああ、およびネットワーク接続を外してください」
theman_on_osx

6
その結論ジャンプする前に、予期しないポートが開いていることについて、他の可能な説明があります。インストールしたが忘れたパッケージなど。
デビッドJ.

14
sudo netstat -lnp  

着信接続をリッスンしているポートと、ポートが開いている関連プロセスを一覧表示します。


4

netstat -anp

「-p」は、ポートが開いているプロセスIDをリストするように指示します。-anは、リスニングポートをリストし、名前を解決しないように指示します。ビジーなシステムでは、戻る速度を大幅に高速化できます。

netstat -anp | grep "LIST"

それはあなたに開いているポートを与えるだけです。


4

オペレーティングシステムのツールでポートが開いていないことがわかり、侵入が疑われる場合は、ルートキットがインストールされている可能性があります。

ルートキットは、特定のプロセスやポートを回避するためにシステムツールを変更したり、カーネルモジュールを変更した可能性があります。

いくつかの自動化ツールを使用してルートキットを確認できます。「apt-cache search rootkit」は、Ubuntuで次を示します。

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

ルートキットを使用している場合は、システムへの「変更」を元に戻すことができますが、侵入がどのように行われたかを確認し、繰り返さないようにシステムを強化することをお勧めします。


これらはUbuntu専用ではなく、CentOSでも使用できます。パッケージを探すか、ページからダウンロードしてください。


そのポートからの出力では、実際にpcanywhereを実行しているように見えます。「。<Enter>」はpcanywhereのウェルカムメッセージである「Enter <Enter>」に非常に似ています。プロセスがプロセスリストに表示されない理由がわかりません。あなたはルートですか?

再起動を試して、1回限りのプロセスが実行されているかどうかを確認することもできます。


centosの提案はありますか?
jnman

奇妙なことに、unhide-tcpは疑わしいポートを表示しません。chkrootkitの/ rkhunterのは、報告されたすべての明確な(しかし、私はこの質問をする前に不審なdirsに削除された主な理由)
jnman

FWIW、ルートキットは/ var / tmp / ...および/var/tmp/.ICE-Unix/*にApacheとしてインストールされていました。一体型のbashプロセスは、殺された後も自身を産み続けました。
jnman

クラッカーがcronジョブをインストールしたことが判明しました。
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ポートを使用しているのは私のことです。

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

あなたはで見ることができlsof、それが参考に満たないのjava、であること(一覧オープンファイル)。psPIDでコマンドを実行すると、CrashPlanであることがすぐにわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.