linux系统扫描技术篇之nmap

扫描步骤

优化nmap的性能(目的是加快速度,提高准确性)(扫描方法:分步骤)

第一:快速判断是否在线(UDP和TCP不要同时进行)
    nmap -sP -n 117.169.17.1/24     #非常快速,速度与fping相差无几

第二步:控制扫描的端口,默认nmap扫描1000多个端口
    -F  #快速扫描100个常用端口
    --top-ports<端口个数>
    -p  #指定端口号

第三步:跳过高级扫描功能(先不用下面的参数)
    -A  #自带的扫描模板,用来进行操作系统及其版本的探测
    -sV
    -sC
    -O
    --traceroute
    可能的话关闭dns解析 -n

第四步:(可选)并行/分段扫描
    --min-hostgroup 5   #一次扫描5个主机(分组扫描)
    --min-parallelism 5 #一个开5个并行扫描
    --host-timeout 5s   #每个主机最大耗时,单位可以是s,m,h(默认是毫秒)
    --max-retries 2     #最大重传次数为2,(针对某些安全设备会,将首包丢弃,也可以测防火墙的丢弃规则)
    -T0         #nmap提供的时间模板,T0-T5

1:nmap可以跟的设备地址写法,可以有如下多种(域名,ip,网段)

    nmap 117.169.17.138     #扫描一个ip
    nmap www.baidu.com      #扫描一个域名
    nmap 117.169.17.138,139,149 #扫描同网段多个ip
    nmap 117.169.17.138 59.63.239.242 117.41.229.69     #扫描不同网段的多个ip
    nmap 117.169.17.138-150 #扫描同一网段连续多个ip
    nmap 117.169.17.138-150 --exclude 117.169.17.145    #扫描同一网段连续多个ip,但是排除17.145这个
    nmap 117.169.17.138-150 --exclude filter        #扫描同一网段连续多个ip,但是排除filter文件内的IP
    nmap 117.169.1-20.*     #扫描多个网段
    nmap 117.169.17.128/25      #扫描一个网段
    nmap -iL filename       #从文件导入设备地址,文件内地址一行一个[段]
    nmap -iR 10         #表示随机生成10个公网IP进行扫描

2:如何找到网络上的设备(DNS,或直接IP)

    -sL #不做扫描,只完成dns解析和网址的转换
        nmap -sL 8.8.8.8    #查看这个ip有没有解析到域名
        nmap -sL www.baidu.com

    -sP #默认发送ICMP echo 请求,和TCP的ACK请求80端口
    -Pn #不ping,(这个参数主要是因为nmap的工作流程是先ping,再扫,用了它,直接扫描)

    -PS<ports_list> #发TCP协议SYN标记的空包,默认扫描80端口(慢)
    -PA<ports_list> #发TCP协议的ACK标记的空包,默认扫描80端口
    -PU<ports_list> #udp ping,默认扫描31338端口
    -PR #ARP ping

    #其他设置项
    --traceroute    #路由追踪
    -n      #不做DNS解析
    -R      #DNS解析所有的地址,默认不解析不在线的IP
    --dns-servers 8.8.8.8   #使用其他DNS
    --system-dns        #使用系统DNS

3:端口扫描概要

    #端口返回状态解读
    open        #端口开启,有进程监听
    closed      #端口关闭,数据能到达主机,但没有程序监听
    filterd     #数据未能到达主机
    unfilterd   #数据能到达主机,但是nmap无法判断端口是否开启
    open|filterd    #端口没有返回值,主要出现在UDP,IP,FIN,NULL和Xmas扫描
    close|filterd   #只出现在IP ID idle扫描

4:端口扫描技术和算法

    -sS #只发送TCP的SYN包,即第一次握手包,又叫匿名扫描(因为设备通常只会记录建立成功的会话,这中发起连接的不记录)
    -sT #TCP全连接扫描,nmap会完成3次握手,默认模式
    -sV #探测开放的端口和服务程序的版本信息
    -sW #扫描TCP的窗口大小
    -sUV    #能增加UDP扫描的准确性
    -sO #服务器协议扫描,获取服务器支持那些协议
    -b  #FTP反弹扫描,现在好多网络里面都不能用了(向ftp服务器请求,让ftp代理我去向指定的服务器拿数据)
    --scanflags<URG,ACK,PSH,RST,SYN,FIN>    #用户定制的TCP扫描(可以定制特殊的包,进行探测)

    #TCP idle扫描
    -sI<僵尸机>:port   #

5:服务和应用程序版本的识别

    -sV     #探测开放的端口和软件版本信息
    --version-light #相当于0-2级别的版本详情
    --version-all   #相当于0-9的级别版本详情
        nmap -p 80 wsfnk.com -sV

6:远程操作系统识别

    -O  #启动操作系统识别
    --osscan-limit  #限定只识别有端口开放的主机,提供-A和-A参数时的速度

7:nmap脚本引擎

    NSE提供了哪些功能
    1:网络探测:whios,snmp,nfs/smb/rpc
    2:更为复杂的版本探测:Skype,QQ,微信
    3:网络漏洞识别:错误配置,软件漏洞
    4:后门识别:模仿僵尸网络,蠕虫的网络通信
    5:漏洞利用:类似Metasploit的功能

    #nmap采用yum安装方式,其脚本路径在
    tree /usr/share/nmap/scripts

├── http-robots.txt.nse
├── http-title.nse
├── http-trace.nse
├── http-userdir-enum.nse
├── http-vhosts.nse
├── http-vmware-path-vuln.nse
├── iax2-version.nse

    #使用
    nmap --script=http-title,http-methods wsfnk.com -p 80

    -sC         #等价于 --script=default,调用默认脚本
    --script=<Lua scripts>  #可以是脚本种类,文件路径,文件名或则all(表示所有)
    --script-updatedb   #更新脚本库
    --script-help<Lua scripts>  #获取相应脚本的使用帮助
    --scripts-args=<n1=v1,[n2=v2]>  #给脚本提供参数
    --scripts-args-file=filename    #以文件的方式提供参数

8:识别和绕过防火墙和IDS

    -f  #数据分片,即将一个正常数据分成几个包(分片大小必须是8的整数倍)
    -D  #生成一堆欺骗性的地址的数据包
    -S  #生成一个欺骗性的地址的数据包
    -e  #使用哪种网卡发送
    -g  #
    --date-length   #设置数据长度
    --ttl   #指定TTL

9:格式化输出nmap内容

    -oN filename    #标准输出到文件中
    -oX filename    #将结果输出问xml格式的,便于zenmap查看,方便后期做程序分析
    -oG filename    #有利于grep操作的方式,每一个主机信息用一行信息来显示,并且被分割开来
    -oA filename    #输出为多种格式(包括xml等),有多个后缀文件

    #输出详细和调试设置
    -v      #显示详细,v越多越详细,太多没用的
    -d[0~9]     #显示nmap收/发了那些包
    --reason    #
    --packet-trace  #包跟踪,类似路由跟踪

常用选项集参数使用

nmap -A 192.168.10.1    #扫描开放的网络端口
nmap -o 192.168.10.1    #识别远程操作系统
nmap -Pn 192.168.1.1    #-PN:对目标进行深度扫描,(原因是nmap可能对某些主机,显示类似离线的状态)(通常不怎么有用)
nmap -sP 192.168.1.0/24 #快速判定是否在线(s表示查看扫描80和443端口)(P表示普通ping)(有一项返回就判定在线)
nmap -PS 192.168.1.1    #在(默认)icmp阻塞的情况下,此命令一样可用,他使用syn来探测的
nmap -PA 192.168.1.1    #使用tcp的ack嗅探包
nmap -PY 192.168.1.1    #使用ctp嗅探
nmap -PP 192.168.1.1    #使用icmp的时间戳来嗅探是否有防火墙保护
nmap --script=http-title,http-methods wsfnk.com -p 80 #使用NSE脚本扫描

nc 登录远程的hp打印机

nc 192.168.10.10 23 #后面23是端口号

nmap的Connect扫描是通过TCP完成三次握手来检测的,所以速度相对于SYN半开放扫描要慢,但结果更可靠。

扫描TCP端口常用命令:

nmap -sT 192.168.2.230-255
nmap -sT -p 20-3389 192.168.2.230-255

扫描UDP端口常用命令:

UDP相比于TCP协议被防火墙拦截的几率更小。

nmap -sU 192.168.2.230-255
nmap -sU -p 0-30000 192.168.2.230-255

udping udp ping (测试udp丢包率)

#工作原理,
    1:使用udp来测试丢包率,若对方未开启udp端口,则会以icmp的方式回复不可达,可以看出丢包率
    2:使用udp对方不回复,看不出丢包率
    3:使用udp 对方反馈信息,可以看出丢包率

nping --udp -p 9999 52.199.165.80 -c 1000

TCP全连接Dos攻击(可行)

特点:快速的占满对方的tcp连接资源,达到拒绝服务的目的

需求:一次建3千个连接,一共建立1000000个连接(默认是和80端口建立)
命令:nping --tcp-connect --rate=3000 -c 1000000 -q 192.168.100.2

防御措施:
    1、对单ip的连接速率进行限制
    2、防护软件联动黑名单,检测单ip连接速超过阀值,直接Drop
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/422.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/12/10作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录