【网络安全】nmap端口扫描初识(一)

什么是端口扫描

端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关),但是端口扫描不但可以为黑客所利用,同时端口扫描还是网络安全工作者的必备的利器,通过对端口的扫描,了解网站中出现的漏洞以及端口的开放情况,对网站安全方面有着不可或缺的贡献,是网络安全中的基础认知。
 
目前在市面上主要的端口扫描工具是X_Scan、SuperScan、nmap,其中在这里主推的是nmap,因为nmap具有以下的这一些优点:

  1. 多种多样的参数,丰富的脚本库,满足用户的个人定制需求,其中脚本库还提供了很多强大的功能任你选择

  2. 强大的可移植性,基本上能在所有的主流系统上运行,而且代码是开源的

  3. 详细的文档说明,和强大的社区团队进行支持,方便新人上手

 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具,但是nmap也是有一些缺点的,比如说上手较难,但是难上手是相对的,与其他达到这种功能性的软件产品相比,还是比较容易上手的,但是这也不妨碍nmap成为世界千万安全专家列为必备的工具之一,在其中的一些影视作品中《黑客帝国2》、《特警判官》中都有亮相。
 

Nmap功能介绍

Centos Install:

# yum -y install nmap

Ubuntu Install:

# apt-get install nmap -y

Nmap包含四项基本功能:

  1. 主机发现(Host Discovery)

  2. 端口扫描(Port Scanning)

  3. 版本侦测(Version Detection)

  4. 操作系统侦测(Operating System Detection)

 
下面我们介绍一下主机发现,主机发现顾名思义就是发现所要扫描的主机是否是正在运行的状态,接下来就来一个简单例子:获取http://baidu.com 的主机是否开启, 命令:nmap -F -sT -v baidu.com

  • -F:扫描100个最有可能开放的端口  

  •  -v 获取扫描的信息   

  • -sT:采用的是TCP扫描 不写也是可以的,默认采用的就是TCP扫描

运行结果如下:

nmap端口扫描初识(一)_java


如上图所示1,我们可以发现对URL进行解析花了0.01秒,如果是国外网站这个地方花费的时间较多,可以进行优化的,优化的方法会稍后介绍
图中所示2,是总共的运行时间
图中的3是说明有98个端口被屏蔽了,也就是说明了网站的防火墙是开启的,因为没有开启防火墙是不会对端口进行屏蔽的。
 
端口的状态,一般有如下几种:

nmap端口扫描初识(一)_java_02


图中的4是本次返回的关键信息,其中我们要主要关注的是端口号,端口状态,端口上的服务。
 
那你可能就会要问为什么要关注这些端口呢?那这个问题就要转到探讨为什么要进行扫描?
扫描对于黑客和安全人员来说,大致流程都是如下所示:

nmap端口扫描初识(一)_java_03


从这个图中我们不难发现,我们主要关注的区域就是这些内容,接下来就来讨论下,上面提出来的问题?怎样对URL解析的时间进行优化,在Nmap重提供了不进行解析的参数(-n),这样就不会对域名进行解析了

其中关于域名解析的相关参数还有:

  • -R 为所有的目标主机进行解析

  • --system-dns 使用系统域名解析器进行解析,这个解析起来会比较慢

  • --dns-server 服务器选择DNS解析

说到-R注释的意思你会有所体会,其实nmap的扫描解析不止是对一个目标主机进行解析,还可以对一定范围内的目标主机群进行解析
 
例如:查找180.149.132.151-152的主机的状态以及端口状态,分析如下:
1、虽然查找的主机的数量不多,但是这样查找起来也是很浪费时间的, 所有我们可以通过使用快速查找的方法来节约时间

快速查找端口方法的原理如下:
默认的情况下,我们的查找是查找最有可能开放的1000端口,但是使用快速端口查找(参数 -F )会查找最有可能开放的100个端口,这样也就节约了10倍的时间

 2、这里我们需要获取端口的状态,所以就不能使用参数(-sn),这个参数是可以跳过端口扫描,直接进行主机发现的
输入命令:nmap -F -sT -v -n 180.149.132.151-152     180.149.132.151:baidu.com的IP地址

PS:1、-sn参数只能扫描的主机,不能扫描端口,另一个参数也要特别注意的是(-PE)通过ICMP echo判定主机是否存活

运行情况如下:

nmap端口扫描初识(一)_java_04


图片中的1处指的是,采用sT的扫描方法,这种扫描方法准确,速度快,但是这样的扫描容易被防火墙和IDS发现并记录,所以这种方法,实际中并不多用
由图中的3处我们可以知道在不进行解析的情况下扫描用时为4.53秒,比解析的时候用的时间节约了不少
图中的4说明了扫描了2个主机
 
 提示:
在nmap运行的时候,如果我们可以像其他编程一样打“断点”,直接按键盘的d键就行了,如果想知道运行的进度可以按下X键
 

扫描方法

好了,示例也讲完了,下面我们就来分析一下扫描的各种方法:
一、端口扫描
1、TCP扫描(-sT)
这是一种最为普通的扫描方法,这种扫描方法的特点是:扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现

运行的原理:通过建立TCP的三次握手连接来进行信息的传递

 2、SYN扫描(-sS)
这是一种秘密的扫描方式之一,因为在SYN扫描中Client端和Server端没有形成3次握手,所以没有建立一个正常的TCP连接,因此不被防火墙和日志所记录,一般不会再目标主机上留下任何的痕迹,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)
 
运行的原理图如下:

nmap端口扫描初识(一)_java_06

3、NULL扫描
NULL扫描是一种反向的扫描方法,通过发送一个没有任何标志位的数据包给服务器,然后等待服务器的返回内容。这种扫描的方法比前面提及的扫描方法要隐蔽很多,但是这种方法的准确度也是较低的, 主要的用途是用来判断操作系统是否为windows,因为windows不遵守RFC 793标准,不论端口是开启还是关闭的都返回RST包

nmap端口扫描初识(一)_java_07


但是虽然NULL具有这样的一些用处,但是本人却认为不宜使用NULL

  1. NULL方法的精确度不高,端口的状态返回的不是很准确

  2. 要获取目标主机的运行系统,可以使用参数(-O),来获取对于一些操作系统无法准确判断的,可以加上参数(-osscan-guess)

  3. NULL扫描易被过滤

4、FIN扫描
FIN扫描的原理与NULL扫描的原理基本上是一样的在这里就不重复了


5、ACK扫描
ACK扫描的原理是发送一个ACK包给目标主机,不论目标主机的端口是否开启,都会返回相应的RST包,通过判断RST包中的TTL来判断端口是否开启
 
运行原理图:

nmap端口扫描初识(一)_java_08


TTL值小于64端口开启,大于64端口关闭
大致上主要的扫描方法就是这些,除了我们可以按照这样些参数去执行扫描外,还可以自己定义一个TCP扫描包
 
6、自定义TCP扫描包的参数为(--scanflags)
例如:定制一个包含ACK扫描和SYN扫描的安装包
命令:nmap --scanflags ACKSYN baidu.com

Starting Nmap 7.00 ( https://nmap.org ) at 2016-09-19 23:57 CST
Nmap scan report for baidu.com (220.181.57.217)
Host is up (0.010s latency).
Other addresses for baidu.com (not scanned): 180.149.132.47 123.125.114.144 111.13.101.208
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 5.41 seconds

接下来还有各种扫描方法的端口列表参数:

  • -PS 端口列表用,隔开[tcp80 syn 扫描]

  • -PA 端口列表用,隔开[ack扫描](PS+PA测试状态包过滤防火墙【非状态的PA可以过】)【默认扫描端口1-1024】

  • -PU 端口列表用,隔开[udp高端口扫描 穿越只过滤tcp的防火墙]

其他的常见命令
输出命令
-oN 文件名 输出普通文件
-oX 文件名 输出xml文件


错误调试:
--log-errors 输出错误日志
--packet-trace 获取从当前主机到目标主机的所有节点

网络安全工程师企业级学习路线

很多小伙伴想要一窥网络安全整个体系,这里我分享一份打磨了4年,已经成功修改到4.0版本的《平均薪资40w的网络安全工程师学习路线图》对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

     如果你想要入坑黑客&网络安全工程师,这份282G全网最全的网络安全资料包!

  网络安全大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

​​​​​
 学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

​​​​​

网络安全源码合集+工具包

​​​​

视频教程

​​​​

 视频配套资料&国内外网安书籍、文档&工具

​​​
​​ 因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

黑客/网安大礼包:CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

好了就写到这了,大家有任何问题也可以随时私信问我!希望大家不要忘记点赞收藏哦!

特别声明:

此教程为纯技术分享!本文的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。!!!

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值