渗透测试:主机发现和端口扫描的方法总结(nmap+arp-scan+ping命令+nc.traditional+伪设备连接)

目录

nmap环境

方法一:nmap扫描 

1.主机发现:

2.端口扫描:

​编辑

非nmap环境

方法二:arp-scan-主机发现

方法三:ping命令-主机发现

 方法四:netcat-端口扫描

  方法五:伪设备-端口扫描


信息搜集是渗透测试的第一步,而主机发现和端口扫描则是信息搜集的关键步骤。后续的渗透测试都是基于开始搜集侦察的信息进行测试的。这一步一定要保证把信息搜集完整齐全,否则一旦后续渗透过程出现了思路不畅,就会返工完全重做,非常浪费时间哪怕是扫描不到有效的信息,也要及时记录

nmap环境

方法一:nmap扫描 

 nmap是进行主机发现和端口扫描最为常见的工具,但由于nmap这个工具过于出名,其流量特征早已被分析透彻,因此使用nmap进行扫描是很容易暴露痕迹的,容易被蓝队发现。在常规的打靶自学中,nmap还是非常常规的工具,我们应该熟悉其常规的参数和原理。

nmap的参数使用帮助可使用nmap --help查看:

sudo nmap --help

nmap参数很多,细小的参数差异可能实现很多不同的功能,所以我们应该对nmap的参数有一定的研究,才能让我们在遇见需求时,选择正确的参数 

常用参数

-sn ping扫描,用于扫描自己主机的整个c段,用来探针网段内存活主机

-sT TCP扫描,扫描通过tcp的协议

-sU UDP扫描,扫描通过UDP的协议

-sV 服务版本,显示扫描的存活端口开放服务的具体版本

-O 操作系统,显示目标主机的操作系统

-p 接开放端口,-p-  全端口扫描

--script=漏洞脚本  常用脚本:vuln

-min-rate 10000 最小扫描速度,nmap以不小于每秒10000次的速率进行扫描

        10000这个数字是权衡的结果,数字过大,则扫描速度过快,有可能会有端口遗漏;数字过小,则扫描速度过慢,浪费时间。实际情况中建议扫描两次,保证没有端口遗漏。

1.主机发现:

对整个网段进行扫描。如果靶机和攻击机在同一个网段,我们可以扫描自己的网段确定靶机的ip,命令如下:

sudo nmap -sn 192.168.254.0/24 

网段中这么多ip怎么确定那个ip是我们的目标主机?

在实际的渗透中,要想保证扫描准确,可以在靶机上线前后各进行一次扫描,对比上线的ip即可确定靶机的ip

2.端口扫描:

2.1.全端口扫描

通过-min-rate 限制扫描速度,快速准确的扫描出目标主机的存活ip

sudo nmap -min-rate 10000 -p- 192.168.254.142

在实际的渗透过程中,会有网络延迟,防火墙的干扰,所以建议扫两遍以免遗漏;如果两次结果不同,就要分析原因调整参数;可以看到这些端口协议都走TCP

2.2.UDP扫描-扫描走UDP的端口是否有存活

UDP端口暴露的攻击面虽然较小,但我们也不要遗漏信息

sudo nmap -sU -min-rate 10000 -p- 192.168.254.142

2.3.服务版本探测

我们最为看重的一次扫描,会出现各种有价值的信息(各端口服务版本,操作系统版本)

sudo nmap -sT -sV -O -p22,80,3306,8080 192.168.254.142 

2.4.漏洞脚本扫描 

nmap中自带了一些内置脚本,其中就用漏洞脚本vuln,vuln是vulnerbility漏洞脆弱点的简写

sudo nmap --script=vuln -p22,80,3306,8080 192.168.254.142 

表示探测这些端口的漏洞。这一步扫描的时间较长,可能需要几分钟时间。nmap的漏洞扫描结果可以给我们一个渗透测试的大致思路,即哪里的漏洞较多,我们可以从哪个端口入手进行渗透。通常情况nmap的漏洞扫描不会有太多结果,仅仅是一个辅助

非nmap环境

实际情况中,可能我们无法使用nmap进行主机发现(不想暴露流量特征/nmap被ban/环境中没有nmap且无法联网等情况)

方法二:arp-scan-主机发现

arp-scan -l

一种基于ARP协议的网络扫描工具,可以快速扫描整个网段并显示活动主机的IP地址和MAC地址

方法三:ping命令-主机发现

ping命令查看帮助文档

ping --help

但ping命令每次只能ping一个,所以结合bash脚本,扫描整个c段

for i in {1..254}; do ping -c 1 -W 0.1 192.168.254.$i|grep from;done

 可以很方便的看到这个网段范围内存活的一些主机

方法四:netcat-端口扫描

 利用nc进行端口扫描,不过要实现端口扫描用的是旧版的nc,而kali中默认安装的新版的nc,因此要使用nc.traditional,可以先用nc.traditional -h查看参数帮助:

nc.traditional -h
  • -vv: 这是命令的选项之一,表示进行详细的输出(verbose)。通过使用该选项,命令将提供更多关于扫描进程的信息。

  • -z: 这也是命令的选项之一,表示进行端口扫描。它会尝试建立到指定IP地址和端口的连接,但不发送任何实际的数据。

端口扫描:

扫描20-120的端口开放情况,这是完成过滤后的语句,只会显示存活端口

sudo  nc.traditional -vv -z 192.168.254.142 1-65535 2>&1| grep -v refused

方法五:伪设备-端口扫描

伪设备,即/dev/tcp/ ,此处需要bash环境,而kali中的默认shell环境是zsh,可以用如下命令看到:

什么是伪设备?

在linux中所有设备都是映射成的文件,所以用文件模拟设备

echo $SHELL

先切换bsah环境(该命令在bash环境下更稳定)

bash

我们需要输入bash字符调整为bash的shell环境,若对20~120号端口进行扫描,bash脚本如下:

for i in {20..120}; do (echo < /dev/tcp/192.168.254.142/$i) &>/dev/null && printf "\n[+] The open port is : %d\n" "$i" || printf ".";done

这个脚本的作用是遍历指定的端口范围尝试与目标IP地址的每个端口建立TCP连接。如果连接成功,则显示一个带有开放端口号的消息,如果连接失败,则显示一个点号.表示关闭端口,同时表示程序正在运行。这样可以快速扫描目标主机的端口,识别哪些端口是开放的。

for循环会依次遍历端口号,循环体中使用/dev/tcp特殊文件(伪设备)来进行基于TCP的端口连接测试。192.168.200.144是要扫描的目标IP地址,$i表示当前循环的端口号。

这里插叙一下,如果遍历所有端口1-65535,时间会很长,通常情况大部分端口都是关闭的,会输出很多点. 如果我们想终止程序,需要用ctrl + z,然后再kill -9 %1终止上一条命令

 

参考:

渗透测试:主机发现和端口扫描的思路方法总结(nmap+ping命令+nc.traditional+伪设备连接)_nmap ping扫描-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/775627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未能加载文件或程序集socutdata或它的某一个依赖项试图加载格式不正确的程序

未能加载文件或程序集socut data或它的某一个依赖项试图加载格式不正确的程序 Socut.Data.dll找不到类型或命名空间名称 把bin目录下面 的socut.data.dll删除就行了 C#报错未能加载文件或程序集socut data或它的某一个依赖项试图加载格式不正确的程序 "/"应用程序…

Navicat 干货 | 通过检查约束确保 PostgreSQL 的数据完整性

数据完整性对于任何数据库系统来说都是很重要的一方面&#xff0c;它确保存储的数据保持准确、一致且有意义的。在 PostgreSQL 中&#xff0c;维护数据完整性的一个强大工具是使用检查约束。这些约束允许你定义数据必须遵守的规则&#xff0c;以防止无效数据的插入或修改。本文…

机器人寻路算法双向A*(Bidirectional A*)算法的实现C++、Python、Matlab语言

机器人寻路算法双向A*&#xff08;Bidirectional A*&#xff09;算法的实现C、Python、Matlab语言 最近好久没更新&#xff0c;在搞华为的软件挑战赛&#xff08;软挑&#xff09;&#xff0c;好卷只能说。去年还能混进32强&#xff0c;今年就比较迷糊了&#xff0c;这东西对我…

[flask]执行上下文的四个全局变量

flask上下文全局变量&#xff0c;程序上下文、请求上下文、上下文钩子 -- - 夏晓旭 - 博客园 (cnblogs.com) 执行上下文 执行上下文&#xff1a;即语境&#xff0c;语意&#xff0c;在程序中可以理解为在代码执行到某一行时&#xff0c;根据之前代码所做的操作以及下文即将要…

Stable Diffusion XL之使用Stable Diffusion XL训练自己的AI绘画模型

文章目录 一 SDXL训练基本步骤二 从0到1上手使用Stable Diffusion XL训练自己的AI绘画模型2.1 配置训练环境与训练文件2.2 SDXL训练数据集制作(1) 数据筛选与清洗(2) 使用BLIP自动标注caption(3) 使用Waifu Diffusion 1.4自动标注tag(4) 补充标注特殊tag(5) 训练数据预处理(标注…

neo4j相同查询语句一次查询特慢再次查询比较快。

现象&#xff1a; neo4j相同查询语句一次查询特慢再次查询比较快。 分析&#xff1a; 查询语句 //查询同名方法match(path:Method) where id(path) in [244333030] and NOT path:Constructor//是rpc的方法match(rpc_method:Method)<-[:DECLARES]-(rpc_method_cls:Class) -…

从零开始为香橙派orangepi zero 3移植主线linux——1.uboot

从零开始为香橙派orangepi zero 3移植主线linux——1.uboot 0.前言一、准备二、制作引导文件1.BL312.SCP firmware (Crust)3.uboot 三、烧录四、运行 0.前言 之前买了块香橙派zero3&#xff0c;CPU是全志H618&#xff0c;四核cortex-A53&#xff0c;烧录了官方的ubuntu系统后就…

vscode上编辑vba

安装xvba插件更换vscode的工作目录启动扩展服务器在config.json中添加目标工作簿的名称加载excel文件&#xff08;必须带宏的xlsm&#xff09;这个扩展就会自动提取出Excel文件中的代码Export VBA&#xff08;编辑完成的VBA代码保存到 Excel文件 &#xff09;再打开excel文件可…

了解XSS和CSRF攻击与防御

什么是XSS攻击 XSS&#xff08;Cross-Site Scripting&#xff0c;跨站脚本攻击&#xff09;是一种常见的网络安全漏洞&#xff0c;它允许攻击者在受害者的浏览器上执行恶意脚本。这种攻击通常发生在 web 应用程序中&#xff0c;攻击者通过注入恶意脚本来利用用户对网站的信任&…

centos2anolis

我的centos7原地升级到anolis7记录 注意&#xff1a;如果是桌面版请先卸载firefox&#xff0c;否则so文件冲突。 参考&#xff1a; CentOS 7和8Linux系统迁移到国产Linux龙蜥Anolis OS 8手册_disable pam_pkcs11 module in pam configuration-CSDN博客 关于 CentOS 迁移龙蜥…

QT中的服务器与客户端

一、前言 本文主要讲讲QT中服务器与客户端的使用方法&#xff0c;QT已经封装好了&#xff0c;调用相应类直接访问即可。本文以QT中的QT中的TCP为例子&#xff0c;讲下使用方法以及线程中使用。 二、正文 2.1 Sever的使用方法 2.1.1 思路 QT中Sever使用的时候大致步骤为&…

网络链路层之(2)PPP协议

网络链路层之(2)PPP协议 Author: Once Day Date: 2024年3月27日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CSDN…

STM32学习笔记(6_8)- TIM定时器的编码器接口代码

无人问津也好&#xff0c;技不如人也罢&#xff0c;都应静下心来&#xff0c;去做该做的事。 最近在学STM32&#xff0c;所以也开贴记录一下主要内容&#xff0c;省的过目即忘。视频教程为江科大&#xff08;改名江协科技&#xff09;&#xff0c;网站jiangxiekeji.com 现在开…

【搜索引擎2】实现API方式调用ElasticSearch8接口

1、理解ElasticSearch各名词含义 ElasticSearch对比Mysql Mysql数据库Elastic SearchDatabase7.X版本前有Type&#xff0c;对比数据库中的表&#xff0c;新版取消了TableIndexRowDocumentColumnmapping Elasticsearch是使用Java开发的&#xff0c;8.1版本的ES需要JDK17及以上…

【unity】解决unity编译器安装中文汉化包失败

如果有的同学中文包安装失败&#xff0c;我们找到相应的编译器版本&#xff0c;点击在资源管理器中显示按钮&#xff0c; 我们点击当前目录的上一级&#xff0c;进入编译器目录。 找到modules.json文件双击打开 我们找到简体中文&#xff0c;复制downloadUrl后面的值到浏览…

云电脑安全性怎么样?企业如何选择安全的云电脑

云电脑在保障企业数字资产安全方面&#xff0c;采取了一系列严谨而全面的措施。随着企业对于数字化转型的深入推进&#xff0c;数字资产的安全问题日益凸显&#xff0c;而云电脑作为一种新兴的办公模式&#xff0c;正是为解决这一问题而生。云电脑安全吗&#xff1f;可以放心使…

Java常见限流用法介绍和实现

目录 一、现象 ​编辑 二、工具 ​​​​​​1、AtomicInteger,AtomicLong 原子类操作 ​​​​​​2、RedisLua ​​​​​​3、Google Guava的RateLimiter 1&#xff09; 使用 2&#xff09; Demo 3&#xff09; 优化demo 4、阿里开源的Sentinel 三、算法 1、计数…

『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用

&#x1f680;『Apisix系列文章』探索新一代微服务体系下的API管理新范式与最佳实践 【点击此跳转】 &#x1f4e3;读完这篇文章里你能收获到 &#x1f3af; 掌握APISIX中多种负载均衡策略的原理及其适用场景。&#x1f4c8; 学习如何通过APISIX的Admin API和Dashboard进行负…

python-pytorch获取FashionMNIST实际图片标签数据集

在查看pytorch官方文档的时候&#xff0c;在这里链接中https://pytorch.org/tutorials/beginner/basics/data_tutorial.html的Creating a Custom Dataset for your files章节&#xff0c;有提到要自定义数据集&#xff0c;需要用到实际的图片和标签。 在网上找了半天没找到&a…

Ceph——部署

Ceph简介 Ceph是一款开源的 SDS 分布式存储&#xff0c;它具备极高的可用性、扩展性和易用性&#xff0c;可用于存 储海量数据 Ceph的存储节点可部署在通用服务器上&#xff0c;这些服务器的 CPU 可以是 x86 架构的&#xff0c;也可以 是 ARM 架构的。 Ceph 存储节点之间相互…