【工具】nmap的详细利用-主机发现-端口扫描-系统服务识别扫描-脚本利用

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
云防火墙,500元 1000GB
简介: 本文适合初学者以及想要进阶的小伙伴们,我们将从最简单的出发,一步步实现工具的精通,此外本文配有视频讲解,让您的理解更近一步。

视频教程可以去B站找我
https://space.bilibili.com/123895286

nmap

Nmap ("Network Mapper") is a free and open source utility for network discovery and security auditing.

语法:

nmap -h 查看帮助

nmap [扫描类型] [选项] {目标}

HOST DISCOVERY

-sn //ping scan (arping)

arp-scan -l

  • arping不等于ping,如果ping到了防火墙则无法ping通
  • arping为二层探测,不可路由,只能发现本网段的主机,但ping(三层探测)可以。
  • 如果不在同网段,则使用TCP协议(四层探测),可路由且结果可靠(高于三层),不太可能被防火墙过滤,甚至可以发现所有端口都被过滤的主机

Snipaste_2022-08-24_17-28-52.png

 

 

nmap -sn 192.168.226.0/24(CIDR)

or zacarx.com/24

or 192.168.0-100.1-200

or 192.168.226.*

excluding hosts

--exclude : 排除

nmap -sn 192.168.226.0/24 --exclude 192.168.226,140,192.168.226.1-100

 

-iL :扫描指定文件里的主机

 

//提取ip,应用

 

nmap -sn 192.168.226.0/24 | grep report | awk '{print $5}' > 1.txt`

-v : 查看详细信息

--reason :查看判断原因

-PS : SYN扫描

-PA : ACK 扫描 并扫描常规端口扫描

-PU:UDP扫描

-PY :sctp扫描

// -P*21,80 IP

--script : 为.nse文件(usr/share/nmap/script)

e.g. dns-brute 主域名

Port Scan

nmap -v -A + 域名

states:open,closed,filtered(过滤,有防火墙),unfiltered(未过滤,但无法建立连接,没有防火墙).

-Pn : 跳过主机存活扫描,假定主机存活

-n : 表示不进行DNS解析

//两个n有区别的

-p 指定端口

-p1-1000

-p- : all port

-p ftp* : 指定端口

--open : 显示开放的端口

nmap -Pn -n -p80,21 116.62.154.232
nmap -Pn -p ftp* 116.62.154.232

默认-sS 不完整三次扫描 接受ACK/SYN后释放 (root)

-sT 完整三次扫描(普通用户)

下图为-sS的效果,注意我们需要权限!

Snipaste_2022-08-24_20-04-54.png

下图为默认效果,无需权限

Snipaste_2022-08-24_20-07-43.png

-e : 选择网络接口

OSes and services

 

//信息收集:有利于更好的利用漏洞

-sV 服务版本的检测

-O 操作系统的检测

-A 积极的检测:-O -sV -sC(默认脚本检测) tracerroute

version-intensity 9 深度检测,等级1-9

nmap -sV -O --version-intensity 9 192.168.226.136
nmap -p- -A 192.168.226.136

searchsploit OSes or servies

接下来步骤请看DC-3

 

 

信息收集实战

arp-scan -l = nmap -sP

nmap -p- -A 192.168.226.136

插件Wappalyzer自动扫描

目录文件枚举与利用:enum or joomscan

nmap --script http-enum 192.168.226.136

Snipaste_2022-08-24_22-06-48.png

searchploit joomla 3.7.0

 

*提权需要的信息

uname -r

cat /etc/*release

find / -perm -4000 -type f 2>/dev/null (dc-1:特殊权限位)

ls /home/tom/usr/bin(dc-2:rbash逃逸)*

 

*时序

-T(0-5)

0-2:慢,逃避检测系统,减少带宽

3:默认,普通

4:网络好,常用

5:极速的,不太准确的*

About scripts against a target host

(Lua script 快 /usr/share/nmap/scripts)

nmap --script-updatedb

Snipaste_2022-08-24_22-54-02.png

 

  • auth: 负责处理鉴权证书(绕开鉴权)的脚本
  • broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
  • brute: 提供暴力破解方式,针对常见的应用如http/snmp等
  • default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
  • discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
  • dos: 用于进行拒绝服务攻击
  • exploit: 利用已知的漏洞入侵系统
  • external: 利用第三方的数据库或资源,例如进行whois解析
  • fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive: 入侵 性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
  • malware: 探测目标机是否感染了病毒、开启了后门等信息
  • safe: 此类与intrusive相反,属于安全性脚本
  • version: 负责增强服务与版本扫描(Version Detection)功能的脚本
  • vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067
nmap --script dns-brute <target>
#多个脚本用逗号隔开
nmap --script vuln <target>
#直接加类别,多个类别逗号隔开
nmap -sV --script "(http-*) and not (http-slowloris or http-brute)" <target>
#执行all以http开头的文件not后面的两个除外

脚本引擎

-sC: 等价于–script=default ,使用默认类别的脚本进行扫描

--script= : 使用某个或某类脚本进行扫描,支持通配符描述

--script-help= : 显示脚本的帮助信息,其中部分可以逗号 分隔的文件或脚本类别

下面是常用脚本

nmap -p22 --script ssh-brute site.com

nmap -p21 --script ftp-syst test.com

nmap -p3306 -sV -sC test.com

nmap -p3306 --script mysql-enum test.com

 

目录
相关文章
|
5月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
|
2月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
194 5
|
3月前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
3月前
|
监控 安全 网络安全
如何使用PortTunnel端口映射工具?
【10月更文挑战第8天】PortTunnel是一种端口映射工具,它允许用户将本地计算机上的端口映射到远程服务器上。要使用PortTunnel,您需要首先下载并安装该软件,然后按照以下步骤进行操作:,1. 打开PortTunnel并配置您的本地和远程端口设置。,2. 在“本地地址”字段中输入您要映射的本地IP地址。,3. 在“远程地址”字段中输入远程服务器的IP地址。,4. 在“本地端口”字段中输入您要映射的本地端口号。,5. 在“远程端口”字段中输入远程服务器上的端口号。,6. 单击“启动”按钮以开始映射过程
434 2
|
3月前
|
网络安全 Python
Python编程--目标IP地址段主机指定端口状态扫描
Python编程--目标IP地址段主机指定端口状态扫描
68 1
|
5月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
|
5月前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
|
5月前
|
存储 缓存 NoSQL
【Azure Redis 缓存】Azure Cache for Redis服务中,除开放端口6379,6380外,对13000,13001,15000,15001 为什么也是开放的呢?
【Azure Redis 缓存】Azure Cache for Redis服务中,除开放端口6379,6380外,对13000,13001,15000,15001 为什么也是开放的呢?
|
5月前
|
网络协议 Ubuntu Linux
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。
在Linux中,如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0。
|
6月前
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
759 1

热门文章

最新文章