规避防火墙和IDS

防火墙和IDS都是目前主流的网络安全产品,用来保护网络的安全。其中,防火墙主要是通过包过滤策略来保护网络的安全。防火墙可以是硬件,也可以是软件。入侵检测系统(Intrusion Detection System,IDS)是按照一定的安全策略,通过软件或硬件对网络和系统的运行状况进行监视,尽可能发现各种攻击行为,以保证网络系统资源的安全。由于Nmap常用于渗透测试前期的扫描,因此所有主流的IDS都包含检测Nmap的扫描规则。因此,为了能够正常实施扫描,需要规避防火墙和IDS。Nmap提供了一些规避措施,如定制数据包、定制数据包传输路径和隐藏自己的身份等。

定制数据包

  • 使用受信的源端口 在一些服务器中虽然使用了防火墙和IDS来保护网络的安全,但是一些服务又必须对外开放,如DNS的53号端口、DHCP的67号端口等。通常情况下,一些管理人员也认为这些端口不会被攻击和利用,因此放心地对外开放这些端口。此时可以通过使用这些信任源端口来欺骗目标主机,实现主机扫描。
    • --source-port <portnum>:指定信任的源端口
    • -g <portnum>:指定信任的源端口
  • 指定校验值 校验值是为了验证数据包的完整性而计算出的一个值。通过发送一个包含错误的校验值,也可以规避防火墙和IDS
    • --badsum:使用一个伪TCP/UDP/SCTP校验值来发送探测数据包
    • --adler32:用于指定SCTP校验值
  • 指定IP选项 一个IP数据包中包含多个选项字段。可以指定任意一个IP选项来发送数据包,以规避防火墙和IDS。
    • --ip-options <S|R[route]|L[route]|T|U...>,<hex string>:使用指定的IP选项发送数据包,可以指定的值有S、R、L、T、U。其中,S表示严格源路由,R表示记录路由,L表示松散源路由,T表示记录时间戳,U表示记录时间戳和路由。还可以指定十六进制字符串,而且该字符串的长度必须是4的倍数。另外,当指定十六进制字符串时,字节的值使用\x分隔。
  • 附加数据载荷 数据载荷指发送的数据包中所包含的数据。默认情况下,Nmap仅发送一个包头,如TCP包头为40字节,ICMP ECHO请求为28字节。正常情况下网络中不会发送空包,因为空的数据包容易被防火墙和IDS检测到,从而被拦截。为了避免形成空包,可以通过附加数据载荷伪造成有意义的数据包,以规避防火墙和IDS。
    • --data-length <num>:指定数据包长度的随机值。
    • --data <hex string>:指定一个十六进制值的数据。
    • --data-string:指定一个文本值的数据。
  • 报文分段 将一个数据包分成许多更小的分片,以此规避防火墙和IDS的检测。
    • -f <val>:设置分片大小。Nmap默认在IP头后会分成8字节的分片或更小的分片,因此一个20字节的TCP头会被分成3个包。其中,前两个包分别包含TCP头的8字节,最后一个包只包含TCP头剩下的4字节
    • --mtu <val>:设置最大传输单元值,即数据偏移大小。使用该选项时不需要-f选项,并且指定的偏移量必须是8的倍数

定制数据传输路径

  • 使用代理 --proxies <url1,[url2],...>:指定使用HTTP/SOCKS4代理转发
    • 将一个主机发送的数据包通过代理主机转发给另一个目标主机,并由该主机进行发送。
  • 指定TTL --ttl <val>:设置一个TTL值。其中,TTL值的范围为0~255
    • 通过限制TTL值,可以避免被防火墙发现扫描操作的数据包。
  • 目标随机排列 --randomize-hosts:对目标主机的顺序随机排列并进行扫描
    • 当需要扫描多个目标主机时,Nmap将会根据指定的目标顺序依次进行扫描。通过设置目标随机排列,可以避免对同一个防火墙下的多个主机连续探测

隐藏自己

  • 诱饵扫描 -D <decoy1,decoy2[,ME],...>,RND:number
    • 让目标主机认为其他主机(诱饵)在对自己进行扫描。用户可以指定多个诱饵主机,使目标主机无法确定哪个是真实的主机,哪个是诱饵主机。其中,诱饵扫描可以用在初始的Ping扫描(如ICMP、SYN和ACK等)阶段,或者远程操作系统检测阶段。但是在版本检测或TCP连接扫描阶段,诱饵扫描无效。
    • 诱饵主机是活动的,否则会引起目标主机的SYN洪水攻击
  • 伪造源地址 -S:指定一个源IP地址。如果指定一个伪造的源地址,则需要结合-e和-Pn选项一起使用
  • 伪造MAC地址 --spoof-mac
    • 指定的MAC地址格式有多种,如字符串0、十六进制数字(01:02:03:04:05:06)、MAC地址的前三个字节(0020F2)和厂商名称(Cisco)等。如果指定的参数是字符串0,Nmap将选择一个完全随机的MAC地址;如果指定的参数是一个十六进制数,则数字之间使用冒号(:)分隔;如果指定的参数是一个小于12的十六进制数字,Nmap会随机填充剩下的六个字节;如果指定的参数是一个厂商的名称,Nmap将从nmap-mac-prefixes文件中查找厂商的名称,如果找到匹配的名称,Nmap将使用厂商的OUI(MAC地址的前三个字节),然后随机填充剩余的三个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值