笔记——nmap渗透常用功能汇总

笔记——nmap渗透常用功能汇总

最近在深入学习nmap,把过程中的重点稍微记一下,排版比较乱(__) 嘻嘻……。有强迫症的同学见谅了哈。有时间周末再修改这个博文(__) 嘻嘻……

nmap扫描的端口状态解释:

  • open,表示开放状态;
  • closed,表示关闭状态;
  • filterd,表示端口处于过滤无法收到返回的probe状态;
  • unfilterd,表示端口收到返回的probe,但是无法确定是否被过滤;
  • opend/unfilterd,表示端口处于开放或者未过滤状态;
  • closed/unfilterd,表示端口处于关闭或者未过滤状态;

ICMP

详见wiki:https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol

ICMP(Internet控制消息协议)是一种错误报告协议,当网络问题阻止IP数据包的传递时,路由器之类的网络设备会使用这些错误消息向源IP地址生成错误消息。ICMP创建消息并将其发送到源IP地址,该消息指示无法访问路由器,服务或主机的Internet 网关以进行数据包传递。任何IP网络设备都可以发送,接收或处理ICMP消息。

ICMP 不是在系统之间发送数据的传输协议。

尽管最终用户应用程序中不经常使用ICMP,但网络管理员可以使用它来诊断诊断实用程序(包括pingtraceroute)中的 Internet连接。

网络设备(包括路由器)使用它来发送错误消息和操作信息,以指示与另一个IP地址进行通信时的成功或失败,例如,当请求的服务不可用或主机或路由器无法提供服务时,指示错误。达到。

ICMP消息通常用于诊断或控制目的,或响应IP操作中的错误而生成。

服务指纹

为了确保有一个成功的渗透测试或网络设备监控,必须需要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口、服务名和版本信息等。

通过分析目标往nmap发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统等。

nmap通过向目标主机发送多个udp和tcp数据包并分析其响应来进行操作系统指纹识别工作。

使用命令:

# 获取服务指纹
nmap -sV 192.168.0.117

nmap侵略性探测

获取目标机器的操作系统、服务等信息

方法1:

# -A,侵略性地尝试进行深入的服务枚举和旗标获取,能够提供目标系统更多的细节
# -v,持续输出扫描的过程
# -T4,加快探测速度
nmap -A -v -T4 192.168.0.117

方法2:

# -sC,表示使用namp脚本进行探测
# -sV,表示探测目标机器上的服务信息
# -O,表示探测目标机器的操作系统信息
map -sC -sV -O 192.168.0.117

局域网中的主机发现

一个局域网中肯定是连接着多台设备,那么如何获取哪些设备正在开机状态呢?

CIDR,无类别域间路由

172.16.1.0/24,表示在172.168.1.0-172.16.1.255之间的所有机器。

# -sP,使用TCP SYN扫描、ICMP echo Request来探测主机存活性
nmap -sP 192.168.0.0/24
# -sn,对网络中所有主机进行ping扫描来探测主机存活性
nmap -sn 192.168.0.0/24

结果输出

对网络中所有主机进行ping扫描,并将结果存入test.xml中

nmap -sn 192.168.0.0/24 -oX test.xml

端口探测

对单个、多个、范围、所有端口进行探测

nmap -p80 192.168.0.117 # 单个端口
nmap -p80,135 192.168.0.117 # 多个端口
nmap -p1-1000 192.168.0.117 # 端口范围
nmap -p- 192.168.0.117 # 所有端口

nmap -p T:25,U:53 192.168.0.117 # 对25端口使用TCP协议探测,对53端口使用UDP探测
nmap -p smtp 192.168.0.117 # 通过指定协议名来扫描端口
nmap -p ssh 192.168.0.117 # 通过指定协议名来扫描端口
nmap -p s* 192.168.0.117 # 通过指定协议名的通配符

NSE脚本

所有脚本文件默认安装在目录:/usr/share/nmap/scripts

-sC:等价于 --script=default

扫描http服务,直接使用脚本名全称

nmap --script http-title 192.168.0.119 # 探测http服务的title信息
nmap --script http-headers 192.168.0.119 # 探测http服务的headers信息

使用脚本名通配符探测

nmap -sV --script "(http*) and not (http-slowlors and http-brute)" 192.168.0.119

使用脚本分类,所有的分类如下表所示:

脚本类别 描述
auth 用于用户认证的NSE脚本
broadcast 使用广播收集网络信息
brute 暴力破解
default 默认,执行脚本(-sC)
discovery 与主机和服务发现相关的脚本
dos 与拒绝服务攻击相关的脚本
exploit 用于利用安全漏洞的脚本
external 适用于第三方服务的脚本
fuzzer 用于模糊测试的脚本
intrusive 入侵脚本
malware 与恶意软件检测相关的脚本类别
safe 在所有情况下默认为是安全的脚本
vuln 与检测和利用安全漏洞相关的脚本
version 高级系统脚本

所有的分类以及所有的脚本的功能详情,可以点击查看nmap官网

使用nmap中vuln分类脚本对目标进行探测

nmap -sV --script vuln 192.168.0.119

使用nmap中version和discovery分类进行探测

nmap -sV --script="version,discovery" 192.168.0.119

使用nmap中除了exploit分类之外的其他分类进行探测

nmap -sV --script="not exploit" 192.168.0.119

NSE调试功能使用

使用Nmap中exploit,同事开启调试模式,命令如下:

nmap -sV --script exploit -d 3 --script-trace 192.168.0.119 # 注意: -d(debug范围0~9)

NSE参数的使用

使用nmap的http-title脚本,并且指定使用对应的User-Agent。命令如下:

nmap -sV --script http-title --script-args http.useragent="Mozilla 999" 192.168.0.119

NSE更新

更新脚本库的命令

nmap --script-updatedb

指定特定网卡进行探测

nmap是一款可拓展性强的工具,并且有些NSE脚本支持嗅探。但是这种功能需要网卡支持混杂模式才可以。或者当计算机上有两张网卡,并且两张网卡对应的不同网络。

nmap中提供了切换使用特定网卡进行探测的参数:-e 网卡名

nmap -e interface_name CIDR # 对指定网卡interface_name的CIDR指定的网段进行探测

如果在主机上多张网卡连接的网络之间是无法联通的,直接使用nmap进行探测,有可能会花费很多时间,nmap会逐个筛选网卡进行探测。在筛选网卡过程中,很多时间都浪费在选用了错误的网卡,等待超时的过程中。

使用下面命令列出主机的网卡接口和路由信息:

nmap --iflist

获得这些信息,可以进一步选择特定的网卡进行探测。避免探测过程中的"错选网卡超时等待"。

ndiff对比扫描结果

对某个网络进行探测的时候,可能与之前有探测过的结果,现在探测过后,需要对之前的结果与现在的结果对比,找到两次不同点。

监视网络变化,达到网络监控的目的。

ndiff [option] FILE1 FILE2 # 比较两个xml文件的不同点,比较的内容包括:主机状态变化,端口状态变化,服务的变化以及系统检测等。

猜你喜欢

转载自blog.csdn.net/weixin_46222091/article/details/107991613
今日推荐