freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Nmap流量特征修改
2020-09-16 16:43:25

0x01 前言

nmap是渗透中尝尝用到的工具之一,在信息收集阶段经常用到,现在主流的流量分析设备也将其流量加入了特征库,

为了防止在探测阶段IP就被封掉,对其的流量特征做一些简单的修改有点用的。

由于没有厂商设备检测,故以下只是学习记录一下思路。具体效果还待验证。

参考链接

如何修改nmap, 重新编译,bypass emergingthreats 的公开ids规则:

https://xz.aliyun.com/t/6002

nmap端口扫描技术:

https://nmap.org/man/zh/man-port-scanning-techniques.html

NmapbypassIDS:

https://github.com/al0ne/Nmap_Bypass_IDS

0x02 环境

VM虚拟机:

192.168.1.113 开放135,3389 防火墙禁止445入站

ubuntu:

编译安装nmap用,kali下编译安装存在点问题,坑太多了,以后有时间再去踩。

0x03 nmap探测的常用几种方式

-sS (SYN扫描)

nmap默认端口扫描方式,执行半开扫描,不完成TCP握手流程。只向目标端口发送一个SYN报文,然后等待响应。

SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。

如果多次重发后仍没响应, 该端口就被标记为被过滤。

使用抓包工具可以完整的看到探测过程。

-sT (TCP扫描)

一般不推荐使用,因为会留下连接日志。

另外在调用一些高级扫描时(如HTTP),会调用这种连接方式。

使用抓包工具看其探测过程

1600245394_5f61ce927c86548174248.png!small

-sU(UDP扫描)

DNS,SNMP,和DHCP是常常开放UDP的几个服务,有些情况下会使用到。

由于UDP是无连接的,所以会面临响应探测问题,探测时的端口是否开放还是被过滤的判断,会让Nmap超时然后再探测,以防探测帧或者响应丢失,导致探测时间增长。

关闭的端口常常是更大的问题。它们一般发回一个ICMP端口无法到达错误。

但是不像TCP发送的RST报文,许多主机在默认情况下限制ICMP端口不可到达消息。

如:Linux 2.4.20内核限制一秒钟只发送一条目标不可到达消息。

抓包看一下,当只看到两个UDP无内容包时,懵了一下。

查了一下发现除了某些特定端口会有响应返回,如137 用的NBNS,其他的全部都是没有返回,原因是因为这台机器禁PING了,就是ICMP的返回包过不来。

所以没法判断端口是否关闭。

1600245422_5f61ceaeb6398ed33981f.png!small

修改防火墙设置。

允许文件和打印机共享后确实可以ping主机了,但是ICMP回包还是有问题。

后来索性把防火墙关掉。

就可以明显看到其是通过返回包来进行判断的。

1600245445_5f61cec51dbafd4bd2fcf.png!small

-sN;-sF;-sX (TCP Null,FIN,and Xmas扫描)

这个还是挺有意思的,首先这个不适用扫描windows、Cisco、bsdi、IBM的一些服务器,因为并不是完全遵守RFC 793这个协议。

这个协议会存在这种情况,当端口关闭时,任何不包含SYN,RST,或者ACK位的报文会导致 一个RST返回,而当端口开放时,应该没有任何响应。

所以只要不包含SYN,RST,或者ACK, 任何其它三种(FIN,PSH,and URG)的组合都行。

而刚刚上面说的那些他们并不遵守这个,他们不管端口开放或关闭,都返回一个RST,导致Nmap判断错误。

-sN 不设置任何标志位

-sF 只设置FIN标志位

-sX 设置FIN,PSH,和URG标志位

看一下探测过程,如果没加参数,默认会先发送ICMP请求。

640?wx_fmt=png

-sA(ACK 扫描)

用于探测防火墙状态。ACK扫描探测报文只设置ACK标志位。

当扫描未被过滤的系统时, open(开放的)和 closed(关闭的) 端口 都会返回RST报文。

Nmap把它们标记为 unfiltered(未被过滤的),无返回或者返回ICMP错误响应时标记为filtered。

防火墙关闭状态下。返回unfiltered

防火墙开启状态下。返回filtered

1600245525_5f61cf157a5c7d721ff7e.png!small

-scanflags (自定义扫描)

可以使用 URG, ACK, PSH, RST, SYN,and FIN的任何组合,进行发包。详细可以自己组合定制

-sI(Idlescan)

高级隐藏扫描。利用僵尸网络执行扫描。详细可看文章

(文章链接:https://nmap.org/book/idlescan.html)

-sV (版本检测)-O (系统检测)

可以看到在探测的时候会有标志和固定长度字符串问题。

IDS识别nmap扫描一般都是根据UDP data区域填充的'C'字符串,ICMP填充的是0(正常windows下是a-z,Linux下是0-9。

莫慌,接下就学习一下怎么去改这些个文件。

1600245549_5f61cf2dc7f7233ae62f2.png!small

0x04 nmap的流量特征修改

Win值修改

通过观察可以发现nmap在使用SYN扫描时Windows的窗口值值固定是1024。

(PS :window 关键字用于检查特定的TCP窗口大小)

下面是正常连接3389时,发送的数据包。可以看到win值明显不一样。

修改tcpip.cc文件中tcp->th_win的值,查询TCP中win这个值的信息发现,

默认最大为65535。

所以应该在此范围内都可以。

但是要考虑已公开的规则,如之前大佬写的bypass emergingthreats这篇,这个就过滤了2048 1024 3072 4096。

后来因某些原因,把nmap编译到了云服务器上,抓包的话就需要tcpdump了。

tcpdump -i eth0 -t -s 0 -c 100 host IP

关键词修改

根据规则,一个一个去修改文件即可。nmap,nm,nm@p,OR sqlspider等等,

主要的就是SIP文件和一些常用的脚本文件。

这些个就是从emergingthreats的规则中提取的。

UDP探测时填充值修改

osscan2.cc

static u8 patternbyte = 0x43; /* character 'C' /

替换为 static u8 patternbyte = 0x46; / character 'F' */

重新编译后再去扫描,内容已经换了,长度应该也是可以调整。

u8 packet[328]; /* 20 IP hdr + 8 UDP hdr + 300 data */

这里还没测试,感兴趣可以自己去定义,看会不会有什么问题。

0x05 nmap编译安装

nmap编译时可能会遇到如下错误,几乎都是缺少特定的库导致的,

所以编译安装时需要安装以下库。

编译环境是基于Ubuntu的,其他环境库的名字可能不同,遇到编译报错可百度找对应解决方法即可。

apt install flex bison libssl-dev./configure --without-zenmapmake && make install

0x06 总结

可修改文件及修改处

6.1、修改namp默认win窗口值。

tcpip.cc

tcp->th_win = hosts(1-65535)

6.2、修改nmap-service-probes文件中关键词

nmap,nm@nm,nm2@nm2,nm@p,nm,0PT10NS sip

这些值酌情替换。

6.3、修改脚本中的值

  • nselib/http.lua

USERAGENT = stdnse.getscript_args('http.useragent')

  • nselib/mssql.lua

搜索Nmap NSE然后替换

  • nselib/sip.lua

搜索Nmap NSE然后替换

  • scripts/http-sql-injection.nse

搜索sqlspider然后替换

  • scripts/ssl-heartbleed.nse

搜索Nmap ssl-heartbleed替换

  • nselib/rdp.lua

local cookie = "mstshash=nmap"

6.4、修改使用-O参数发包填充内容

osscan2.cc

static u8 patternbyte = 0x43; /* character 'C' /

替换为 static u8 patternbyte = 0x46; / character 'F' */

# nmap
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录