简介
从诞生之初,Nmap就一直是网络发现和攻击界面测绘的首选工具。从主机发现和端口扫描,到操作系统检测和IDS规避/欺骗,Nmap是大大小小黑客行动的基本工具。
为了绘制网络拓扑图,Nmap的发送特制的数据包到目标主机,然后对返回数据包进行分析。Nmap是一款枚举和测试网络的强大工具。
功能
1.主机探测
2.端口扫描
3.版本检测
4.支持探测脚本的编写
安装
首先访问Nmap官网:nmap.org,获得windows对应版本的安装包。
图形化:Zenmap
下载对应安装包后,点击安装,根据提示,一直安装即可。
选择并更改安装路径,点击安装
软件主界面
可以看出其内置了很多扫描类型,支持查看多种扫描结果,UI界面比较直观
此外,还可以在linux终端内安装,更加灵活。
Nmap使用
查看linux下nmap的帮助信息。(执行命令nmpa -h)
less
Nmap 7.80 ( https://nmap.org ) Usage: nmap [Scan Type(s)] [Options] {target specification}
可见nmap指令的一般格式是:nmap \[扫描类型(可叠加)\] \[选项\] \[目标\]
其中目标可以有如下格式:
TARGET SPECIFICATION:
ini
Can pass hostnames, IP addresses, networks, etc.Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254-iL <inputfilename>: Input from list of hosts/networks-iR <num hosts>: Choose random targets--exclude <host1[,host2][,host3],...>: Exclude hosts/networks--excludefile <exclude_file>: Exclude list from file
其他可以指定的参数(部分)有:
-
HOST DISCOVERY: 目标勘测的手段
-
SCAN TECHNIQUES: 指定扫描的技术
-
PORT SPECIFICATION AND SCAN ORDER: 指定端口和扫描顺序
-
SERVICE/VERSION DETECTION: 服务/版本 勘测
-
OS DETECTION: 操作系统勘测
参考windows上有UI的nmap版本内置的扫描类型:
css
Intense scan nmap -T4 -A -v www.baidu.com Intense scan plus UDP nmap -sS -sU -T4 -A -v www.baidu.com Intense scan, all TCP ports nmap -p 1-65535 -T4 -A -v www.baidu.com Intense scan, no ping nmap -T4 -A -v -Pn www.baidu.com Ping scan nmap -sn www.baidu.com Quick scan nmap -T4 -F www.baidu.com Quick scan plus nmap -sV -T4 -O -F \--version-light www.baidu.com Quick traceroute nmap -sn \--traceroute www.baidu.com Regular scan nmap www.baidu.com Slow comprehensive scan nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 \--script \"default or (discovery and safe)\" www.baidu.com
利用Nmap实施网络扫描
主机发现
原理
当网络不通时,我们需要ping一下主机,检查网关是否正常,这与主机发现原理一样。当测试目标是一个网络时,在线的主机才是我们的用主机发现的目标,nmap中提供了许多主机发现的方法,大多与TCP/IP协议簇中的协议有关。
1、跳过ping扫描阶段:
nmap进行其他扫描之前都会对目标进行一个ping扫描。如果目标对ping 扫描无反应将结束整个扫描过程。这种方法可以跳过那些没有响应的主机,从而节省大量时间,但如果目标在线只是采用某种手段屏蔽了ping 扫描,从而躲过我们的其他扫描操作,我们可以指定无论目标是否响应ping 扫描,毒药将整个扫描过程完整的参数呈现出来;如 nmap -PN 192.168.169.131。
2、仅使用ping协议进行主机发现:
有时需要对大量的主机扫描,nmap如果对一个目标主机采取各种手段进行扫描会花费大量时间。这时我们只对目标主机进行扫描。如 nmap -sP 192.168.169.131。
3、使用ARP协议进行主机发现:
当目标主机与我们处于同一网段时,使用ARP协议扫描是最佳选择。不仅速度快,扫描结果精准。因为没有任何的安全措施会阻止正常的arp请求。如 nmap -PR 192.168.169.131。
4、使用TCP协议进行主机发现:
TCP协议主要是三次握手构成,主动端发送syn报文,被动端回应syn+ack报文,然后主动端回应ack。利用此过程,nmap向目标发送syn报文,如果对方回应了syn+ack则说明在线。半开扫描,如nmap -sS 192.168.169.131。全开扫描,如nmap -sT 192.168.169.131。
5、使用UDP协议进行主机发现:
UDP相比较TCP简单,但扫描时并不比TCP协议方便,而且花费时间长,因此这种扫描不常用。如nmap -sU 192.168.169.131。
用法
通常主机发现并不单独使用,而只是作为端口扫描、版本侦测、OS侦测先行步骤。而在某些特殊应用(例如确定大型局域网内活动主机的数量),可能会单独专门适用主机发现功能来完成
sql
复制代码
HOST DISCOVERY: -sL: List Scan - simply list targets to scan -sn: Ping Scan - disable port scan -Pn: Treat all hosts as online -- skip host discovery -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes -PO[protocol list]: IP Protocol Ping -n/-R: Never do DNS resolution/Always resolve [default: sometimes] --dns-servers <serv1[,serv2],...>: Specify custom DNS servers --system-dns: Use OS's DNS resolver --traceroute: Trace hop path to each host
其中,比较常用的使用的是-sn,表示只单独进行主机发现过程;-Pn表示直接跳过主机发现而进行端口扫描等高级操作(如果已经确知目标主机已经开启,可用该选项);-n,如果不想使用DNS或reverse DNS解析,那么可以使用该选项。
操作
命令:nmap -sn IP
端口扫描
原理
nmap向目标主机发送报文并根据返回报文从而认定端口的6种状态。(注意:这六种状态只是namp认为的端口状态,例如:有些主机或者防火墙会返回一些不可靠的报文从而妨碍nmap对端口开放问题的确认)。
-
Open(开放的):端口处于开放状态,意味着目标机器上的应用程序正在该端口监听连接/报文;
-
Closed(关闭的):端口处于关闭状态。这里我们值得注意的是关闭的端口也是可访问的,只是该端口没有应用程序在它上面监听,但是他们随时可能开放;
-
Filtered(过滤的):由于包过滤阻止探测报文到达端口, Nmap 无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙;
-
Unfiltered(未被过滤的):意味着端口可访问,但 Nmap 不能确定它是开放还是关闭。这种状态和filtered的区别在于:unfiltered的端口能被nmap访问,但是nmap根据返回的报文无法确定端口的开放状态,而filtered的端口直接就没能够被nmap访问。端口被定义为Unfilterd只会发生在TCP ack扫描类型时当返回RST的报文。而端口被定义为filtered 状态的原因是是报文被防火墙设备,路由器规则,或者防火墙软件拦截,无法送达到端口,这通常表现为发送NMAP的主机收到ICMP报错报文,或者主机通过多次重复发送没有收到任何回应)。
-
Open|filtered状态:这种状态主要是nmap无法区别端口处于open状态还是filtered状态。这种状态只会出现在open端口对报文不做回应的扫描类型中,如:udp,ip protocol ,TCP null,fin,和xmas扫描类型。
-
Closed|filtered状态:这种状态主要出现在nmap无法区分端口处于closed还是filtered时。
用法
扫描方式选项
diff
SCAN TECHNIQUES: -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans -sU: UDP Scan -sN/sF/sX: TCP Null, FIN, and Xmas scans --scanflags <flags>: Customize TCP scan flags -sI <zombie host[:probeport]>: Idle scan -sY/sZ: SCTP INIT/COOKIE-ECHO scans -sO: IP protocol scan -b <FTP relay host>: FTP bounce scan
端口参数与扫描顺序:
diff
PORT SPECIFICATION AND SCAN ORDER: -p <port ranges>: Only scan specified ports Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 --exclude-ports <port ranges>: Exclude the specified ports from scanning -F: Fast mode - Scan fewer ports than the default scan -r: Scan ports consecutively - don't randomize --top-ports <number>: Scan <number> most common ports --port-ratio <ratio>: Scan ports more common than <ratio>
操作
命令:nmap --sS --sU --T4 --top-ports 300 www.baidu.com
参数:
-sS表示使用TCP SYN方式扫描TCP端口;
-sU表示扫描UDP端口;
-T4表示时间级别配置4级;
–top-ports 300表示扫描最有可能开放的300个端口(TCP和UDP分别有300个端口)。
从上图中,我们看到扫描结果,在扫描的300个端口中,有298个是关闭的;开放的 分别是80和443端口。
版本侦测
原理
版本侦测主要分为以下几个步骤:
首先检查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进一步探测具体服务。
用法
lua
SERVICE/VERSION DETECTION: -sV: Probe open ports to determine service/version info --version-intensity <level>: Set from 0 (light) to 9 (try all probes) --version-light: Limit to most likely probes (intensity 2) --version-all: Try every single probe (intensity 9) --version-trace: Show detailed version scan activity (for debugging)
操作
命令:nmap --sV www.baidu.com
![图片](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘www.w3.org/2000/svg’ xmlns:xlink=‘www.w3.org/1999/xlink’… stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=’%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)
从图中可知,本次一个扫描了1000个端口,其中有998个是关闭的。
对开开放的两个端口上的服务进行版本侦测的结如方框内显示。
OS侦测
原理
Nmap使用TCP/IP协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/IP的实现并没有强制规定,由此不同的TCP/IP方案中可能都有自己的特定方式。Nmap主要是根据这些细节上的差异来判断操作系统的类型的。
具体实现方式如下:
-
Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中)。将此指纹数据库作为进行指纹对比的样本库。
-
分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。
-
将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。
用法
diff
OS DETECTION: -O: Enable OS detection --osscan-limit: Limit OS detection to promising targets --osscan-guess: Guess OS more aggressively
操作
命令:nmap --O 127.0.0.1
从上图中可看到,指定-O选项后先进行主机发现与端口扫描,根据扫描到端口来进行进一步的OS侦测。获取的结果信息有设备类型,操作系统类型,操作系统的CPE描述,操作系统细节,网络距离等。
最后综合上述命令,对www.baidu.com执行一次加强的快速扫描:
命令:nmap -sV -T4 -O -F --version-light www.cug.edu.cn
通过上述结果,可以看出:
本次侦测共用时5.38s。扫描了一个IP的100个端口,该主机在线。
扫描出5个运行中的服务,类型如上图。
暂时无法准确判断操作系统的类型,但是最有可能是FreeBSD和PC-BSD,对应的概率如上图所示。
题外话
初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:
-
2023届全国高校毕业生预计达到1158万人,就业形势严峻;
-
国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。
网络安全行业特点
1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
需要全套共282G的《网络安全&黑客技术零基础到进阶全套学习大礼包》,可以扫描下方二维码免费领取!
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享