nmap在信息收集中起着很大的作用,今天我来总结一些nmap常用的一些命令

常用探测主机存活方式

1.-sP:进行ping扫描

打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测)

下面去扫描192.168.43.0/24这个网段的的主机

nmap -sP 192.168.43.0/24

2.-sn:ping探测扫描主机,若对方丢包,依然可以检测

Ping Scan - disable port scan  #ping探测扫描主机, 不进行端口扫描 (测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)

nmap -sn 192.168.43.0/24

3.-sA:发送tcp的ack包进行探测,可以探测主机是否存活

nmap -sA 192.168.43.0/24

端口扫描的高级用法

1.-sS:半开放扫描(非3次握手的tcp扫描)

使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,效率高
(一个完整的tcp连接需要3次握手,而-sS选项不需要3次握手)
Tcp SYN Scan (sS) 它被称为半开放扫描
优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高
缺点:它需要root/administrator权限执行

nmap -sS -p- 192.168.43.131

ps:-p-是对全端口进行扫描

2.sT:3次握手方式tcp扫描

Tcp connect() scan (sT)和上面的Tcp SYN 对应,TCP connect()扫描就是默认的扫描模式.
不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().
优点:你勿需root权限。普通用户也可以使用。
缺点:这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息,由于它要完成3次握手,效率低,速度慢,建议使用-sS

nmap -sT 192.168.43.131

它等同于nmap 192.168.43.131

3.sU:udp端口扫描

Udp scan(sU) 顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,
如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.udp端口扫描速度比较慢

nmap -sU 192.168.43.131

4.sF:也是tcp扫描的一种,发送一个FIN标志的数据包

FIN scan(sF)
有时候TcpSYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.
和sS扫描效果差不多,比sT速度快

nmap -sF 192.168.43.131

5.sV:版本检测

版本检测是用来扫描目标主机和端口上运行的软件的版本,如下扫描,多出了ssh的版本信息

nmap -sV 192.168.43.131

nmap其他用法

1.-S:可以伪装源地址进行扫描,这样好处在于不会被对方发现自己的真实IP

如果你使用-S伪装自己源地址进行扫描的话,你必须另外使用-e 指定网卡和-Pn参数才能伪装

把自己源地址伪装成10.0.1.167扫描A机器

nmap -e eth0 192.168.43.131 -S 192.168.43.221 -Pn

nmap常用参数

常用的参数(具体细节可以在上图进行对照):

  • -sS 半开扫描(TCP SYN扫描),执行速度快,不容易被注意到,可以避免被记入目标系统的日志,需要root权限。它常常被称为半开放扫描, 因为它不打开一个完全的TCP连接。它发送一个SYN报文, 就像您真的要打开一个连接,然后等待响应。
  • -sT 当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描。会在⽬标主机的⽇志中记录⼤批连接请求和错误信息,但是由于是tcp connect()扫描,容易被记录。当SYN扫描可用时,它通常是更好的选择
  • -sP ping扫描,Nmap在扫描端⼜时,默认都会使⽤ping扫描,只有主机存活,Nmap才会继续扫描。
  • -sU UDP扫描,但UDP扫描是不可靠的,速度也比较慢
  • -sA 这种扫描与目前为止讨论的其它扫描的不同之处在于 它不能确定open(开放的)或者 open|filtered(开放或者过滤的))端口。 它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。
  • -sV 探测端⼜服务版本
  • -Pn 扫描之前不需要⽤ping命令,有些防⽕墙禁⽌ping命令。可以使⽤此选项进⾏扫描
  • -v 显⽰扫描过程,推荐使⽤
  • -p 指定端⼜,如“1-65535、1433、135、22、80”等
  • -O 启⽤远程操作系统检测,存在误报
  • -O --osscan-limit 针对指定的目标进行操作系统检测
  • -O --osscan-guess 当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认 进行这种匹配
  • -A 全⾯系统检测、启⽤脚本检测、扫描等
  • -oN/-oX/-oG 将报告写⼊⽂件,分别是正常、XML、grepable 三种格式
  • -iL 读取主机列表,例如,-iL “C:\ip.txt”

参考:https://www.cnblogs.com/nmap/p/6232969.html

     https://blog.csdn.net/zz_Caleb/article/details/95335060

nmap高级用法的更多相关文章

  1. nmap命令-----高级用法

    探测主机存活常用方式 (1)-sP :进行ping扫描 打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):  下面去扫描10.0.3.0/24这个网段的的主机 nmap ...

  2. Nmap在实战中的高级用法(详解)

    @ 目录 Nmap在实战中的高级用法(详解) Nmap简单的扫描方式: 一.Nmap高级选项 1.查看本地路由与接口 2.指定网口与IP地址 3.定制探测包 二.Nmap扫描防火墙 1.SYN扫描 2 ...

  3. Nmap详细用法

    探测主机存活 (1)-sP :进行ping扫描 (2) -sn: ping探测扫描主机, 不进行端口扫描 (3)-sA     发送ACK探测存活 端口扫描 (1) -sS :半开放扫描 (2) sT ...

  4. Visual Studio 宏的高级用法

    因为自 Visual Studio 2012 开始,微软已经取消了对宏的支持,所以本篇文章所述内容只适用于 Visual Studio 2010 或更早期版本的 VS. 在上一篇中,我已经介绍了如何编 ...

  5. SolrNet高级用法(分页、Facet查询、任意分组)

    前言 如果你在系统中用到了Solr的话,那么肯定会碰到从Solr中反推数据的需求,基于数据库数据生产索引后,那么Solr索引的数据相对准确,在电商需求中经常会碰到菜单.导航分类(比如电脑.PC的话会有 ...

  6. sqlalchemy(二)高级用法

    sqlalchemy(二)高级用法 本文将介绍sqlalchemy的高级用法. 外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此需要在address上增 ...

  7. Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)

    上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...

  8. 再谈Newtonsoft.Json高级用法

    上一篇Newtonsoft.Json高级用法发布以后收到挺多回复的,本篇将分享几点挺有用的知识点和最近项目中用到的一个新点进行说明,做为对上篇文章的补充. 阅读目录 动态改变属性序列化名称 枚举值序列 ...

  9. Jquery remove 高级用法

    Jquery remove 高级用法 html 代码 <div class="file-image">abc1111</div><div class= ...

随机推荐

  1. 一道栈溢出babystack

    我太天真了,师傅说让我做做这个平台的题,我就注册了个号,信心满满的打开了change,找到了pwn,一看第一道题是babystack,我想着,嗯,十分钟搞定他!直到我下载了题目,题目给了libc,然后 ...

  2. CF979A Pizza, Pizza, Pizza!!! 题解

    Content 小 S 想把一块披萨切成大小.形状都相同的 \((n+1)\) 块(\(n\) 块分给 TA 的 \(n\) 个朋友,还有一块留给自己),试问最小需要切多少块. 数据范围:\(0\le ...

  3. CF1092B Teams Forming 题解

    Content 有 \(n\) 个学生,每个学生有一个能力值 \(a_i\).现在想把学生两两分成一组,但是不能让每个组里面的学生能力值不相同,因此可以通过刷题来提升自己的能力值,每次解出一道题,能力 ...

  4. grep 命令过滤配置文件中的注释和空

    grep 用法 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. ...

  5. Nginx加载新的模块,编译报错记录

    参考:https://www.cnblogs.com/Leechg/p/9969000.html ---------如下我的操作记录--------------- nginx -V查看当前nginx信 ...

  6. java 常用类库:时间类LocalDate;LocalTime;LocalDateTime;Calendar 类;Date ;

    LocalDate类 LocalDate类代表不带时区的日期,列入2020-12-20.该类提供了静态的now()方法来获取当前的日期.这个类是线程安全的. LocalTime类 代表不带时区的时间, ...

  7. ORM-数据库命令操作包装实例对象学习

    http://www.cnblogs.com/alex3714/articles/5978329.html python 之路,Day11 - sqlalchemy ORM   本节内容 ORM介绍 ...

  8. libevent源码学习(13):事件主循环event_base_loop

    目录开启事件主循环执行事件主循环校对时间 阻塞/非阻塞处理激活队列中的event事件主循环的退出event_base_loopexitevent_base_loopbreak开启事件主循环       ...

  9. JAVA实现websocket客户端

    pom依赖 <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-We ...

  10. 往docker中的mysql导入sql文件

    先把sql文件上传到服务器 然后拷贝sql文件到docker中的mysql 容器中 docker cp test.sql mysql:/test.sql 这里的mysql都是容器名称 根据自己的来 用 ...