我nmap使用自己的私有 IP 地址在 Lubuntu 机器上运行。
那些“未知”服务是什么?
我怎样才能找到他们?是fuser应该发现的?
谢谢。
$ nmap -p0-65535 192.168.1.198
Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-19 23:32 EDT
Nmap scan report for olive.fios-router.home (192.168.1.198)
Host is up (0.00050s latency).
Not shown: 65526 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
2049/tcp open nfs
5900/tcp filtered vnc
41441/tcp open unknown
43877/tcp open unknown
44847/tcp open unknown
55309/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 6.22 seconds
Run Code Online (Sandbox Code Playgroud)
那些“未知”服务是什么?
这些服务是“未知的”,因为它们没有列在nmap的services文件中,nmap 使用它来将端口号映射到服务。在我的系统上,nmap使用/usr/share/nmap/nmap-services.
我通过执行找到了文件所在的位置(我在 devuan,一个基于 debian 的系统,如 ubuntu 或 mint):
$ dpkg -L nmap
Run Code Online (Sandbox Code Playgroud)
在基于 RedHat/Suse 的系统上,您使用rpm -ql nmap.
我怎样才能找到他们?热熔器应该找出来吗?
fuser是nmap的朋友,对于每个人,只需运行fuser <port>/<protocol>(nmap打印出来的第一列):
$ fuser 41441/tcp
41441/tcp 1234
Run Code Online (Sandbox Code Playgroud)
这将为您提供进程的 pid(上例,1234),您可以将其传递给 ps
$ ps 1234
PID TTY STAT TIME COMMAND
1234 ? Sl 169:39 /usr/lib/jvm/java-8-oracle/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager [...]
Run Code Online (Sandbox Code Playgroud)
在我的例子中,它实际上是 Apache Tomcat ...
现在,我搜索 41441/usr/share/nmap/nmap-services并将“未知”替换为“tomcat”:
tomcat 41441/tcp
Run Code Online (Sandbox Code Playgroud)
现在,nmap 检测到我的 tomcat:
$ nmap -p0-65535 192.168.1.198
Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-19 23:32 EDT
Nmap scan report for olive.fios-router.home (192.168.1.198)
Host is up (0.00050s latency).
Not shown: 65526 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
2049/tcp open nfs
5900/tcp filtered vnc
41441/tcp open tomcat
Run Code Online (Sandbox Code Playgroud)