千家信息网

Nmap在pentest box中的扫描及应用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,最近一直在思考,Web***中,正面的***是一种思路,横向和纵向***也是一种思路,在***过程中,目标主站的防护越来越严格,而子站或者目标所在IP地址的C段或者B端的***相对容易,这种***涉及
千家信息网最后更新 2026年11月01日Nmap在pentest box中的扫描及应用

最近一直在思考,Web***中,正面的***是一种思路,横向和纵向***也是一种思路,在***过程中,目标主站的防护越来越严格,而子站或者目标所在IP地址的C段或者B端的***相对容易,这种***涉及目标信息的搜集和设定,而对这些目标信息收集最主要方式是子域名暴力破解和端口扫描。子域名暴力破解,会在下一篇文章中专门介绍,本文主要介绍端口扫描以及应用的思路。

一.端口扫描准备工作

1.下载pentestbox

pentestbox是一款Windows下集成的***测试平台,其官方网站地址:https://pentestbox.org/,最新版本为2.2版本,可以下载带有Metasploit和不带Metasploit的程序,下载地址:

https://sourceforge.net/projects/pentestbox/files/

https://nchc.dl.sourceforge.net/project/pentestbox/PentestBox-with-Metasploit-v2.2.exe

下载完成后将该exe文件解压以后即可使用。

2.下载nmap最新版本并升级pentestbox

目前nmap最新的稳定版本为7.6版本(https://nmap.org/dist/nmap-7.60-win32.zip),将其下载到本地,解压后,找到PentestBox 安装目录,例如:E:\PentestBox\bin\nmap,将nmap-7.60-win32.zip解压后的所有文件覆盖该目录,升级pentestbox中的nmap到最新版本。

3.整理并确定目标信息

通过子域名暴力破解,获取目前子域名的IP地址,对这些地址进行整理,并形成子域名或者域名地址所在的IP地址C端,例如192.168.1.1-254。如果是单个目标则可以ping或者域名查询等方法获取域名的真实IP地址。

二、使用NMAP进行扫描

1.nmap扫描参数详解

Usage:nmap [Scan Type(s)] [Options] {target specification}

TARGETSPECIFICATION:

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 :输入主机或者网络的列表,iL参数后跟输入文件的名称,文件内容为IP地址、IP地址范围或者网络地址

-iR :随机选择目标进行扫描,0表示永远扫描。

--exclude : 排除主机/网络

--excludefile : 从文件中排出主机或者网络

主机发现:

-sL: List Scan -简单列表扫描,一般很少用,就是发现主机的简单信息,不包含端口等信息。

-sn: Ping扫描 -不能端口扫描,主要发现主机列表,了解主机运行情况。

-Pn: 在线处理所有主机,略过主机发现

-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK, UDP 或者SCTP去发现给出的端口。

-PE/PP/PM: ICMP回声,时间戳,和子网掩码请求发现探针

-PO[protocol list]: IP 协议Ping,后跟协议列表

-n:不用域名解析,永不对它发现的活动IP地址进行反向域名解析。

-R:告诉Nmap 永远对目标IP地址作反向域名解析。

--system-dns:使用系统域名解析器,默认情况下,Nmap通过直接发送查询到您的主机上配置的域名服务器来解析域名。为了提高性能,许多请求 (一般几十个 ) 并发执行。如果您希望使用系统自带的解析器,就指定该选项。

--traceroute: 跟踪每个主机的跳路径

扫描技术:

-sS/sT/sA/sW/sM: TCPSYN/Connect()/ACK/Window/Maimon scans

-sS :TCP SYN扫描(半开放扫描),SYN扫描作为默认最受欢迎的扫描选项,它执行得很快,在一个没有***防火墙的快速网络上,每秒钟可以扫描数千个端口。

-sT :TCP connect()扫描, TCP连接扫描会留下扫描连接日志。

-sU :UDP扫描,它可以和TCP扫描如 SYN扫描(-sS)结合使用来同时检查两种协议,UDP扫描速度比较慢。

-sN: Null扫描,不设置任何标志位(tcp标志头是0)

-sF :FIN扫描,只设置TCP FIN标志位。

-sX :Xmas扫描,设置FIN,PSH,和URG标志位。

-sN;-sF; -sX (TCP Null,FIN,and Xmas扫描)扫描的关键优势是它们能躲过一些无状态防火墙和报文过滤路由器。另一个优势是这些扫描类型甚至比SYN扫描还要隐秘一些。

--scanflags :定制的TCP扫描,--scanflags选项允许您通过指定任意TCP标志位来设计您自己的扫描。--scanflags选项可以是一个数字标记值如9 (PSH和FIN),但使用字符名更容易些。只要是URG, ACK,PSH, RST,SYN,and FIN的任何组合就行。

-sI (Idlescan),这种高级的扫描方法允许对目标进行真正的TCP端口盲扫描 (意味着没有报文从您的真实IP地址发送到目标)。相反,side-channel***利用zombie主机上已知的IP分段ID序列生成算法来窥探目标上开放端口的信息。 IDS系统将显示扫描来自您指定的zombie机。除了极端隐蔽(由于它不从真实IP地址发送任何报文),该扫描类型可以建立机器间的基于IP的信任关系。端口列表从zombie主机的角度。显示开放的端口。

-sY/sZ: SCTP INIT/COOKIE-ECHO scans

-sO: IP协议扫描,确定目标机支持哪些IP协议 (TCP,ICMP,IGMP,等等)。协议扫描以和UDP扫描类似的方式工作。它不是在UDP报文的端口域上循环,而是在IP协议域的8位上循环,发送IP报文头。报文头通常是空的,不包含数据,甚至不包含所申明的协议的正确报文头TCP,UDP,和ICMP是三个例外。它们三个会使用正常的协议头,因为否则某些系统拒绝发送,而且Nmap有函数创建它们。

-b:FTP弹跳扫描,FTP协议的一个有趣特征是支持所谓代理ftp连接。它允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器。这个特性在很多层次上被滥用,所以许多服务器已经停止支持它了。其中一种就是导致FTP服务器对其它主机端口扫描。只要请求FTP服务器轮流发送一个文件到目标主机上的所感兴趣的端口。错误消息会描述端口是开放还是关闭的。这是绕过防火墙的好方法,因为FTP服务器常常被置于可以访问比Web主机更多其它内部主机的位置。Nmap用-b选项支持ftp弹跳扫描。参数格式是 :@:。是某个脆弱的FTP服务器的名字或者IP地址。您也许可以省略:, 如果服务器上开放了匿名用户(user:anonymouspassword:-wwwuser@)。端口号(以及前面的冒号) 也可以省略,如果使用默认的FTP端口(21)。

端口说明和扫描顺序:

-p :仅仅扫描指定的端口,例如-p22;-p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9

--exclude-ports :从扫描端口范围中排除扫描端口。

-F:快速扫描(有限的端口)

-r: 不要按随机顺序扫描端口,顺序对端口进行扫描

--top-ports : 扫描number个最常见的端口

服务和版本信息探测:

-sV:打开版本和服务探测,可以用-A同时打开操作系统探测和版本探测

--version-intensity :设置版本扫描强度,设置从0到9,默认是7,值越高越精确,但扫描时间越长

--version-light:打开轻量级模式,扫描快,但它识别服务的可能性也略微小一点。

--version-all: 保证对每个端口尝试每个探测报文(强度 9)

--version-trace: 跟踪版本扫描活动,打印出详细的关于正在进行的扫描的调试信息

脚本扫描:

-sC: 相当于--script=default

--script=: 是一个逗号分隔的目录、脚本文件或脚本类别列表,nmap常见的脚本在scripts目录下,例如ftp暴力破解脚本"ftp-brute.nse"

--script-args=: 提高扫描的参数

--script-args-file=filename: 在文件中提供NSE 脚本参数

--script-trace: 显示所有发送和接收的数据

--script-updatedb: 在线更新脚本数据库.

--script-help=:显示脚本的帮助信息。

服务器版本探测:

-O: 启用操作系统检测,也可以使用-A来同时启用操作系统检测和版本检测

--osscan-limit: 针对指定的目标进行操作系统检测

--osscan-guess: 推测操作系统检测结果

时间和性能:

选项

-T<0-5>: 设置时间扫描模板,T 0-5分别为paranoid(0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。T0,T1用于IDS躲避,Polite模式降低了扫描速度以使用更少的带宽和目标主机资源,默认为T3,Aggressive模式假设用户具有合适及可靠的网络从而加速扫描。Insane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。

--min-hostgroup/max-hostgroup : 调整并行扫描组的大小

--min-parallelism/max-parallelism: 调整探测报文的并行度

--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout

--host-timeout

--scan-delay/--max-scan-delay

--min-rate :每秒发送数据包不少于<数字>

--max-rate : 每秒发送数据包不超过<数字>

防火墙/ IDS逃避和欺骗:

-f; --mtu :报文包,使用指定的MTU (optionallyw/given MTU)使用小的IP包分段。其思路是将TCP头分段在几个包中,使得包过滤器、 IDS以及其它工具的检测更加困难

-D : 使用诱饵隐蔽扫描

-S :源地址哄骗

-e :使用指定的接口

-g/--source-port :源端口哄骗

--proxies :通过HTTP /Socks4代理传递连接

--data :向发送的包追加一个自定义有效负载

--data-string :向发送的数据包追加自定义ASCII字符串

--data-length :将随机数据追加到发送的数据包

--ip-options :用指定的IP选项发送数据包

--ttl : 设置IP的ttl值

--spoof-mac :欺骗你的MAC地址

--badsum: 发送数据包伪造TCP/UDP/SCTP校验

输出:

-oN/-oX/-oS/-oG : 输出正常扫描结果,XML, 脚本小子,和Grep输出格式,指定定输出文件名

-oA :一次输出三种主要格式

-v: 增量水平(使用 -vv ormore效果更好)

-d: 提高调试水平(使用 -dd ormore 效果更好)

--reason: 显示端口处于某一特定状态的原因。

--open: 只显示打开(或可能打开)端口

--packet-trace: 显示所有数据包的发送和接收

--iflist: 打印主机接口和路由(用于调试)

--append-output: 附加到指定的输出文件,而不是乱码

--resume :恢复中止扫描

--stylesheet :设置XSL样式表,转换XML输出

--webxml: 参考更便携的XML 的Nmap.org样式。

--no-stylesheet:忽略XML声明的XSL样式表,使用该选项禁止Nmap的XML输出关联任何XSL样式表

其它选项:

-6: 启用IPv6扫描

-A: 激烈扫描模式选项,启用OS、版本,脚本扫描和跟踪路由

--datadir :说明用户Nmap数据文件位置

--send-eth/--send-ip: 使用原以太网帧或在原IP层发送

--privileged: 假定用户具有全部权限

--unprivileged: 假设用户没有原始套接字特权

-V: 打印版本号

-h: 使用帮助信息

2.使用实例

(1)nmap -vscanme.nmap.org

扫描主机scanme.nmap.org中所有的保留TCP端口(1000端口)。选项-v启用细节模式。

(2)nmap -sS -Oscanme.nmap.org/24

进行秘密SYN扫描,对象为主机Saznme所在的"C类"网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描和操作系统检测,这个扫描需要有根权限。

(3)nmap -sV -p22,53,110,143,4564 198.116.0-255.1-127

进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。

(4)nmap -v -iR100000 -P0 -p 80

随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因此使用-P0禁止对主机列表。

(5)nmap -P0-p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20

扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。

(6)host -lcompany.com | cut -d -f 4 | nmap -v -iL -

进行DNS区域传输,以发现company.com中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux-- 其它系统进行区域传输时有不同的命令。

3.常用扫描

(1)nmap -p 1-65535 -T4 -A -v 47.91.163.1-254 -oX 47.91.163.1-254.xml

扫描47.91.163.1-254段IP地址,使用快速扫描模式,输出47.91.163.1-254.xml

(2)nmap -v 47.91.163.1-254

扫描C端常见TCP端口

(3)nmap -O 47.91.163.1

探测47.91.163.1服务器OS版本和TCP端口开放情况

(4)nmap -sn 10.0.1.161-166

扫描存活主机

(5)nmap -e eth0 10.0.1.161 -S 10.0.1.168 -Pn

使用伪装地址10.0.1.168对10.0.1.161进行扫描

(6)nmap -iflist

查看本地路由和接口

(7)nmap --script smb-vuln-ms17-010.nse -p 445 192.168.1.1

nmap-script=samba-vuln-cve-2012-1182-p 139 192.168.1.3

对主机192.168.1.1使用漏洞脚本smb-vuln-ms17-010.nse进行检测。

(8)nmap --script whois-domain.nse www.secbang.com

获取secbang.com的域名注册情况,该脚本对国外域名支持较好。

(9)nmap--script ftp-brute -p 21 127.0.0.1

暴力破解127.0.0.1的ftp账号

(10)nmap -sV-script=http-enum 127.0.0.1

枚举127.0.0.1的目录

4.实战扫描

对整理的IP地址段或者IP实施扫描:

(1)单一IP地址段扫描

nmap -p 1-65535 -T4 -A -v 47.91.163.1-254 -oX 47.91.163.1-254.xml

(2)IP地址段扫描

nmap -p 1-65535 -T4 -A -v -iLmytarget.txt -oX mytarget.xml

三.扫描结果分析及处理

1.查看扫描文件

有些情况,扫描是在服务器上进行,扫描结束后,将扫描结果下载到本地进行查看,如图1所示,又有XSL样式表解析导致出错。通常原因是由于nmap中的nmap.xsl文件位置不对,如图2所示,将正确的文件位置设置好即可。例如原nmap地址为:

C:/Program Files (x86)/Nmap/nmap.xsl

新的地址为:

E:\Tools\测试平台\PentestBox-with-Metasploit-v2.2\bin\nmap\nmap.xsl

在扫描结果的xml文件中进行替换即可,切记需要更换路径符号"\"为"/"。

图1查看xml显示错误

图2修改文件位置

2.分析并处理扫描结果

(1)从概览中查看端口开放主机

如图3所示,打开xml文件后,在文件最上端显示扫描总结,有底色的结果表示端口开放,黑色字体显示的IP表示未开放端口或者防火墙进行了拦截和过滤。

图3查看扫描概览

(2)逐个查看扫描结果

对浅绿色底的IP地址逐个进行查看,例如查看47.91.163.219,如图4所示,打开后可以看到IP地址以及端口开放等扫描结果情况,在open中会显示一些详细信息。

图4查看扫描结果具体扫描情况

(3)测试扫描端口开放情况

使用http://ip:port进行访问测试,查看网页是否可以正常访问,例如本例中http://47.91.163.174:8080/可以正常访问,系统使用tomcat,如图5所示。

图5访问扫描结果

(4)技巧

在浏览器中使用Ctrl+F快捷键可以对想查看的关键字进行检索。对所有的测试结果要记录,便于后期选择***方法。

3.进一步***

通过对扫描结果进行分析整理,对服务器开放的服务以及可能存在的漏洞进行直接或者间接测试,例如对Java平台,可以测试是否存在struts系列漏洞,如图6所示。有的目标还需要进行暴力破解,工具扫描等工作,直到发现漏洞,获取权限为止。

图6直接测试是否存在漏洞

在进一步***中需要结合多个知识点,需要针对出现的问题进行相应的检索。其可供参考思路如下:

(1)整理目标的架构情况,针对架构出现的漏洞进行尝试。

(2)如果有登录管理界面,尝试弱口令登录后暴力破解。

(3)使用wvs等扫描器对站点进行漏洞扫描

(4)使用burpsuite对站点进行漏洞分析和测试。

(5)如果是陌生的系统,可以通过百度等搜索引擎进行搜索查看,网上是否曾经出现漏洞和利用方法。

(6)下载同类源代码搭建环境进行测试,了解系统存在漏洞,对存在漏洞进行测试总结和再现,并对实际系统进行测试。

(7)挖掘系统可能存在的漏洞

(8)利用XSS来获取管理员的密码等信息。

(9)若掌握邮箱,可以通过msf生成***/apk等进行社工***。

(10)所有方法不行,就等等,重新整理思路。

参考文章:

https://nmap.org/man/zh/

http://www.nmap.com.cn/doc/manual.shtm


端口 主机 地址 文件 服务 目标 系统 版本 服务器 结果 测试 信息 报文 数据 漏洞 脚本 开放 探测 域名 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 互联网与科技金融数据 中资互联网科技 深圳科技互联网 互联网科技公司怎么样 西安互联网科技公司 深圳天众互联网科技公司 互联网金融和金融科技 美国互联网前沿科技 华脉科技工业互联网产品 哈尔滨秒房互联网科技有限公司 互联网科技公司招聘 互联网科技热点资讯 剑昆互联网络科技有限公司临桂 滨湖区互联网智能科技产品有哪些 南通创西澳互联网科技有限公司 中国互联网有什么科技 云鲸互联网络科技有限公司 银川新华互联网科技学校是国营吗 美国五大互联网科技公司市值多少 瑰夏咖啡 上海卓越科技互联网 中国互联网科技股 A股互联网金融科技公司 中国互联网科技发展 互联网和高科技公司 崇明区互联网教育科技诚信经营 陕西九四连强互联网科技有限公司 同城互联网络科技 广州三三互联网科技有限公司
0