网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
注册配置 MSE Nacos/ZooKeeper,118元/月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!

欢迎各位彦祖与热巴畅游本人专栏与博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]

专栏跑道一

➡️网络空间安全——全栈前沿技术持续深入学习

image.gif 编辑

专栏跑道二

➡️ 24 Network Security -LJS

image.gif 编辑

image.gif 编辑

image.gif 编辑

专栏跑道三


➡️ MYSQL REDIS Advance operation

image.gif 编辑

专栏跑道四

➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]

image.gif 编辑

专栏跑道五

➡️RHCE-LJS[Linux高端骚操作实战篇]

image.png

专栏跑道六

➡️数据结构与算法[考研+实际工作应用+C程序设计]

image.gif 编辑

专栏跑道七

➡️RHCSA-LJS[Linux初级及进阶骚技能]

image.gif 编辑

image.gif

上节回顾




 主动信息收集

1.1基于 ping 命令的探测

ping 命令的探测简介:

  • PING 命令是我们常用的判断主机之间网络是否畅通,同样也是能判断我们的目标主机是否存活

image.gif 编辑

1.2Traceroute

Traceroute简介:

  • 我们从当前主机到目标主机之间肯定要经过很多网络设备,我们怎么才能知道中间经过了哪些网络设备?
  • Traceroute 命令也可以对路由进行跟踪

image.gif 编辑

  • 然而 PING 命令也延伸出了很多其他的命令,如 ARPING、FPING、HPING

1.3ARPING

ARP 协议 简介:

  • ARP 协议是“Address Resolution Protocol”(地址解析协议)的缩写。计算机通过 ARP 协议将 IP 地址转换成 MAC 地址。

ARP 协议工作原理

  • 在以太网中,数据传输的目标地址是 MAC 地址,一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。
  • 计算机使用者通常只知道目标机器的 IP 信息,“地址解析”就是主机在发送帧前将目标 IP 地址转换成目标 MAC 地址的过程。
  • 简单地说,ARP 协议主要负责将局域网中的 32 为 IP 地址转换为对应的 48 位物理地址,即网卡的MAC 地址,保障通信顺利进行。
  • arp 工作原理如下图所示:

image.gif 编辑

使用 arping 命令查看局域网中的 IP 是否有冲突

root@xuegod53:~# arping 192.168.1.1 -c 1 #-c 参数表示发送的次数,我们只需要 1 次即可

image.gif

示例1:对 arping 命令的结果进行筛选,只取 ip 地址

arping -c 1 192.168.1.1 | grep "bytes from" | cut -d" " -f 5 | cut -d"(" -f 2 | cut -d")" -f 1 192.168.1.1
详解如下:
arping -c 1 192.168.1.1 |  # 使用arping发送1个ARP请求到192.168.1.1
grep "bytes from" |          # 过滤输出,只保留包含“bytes from”的行
cut -d" " -f 5 |             # 提取第5个字段(通常是MAC地址)
cut -d"(" -f 2 |             # 提取第二个字段(去掉前面的部分)
cut -d")" -f 1               # 提取第一个字段(得到MAC地址)

image.gif

  • 可以发现 arping 只能对一个 ip 地址进行判断,这个时候我们就需要通过脚本来实现对网络的自动扫描。

如何通过脚本来实现对网络的自动扫描?

root@xuegod53:~# vim arping1.sh 
插入如下内容
#!/bin/bash
# 指定脚本使用bash解释器
if [ "$#" -ne 1 ]; then
    # 判断用户是否输入了至少一个参数
    # 如果没有输入参数,输出提示信息并退出
    echo "Usage - ./arping.sh [interface]"
    echo "Example - ./arping.sh eth0"
    echo "Example will perform an ARP scan of the local subnet to which eth0 is assigned"
    exit
fi
interface=\$1
# 将用户输入的参数传递给 interface 变量
prefix=$(ifconfig $interface | grep "inet " | cut -d ' ' -f 2 | cut -d '.' -f 1-3)
# 获取指定网络接口的本机 IP 地址网段
# 使用 ifconfig 命令,grep筛选出包含“inet”的行,然后提取IP地址的前3个部分(如192.168.1)
# 对整个网段进行 arping
for addr in $(seq 1 254); do
    # 使用seq生成1到254的数字,对每个地址执行arping
    arping -c 1 $prefix.$addr | 
    # 发送1个ARP请求到每个地址
    grep "bytes from" | 
    # 过滤输出,只保留包含“bytes from”的行
    cut -d" " -f 5 | 
    # 提取第5个字段(通常是MAC地址)
    cut -d"(" -f 2 | 
    # 提取第二个字段(去掉前面的部分)
    cut -d")" -f 1
    # 提取第一个字段(得到MAC地址)
done

image.gif

image.gif 编辑

  • 粘贴完成后检查有没有粘贴错误的地方,按 esc 输入 :wq 保存退出
  • 给我们写好的脚本加上执行权限,我们 linux 中可执行程序需要拥有执行权限才可以直接执行
root@xuegod53:~# chmod +x arping1.sh

image.gif

image.gif 编辑

示例2:模拟 IP 地址冲突

  • 再开一台 centos 虚拟机 xuegod63,把 IP 地址改成 192.168.1.1
[root@xuegod63 ~]# ifconfig ens33 192.168.1.1
  • image.gif

执行我们的脚本,进行扫描

root@xuegod53:~# ./arping1.sh eth0 #查看局域网中是否存在 arp 攻击
  • image.gif
  • image.gif 编辑
  • 如果出现两个一样的 IP 地址,就是有 ARP 攻击了

image.gif 编辑

1.4使用 Netdiscover 进行被动方式探测局域中存活的机器

Netdiscover简介:

  • Netdiscover 是一个主动/被动的 ARP 侦查工具。
  • 使用 Netdiscover 工具可以在网络上扫描 IP地址,检查在线主机或搜索为它们发送的 ARP 请求。

主动模式:

  • 主动模式顾名思义就是主动的探测发现网络内主机,但是这种方式往往会引起网络管理员的注意
root@xuegod53:~# netdiscover -i eth0 -r 192.168.1.0/24
参数详解说明:
-i device:您的网络设备
-r range:扫描给定范围而不是自动扫描。192.168.6.0/24. / 16./8
  • image.gif image.gif 编辑

被动模式:

被动模式的方法更加隐蔽,但是速度会比较慢,网卡被设置为混杂模式来侦听网络内的 arp 数据包进行被动式探测,这种方式就需要网络内设备发送 arp 包才能被探测到。

oot@xuegod53:~# netdiscover -p
参数详解说明:
-p被动模式:不发送任何东西,只嗅探
  • image.gif image.gif 编辑

1.5HPING3

HPING3简介:

  • Hping3 是一个命令行下使用的 TCP/IP 数据包组装/分析工具,通常 web 服务会用来做压力测试使用,也可以进行 DOS 攻击的实验。
  • 同样 Hping 只能每次扫描一个目标

示例:使用 HPING 进行压力测试

先测试网站正常访问

root@xuegod53:~#  ping http://www.xuegod.cn/

image.gif

对 xuegod.cn 进行压力测试

root@xuegod53:~#hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source xuegod.cn
参数详解说明:
-c 1000 = 发送的数据包的数量。
-d 120 = 发送到目标机器的每个数据包的大小。单位是字节
-S = 只发送 SYN 数据包。
-w 64 = TCP 窗口大小。
-p 80 = 目的地端口(80 是 WEB 端口)。你在这里可以使用任何端口。
--flood = 尽可能快地发送数据包,不需要考虑显示入站回复。洪水攻击模式。
--rand-source = 使用随机性的源头 IP 地址。这里的伪造的 IP 地址,只是在局域中伪造。通过路由器后,还会还原成真实的 IP 地址。
  • image.gif
  • image.gif 编辑
  • image.gif 编辑

发现再次刷新网页发现已经打不开了。

  • image.gif 编辑

Ctrl+c 停止后即可访问网站。

image.gif

1.6FPING ——查看局域中运行了哪些机器

FPING简介:

  • Fping 就是 ping 命令的加强版他可以对一个 IP 段进行 ping 扫描,而 ping 命令本身是不可以对网段进行扫描的。
root@xuegod53:~# fping -g 192.168.1.0/24 -c 1 > fping.txt
参数详解说明:
-g 表示对地址段进行扫描如果不加可以对某个 IP 进行扫描
-c 表示 ping 的次数
>fping.txt 表示将扫描的结果重定向到 fping.txt ,原因是如果扫描一个网段的话输出结果是非常
多的,我们输出重定向到文件中只会获得存活的主机信息。

image.gif

查看一下

root@xuegod53:~# cat fping.txt
  • image.gif
  • image.gif 编辑

image.gif 编辑

2.基于 Nmap 的扫描方式

2.1Nmap 的基本扫描方式

  • Nmap,也就是 Network Mapper,最早是 Linux 下的网络扫描和嗅探工具包。

示例:扫描 192.168.1.0 这个网段

root@xuegod53:~# nmap -sn 192.168.1.0/24
root@xuegod53:~# nmap -sn 192.168.1.1-254
参数说明:
-sn表示只 ping 扫描,不进行端口扫描
image.gif

2.2使用 nmap 进行半连接扫描

  • nmap 扫描类型主要有 TCP 的全连接扫描(会在被扫描机器留下记录),半连接扫描(不会留下记录)

  • image.gif 编辑

root@xuegod53:~# nmap -sS 101.200.128.35 -p 80,81,21,25,110,443

sS 使 SYN 
  • image.gif
  • image.gif 编辑


image.gif

2.3使用 nc 扫描端口

示例:

root@xuegod53:~# nc -nv -w 1 -z 192.168.1.1 1-100
(UNKNOWN) [192.168.1.1] 80 (http) open
(UNKNOWN) [192.168.1.1] 23 (telnet) : Connection timed out
(UNKNOWN) [192.168.1.1] 21 (ftp) open
参数详解说明:
-nv 表示我们扫描的目标是个 IP 地址不做域名解析
-w 表示超时时间
-z 表示进行端口扫描

image.gif

image.gif 编辑

image.gif


相关文章
|
2月前
|
调度 Python
探索Python高级并发与网络编程技术。
可以看出,Python的高级并发和网络编程极具挑战,却也饱含乐趣。探索这些技术,你将会发现:它们好比是Python世界的海洋,有穿越风暴的波涛,也有寂静深海的奇妙。开始旅途,探索无尽可能吧!
73 15
|
2月前
|
监控 算法 JavaScript
基于 JavaScript 图算法的局域网网络访问控制模型构建及局域网禁止上网软件的技术实现路径研究
本文探讨局域网网络访问控制软件的技术框架,将其核心功能映射为图论模型,通过节点与边表示终端设备及访问关系。以JavaScript实现DFS算法,模拟访问权限判断,优化动态策略更新与多层级访问控制。结合流量监控数据,提升网络安全响应能力,为企业自主研发提供理论支持,推动智能化演进,助力数字化管理。
70 4
|
8月前
|
Linux 网络安全 Android开发
高级 ping 命令及技巧
Ping命令是一种常用的网络诊断工具,用于测试网络连接的可达性和延迟等信息
759 57
|
8月前
|
Linux iOS开发 网络架构
如何使用 Ping 命令监测网络丢包情况?
如何使用 Ping 命令监测网络丢包情况?
5504 48
|
7月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
815 20
|
8月前
|
Linux iOS开发 MacOS
如何设置 Ping 命令的超时时间?
如何设置 Ping 命令的超时时间?
1346 3
|
8月前
|
运维 监控 Linux
别再只会使用简单的 ping 命令了,Linux 中这些高级 ping 命令可以提高工作效率!
在 Linux 系统中,ping 命令不仅用于检测网络连通性和延迟,还拥有多种高级选项和技巧,如定制数据包大小、获取详细统计信息、持续 ping、指定源地址和多目标 ping。本文详细介绍这些高级命令及其在性能测试、故障排查和网络监控中的实际应用,帮助你提升网络管理效率。
650 3
|
8月前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
680 3
|
9月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
1186 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣