Web渗透工具之Nmap

什么是Nmap

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些 主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。

Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。 “所感兴趣的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是 open(开放的),filtered(被过滤的), closed(关闭的),或者unfiltered(未被过滤的)。 Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。 filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知 它是 open(开放的) 还是 closed(关闭的)。 closed(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。 当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是 unfiltered(未被过滤的) 如果Nmap报告状态组合 open|filtered 和 closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。 当要求进行版本探测时,端口表也可以包含软件的版本信息。当要求进行IP协议扫描时 (-sO),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。

Nmap 可以做什么

  • 主机探测
  • 端口扫描
  • 版本检测
  • 系统检测
  • 支持探测脚本的编写

Nmap 的使用场景是什么

  • 通过对设备或者防火墙的探测来审计它的安全性
  • 探测目标主机所开放的端口
  • 通过识别新的服务器审计网络的安全性
  • 探测网络上的主机

Nmap 的基本使用方法

1、nmap简单扫描
nmap默认发送一个ARP的PING数据包,来探测目标主机1-10000范围内所开放的所有端口
命令语法: 
nmap <target ip address>
其中:target ip address是扫描的目标主机的ip地址
例子:nmap 10.0.0.55

2、nmap简单扫描,并对结果返回详细的描述输出
命令语法:namp -vv <target ip address>
介绍:-vv参数设置对结果的详细输出
例子:nmap -vv 10.0.0.55

3、nmap自定义扫描
命令语法:nmap -p(range) <target IP>
介绍:(range)为要扫描的端口范围,端口大小不能超过65535
例子:扫描目标主机的1-50号端口
nmap -p50-80 10.0.0.55

4、nmap 指定端口扫描
命令语法:nmap -p(port1,port2,…) <target IP>
介绍:port1,port2…为想要扫描的端口号
例子:扫描目标主机的80,443,801端口
nmap -p80,443,801 10.0.0.55

5、nmap ping 扫描
nmap可以利用类似windows/linux系统下的ping 方式进行扫描
命令语法: nmap -sP <target ip>
例子:nmap sP 10.1.112.89

6、nmap 路由跟踪
路由器追踪功能,能够帮助网络管理员了解网络通行情况,同时也是网络管理人员很好的辅助工具,通过路由器追踪可以轻松的查处从我们电脑所在地到目的地之间所经常的网络节点,并可以看到通过各个结点所花费的时间
命令语法: 
nmap –traceroute <target IP>
例子:namp –traceroute 114.114.114.114(dns服务器ip)

7、nmap设置扫描一个网段下的ip
命令语法: 
nmap -sP <network address> </CIDR>
介绍:CIDR为设置的子网掩码(/24,/16,/8等)
例子:nmap -sP 10.1.1.0 /24

8、nmap 操作系统类型的探测
命令语法: 
nmap -0 <target IP>
例子:nmap -O 10.1.112.89

9、nmap万能开关
包含了1-10000端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测
命令语法: 
nmap -A <target ip>
例子:nmap -A 10.1.112.89

10、nmap命令混合式扫描
可以做到类似参数-A所完成的功能,但又能细化我们的需求要求
命令语法: 
nmap -vv -p1-100 -O <target ip>
例子: 
nmap -vv -p1-100 -O 10.1.112.89

Nmap 的高阶用法

Nmap简单的扫描方式:
全面扫描:nmap -T4 -A ip  
主机发现:nmap -T4 -sn ip 
端口扫描:nmap -T4 ip  
服务扫描:nmap -T4 -sV ip  
操作系统扫描:nmap -T4 -O ip

查看本地路由与接口:
nmap –iflist

指定网口与IP地址
nmap -e eth0 targetip

Nmap也可以显式地指定发送的源端IP地址。使用-S 选项,nmap将用指定的spoofip作为源端IP来发送探测包。
另外可以使用Decoy(诱骗)方式来掩盖真实的扫描地址,例如-D ip1,ip2,ip3,ip4,ME,
这样就会产生多个虚假的ip同时对目标机进行探测,其中ME代表本机的真实地址,这样对方的防火墙不容易识别出是扫描者的身份。
nmap -T4 -F -n -Pn -D192.168.1.100,192.168.1.101,192.168.1.102,ME 192.168.1.1

定制探测包
Nmap提供–scanflags选项,用户可以对需要发送的TCP探测包的标志位进行完全的控制。
可以使用数字或符号指定TCP标志位:URG, ACK, PSH,RST, SYN,and FIN。
nmap -sX -T4 –scanflags URGACKPSHRSTSYNFINtargetip

Nmap扫描防火墙:
SYN扫描
SYN扫描方式探测其端口开放状态。

nmap -sS -T4 www.baidu.com

扫描全部的端口
nmap -sS -T4-p- www.baidu.com

FIN扫描:
FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态。
nmap -sF -T4 www.baidu.com

ACK扫描:
ACK扫描判断端口是否被过滤。针对ACK探测包,未被过滤的端口(无论打开、关闭)会回复RST包。
nmap -sA -T4 www.baidu.com

Window扫描:
window扫描原理与ACK类似,发送ACK包探测目标端口,对回复的RST包中的Window size进行解析。
在某些TCPIP协议栈实现中,关闭的端口在RST中会将Window size设置为0;而开放的端口将Window size设置成非0的值。
nmap -sW -p- -T4 www.baidu.com

扫描路由器:
Nmap内部维护了一份系统与设备的数据库(nmap-os-db),能够识别数千种不同系统与设备。所以,可以用来扫描主流的路由器设备

扫描思科路由器
nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16

扫描路由器TFTP
大多数的路由器都支持TFTP协议(简单文件传输协议),该协议常用于备份和恢复路由器的配置文件,运行在UDP 69端口上。
使用上述命令可以探测出路由器是否开放TFTP。
nmap –sU –p69 –nvv target

扫描路由器操作系统
使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。
nmap -O -F -n 192.168.1.1

扫描互联网:
Nmap内部的设计非常强大灵活,既能扫描单个主机、小型的局域网,也可以扫描成千上万台主机从中发掘用户关注的信息。
扫描大量主机,需要对扫描时序等参数进行仔细的优化。

发现互联网上web服务器
随机地产生10万个IP地址,对其80端口进行扫描。将扫描结果以greppable(可用grep命令提取)格式输出到nmap.txt文件。
可以使用grep命令从输出文件提取关心的细节信息。
nmap -iR 100000 -sS -PS80 -p 80 -oG nmap.txt

统计互联网主机基本数据:
产生随机IP地址
产生100万个随机的IP地址,并将之保存到文件中,方便后续扫描时作为参数输入。
nmap -iR 1200000 -sL -n | grep “not scanned” | awk ‘{print $2}’ | sort -n | uniq >! tp; head -25000000 tp >! tcp-allports-1M-IPs; rm tp

优化主机发现
nmap -sP -PE -PP -PS21,22,23,25,80,113,31339-PA80,113,443,10042 –source-port 53 -T4 -iL tcp-allports-1M-IPs

完整的扫描命令
nmap -S [srcip] -d –max-scan-delay 10 -oAlogs/tcp-allports-%T-%D -iL tcp-allports-1M-IPs –max-retries 1–randomize-hosts -p- -PS21,22,23,25,53,80,443 -T4 –min-hostgroup 256 –min-rate175 –max-rate 300

扫描Web站点:
nmap -sV -p 80 -T4 --script http*,default scanme.nmap.org

Nmap的扫描速度慢如何加速

Nmap提供了一些时间模板-T0-5,随着数字增大,扫描速度将加快。可以使用nmap -T5 -d的形式查看时间模板的参数

名称T0 (Paranoid)T1(Sneaky)T2(Polite)T3(Normal)T4(Aggressive)T5(Insane)
min-rtt-timeout10010010010010050
max-rtt-timeout300,00015,00010,00010,0001,250300
initial-rtt-timeout300,00015,0001,0001,000500250
max-retries1010101062
初始化扫描延迟scan-delay300,00015,000400000
最大TCP扫描延迟300,00015,0001,0001,000105
最大UDP扫描延迟300,00015,0001,0001,0001,0001,000
host-timeout00000900,000
min-parallelism动态动态动态动态动态动态
max-parallelism111动态动态动态
min-hostgroup动态动态动态动态动态动态
max-hostgroup动态动态动态动态动态动态
min-rate无限制无限制无限制无限制无限制无限制
max-rate无限制无限制无限制无限制无限制无限制
defeat-rst-ratelimit默认未启用默认未启用默认未启用默认未启用默认未启用默认未启用

-Pn 加速

-Pn 最大的问题就是无法获取到网络状态信息,由于重传和RTT估算的问题,导致整个扫描过程等待时间过长,因此我们可以手动指定--max-rtt-timeout, --initial-rtt-timeout。

Nmap没有从每个主机上收集到足够的响应来准确估算延迟和丢包率,那么我们首先需要解决这个问题。我们可以通过命令行来手动收集该信息,可以通过ping 相邻的在线主机获取延迟估计,当然可能会有禁ping的现象,可以用nmap附赠的小工具nping 对开放的端口进行探测,获取延迟估计。

根据这个延迟,我们大致能知道到该目标范围主机的网络状况,因此我们只需要手动指定--max-rtt-timeout, --initial-rtt-timeout 为比这个延迟大一定程度的值就可以了。例如延迟为60毫秒,则我们可以将其指定为 --max-rtt-timeout 200ms --initial-rtt-timeout 150ms。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PentestDB 1 介绍 本项目用于提供渗透测试的辅助工具、资源文件 1.1 辅助工具 提供轻量级的易扩展的工具,可以快速编写exploit、添加漏洞验证/扫描规则、添加指纹规则、爆破规则等;包含以下功能: Exploit系统。易扩展的exploit系统,能够使用API快速编写exploit,能够批量执行exploit 子域名爆破。爆破子域名,使用域传送、DNS爆破、GoogleHacking进行子域名爆破 C段扫描。C段扫描,支持生成html格式输出文件 服务端应用识别。识别CMS类型、Web服务器、操作系统、WEB中间件等 URI敏感资源爆破。爆破WEB敏感文件,整站备份、配置备份、敏感文件等 社工密码字典生成。根据社工信息生成密码爆破字典 Google Hacking。GoogleHacking,生成URL字典 编解码等功能。支持非常丰富的编解码方式,方便做payload编码 1.2 资源文件 各种渗透测试常用的资源文件,包括各种爆破字典、exploit、webshell、攻击payload等 2 安装 从这里下载最新版本,或使用命令 git clone https://github.com/alpha1e0/pentestdb.git clone到本地 PentestDB支持Windows/Linux/MacOS,需使用python 2.6.x 或 2.7.x运行 2.1 解决lxml依赖 项目中的脚本文件依赖于lxml linux系统一般默认安装lxml,如果没有可通过以下方式安装: pip install lxml apt-get install lxml yum install lxml windows可通过以下方式安装lxml: 到这里找到对应系统的安装包,下载到本地 安装安装包,pip install package.whl 2.2 解决nmap依赖 项目中的C段扫描依赖于nmap扫描器 到这里下载nmap相应版本 在windows下需要设置环境变量,让系统能够找到nmap.exe。 3 使用 3.1 常用脚本 项目中的python脚本提供用有用的渗透辅助功能,根目录下的pen.py为脚本入口,另外script目录下也有其他一些脚本。 3.1.1 Exploit系统 pen.py的exploit子命令提供了exploit模块相关操作,exploit模块是一个轻量级的exploit框架,可以编写各种web漏洞的exploit: 搜索exploit信息 增加、删除、修改exploit信息 执行某个exploit 搜索并批量执行exploit exploit保存在项目根目录下的exploit目录下 例如: # 列举、搜索、注册、更新、删除 pen.py exploit -l pen.py exploit -q appName:joomla pen.py exploit --register exploit pen.py exploit --update cms_joomla_3_4_session_object_injection.py pen.py exploit -d "Joomla 1.5~3.4 session对象注入漏洞exploit" pen.py exploit --detail "Joomla 1.5~3.4 session对象注入漏洞exploit" # 执行exploit pen.py exploit -e cms_joomla_3_4_session_object_injection.py -u http://127.0.0.1:1234 --attack pen.py exploit -s appName:joomla -u http://127.0.0.1:1234 --verify pen.py exploit -s appName:joomla -u @url.txt 注:有关exploit模块的详细信息请参考exploit/readme.md 3.1.2 服务端应用识别 pen.py的service子命令提供了服务端应用识别的功能,能够识别服务器信息,包括: 操作系统 web服务器 web中间件 CMS等 例如: pen.py service http://xxx.com # 开启CMS识别加强模式 pen.py service http://xxx.com --cms 3.1.3 社工密码字典生成 pen.py的password子命令提供了根据社工信息生成密码字典的功能,能够设置不同关键字生成密码字典
详情参看博客:https://blog.csdn.net/Eastmount/article/details/102499639 [网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例 [网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记 [网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例 [网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密 [网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战 [网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向破解 [网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨 [网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具 [网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性 [网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码 [网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法 [网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一) [网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二) [网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一) [网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二) [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
nweb渗透测试工具是一个基于Django框架开发的网络安全测试工具。该工具旨在帮助用户评估其网络应用程序的安全性,并识别潜在的漏洞和风险。 nweb渗透测试工具具有以下特点和功能: 1. 支持多种不同类型的渗透测试:nweb工具可以进行各种类型的渗透测试,包括漏洞扫描、身份验证测试、SQL注入测试、XSS测试、CSRF测试等。用户可以根据需求选择不同的测试类型进行安全评估。 2. 使用方便:nweb工具采用Web界面设计,使用起来非常方便。用户可以通过简单的操作和配置,启动渗透测试并查看测试结果。工具还提供了详细的报告,帮助用户了解测试过程和发现的安全问题。 3. 多个扫描器和工具的整合:nweb工具整合了多个知名的渗透测试扫描器和工具,如Nmap、OpenVAS、Burp Suite等。用户可以通过nweb工具一次性运行多个扫描器,并综合评估被测应用程序的安全性。 4. 自动化测试:nweb工具支持自动化测试,用户可以预设测试计划和任务,然后设定定时执行,实现定期的安全评估和漏洞扫描。自动化测试可以提高工作效率,并帮助用户及时发现新的安全问题和漏洞。 总之,nweb渗透测试工具是一款基于Django框架开发的网络安全测试工具,它提供了多种类型的渗透测试,使用方便,整合了多个知名扫描器和工具,并支持自动化测试。通过使用nweb工具,用户可以有效评估其网络应用程序的安全性,并及时发现和修复潜在的安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值