渗透测试之nmap
一,功能介绍
Nmap是网络连接端口扫描软件,用来扫描网上电脑开放的哪些连接端口,并且确定哪些服务运行在哪些端口连接,推断是哪个操作系统,他是网络管理员必备的软件之一,以及用于评估网络系统安全。
二,部署指南
* kali集成坏境
* 单独安装
三,实战
Nmap的参数选项繁多,功能非常丰富,Nmap的通用命令格式Nmap<扫描选项><扫描目标>
(一)主机发现
1)主机发现原理
主机发现的原理和ping命令差不多,发送探测包到目标主机,如果收到回复,那表明主机是存在的。Nmap支持十多种不同的主机探测方式,如ICMP BCHO/TIMESYAMP/NETMASK报文,发送TCPSYN/AVCK包,发送SCTP INIT/COOKIE-ECHO包,用户可以在不同的条件下灵活选用不同的方式进行探测目标主机。
2)主机发现的基本用法
- -sL:List Scan 列表扫描,仅将扫描的主机列举出来,不进行主机发现。
- -sn:Ping Scan 只进行主机发现,不进行端口扫描。
- -Pn:将指定的主机视为开启,跳过主机发现的过程。
- -PS/PA/PU/PY:使用TCP SYN/ACK或SCTP INIT/ECHO方式进行主机发现。
- -PE/PP/PM:使用ICMP echo,tmestamp,and netmask 请求发现主机。
- -PO:使用IP协议包探测对方主机是否开启。
- -n /-R:-n表示不进行DNS解析,-R表示总进行DNS解析。
- --dns-server:指定dns服务器。
- --system-dns:指定使用系统的DNS。
- --traceroute:追踪每个路由节点。
(二)端口扫描
1)端口扫描原理:
端口扫描是Nmap最核心的功能,用于确定TCP/UDP端口的开放情况,默认情况下,Nmap会扫描1000个最有可能开放的TCP端口,Nmap将端口分为六个状态。
open:端口是开放的。
closed:端口是关闭的。
filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
unfiltered:端口没有被屏蔽,但是否开放需进一步确定。
open/filtered:端口是开放的或被屏蔽。
closed/unfiltered:端口是关闭的或没有被屏蔽。
端口扫描非常强大,提供了很多的探测方式:
- TCP SYN scanning
- TCP connect scanning
- TPC ACK scanning
- TCP FIN/Xmas/NULl scanning
- UDP scanning
- 其他方式
2)端口扫描用法
- -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
- -sU:指定使用UDP方式确定目标主机的UDP状况。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
- --scanflags <flags>: 定制TCP包的flags。
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)。
- -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
- -sO: 使用IP protocol 扫描确定目标机支持的协议类型。
-b <FTP relay host>: 使用FTP bounce scan扫描方式 。
(三)版本侦测
1)版本侦测原理
简要的介绍版本的侦测原理。版本侦测主要分为以下几个步骤:
- 首先检查open与open|filtered状态的端口是否在排除端口列表内。如果在排除列表,将该端口剔除。
- 如果是TCP端口,尝试建立TCP连接。尝试等待片刻(通常6秒或更多,具体时间可以查询文件nmap-services-probes中Probe TCP NULL q||对应的 totalwaitms)。通常在等待时间内,会接收到目标机发送的“WelcomeBanner”信息。nmap将接收到的Banner与nmap-services-probes中NULL probe中的签名进行对比。查找对应应用程序的名字与版本信息。
- 如果通过“Welcome Banner”无法确定应用程序版本,那么nmap再尝试发送其他的探测包(即从nmap-services-probes中挑选合适的probe),将probe得到回复包与数据库中的签名进行对比。如果反复探测都无法得出具体应用,那么打印出应用返回报文,让用户自行进一步判定。
- 如果是UDP端口,那么直接使用nmap-services-probes中探测包进行探测匹配。根据结果对比分析出UDP应用服务类型。
- 如果探测到应用程序是SSL,那么调用openSSL进一步的侦查运行在SSL之上的具体的应用类型。
- 如果探测到应用程序是SunRPC,那么调用brute-force RPC grinder进一步探测具体服务。
2)版本侦测用法:
- -sV: 指定让Nmap进行版本侦测
- --version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
- --version-light: 指定使用轻量侦测方式 (intensity 2)
- --version-all: 尝试使用所有的probes进行侦测 (intensity 9)
- --version-trace: 显示出详细的版本侦测过程信息。
(四)os侦测
1)os侦测原理
Nmap使用TCP/IP协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定,
由此不同的TCP/IP方案中可能都有自己的特定方式。Nmap主要是根据这些细节上的差异来判断操作系统的类型的。
具体实现方式如下:
Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中)。将此指纹数据库作为进行指纹对比的样本库。
分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。
将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。
2)os侦测用法
- -O: 指定Nmap进行OS侦测。
- --osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。
- --osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统。
(五)漏洞扫描
扫描端口并且标记可以爆破的服务
nmap
目标
--script=ftp-brute,imap-brute,smtp-brute,pop3-brute,mongodb-brute,redis-brute,
ms-sql-brute,rlogin-brute,rsync-brute,mysql-brute,pgsql-brute,oracle-sid-brute,
oracle-brute,rtsp-url-brute,snmp-brute,svn-brute,telnet-brute,vnc-brute,xmpp-brute
判断常见的漏洞并扫描端口
nmap
目标
--script=auth,vuln
精确判断漏洞并扫描端口
nmap
目标
--script=dns-zone-transfer,ftp-anon,ftp-proftpd-backdoor,ftp-vsftpd-backdoor,
4221
ftp-vuln-cve2010-,http-backup-finder,http-cisco-anyconnect,
info
http-iis-short-name-brute,http-put,http-php-version,http-shellshock,http-robots.
txt,http-svn-enum,http-webdav-scan,iis-buffer-overflow,iax2-version,memcached-,
info
mongodb-,msrpc-enum,ms-sql-
info,mysql-
info,nrpe-enum,pptp-version,redis-
info,
2012
rpcinfo,samba-vuln-cve--
1182,smb-vuln-ms08-
067,smb-vuln-ms17-
010,snmp-
info,sshv1,
info
xmpp-,tftp-enum,teamspeak2-version
四,Nmap的优劣势
优势:
- 功能灵活强大,支持多种目标,大量计算机的同时扫描;
- 开源,相关帮助文档十分详细;
- 流行,由于其具有强大的扫描机探测功能,,已被成千上万安全专家使用。
劣势:
- Nmap参数众多,难以一一记忆;
渗透测试之nmap的更多相关文章
- kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail
kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail 相关链接:https://www.bbsmax.com/A/xl569l20Jr/ http://4hou.win/wordp ...
- 互联网渗透测试之Wireshark的高级应用
互联网渗透测试之Wireshark的高级应用 1.1说明 在本节将介绍Wireshark的一些高级特性 1.2. "Follow TCP Stream" 如果你处理TCP协议,想要 ...
- 渗透测试之BurpSuite工具的使用介绍(三)
若希望从更早前了解BurpSuite的介绍,请访问第二篇(渗透测试之BurpSuite工具的使用介绍(二)):https://www.cnblogs.com/zhaoyunxiang/p/160002 ...
- 小白日记11:kali渗透测试之服务扫描-banner、dmitry、nmap特征库、操作系统识别、SNMP
服务扫描 不能单纯的以端口辨别服务.很多网络服务是漏洞频发的高危对象,对网络上的特定服务进行扫描,往往能让我们少走弯路,增加渗透成功的几率.确定开放端口后,通常会对相应端口上所运行服务的信息进行更深入 ...
- 小白日记9:kali渗透测试之主动信息收集(二)四层发现:TCP、UDP、nmap、hping、scapy
四层发现 四层发现的目的是扫描出可能存活的IP地址,四层发现虽然涉及端口扫描,但是并不对端口的状态进行精确判断,其本质是利用四层协议的一些通信来识别主机ip是否存在. 四层发现的优点: 1.可路由且结 ...
- 小白日记8:kali渗透测试之主动信息收集(二)三层发现:ping、traceroute、scapy、nmap、fping、Hping
三层发现 三层协议有:IP以及ICMP协议(internet管理协议).icmp的作用是用来实现intenet管理的,进行路径的发现,网路通信情况,或者目标主机的状态:在三层发现中主要使用icmp协议 ...
- web安全测试&渗透测试之sql注入~~
渗透测试概念: 详见百度百科 http://baike.baidu.com/link?url=T3avJhH3_MunEIk9fPzEX5hcSv2IqQlhAfokBzAG4M1CztQrSbwsR ...
- 小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto
扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...
- 小白日记7:kali渗透测试之主动信息收集-发现(一)--二层发现:arping/shell脚本,Netdiscover,scapy
主动信息收集 被动信息收集可能不准确,可以用主动信息收集验证 特点:直接与目标系统交互通信,无法避免留下访问痕迹 解决方法:1.使用受控的第三方电脑进行探测,使用代理 (做好被封杀的准备) 2 ...
随机推荐
- Vue环境搭建、创建与启动、案例
vue环境搭建 """ 1) 安装node 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 安装cnpm npm install - ...
- Java源码赏析(三)初识 String 类
由于String类比较复杂,现在采用多篇幅来讲述 这一期主要从String使用的关键字,实现的接口,属性以及覆盖的方法入手.省略了大部分的字符串操作,比如split().trim().replace( ...
- 刷题[FBCTF2019]Event
解题思路 信息收集 打开发现是这样的登陆框,信息泄露,弱口令什么的尝试一下,无果,正常注册登陆 发现需要通过admin用户登陆,并且发现有/flag这样的路由,猜测后台为python编写 抓包发现有看 ...
- 一道无限极类 PHP 试题
记某次笔试碰到的一道无限极类试题,当时时间比较紧(满满六页试题),还是手写代码,所以最终写的有点错误.记不住原题了,但是要求都知道,特此记录下来! 试题 有下面一个数组: $arr = [ '小红' ...
- python中闭包详解
谈谈自己的理解:python中闭包,闭包的实质 闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~ 请大家跟我理解一下,如果在一个 ...
- Processing 状态量控制动画技巧
之前在CSDN上发表过: https://blog.csdn.net/fddxsyf123/article/details/62848357
- java进阶(23)--List接口
一.基本概念 1.有序可重复 2.有下标 3.包含ArraList.LinkedList.Vector 二.List中特有的方法 且常用 (以下军均为数组通用方法) 1.void add(int ...
- Android Widget开发过程中的一些问题汇总
一.基本实现要点 布局文件 配置文件 控制文件 AndroidManifest.xml
- nginx 1.12 负载均衡配置
负载均衡策略有以下几种: 请求轮询:round-robin,是默认策略,应用服务器的请求以循环方式分发,可以设置权重weight,默认权重均为1,因此每台后端服务器接受的请求数相同. 最少连接:lea ...
- Python练习题 045:Project Euler 017:数字英文表达的字符数累加
本题来自 Project Euler 第17题:https://projecteuler.net/problem=17 ''' Project Euler 17: Number letter coun ...