经过上一期对Linux Desktop的学习,小伙伴们应该对在kali上的一些操作能看懂了,这期内容就是主要在kali的终端内,以root身份进
行操作
nmap的基本参数
学习本教程,我们应该明白每个工具/程序在终端下运行是可以通过添加修改参数来实现程序的不同功能,而参数的文本形式是类似
程序名 -参数
或程序名 /参数
当然,多个参数是可以叠加的,以达到复杂的功能效果
以下是nmap的参数:
7.70 ()1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
| 用法:nmap [扫描类型] [选项] {目标指定} 目标指定: 可以传递主机名、IP地址、网络等。 例如:scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <输入文件名>:从主机/网络列表中输入 -iR <主机数>:选择随机目标 --exclude <主机1 [,主机2] [,主机3] ,...>:排除主机/网络 --excludefile <排除文件>:从文件中排除列表 主机发现: -sL:列表扫描 - 仅列出要扫描的目标 -sn:Ping扫描 - 禁用端口扫描 -Pn:将所有主机视为在线 - 跳过主机发现 -PS/PA/PU/PY [端口列表]:给定端口的TCP SYN/ACK、UDP或SCTP发现 -PE/PP/PM:ICMP回显、时间戳和网络掩码请求发现探测 -PO [协议列表]:IP协议Ping -n/-R:从不进行DNS解析 / 总是解析 [默认:有时] --dns-servers <服务器1 [,服务器2] ,...>:指定自定义DNS服务器 --system-dns:使用操作系统的DNS解析器 --traceroute:追踪到每个主机的路径 扫描技术: -sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon扫描 -sU:UDP扫描 -sN/sF/sX:TCP Null、FIN和Xmas扫描 --scanflags <标志>:自定义TCP扫描标志 -sI <僵尸主机 [:探测端口]>:空闲扫描 -sY/sZ:SCTP INIT/COOKIE-ECHO扫描 -sO:IP协议扫描 -b <FTP中继主机>:FTP中继扫描 端口指定和扫描顺序: -p <端口范围>:仅扫描指定端口 例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 --exclude-ports <端口范围>:排除指定端口不扫描 -F:快速模式 - 扫描比默认扫描更少的端口 -r:按顺序扫描端口 - 不随机化 --top-ports <数字>:扫描最常见的<数字>个端口 --port-ratio <比率>:扫描比<比率>更常见的端口 服务/版本检测: -sV:探测开放端口以确定服务/版本信息 --version-intensity <级别>:设置从0(轻量)到9(尝试所有探测) --version-light:限制为最可能的探测(强度2) --version-all:尝试每个探测(强度9) --version-trace:显示详细的版本扫描活动(用于调试) 脚本扫描: -sC:等同于--script=default --script=<Lua脚本>:<Lua脚本>是用逗号分隔的目录、脚本文件或脚本类别列表 --script-args=<n1=v1 [,n2=v2,...]>:为脚本提供参数 --script-args-file=文件名:在文件中提供NSE脚本参数 --script-trace:显示所有发送和接收的数据 --script-updatedb:更新脚本数据库。 --script-help=<Lua脚本>:显示脚本的帮助信息。 <Lua脚本>是用逗号分隔的脚本文件或脚本类别列表。 操作系统检测: -O:启用操作系统检测 --osscan-limit:将操作系统检测限制在有希望的目标上 --osscan-guess:更积极地猜测操作系统 时间和性能: 接受<时间>的选项以秒为单位,或者在值后附加'ms'(毫秒), 's'(秒),'m'(分钟), 或'h'(小时)(例如30m)。 -T<0-5>:设置时间模板(数字越高越快) --min-hostgroup / max-hostgroup <大小>:并行主机扫描组大小 --min-parallelism / max-parallelism <探测数>:探测并行化 --min-rtt-timeout / max-rtt-timeout / initial-rtt-timeout <时间>:指定 探测往返时间。 --max-retries <尝试次数>:限制端口扫描探测重传次数。 --host-timeout <时间>:在这么长时间后放弃目标 --scan-delay / --max-scan-delay <时间>:调整探测之间的延迟 --min-rate <数字>:每秒发送的数据包数不少于<数字> --max-rate <数字>:每秒发送的数据包数不多于<数字> 防火墙/IDS规避和欺骗: -f;--mtu <值>:分片数据包(可选地使用给定的MTU) -D <诱饵1,诱饵2 [,ME],...>:用诱饵掩盖扫描 -S <IP地址>:欺骗源地址 -e <接口>:使用指定接口 -g/--source-port <端口号>:使用给定端口号 --proxies <url1 [,url2],...>:通过HTTP/SOCKS4代理中继连接 --data <十六进制字符串>:在发送的数据包中附加自定义负载 --data-string <字符串>:在发送的数据包中附加自定义ASCII字符串 --data-length <数字>:在发送的数据包中附加随机数据 --ip-options <选项>:发送带有指定IP选项的数据包 --ttl <值>:设置IP生存时间字段 --spoof-mac <MAC地址/前缀/供应商名称>:欺骗你的MAC地址 --badsum:发送带有错误的TCP/UDP/SCTP校验和的数据包 输出: -oN/-oX/-oS/-oG <文件>:将扫描结果以普通、XML、脚本小子、 和可检索的格式分别输出到指定的文件名。 -oA <基名>:同时以三种主要格式输出 -v:提高冗长级别(使用-vv或更多以获得更强效果) -d:提高调试级别(使用-dd或更多以获得更强效果) --reason:显示端口处于特定状态的原因 --open:仅显示开放(或可能开放)的端口 --packet-trace:显示所有发送和接收的数据包 --iflist:打印主机接口和路由(用于调试) --append-output:将内容附加到指定的输出文件而不是覆盖 --resume <文件名>:恢复中断的扫描 --stylesheet <路径/URL>:用于将XML输出转换为HTML的XSL样式表 --webxml:从Nmap.Org引用样式表以获得更便携的XML --no-stylesheet:防止将XSL样式表与XML输出关联 其他: -6:启用IPv6扫描 -A:启用操作系统检测、版本检测、脚本扫描和traceroute --datadir <目录名>:指定自定义Nmap数据文件位置 --send-eth/--send-ip:使用原始以太网帧或IP数据包发送 --privileged:假设用户完全有权限 --unprivileged:假设用户没有原始套接字权限 -V:打印版本号 -h:打印此帮助摘要页面。 示例: nmap -v -A scanme.nmap.org nmap -v -sn 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -Pn -p 80 请参阅手册页(https://nmap.org/book/man.html)以获取更多选项和示例。
|
nmap常见参数用法
在使用此工具前,先执行sudo su
的命令,让终端进入root模式
常用参数一:nmap内网存活主机发现
示例一:nmap -sP CIDR(IP地址/子网掩码)
(扫描过程中使用了TCP SYN扫描、ICMP echo Request来探测主机存活)

PS:此处博主使用了ifconfig
的指令,是为了查看咱自己机器在内网IP地址,以便确定扫描范围,例如博主的IP是10.0.2.15
扫描时最好是扫描10.0.2.0/24
示例二:nmap -sn CIDR
(对该网络中所有主机进行ping扫描,以探测主机存活性)

示例三:nmap -sn CIDR -oX test.xml
(对该网络中所有主机进行ping扫描,以探测主机存活性。同时将结果输出到test.xml中,以便后续使用。)

常用参数二:nmap开发端口扫描
端口对于服务器/网站运维及网络安全都是非常重要的,这里博主先普及一下常见端口知识:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| 21端口:FTP 文件传输服务 22端口:SSH协议、SCP(文件传输)、端口号重定向 23/tcp端口:TELNET 终端仿真服务 25端口:SMTP 简单邮件传输服务 53端口:DNS 域名解析服务 69/udp:TFTP 80/8080/3128/8081/9098端口:HTTP协议代理服务器 110/tcp端口:POP3(E-mail) 119端口:Network 123端口:NTP(网络时间协议) 135、137、138、139端口: 局域网相关默认端口,应关闭 161端口:SNMP(简单网络管理协议) 389端口:LDAP(轻量级目录访问协议)、ILS(定位服务) 443/tcp 443/udp:HTTPS服务器 465端口:SMTP(简单邮件传输协议) 873端口:rsync 1080端口:SOCKS代理协议服务器常用端口号、QQ 1158端口:ORACLE EMCTL 1433/tcp/udp端口:MS SQL*SERVER数据库server、MS SQL*SERVER数据库monitor 1521端口:Oracle 数据库 2100端口:Oracle XDB FTP服务 3389端口:WIN2003远程登录 3306端口:MYSQL数据库端口 5432端口:postgresql数据库端口 5601端口:kibana 6379端口:Redis数据库端口 8080端口:TCP服务端默认端口、JBOSS、TOMCAT、Oracle XDB(XML 数据库) 8081端口:Symantec AV/Filter for MSE 8888端口:Nginx服务器的端口 9000端口:php-fpm 9080端口:Webshpere应用程序 9090端口:webshpere管理工具 9200端口:Elasticsearch服务器端口 10050端口:zabbix_server 10050 10051端口:zabbix_agent 11211端口:memcache(高速缓存系统) 27017端口:mongoDB数据库默认端口 22122端口:fastdfs服务器默认端口
|
本教程不要求记住这些端口及其作用,因为在后续有涉及的端口会进行细讲,所以这边大家了解一下就好。
对指定IP或网站的开放端口的扫描命令是nmao IP/Doaim
,这边博主直接扫描自己的博客了

可以看到这里博主开放了不少端口。
常用指令三:基础漏洞扫描
其实这个指令包含多个参数,已经不局限于漏洞扫描了,但是因为其全面性所以可以最大限度发挥出nmap的漏洞扫描挖掘能力,其中包括-O:启用操作系统检测
-A:启用操作系统检测、版本检测、脚本扫描和traceroute
-sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon扫描
及
--script=<Lua脚本>:<Lua脚本>是用逗号分隔的目录、脚本文件或脚本类别列表
所以格式就是:nmap -O -sS -A --script vuln IP
此操作等待时间较久,可以不断回车查看进度
由于博主网络环境较差,限制严重,就不做演示了。