tryhackme_nmap
https://www.cnblogs.com/-Lucky-/p/17100073.html
Nmap基本端口扫描
nmap中考虑的端口状态
Open:表示服务正在侦听指定端口。
Closed:表示没有服务在指定端口上侦听,尽管该端口可以访问。可访问性是指它可以访问并且未被防火墙或其他安全设备/程序阻止。
Filtered : 表示 Nmap 无法确定端口是打开还是关闭,因为端口不可访问。这种状态通常是由于防火墙阻止 Nmap 到达该端口。Nmap 的数据包可能会被阻止到达端口;或者,响应被阻止到达 Nmap 的主机。
Unfiltered : 表示 Nmap 无法确定端口是打开还是关闭,尽管端口是可访问的。使用 ACK 扫描时会遇到此状态-sA。
Open|Filtered:这意味着Nmap无法确定端口是打开还是过滤。
Closed|Filtered:这意味着 Nmap 无法决定端口是关闭还是过滤。
六个标志位
URG :紧急标志表示紧急指针归档是重要的。紧急指针指示传入数据是紧急的,并且立即处理设置了 URG 标志的TCP段,而无需考虑必须等待先前发送的 TCP 段。
ACK :确认标志表示确认号是重要的。它用于确认收到TCP段。
PSH :推送标志,要求TCP及时将数据传递给应用程序。
RST :重置标志用于重置连接。另一个设备(例如防火墙)可能会发送它来断开TCP 连接。当数据发送到主机并且接收端没有服务响应时,也会使用此标志。
SYN :同步标志用于启动TCP 3 次握手并与其他主机同步序列号。序号应该在TCP连接建立时随机设置。
FIN:发送方没有更多数据要发送。
TCP扫描
运行 TCP 连接扫描 -sT
TCP连接扫描通过完成 TCP 3 次握手来工作。在标准的 TCP 连接建立中,客户端发送一个设置了 SYN 标志的 TCP 数据包,如果端口打开,服务器以 SYN/ACK 响应;最后,客户端通过发送 ACK 完成 3 次握手。
我们感兴趣的是了解TCP端口是否打开,而不是建立 TCP 连接。因此,一旦通过发送 RST/ACK 确认其状态,连接就会断开。
TCP SYN扫描
SYN扫描不需要建立三次握手,它会在收到服务器的SYN,ACK响应后断开连接 -sS
UDP扫描
UDP是一种无连接协议,因此它不需要任何握手来建立连接。我们不能保证侦听 UDP 端口的服务会响应我们的数据包。但是,如果将 UDP 数据包发送到关闭的端口,则会返回 ICMP 端口不可达错误。可以使用该选项选择 UDP 扫描 -sU。
微调范围和性能
# 端口
端口列表:-p22,80,443将扫描端口 22、80 和 443。
端口范围:-p1-1023将扫描 1 到 1023(含)之间的所有端口,同时-p20-25 将扫描 20 到 25(含)之间的端口。
请求扫描所有端口-p-
如果要扫描最常见的 100 个端口,请添加-F
--top-ports 10将检查十个最常见的端口。
控制扫描时间-T<0-5>,-T0是最慢的(偏执狂),而 -T5是最快的。
-T4通常在 CTF 和学习扫描练习目标时使用,而-T1通常在隐身性更重要的真实交战中使用。
# 数据包速率
--min-rate <number>
--max-rate <number>
--max-rate=10 确保您的扫描仪每秒发送的数据包不超过十个
# 指定可以并行运行的此类探测的数量
--min-parallelism <numprobes>
--max-parallelism <numprobes>
--min-parallelism=512推动 Nmap 保持至少 512 个并行探测
nmap 高级端口扫描
TCP 空扫描, FIN扫描, Xmas扫描
NULL Scan
空扫描不设置任何标志;所有六个标志位都设置为零。使用该 -sN选项选择此扫描。
一个没有设置标志的TCP数据包在到达一个开放端口时不会触发任何响应。
因此,从 Nmap 的角度来看,在空扫描中缺少回复表明端口已打开或防火墙正在阻止数据包。
FIN Scan
FIN 扫描发送一个设置了 FIN 标志的TCP数据包。使用该选项选择此扫描类型-sF 。
同样,如果 TCP 端口打开,则不会发送任何响应。同样,Nmap 无法确定端口是否打开或防火墙是否阻止与此 TCP 端口相关的流量。
Xmas Scan
Xmas 扫描同时设置 FIN、PSH 和 URG 标志。您可以使用选项选-sX
与Null scan 和FIN scan 一样,如果收到RST 包,则表示端口已关闭。否则,它将被报告为 open|filtered。
TCP ACK、窗口 扫描
TCP ACK Scan
ACK 扫描将发送一个设置了 ACK 标志的 TCP 数据包。使用该-sA选项选择此扫描。
无论端口状态如何,目标都会使用 RST 响应 ACK。发生此行为是因为设置了 ACK 标志的 TCP 数据包应该仅在响应接收到的 TCP 数据包时发送,以确认某些数据的接收,这与我们的情况不同。
因此,此扫描不会告诉我们目标端口是否在简单设置中打开。
window Scan
TCP窗口扫描。TCP窗口扫描和ACK扫描几乎一样;但是,它会检查返回的 RST 数据包的 TCP 窗口字段。在特定系统上,这可以表明端口已打开。
可以使用选项选择此扫描类型-sW。
无论端口是打开还是关闭,我们都希望得到一个 RST 数据包来回复我们“不请自来”的 ACK 数据包。
欺骗和诱饵
-S nmap -S SPOOFED_IP MACHINE_IP
Nmap 将使用提供的源 IP 地址制作所有数据包SPOOFED_IP。目标机器将响应传入的数据包,将回复发送到目标 IP 地址 SPOOFED_IP。为了使此扫描起作用并给出准确的结果,攻击者需要监控网络流量以分析回复。
攻击者向目标机器发送一个带有欺骗性源 IP 地址的数据包。
目标机器回复欺骗性 IP 地址作为目的地。
攻击者捕获回复以找出打开的端口。
指定源 MAC 地址--spoof-mac SPOOFED_MAC,只有处于同一子网才行
启动诱饵扫描-D。例如, nmap -D 10.10.0.1,10.10.0.2,ME MACHINE_IP。将使 MACHINE_IP 的扫描显示为
来自 IP 地址 10.10.0.1、10.10.0.2,然后ME指示您的 IP 地址应按第三顺序出现。
另一个示例命令是nmap -D 10.10.0.1,10.10.0.2,RND,RND,ME MACHINE_IP,其中第三个和第四个源 IP 地址是随机分配的,
而第五个源将是攻击者的 IP 地址。换句话说,每次执行后一个命令时,您都会期望两个新的随机 IP 地址成为第三个和第四个诱饵源。
碎片包
Nmap 提供了对数据包进行分段的选项-f。一旦选择,IP 数据将被分成 8 个字节或更少。添加另一个-f(-f -f或-ff)
会将数据拆分为 16 个字节片段而不是 8 个。您可以使用--mtu;更改默认值。但是,您应该始终选择 8 的倍数。
如果您希望增加数据包的大小以使它们看起来无害,则可以使用选项--data-length NUM,其中 num 指定要附加到数据包的字节数。
nmap后端扫描
服务检测
-sV 收集和确定开放端口的服务和版本信息
--version-intensity LEVEL级别介于 0(最轻)和 9(最完整)之间。
-sV --version-light强度为 2, -sV --version-all强度为 9
操作系统检测
启用操作系统检测 -O
跟踪路由 --traceroute
脚本引擎
--script
--script=default可以选择使用或简单地添加运行默认类别中的脚本-sC。除了default之外,
类别还包括 auth、broadcast、brute、default、discovery、dos、exploit、external、fuzzer、intrusive、malware、safe、version 和 vuln
保存输出
-oN 正常格式类似于您在扫描目标时在屏幕上获得的输出
-oG 将扫描结果保存为 grepable 格式
-oX 使用 以 XML 格式保存扫描结果
-oS 无用的
实例
nmap -sC -sV -sS -T4 -vv ip
nmap -T4 -A -v -p- ip //全端口扫描
nmap -sn -T4 -PE 192.168.96.4/24 //存活主机探测
随机推荐
- import tensorflow出现ImportError: DLL load failed: 找不到指定的模块的问题(亲测可用)
错误如下图所示: 在很长时间的查找后,网上的很多办法都不能很好的解决问题,但是基本上指向了一个问题--版本问题,所以接下来我安装了与python环境对应的tensorflow包. 首先用以下命令查找对 ...
- MINIO搭建单机以及集群
MINIO简介 Minio是Apache License v2.0下发布的对象存储服务器.它与Amazon S3云存储服务兼容.它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/VM映像. ...
- 1 Android开发书籍
不管你是Android菜鸟还是Android高手,一定能够找到一本适合自己阅读的书籍.下面为大家推荐8本书. <Android进阶之光> <Android进阶之光>详细并深入讲 ...
- 【AIGC未来的发展方向】面向人工智能的第一步,一文告诉你人工智能是什么以及未来的方向分析
人工智能的概念 当人们提到"人工智能(AI)"时,很多人会想到机器人和未来世界的科幻场景,但AI的应用远远不止于此.现在,AI已经广泛应用于各种行业和生活领域,为我们带来了无限可能 ...
- Java设计模式 —— 代理模式
15 代理模式 15.1 代理模式概述 Proxy Pattern: 给某一个对象提供一个代理或占位符,由代理对象来控制对原对象的访问. 代理对象是客户端和目标对象的之前的桥梁,它接收来自客户端的请求 ...
- linux下防火墙与SELinux状态与关闭
linux下防火墙与SELinux状态与关闭 在使用ftp命令以及wget命令测试两台linux机器之间ftp下载是否正常,虽然关闭了防火墙,但是一直还是提示以下错误 然来还需要将SELinux 设置 ...
- mysql基础_事务
定义 一个事务其实就是一个完整的业务逻辑,是一个最小的工作单元,不可再分,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败. 例如:王五向赵六的账户上转 ...
- ChatGPT最全提示词Prompts总结,看这一篇就够了!
以下几乎涵盖了各类人群想要使用ChatGPT的所有提示词,需要的朋友可以直接复制粘贴使用. 从翻译到整理耗费超过2个小时,如果内容对大家有帮助,请不要吝啬你们的喜欢.点赞.关注~ 如何正确的提问? ...
- 【Docker】安装及部署
一.Ubuntu使用apt安装Docker 官方安装文档:https://docs.docker.com/engine/install/ubuntu/ 1.准备安装环境 [root@Docker-Ub ...
- 【CSS】使元素在父元素中居中显示的几种方法
在页面元素布局时经常会有把元素居中的需求,大多都是用弹性盒或者定位,下面来说一下使用方法 一.使用边距进行固定位置 这种方法需要把父元素和子元素的宽度固定,然后利用二者宽高之差添加边距移动元素的位置 ...