我在我的服务器上运行nmap,发现一个奇怪的端口打开。 我试图找出是否有方法将该端口映射到特定的进程,但不知道是否有这样一个工具。
有什么build议么?
和其他文章中提到的Netstat一样,lsof命令也应该能够做到这一点。 只需使用这个:
lsof -i :<port number>
所有的过程都应该出现。 我经常在OS X上使用它。
Debianpipe理文章lsof
您需要的工具是lsof
,它将列出文件(以及套接字和端口)。 它很有可能被安装,而且很可能是攻击者的版本,这意味着它会骗你。
这确实是一个rootkit。 我以前见过这种行为,它总是一个rootkit。 您的系统遭到入侵,您使用的源自同一台计算机的任何工具都不可信。 启动到一个Live CD(它具有只读受信任的二进制文件),并使用它来提取您的数据,设置等。您拥有的任何程序,您拥有的任何脚本都会放弃它们 。 不要带他们 。 对待他们,系统,好像他们有麻风病,因为他们这样做 。
尽快做到这一点。 哦,并拔掉您的networking连接 – 拒绝攻击者访问。
sudo netstat -lnp
列出正在侦听传入连接的端口以及打开端口的相关进程。
netstat -anp
“-p”告诉它列出端口打开的进程ID。 -an通知它列出侦听端口,不parsing名称。 在繁忙的系统上,可以大大加快它返回的速度。
netstat -anp | grep“LIST”
这只会给你开放的端口。
如果您无法看到使用操作系统工具打开的端口,并且您怀疑存在入侵,则可能是安装了rootkit。
rootkit可能已经改变了系统工具,以避免某些进程和端口或更改的内核模块。
您可以使用多个自动化工具来检查rootkit。 “apt-cache search rootkit”在Ubuntu中显示如下:
chkrootkit - rootkit detector rkhunter - rootkit, backdoor, sniffer and exploit scanner unhide - Forensic tool to find hidden processes and ports
如果你碰巧有一个rootkit,你可以恢复到你的系统“改变”,但我build议你找出如何入侵,并强化系统,不要重复。
它们不是Ubuntu专有的,你也可以在CentOS中使用它们。 只要find包装或从他们的网页下载。
通过该端口的输出,似乎你正在运行pcanywhere:“ Ы <Enter>”非常类似于“请按<Enter>”,这是pcanywhere的欢迎消息。 我不知道为什么这个进程没有显示在进程列表中。 你是根?
您可以尝试重新启动以查看它是否是一次性运行。
为了说明@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
(LiSt打开文件)中看到它是java,这不是有帮助的。 用PID运行ps
命令,我们可以马上看到它是CrashPlan。