渗透测试--Nmap主机识别
通过本篇博客可以学到:Nmap的安装和使用,列举远程机器服务端口,识别目标机器上的服务,指纹,发现局域网中存活主机,端口探测技巧,NSE脚本使用,使用特定网卡进行检测,对比扫描结果ndiff,可视化Nmap的使用等。
Nmap简介
Nmap:开源、免费的网络探测、安全审计工具
nmap 安装在电脑后,电脑可以通过nmap 将数据包传递到相关的网络设备,服务器接收到数据包后会返回一些信息,Nmap可以对这些信息进行分析。(通过nmap探测服务器存活以及开放的服务,对目标进行安全审计)。
Nmap原理:首先判断nmap输入的命令行中是否包含域名,如果包含域名需要用DNS服务器进行域名解析。然后发送ICMP Echo Request 来探测主机的存活性。Nmap根据返回的数据包来探测机器信息。
Nmap scanme.namp.org
Nmap参数和意义
-sT:TCP connect扫描,类似于的Metasploit中的tcp扫描模块
-sS:TCP SYN扫描,类似于Metasploit中的syn扫描模块,这种扫描方式不等待打开一天完全的TCP链接,所以速度的会更快,而且这种方式不会被IDS(入侵检测系统)等设备记录。
-sF/-sX/-sN:这些扫描通过发送一些特殊的标志位以避开设备或软件的检测
-sP:通过发送ICMP echo请求探测主机是否存活,原理同ping
-sU:探测目标主机开发了哪些UDP端口
-sA:TCP ACK扫描,类似于metasploit中的acK扫描模块
-Pn:在扫描之前,不发送ICMP echo请求测试目标是否活跃。如果是在Internet环境,应该使用-Pn选项,不要使用ICMP ping,因为ICMP数据包通常无法穿透Internet上的网络边界
-O:启用对于TCP/IP的协议栈指纹特征扫描以获取远程主机的操作系统类型等信息
-F :快速扫描的模式
-p<端口范围>:可以用这个参数指定希望扫描的端口
例如:nmap scanme.nmap.org
nmap进行探测之前要把域名通过DNS服务器解析为IP地址,我们也可以使用指定的DNS服务器来进行解析。使用--dns-servers参数来指定
nmap --dns-servers 8.8.8.8 baidu.com
注意点:对于主机存活或者防火墙开启的机器,可以使用-Pn参数来停止探测之前的ICMP请求,以达到不触发防火墙的安全机制。
对于默认的端口范围,并不能满足日常工作需要。可以使用-p,m-n来指定探测端口范围为m-n之间的所有端口
nmap -p <端口> <IP地址/域名>
namp -p 1-1000 nuistshare.cn
可以看到不需要的端口可以不扫描,并且知道了扫描了的1-1000端口内开放的端口、状态与服务。
Nmap有多种端口状态
服务指纹
为了确保有一个成功的渗透测试或网络设备监控,必须知道目标系统中服务的指纹信息。服务指纹包括服务端口,服务名和版本等。
通过分析往Nmap发送的数据包的某些协议标记、选项和数据,我们推断发送这些数据的包的操作系统。
nmap通过向目标主机发送多个UDP与TCP数据包并分析其相应来进行操作系统识别
nmap -sV IP //地址来识别目标主机的服务信息
可以说明tcp三次握手已经完成,但是并没有和目标主机建立连接。
这表明这些服务是可以提供的,但是我们并不在访问主机的名单之中,而有大量的端口为tcpwrpped,说明服务器采用了负载均衡或者防火墙。
nmap侵略性探测
nmap -A -v -T4 IP地址
//-A :使用侵略性的策略探测
//-v :持续输出,返回解析不用按回车
//-T(1-5):扫描速度
nmap -A -v -T5 182.92.58.95 //注意此处只能是IP地址而能是域名
使用此方法,我们可以得到之前没有得到的信息
nmap -sC -SV -o
-sC表示使用Nmap脚本进行探测,sV表示探测目标机器上的服务信息,表示探测目标机器上的操作系统信息
-O表示启用对于TCP/IP的协议栈指纹特征扫描以获取远程主机的操作系统类型等信息
一个局域网中肯定连接着多个IP,可以使用ping命令去测试一下
CIDR(无类别域间路由)
nmap -sP CIDR :对该网络中所有主机经了ping扫描,以探测主机的存活行,扫描过程中使用了,TCP/SYN扫描扫描,ICMP echo Request
来探测主机存活
nmap -sn CIDR :对该网络中所有主机进行了扫描,不进行端口扫描,直接扫描存活性
nmap -Pn CIDR :对所有端口进行扫描
Nmap结果输出
nmap -p 80,445 -v baidu.com -oX test.xml
扫描结果将输入到test.xml中去
Nmap端口扫描技巧
实际场景:
在实际环境中,当系统管理员对设备进行管理时,或者渗透测试人员对设备进行检测的时候,并不是一定对所有的服务进行操作,极有可能是对某个活某个范围内的服务进行检测。
如果对所有服务进行探测,那么就会出现耗时长,费力不讨好的情况。针对这样的情况,我们很有必要了解使用Nmap来更加灵活的进行服务探测,避免全端口探测对服务器造成压力。
//针对某一个端口进行检测
namp -p 80 baidu.com
//针对某几个端口进行检测
nmap -p 80,445 baidu.com
//针对某个范围端口进行检测
nmap -p1--100 baidu.com
//针对所有端口进行检测
nmap -p baidu.com
//通过协议名来扫描端口
nmap -p smtp baidu.com
Nmap NSE脚本的使用
NSE:nmap script engine,nmap脚本引擎,内置很多可以用来扫描的,用来针对特定任务的脚本,通过nse可以不断扩展nmap的扫描策略,加强namp的功能。
Nmap中使用 --script 参数来指定调用的脚本,并且脚本存储再nmap 安装路径下的script文件夹下,对于kali linux存储在/usr/share/namp/script下
//使用Nmap 探测web服务的title信息
nmap --script http-title Ip
nmap --script http-headers IP
Nmap分类使用:
对于目标使用多个分类脚本进行检测,可以更快的找到目标的信息和弱点。
使用nmap中的漏洞分类脚本来对目标进行检测,使用命令如下:
nmap -sV --script vuln 目标
通过这个可以得到目标的漏洞
如果想要发现分版本信息分类进行探测,可以使用命令如下
nmap -sV --script="version,discovery"
使用nmap除了exploit(溢出)分类之外的其他分类进行探测,使用命令如下
namp -sV --script="not exploit" <目标>
使用http*(探测Http服务的脚本)
nmap -sV --script "(http*) and not (http-slowors and http-brute)"
NSE调试功能的使用
nmap -sV --script exploit -d 3 --script-trace 目标
-d(debug 范围0-9)
NSE 参数的使用
nmap -sV --script http-title --script-args http.useragent="Mozilla 999" <target>
NSE 更新
nmap --script-updatedb
使用特定网卡进行扫描
首先查看网卡:
nmap -e etho0 192.168.206.131
Nmap 对某个网络进去探测的时候,有可能之前有探测过的结果,现在探测过后,需要对比之前和现在的结果进行对比,来找到两次不同点。
监视网络变化,达到网络监控的目的。
在Nmap整个工程中,除了主要的nmap工具之外,还包括很多其他工具,比如ndiff
ndiff -h //查看nidff 帮助信息
ndiff File1 File2 //对比两次结果
Nmap 查看网卡列表
nmap -iflist
nmap -e 192.168.206.131
------------恢复内容结束------------
渗透测试--Nmap主机识别的更多相关文章
- 小白日记14:kali渗透测试--NMAP
NAMP 被认为是最强大的扫描器 所有参数 root@kali:~# nmap Nmap 7.01 ( https://nmap.org ) Usage: nmap [Scan Type(s)] [O ...
- 渗透测试工具Nmap从初级到高级使用教程
本文由阿德马翻译自国外网站,请尊重劳动成果,转载请注明出处,谢谢 Nmap是一款网络扫描和主机检测的非常有用的工具.Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它 ...
- 渗透测试工具Nmap从初级到高级
Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...
- Kali Linux渗透测试实战 2.2 操作系统指纹识别
目录 2.2 操作系统指纹识别 2.2.1 Banner抓取 2.2.2 TCP 和 ICMP 常规指纹识别技术 TCP数据报格式 ICMP首部格式 TTL与TCP窗口大小 FIN探测 BOGUS f ...
- 读书笔记 ~ Nmap渗透测试指南
记录Nmap选项及脚本使用,仅供参考... 除了端口扫描,好像其它脚本都比较鸡肋,用途感觉应该没有专用的小工具好用,不过还是可以看看,选项和脚本还是相当的丰富的. Nmap 使用帮助 starnigh ...
- Nmap渗透测试使用方法
Nmap渗透测试使用方法 目标选择2 端口选择2 操作系统和服务检测2 Nmap输出格式2 用NSE脚本深入挖掘2 HTTP服务信息3 检测SSL漏洞问题的主机3 设备扫描3 按VNC扫描5 按SMB ...
- 渗透测试工具Nmap篇
Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...
- 读书笔记——商广明《Nmap渗透测试指南》
一 Nmap基础学习 1.简介及安装 Nmap是一款由C语言编写的.开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Ne ...
- Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap
Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap 网络扫描和嗅探工具——Nmap Nmap也就网络映射器(Network Mapper),是一个免费开放的网络扫描和嗅探工具.该工具可以扫描 ...
随机推荐
- 小白搭建WNMP详细教程---PHP安装与设置
php的安装请参考WAMP中PHP的安装教程https://www.cnblogs.com/missbye/p/12049925.html 需要注意的是,我们下载的PHP版本要下载Non Thread ...
- Codeforces Round #626 (Div. 2) D. Present(位运算)
题意: 求n个数中两两和的异或. 思路: 逐位考虑,第k位只需考虑0~k-1位,可通过&(2k+1-1)得到一组新数. 将新数排序,当两数和在[2k,2k+1)和[2k+1+2k,2k+2)之 ...
- POJ2932 Coneology【圆扫描线】
POJ2932 Coneology 题意: 给出一些不相交的圆,问有多少个圆不被其他圆包围 题解: 扫描线,把所有圆的左边界和右边界放到\(vector\)里排序,遍历到圆左边界的时候判断是否满足条件 ...
- c语言中qsort函数的使用、编程中的一些错误
qsort()函数: 功能:相当于c++sort,具有快排的功能,复杂度的话nlog(n)注:C中的qsort()采用的是快排算法,C++的sort()则是改进的快排算法.两者的时间复杂度都是nlog ...
- Codeforces Round #653 (Div. 3) A. Required Remainder (数学)
题意:有三个正整数\(x,y,n\),再\(1\)~\(n\)中找一个最大的数\(k\),使得\(k\ mod\ x=y\). 题解:先记\(tmp=n/x\),再判断\(tmp*x+y\)的值是否大 ...
- F(x) HDU - 4734
题意: 给你一个n位的数x(A(n)A(n-1)...A(1)),那么F(x)=A(n)*2^(n-1)+A(n-1)*2^(n-2)......+A(1)*2^(0) 题目输入A.B 你需要找出来在 ...
- Python优化机制:常量折叠
英文:https://arpitbhayani.me/blogs/constant-folding-python 作者:arprit 译者:豌豆花下猫("Python猫"公众号作者 ...
- C# Dictionaries
Dictionaries 字典 在C# 里是用接口 IDictionary来实现的,最常用的字典就是Dicrtionary<tkey,tvalue>,键值对的形式,和index,item ...
- C语言中函数的调用方式
第一眼看到这样一个题目的我,心想除了如下的直接调用还能怎么调用呢? 1 void fun(void) 2 { 3 ...... 4 //你的代码 5 ..... 6 } 7 int main(void ...
- 015.NET5_MVC_Razor局部视图
局部视图 1. 可以增加代码的重用性 如何定义? 1.添加一cshtml文件 2. 在页面中调用局部视图:@html.Partial("局部视图的名称") 问题:局部视图中不能访问 ...