专栏首页漫流砂从原理上分析端口扫描技术

从原理上分析端口扫描技术

现在我们已经知道了目标的IP,下一步就是想办法如何侵入目标系统,如果没有办法物理接触目标,那么我们的方法就只能是线上了,那么入侵的途径就是端口了,只有对方开了端口,我们的数据才能流动过去,所以接下来就讲讲如何对端口开放情况进行扫描

PS:端口扫描的前提是我们已经确认了该主机是存活的!

端口扫描也是分为TCP 和 UDP 两种

UDP

使用ICMP包进行扫描,如果目标给我们返回端口不可达,那么说明端口是关闭状态,如果没有回包就说明端口开放

nmap

nmap –sU 192.168.1.1

端口一共有65535个,nmap 默认选择1000 个常用端口进行扫描

很多时候我们只想对特定的端口进行扫描,比如永恒之蓝爆发的时候我们想扫描445端口,此时我们可以使用 –p 参数

nmap -sU 192.168.1.1 –p445

从图中可以看出来 –p 后面有没有空格都是可以的,不过大多数人还是习惯不带空格

如果我们严格一些进行全端口扫描

nmap –sU 192.168.1.1 –p1-65535

或者

nmap -sU 1.1.1.1 -p-

全端口扫描需要的时间也会变得特别长

NC

之前的文章介绍过nc,不过今天我抓包的时候发现了一件很有趣的事情

nc -vnzu 192.168.1.104 79-81

眼睛尖的应该已经看出来了,UDP扫描模式下,其实夹杂着一个特殊的TCP扫描,而且目标端口也就是哪31337,看到这个我一下就笑了,这作者一定是搞安全的。31337端口是meterpreter 的bindshell方式经常使用的端口,所以nc在测试时候会向这个端口发送请求,如果碰巧这个主机被开放了这种后门就算是中奖了!

UDP协议的扫描相对单一一些,TCP的扫描方式有很多种

TCP

Tcp端口扫描有很多方式:

隐蔽SYN扫描

僵尸扫描

全连接扫描

FIN扫描

圣诞树扫描

空扫描

ACK扫描

窗口扫描

RPC扫描

1. 隐蔽SYN扫描(半开扫描)

向目标端口发送SYN 包,如果端口开放会返回SYN+ACK ,如果不开放就会返回RST

这种扫描并不是建立完整连接,只是在网络层进行扫描,应用日志并不会记录这种扫描行为,所以比较隐蔽

Nmap

nmap –sS 192.168.1.1 –p445,80 --open

hping3

hping3 192.168.1.1 --scan 1-100 -S

使用SYN来扫描,扫描1-100端口

可以看到80端口开放着,并且返回的数据包置位为 SYN+ACK

2. 全连接的端口扫描

全连接的端口扫描其实很容易理解,就是说与目标端口建立完整的三次握手连接,从而确定目标端口的开放情况。

一旦我们与目标建立连接,那么在应用日志中就会记录下这种扫描的行为,如果我们扫描的端口特别多,那么在日志中留下的足迹也是相当的扎眼,所以这种扫描方式也很容易被各种检测系统检测到。

Nmap

nmap -sT 192.168.1.1 -p1-100

Dmitry

dmitry -p 192.168.1.1

特意把抓包分析放在80端口这里,我们可以看到,之前的77,78等端口都是我们向192.168.1.1发送SYN ,目标给我们返回 RST+ACK ,表示这个端口并没有开放

80端口处可以看见完整的三次握手,四次挥手,表示这个端口时开放的。

NC

nc -nv -w 1 -z 192.168.1.1 1-100

-w 超时时间为1s

-z 扫描过程中不发数据

3. 僵尸扫描(IDLE扫描)

僵尸扫描目前我还没有成功过,或许说是情况太过苛刻了,我第一次接触也是看苑老师的演示,当时惊呼原来隐蔽扫描还可以做到这种地步!

需要满足的条件

——可伪造源地址(以前是可以的,随着发展,各大路由厂商都进行防伪造的策略)

——选择僵尸机

——在网络中的闲置主机,什么也不干(没有任何服务和网络连接)

——系统使用递增的IP的id(目前流行的windows和linux的这个id都是随机产生的,早期的xp和2000是递增的)

僵尸扫描的大概过程是这样

我的主机用M代表,僵尸机用Z表示,目标机用T表示

第一环节:

M首先向 Z 发送 SYN/ACK ,之后僵尸机返回RST并且携带的id设为x

第二环节:

M通过伪造源IP,给T 发送SYN包,把来源IP为造成Z,之后如果T上的端口存在,则T 向 Z发送SYN/ACK包,此时Z 会返回给T一个RST,其中携带id为x+1

第三个环节:

M再次向Z发送 SYN/ACK,之后Z 同样返回 RST,携带的id为x+2

此时就可以判断端口是开放的了。

如果此端口并不是开放的,那么 T 会返回给Z 一个RST

之后 M 再向Z发送 SYN/ACK ,之后 Z 向M 返回 RST ,id为x+1

这种扫描方式几乎是不可能被发现我们的IP,已经是做到了极致。

Nmap

nmap -p445 192.168.1.1 --script=ipidseq.nse

这个脚本是判断该主机是否能成为一个好的僵尸

如果返回Incremental 则是可以成为僵尸

如果返回其他的则不可以

可以看到我的路由器可以充当僵尸设备,它的ip id 每次加2递增的,满足条件,今天我就用我的路由器在内网模拟一下这个场景

我开了一台ip为192.168.1.106的win7虚拟机作为目标,192.168.1.1作为僵尸机。

nmap 192.168.1.106 -sI 192.168.1.1 -Pn -p100-200

可能由于时间问题,有两个包的顺序有些问题,不过可以看到最终是成功了。

4. FIN扫描(针对UNIX系统)

向目标发送一个FIN数据包,如果端口是关闭的应该返回一个RST包,通常只对Unix系统有用,

nmap –sF 192.168.1.1

5. 圣诞树扫描(Xmas Tree Scan)

发送一个 FIN、URG、PUSH数据包,如果端口是关闭的,会返回一个RST nmap –sX 192.168.1.1

测试后在windows,mac,linux效果都不好

6. 空扫描

不使用任何的置位,如果端口关闭会给我们返回一个RST,这个之前的hping3采用了。

nmap –sN 192.168.1.1

效果也不是十分理想

7. ACK扫描

主要来测试防火墙规则

如果目标端口开放,则返回一个RST

nmap –sA 192.168.1.1

8. 窗口扫描(Window Scan)

这种技术可以侦测出特定类型的目标系统(如AIX和FreeBSD系统)上的端口的开放情况,不同情况返回的tcp的window字段的长度是不一样的

nmap –sW 192.168.1.1

9. RPC扫描(Unix)

这种扫描只用于unix,用来发现并确认目标系统上的RPC服务端口及其关联的应用程序和版本号

nmap –sR 192.168.1.1

如今-sR已经被整合到-sV


以上便是TCP扫描的各种方式,相比来说前两种比较常用,其他这些有侧重的针对。

-END-

本文分享自微信公众号 - 漫流砂(yidalidemao)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nmap

    Nmap 是网络安全届的明星级工具了,在扫描届几乎无敌,同时配合Script可以实现基本的渗透测试。Nmap 是安全人员必须熟练掌握的一个工具

    意大利的猫
  • 服务扫描

    nmap 识别出是windows7 ,2008,8.1中的一个,看来windows系统之间的黏性还是挺大的。

    意大利的猫
  • 记一次攻防演练tips | 攻防tips

    关于信息收集,已经有方法论类的东西总结的很好了,我只说我喜欢的,以百度代替真实站点

    意大利的猫
  • nmap使用了解

    dns-zone-transfer:尝试从dns服务器上拖一个AXFR请求的区域文件

    随心助手
  • 江雪分析:从勒索病毒里面感受到的一些想法

    截止发稿前,Nemty病毒发生变异,该病毒通过邮件的形式来传播,只要你点击按钮,则会自动下载到本地 来运行。

    天钧
  • linux下nmap的使用-linux网络扫描技术

    在CentOS7下输入nmap -h或者nmap --help命令可以查看nmap命令的详细用法

    ccf19881030
  • Microsoft/thrifty vs facebook/swift: TTransportException:Buffer doesn't

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • Web安全学习笔记之Nmap命令参考指南

    在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设...

    Jetpropelledsnake21
  • CDC跨时钟域处理及相应的时序约束【set_clock_groups】【set_max_delay】【FPGA探索者】

    CDC(Clock Domain Conversion)跨时钟域分单bit和多bit传输,其中:

    FPGA探索者
  • FPGA时序约束理论篇之时序路径与时序模型

      典型的时序路径有4类,如下图所示,这4类路径可分为片间路径(标记①和标记③)和片内路径(标记②和标记④)。

    猫叔Rex

扫码关注云+社区

领取腾讯云代金券