zoukankan      html  css  js  c++  java
  • Nmap 简单功能介绍/TCP Header/常见端口

    Nmap:Network Mapper,网络扫描和嗅探的工具包

    基本功能有3个:

    1.扫描主机端口,嗅探所提供的网络服务

    2.探测一组主机是否在线

    3.推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本

    首先需要温习一下tcp包头的相关基础知识

    TCP Header:

    Source port:源端口 占16位 2个字节,计算机一共65536个端口。0端口保留1-1024为系统服务端口,如果扫描时不指定端口范围,nmap默认扫描1-1024端口。

    Destination port :目的端口 16位 2个字节

    Sequence number:序列号 4个字节,用来标识从TCP源端向TCP目的端

    Acknowledgment number:确认号

    Data offset:数据偏移 

    Reserved:保留位

    TCP标志位:

    1.ACK  Acknowledgment    确认标志

    2.RST   Reset         复位标志

    3.URG  Urgent          紧急标志

    4.SYN   Synchronize   建立连接标志

    5.PSH   Push       推标志

    6.FIN     Finish        结束标志 

    Window Size:TCP窗口,用于流量控制,滑动窗口控制机制。每次只能接受一定量的数据

    Checksum:校验和

    三次握手,一般先发送SYN请求,再发RST重设就断开

    ICMP协议属于IP协议的一部分,主要诊断网络的问题

    ping 用的是 -0类型 Echo Reply

    -3 目标不可达,或者到了那回不来,路由过不去

    下面是一个ping的包,可以看到code参数Echo replay

    下面是常见端口对应的服务,Telnet主要用于路由器交换机远程调试,在设备上开启Telnet服务,可以远程登录进行调试。Telnet是明文协议,可以用抓包抓到密码,很多现在用ssh,可以用xshell登录。但是Telnet登录需要有这个命令,现在win10基本没有了telnet命令。如果想在win10使用telnet需要自己设置。

    SMTP邮件服务器。

    DNS发送请求的时候用udp协议

    SNMP:网络管理协议

    HTTPS:会在链路中对数据加密 443或者8433

    RDP:远程桌面协议

    1.如果用wireshark抓包分析,会发现几乎所有的情况都是在使用UDP,使用TCP的情况非常罕见,神秘兮兮。其实当解析器发出一个request后,返回的response中的tcp删节标志比特位被置1时,说明反馈报文因为超长而有删节。这是因为UDP的报文最大长度为512字节。解析器发现后,将使用TCP重发request,TCP允许报文长度超过512字节。既然TCP能将data stream分成多个segment,它就能用更多的segment来传送任意长度的数据。

    2. 另外一种情况是,当一个域的辅助域名服务器启动时,将从该域的主域名服务器primary DNS server执行区域传送。除此之外,辅域名服务器也会定时(一般时3小时)向PDS进行查询以便了解SOA的数据是否有变动。如有变动,也会执行一次区域传送。区域传送将使用TCP而不是UDP,因为传送的数据量比一个request或response多得多。

    发现主机是否存活,有些时候防火墙存在我们扫描不到主机是否存活,-p0或者-pn参数可以跳过发现主机直接扫描端口。局域网扫描时会经常抓到ARP的包,默认先发送ARP请求,如果有ARP的包说明这个主机就已经存在了。

    Nmap端口扫描常用命令:


    1.进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
    nmap -sP 192.168.1.0/24

    2.仅列出指定网络上的每台主机,不发送任何报文到目标主机:
    nmap -sL 192.168.1.0/24

    3.探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
    nmap -PS 192.168.1.234

    4.使用UDP ping探测主机:
    nmap -PU 192.168.1.0/24

    5.使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
    nmap -sS 192.168.1.0/24

    6.当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
    nmap -sT 192.168.1.0/24

    7.UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:
    nmap -sU 192.168.1.0/24

    8.确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
    nmap -sO 192.168.1.19

    9.探测目标主机的操作系统:
    nmap -O 192.168.1.19

    nmap -A 192.168.1.19

    另外,nmap官方文档中的例子:
    1.nmap -v scanme.
    这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。

    2.nmap -sS -O scanme./24
    进行秘密SYN扫描,对象为主机Scanme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。

    3.nmap -sV -p 22,53,110,143,4564 188.116.0-255.1-127
    进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。

    其他选项:
    -p (只扫描指定的端口)
    单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。

    -F (快速 (有限的端口) 扫描)

    其他

    比如探测操作系统,利用ping命令,去观察TTL的值 Linux和windows对应的TTL值是不同的,可依此判断操作系统类型。

    防火墙/IDS躲避和哄骗

    Nmap保存和输出

    漏洞扫描:根据版本信息可以上网查询已知的其存在的漏洞并进行渗透测试。

  • 相关阅读:
    一、zuul如何路由到上游服务器
    一、hystrix如何集成在openfeign中使用
    一、ribbon如何集成在openfeign中使用
    二、openfeign生成并调用客户端动态代理对象
    一、openfeign的自动配置
    BootStrap【一、概述】
    JavaSpring【七、AspectJ】
    JavaSpring【六、AOP的API】
    JavaSpring【五、AOP基础】
    目录整理
  • 原文地址:https://www.cnblogs.com/Zh1z3ven/p/12653441.html
Copyright © 2011-2022 走看看