渗透测试--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),是一个免费开放的网络扫描和嗅探工具.该工具可以扫描 ...
随机推荐
- Eureka详解系列(三)--探索Eureka强大的配置体系
简介 通过前面的两篇博客,我们知道了:什么是 Eureka?为什么使用 Eureka?如何适用 Eureka?今天,我们开始来研究 Eureka 的源码,先从配置部分的源码开始看,其他部分后面再补充. ...
- 烧录失败导致boot无法加载的解决措施,再也不怕烧成砖了
目录: 1.usb烧录时出现的问题截图 2.重新擦除boot发现失败的情况 3.解决措施 烧录失败导致boot无法加载的解决措施在烧录系统的时候经常会遇到烧录失败的情况,如果能通过再次执行烧录能烧上肯 ...
- 2019CCPC厦门站总结
这是一篇打铁游记~ $day1$ 坐动车去厦门,三个人买了一堆零食,吃了一路,除了睡觉嘴巴基本就没停过.当然,我们到酒店后也去吃了烧烤,我们虽然是在岛外的厦门北站的下的,还是很幸运的找到一家好吃了,乌 ...
- Codeforces Global Round 7 D1. Prefix-Suffix Palindrome (Easy version)(字符串)
题意: 取一字符串不相交的前缀和后缀(可为空)构成最长回文串. 思路: 先从两边取对称的前后缀,之后再取余下字符串较长的回文前缀或后缀. #include <bits/stdc++.h> ...
- CF1313C2 Skyscrapers (hard version)
思路: 使用单调栈. 实现: 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 con ...
- Codeforces Round #646 (Div. 2) B. Subsequence Hate (思维,前缀和)
题意:给你一个只含有\(0\)和\(1\)的字符串,每次操作可以将\(0\)改成\(1\)或\(1\)改成\(0\),问最少操作多少次,使得子序列中不含有\(010\)和\(101\). 题解:仔细想 ...
- Codeforces Round #653 (Div. 3) C. Move Brackets
题意/题解:经典括号匹配题目,不多说了. 代码: int t; int n; string s; int cnt; int main() { ios::sync_with_stdio(false);c ...
- Codeforces Round #658 (Div. 2) D. Unmerge (思维,01背包)
题意:有两个数组\(a\)和\(b\),每次比较它们最左端的元素,取小的加入新的数组\(c\),若\(a\)或\(b\)其中一个为空,则将另一个全部加入\(c\),现在给你一个长度为\(2n\)的数组 ...
- Spring:解决因@Async引起的循环依赖报错
最近项目中使用@Async注解在方法上引起了循环依赖报错: org.springframework.beans.factory.BeanCurrentlyInCreationException: Er ...
- [Golang]-3 函数、多返回值、变参、闭包、递归
// test01 project main.go package main import ( "fmt" ) // 单返回值的函数 func plus(a int, b int) ...