web安全day43:网络扫描和Nmap的使用
目录
扫描技术
网络扫描是确认网络运行的主机的工作程序,或是为了对主机进行攻*击,或是为了网络安全评估。网络扫描程序,如Ping扫射和端口扫描,返回关于哪个IP地址映射有主机连接到因特网上的并是工作的,这些主机提供什么样的服务的信息。另一种扫描方法是反向映射,返回关于哪个IP地址上没有映射出活动的主机的信息,这使攻*击者能假设出可行的地址。
漏*洞扫描器一般会附带一个用于识别主机漏*洞的特征库,并定期进行更新。在漏*洞扫描的时候,就是利用特征库里的脚本与目标系统的反馈信息进行匹配,如果能够匹配上,就说明存在某一个漏*洞。
漏*洞扫描器在识别漏*洞的过程中,会向目标发送大量的数据包,有时候会导致目标系统拒绝服务或被扫描数据包阻塞,扫描行为也会被对方的入*侵检测设备发现。
漏*洞扫描器扫描出的结果通常会有很多误报,即报告中的漏*洞实际上并不存在,或者漏报,即实际存在的漏*洞没有被发现。因此,在漏*洞扫描器扫描后还需要人工进行分析,确定哪些漏*洞是实际存在的,这个过程就是漏*洞验证。这是渗*透测试过程中不可缺少的一步,只有验证漏*洞存在的真实性,才能对漏*洞进行深度利用。
渗*透测试工作中,在得到客户认可的情况下,可以使用扫描器进行扫描,但使用时一定要注意规避风险,对其系统运行可能造成的影响降到最低。
漏*洞扫描通常分为两类,黑盒扫描和白盒扫描。
黑盒扫描
一般都是通过远程识别服务的类型和版本,对服务是否存在漏*洞进行判定。在一些最新的漏*洞扫描软件中,应用了一些更高级的技术,比如模拟渗*透攻*击等。
白盒扫描
在具有主机操作权限的情况下进行漏*洞扫描。比如微软的补丁更新程序会定期对你的操作系统进行扫描,查找存在的安全漏*洞,并向你推送相应的操作系统补丁。
白盒扫描的结果更加准确,但是一般来说它所识别出的漏*洞不应该作为外部渗*透测试的最终数据,因为这些漏*洞由于防火墙和各类防护软件的原因很可能无法在外部渗*透测试中得到利用。同时,一般情况下我们没有机会获得主机的操作权限,即用户名和口令。
扫描工具
通过工具扫描可以提高工作效率。主要的工具有:
Nessus
NeXpose
Nmap
OpenVAS
关于OpenVAS的下载和安装请移步web安全day40:最新版OpenVAS的安装配置
资产发现
发现目标环境中有哪些资产,包括联网设备,主机,服务器,各种服务等。
使用的工具主要有nmap,它是跨平台的。其官网是nmap.org。
推荐一本书:《nmap渗*透测试指南》,可以私信博主获得pdf版本。
主机发现
通过IP地址判断有哪些主机在线。
端口扫描
确定在线的某个主机开启的端口,说明在这个端口上允许着某个服务。
Nmap的使用
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
其基本功能有三个,一是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。
Nmap基本功能主要有3个
探测一组主机是否在线
扫描主机端口,嗅探所提供的网络服务
推断主机所用的操作系统
Nmap语法
nmap 【空格】【选项|多选项|协议】{空格】【目标】
选项
简单扫描
nmap 192.168.189.151
该方式可以针对IP或者域名进行扫描,迅速,可以很方便的发现目标端口的开放情况以及主机在线情况
全面扫描/综合扫描
nmap -A 192.168.189.151
可以全面扫描指定IP或者域名的所有端口及其目标系统信息等。
C:Usersliangkoong.PC-202001011544>nmap -A 192.168.189.151 Starting Nmap 7.92 ( https://nmap.org ) at 2022-01-10 14:58 中国标准时间 Nmap scan report for bogon (192.168.189.151) Host is up (0.00071s latency). Not shown: 988 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open tcpwrapped 80/tcp open http Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02) |_http-title: xE5x8Fx88xE4xB8x80xE4xB8xAAWordPressxE7xABx99xE7x82xB9 | http-robots.txt: 1 disallowed entry |_/wp-admin/ |_http-generator: WordPress 5.4.2 |_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Windows Server 2008 R2 Datacenter 7601 Service Pack 1 microsoft-ds 3306/tcp open mysql MySQL (unauthorized) 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49156/tcp open msrpc Microsoft Windows RPC 49157/tcp open msrpc Microsoft Windows RPC MAC Address: 00:0C:29:61:0C:62 (VMware) Device type: general purpose Running: Microsoft Windows 7|2008|8.1 OS CPE: cpe:/o:microsoft:windows_7::- cpe:/o:microsoft:windows_7::sp1 cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_server_2008:r2 cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_8.1 OS details: Microsoft Windows 7 SP0 - SP1, Windows Server 2008 SP1, Windows Server 2008 R2, Windows 8, or Windows 8.1 Update 1 Network Distance: 1 hop Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows Host script results: |_nbstat: NetBIOS name: WIN-6NMLDT86D3N, NetBIOS user: <unknown>, NetBIOS MAC: 00:0c:29:61:0c:62 (VMware) | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) | smb2-time: | date: 2022-01-10T06:59:24 |_ start_date: 2022-01-08T13:14:14 | smb2-security-mode: | 2.1: |_ Message signing enabled but not required | smb-os-discovery: | OS: Windows Server 2008 R2 Datacenter 7601 Service Pack 1 (Windows Server 2008 R2 Datacenter 6.1) | OS CPE: cpe:/o:microsoft:windows_server_2008::sp1 | Computer name: WIN-6NMLDT86D3N | NetBIOS computer name: WIN-6NMLDT86D3Nx00 | Workgroup: WORKGROUPx00 |_ System time: 2022-01-10T14:59:24+08:00 |_clock-skew: mean: -2h40m03s, deviation: 4h37m07s, median: -4s TRACEROUTE HOP RTT ADDRESS 1 0.71 ms bogon (192.168.189.151) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 88.18 seconds
扫描指定段
nmap 192.168.189.1-255
ping扫描
nmap -sP 92.168.189.151
ping扫描只进行ping,然后显示出在线的主机。使用该选项可以轻易获取目标信息而不会被轻易发现。默认情况下,nmap会发送一个icmp回声请求和一个tcp报文到目标端口。ping扫描的优点是不会返回太多的信息造成对结果的分析,并且这是一种非常高效的扫描方式。
无ping扫描
nmap -P0 127.0.0.1
无ping扫描通常用于防火墙或者目标主机禁止ping的情况下,能够确定正在运行的机器,并且避免被防火墙发现。
TCP SYN ping扫描
发送一个设置了SYN标志位的空TCP报文。默认目的端口为80,也可以使用-PS22,23,25等指定端口,每个端口会被并发扫描。
当目标主机的防火墙阻止TCP ACK或者ICMP echo请求时,可以使用TCP SYN Ping来扫描,判断目标主机的存活情况。
nmap -PS -v 192.168.189.151//-v是展开细节
TCP ACK Ping扫描
类似于TCP SYN Ping扫描,区别在于设置的TCP的标志位是ACK而不是SYN,使用这种方式可以探测阻止SYN包或者ICMP Echo请求的主机。
nmap -PA -v 192.168.189.151
可以同时使用-PS和-PA。
nmap -PS -PA 192.168.189.151
UDP Ping扫描
发送一个空的UDP报文到指定端口,如果不指定端口默认是40125。
如果目标主机响应则返回一个ICMP端口不可达错误,如果目标主机不响应则返回各种ICMP错误信息。
ICMP Ping Types扫描
使用-PE;-PP;-PM可以进行ICMP Ping Types扫描。
Nmap发送一个ICMP TYPE 8的echo 请求报文到目标主机,从目标主机得到一个type 0的echo 响应报文。
-PP选项是ICMP 时间戳Ping扫描
-PM选项可以进行ICMP 地址掩码Ping扫描,有不错的穿透防火墙的效果。
ARP Ping扫描
ARP的功能是主机将ARP请求广播到网络上的所有主机,并接收返回信息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。
局域网环境中,使用ARP Ping是最有效的,在本地局域网中防火墙不会禁止ARP请求,使得它比其他Ping扫描都更加高效。
nmap -PR 192.168.189.151
列表扫描
是主机扫描的退化心事,仅仅列出指定网络上的每一台主机,不发送任何报文到目标主机。
nmap -sL 192.168.189.0/24