nmap的理解与利用(初级)
在命令窗口下输入命令等待,可以用回车来查看进度
nmap进行探测之前要把域名通过dns服务器解析为ip地址,我们也可以使用指定的dns服务器进行解析。
nmap --dns-servers 主机地址 需要扫描的目标地址
对于已经知道主机存活或者防火墙开启,可以使用-Pn参数来停止探测之前的icmp的请求。已达到触不到防火墙安全机制
nmap -Pn www.baidu.com
nmap列举远程机器开放端口
对于默认端口范围,并不能满足日常工作需要。可以使用-p m-n 来指定探测端口范围为m到n之间的所有端口可以在具体某个范围用
端口状态
open、close不解释了,主要是filtered是过滤状态
nmap扫描技术查看
nmap -h查看帮助信息
主要帮助里的SCAN TECHNIQUES
服务指纹
为了确保有一个成功的渗透测试或网络设备监控,需要我们知道目标系统中服务信息指纹。服务指纹信息包含服务端口、服务名和版本等。
通过分析目标往nmap发送的数据包中的某些协议标记、选项和数据,我们可以推断这些数据包的操作系统。
nmap通过向目标主机发送多个udp和tcp数据包并分析响应来进行系统指纹工作。
nmap识别服务指纹
nmap -sV IP地址来自目标机器的服务信息
就用虚拟机的kali吧。。。。当实验吧。。
真的很慢。。。
通过扫描知道我用的是vmware,竟然还有个漏洞端口,445可以通过端口溢出进行攻击
nmap侵略性探测
nmap -A -v -T4 IP地址
-A表示使用侵略的方式,嗯。。可以理解为英文单词attack其中包括操做系统识别,端口服务、指纹识别等
-v表示持续输出返回的解析的详略程度。
-T4是加速(数字范围是1到5)
可以扫到目标机器的开机时间,MAC地址,系统版本等。。。
nmap -sC -sV -O(是o不是0) IP地址
sC参数表示使用nmap脚本进行探测,sV表示探测目标机器上的服务信息,O表示探测目标机器的操作系统
主机发现
局域网有许多设备,如何获取开机状态
1.ping
2.使用工具批量探测
明白CIDR含义:
无类别域间路由,(class inter-domain routing)可以快速地表示一个网络
举例:
172.16.1.1/24 表示172.16.1.1到172.16.1.255之间的所有ip地址
nmap主机发现
nmap -sP CIDR
对该网络的所有主机进行ping扫描,以探测主机存活性。扫描中用了tcp syn扫描、icmp echo request 来探测主机存活。
也可以使用
nmap -sn CIDR
对该网络中的所有主机进行ping扫描,以探测主机的存活性。
nmap主机发现输出结果
nmap -sn CIDR -oX 文件名.xml
对该网络中的所有主机进行ping扫描,以探测主机的存活性。同时结果以文件名.xml输出,以便后记使用
ps:注意路径
端口探测技巧
nmap -p80 目标
把网站解析成IP地址,厉害。我们也可以看到状态是开放的
多个端口以逗号隔开
范围端口
nmap -p1-100 目标地址
所有端口
nmap -p- 目标地址
指定协议探测端口
nmap -p T:端口,U:端口 目标地址
通过协议名来扫描端口
nmap -p 协议名字 目标地址
这个牛逼
通过名称范围扫描
nmap -p s* 目标地址
这里的s*值得是所有以s开头的协议
扫描百度会有许多过滤
扫描注册在nmap中的端口
nmap -p [1-65535] 目标地址
NSE介绍
nse就是nmap script engine )nmap脚本引擎,内置很多可以用来扫描的、针对特定任务的脚本。通过nse可以不断地拓展nmap的扫描策略,加强nmap的功能
nse使用
使用nmap探测web服务的title信息。
nmap --script http-title 目标主机
nmap --script http-headers 目标主机
可以获得目标的使用版本信息等
nse分类使用
对于目标使用多个分类脚本进行探测,可以更快的找到目标信息和弱点
nmap -sV --script vuln 目标
不展示。。
使用下面的命令可以发现版本信息分类进行探测
nmap -sV --script="version,discovery" 目标
使用nmap可以进行筛选扫描检测
nmap -sV --script="not exploit" 目标
还有更详细的。。
要使用http*的脚本,除了http-brute和http-slowers
nmap -sV --script "(http*) and not (http-slowlors and http-brute)" 目标
nse调试功能的使用
使用nmap中的exploit,但是在与此同时开启调试模式。
nmap -sV --script ecploit -d 3 --script-trace 目标
-d(debug范围0到9)
--script-trace可以随时看到扫描过程
nse参数的使用
使用nmap的http-title脚本,并且指定使用对应的user-agent
nmap -sV --script http-title --script-args http.useragent="mozilla 999" 目标
此代码使用可以突破某些网站的限制设备登陆
nse更新
nmap --script-updatedb
nse脚本分类
在nmap的script的目录下。
或者官网https://nmap.org/nsedoc/
有具体解释和内容,不过得FQ,我进不去。。
nmap指定特定网卡进行探测
使用场景
这种功能需要网卡支持混杂模式,或者当计算机上有两张卡,并且两张卡对应不同的网络
指定网卡进行探测
nmap -e 网卡信息 CIDR
切换使用特定网卡进行探测的参数 -e
kali中操作
ndiff
对之前的数据参数进行二次比较,减少了人工的比较,节省大量时间
上我们最爱的百度翻译
用法:ndiff[option]FILE1 FILE2
比较两个Nmap XML文件并显示它们的差异列表。
不同之处包括主机状态更改、端口状态更改和
服务和操作系统检测。
-h、 --帮助显示此帮助
-v、 --verbose还显示未更改的主机和端口。
--文本格式的文本显示输出(默认)
--xml格式的xml显示输出
指定文件输出加侵略性查看
nmap -A -v -T4 目标地址 -oX 文件输出名.xml
然后对kali输入命令
service apache2 start
来打开阿帕奇服务
nmap上面的命令
然后用工具nidff
ndiff 文件 文件
首行加+表示第二个比较的文件的不同
-表示第一个文件的不同
之前开启服务,apache,所以会有不同。
可视化nmap的使用
使用zenmap
在配置中设置脚本,从而在可视化程序中快速指定配置进行扫描
也可以使用自带策略
ping scan来验证主机的存活性
等等等
window下网卡
通过命令ipconfig /all 与nmap irlist比较知道是哪些网卡名称从而进行探测。
不指定网卡,直接探测也可以,首先依次尝试这些网卡发送数据包,如果连通,才会继续探测,否则就换下一个网卡。直到网卡都被尝试后,才算结束。