|
网络扫描:标志信息计算机与网络安全 昨天
一次性付费进群,长期免费索取资料。
回复公众号:微信群 可查看进群流程。
标志信息是指一些主机或服务响应的欢迎信息或版本信息。例如,登录FTP服务后,可能返回的标志信息为220(vsFTPd 3.0.3)或220 Welcome to blah FTP service.。这些信息可以帮测试人员确认服务类型。本文介绍获取标志信息的方法。
1. Netcat标志信息
Netcat是一个多功能网络化工具,使用该工具可以实现各种信息收集和扫描。下面介绍使用Netcat工具获取标志信息的方法。使用Netcat工具获取标志信息的语法格式如下:
nc -v [hostname] [port]
其中,-v表示显示详细信息。
使用Netcat工具获取目标主机192.168.33.152上的21号端口标志信息。执行命令如下:
root@daxueba:~# nc -v 192.168.33.152 21
192.168.33.152 [192.168.33.152] 21 (ftp) open
220 Welcome to blah FTP service.
从输出的信息中可以看到,通过Netcat工具识别出了主机192.168.33.152上的FTP服务,其标志信息为Welcome to blah FTP service.。由于Netcat工具维持一个开放的连接,因而运行nc命令后不会自动停止,需要使用Ctrl+C快捷键强制停止运行。
2. Python标志信息
在使用Python解释器交互时,可以直接调用Python模块,也可以导入任何希望使用的特定模块。下面介绍通过导入套接字模块,来获取标志信息的方法。
使用Python套接字获取主机192.168.33.152上21端口的标志信息,具体实现方法如下:
(1)启动Python解释器,执行命令如下:
Python 2.7.15+ (default, Jul 29 2021, 11:56:52)
[GCC 8.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
如果看到“>>>”提示符,则表示成功进入了Python解释器的交互模式。
(2)导入套接字,执行命令如下:
>>> import socket
执行以上命令后,将不会输出任何信息。
(3)配置新建的套接字,执行命令如下:
>>> bangrab = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
执行以上命令后,将不会输出任何信息。
(4)初始化连接,执行命令如下:
>>> bangrab.connect(("192.168.33.152",21))
执行以上命令后,将不会输出任何信息。如果尝试连接一个没有开放端口的连接时,Python解释器将返回一个错误信息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused
从输出的错误信息中可以看到,目标端口拒绝了该连接。由此可以说明目标端口没有运行,也就意味着将无法获取对应的标志信息。
(5)获取标志信息。执行命令如下:
>>> bangrab.recv(4096)
'220 Welcome to blah FTP service.\r\n'
从输出的信息中可以看到,已经成功获取到了目标主机上21端口号的标志信息。而获取到的标志信息为220 Welcome to blah FTP service.。
(6)关闭与远程服务的连接,并退出Python程序。执行命令如下:
>>> bangrab.close() #关闭与远程服务的连接
>>> exit() #退出Python程序
执行以上命令后,则成功退出了Python程序。
3. Dmitry标志信息
Dmitry是一个一体化的信息收集工具,使用该工具对目标主机实施扫描,也可以获取到一些标志信息。下面介绍使用Dmitry工具获取标志信息的方法。
使用Dmitry工具获取标志信息的语法格式如下:
dmitry -pb [host]
以上语法中的选项及含义如下。
-p:实施一个TCP端口扫描。
-b:获取扫描端口返回的标志信息。
使用Dmitry工具获取目标主机192.168.33.152上运行服务的标志信息。执行命令如下:
root@daxueba:~# dmitry -pb 192.168.33.152
Deepmagic Information Gathering Tool
"There be some deep magic going on"
HostIP:192.168.33.152 #主机IP地址
HostName:192.168.33.152 #主机名
Gathered TCP Port information for 192.168.33.152 #收集的TCP端口信息
---------------------------------
Port State #端口及状态
21/tcp open
>> 220 Welcome to blah FTP service. #标志信息
22/tcp open
>> SSH-2.0-OpenSSH_7.8p1 Debian-1 #标志信息
80/tcp open
Portscan Finished: Scanned 150 ports, 146 ports were in state closed
All scans completed, exiting
从以上输出信息中可以看到,目标主机上开放的端口有3个,分别是21、22和80。其中,获取到了TCP的21和22号端口对应的标志信息。
4. Nmap NSE标志信息
在Nmap工具中有一个集成的Nmap Scripting Engine(NSE)脚本,该脚本可以通过远程端口来读取正在运行的网络服务标志信息。Nmap NSE脚本可以使用Nmap中的--script选项调用,并且使用-sT选项指定的TCP全连接。当TCP全连接建立时,即可收集到服务的标志信息。下面介绍使用Nmap NSE获取标志信息的方法。
使用Nmap NSE获取标志信息的语法格式如下:
nmap -sT [host] -p [port] --script=banner
以上语法中的选项及含义如下。
-sT:实施TCP全连接扫描。
-p:指定扫描的端口号,这里可以指定单个端口、多个端口或端口范围。如果指定多个不连续端口时,则之间使用逗号(,)分隔;如果指定端口范围时,则之间使用连接符进行连接;如果指定扫描所有端口的话,则使用-p-。
--script=banner:使用banner脚本实施扫描。
扫描目标主机上所有端口的标志信息。执行命令如下:
root@daxueba:~# nmap -sT 192.168.33.152 -p- --script=banner
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-29 16:54 CST
Nmap scan report for 192.168.33.152 (192.168.33.152)
Host is up (0.00022s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE #端口信息
21/tcp open ftp
|_banner: 220 Welcome to blah FTP service. #标志信息
22/tcp open ssh
|_banner: SSH-2.0-OpenSSH_7.8p1 Debian-1 #标志信息
80/tcp open http
MAC Address: 00:0C:29:FD:58:4B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 17.72 seconds
从以上输出信息中可以看到获取到的标志信息。
5. Amap标志信息
Amap是一个应用程序映射工具,可以用来通过远程端口来读取正在运行的网络服务标志。下面将介绍使用Amap工具以获取标志信息的方法。
使用Amap获取标志信息的语法格式如下:
amap -B [host] [port]
其中,-B表示获取标志信息。
使用Amap工具获取目标主机192.168.33.152上22号端口的标志信息。执行命令如下:
root@daxueba:~# amap -B 192.168.33.152 22
amap v5.4 (www.thc.org/thc-amap) started at 2021-07-29 17:00:44 - BANNER
mode
Banner on 192.168.33.152:22/tcp : SSH-2.0-OpenSSH_7.8p1 Debian-1\r\n
amap v5.4 finished at 2021-07-29 17:00:44
从以上输出信息中可以看到,通过Amap工具成功获取到了目标主机上22号端口对应的标志信息。其中,该标志信息为“SSH-2.0-OpenSSH_7.8p1 Debian-1”。
|
|