欢迎各位彦祖与热巴畅游本人专栏与博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现]
专栏跑道一
➡️网络空间安全——全栈前沿技术持续深入学习
编辑
专栏跑道二
➡️ 24 Network Security -LJS
编辑
编辑
编辑
专栏跑道三
➡️ MYSQL REDIS Advance operation
编辑
专栏跑道四
➡️HCIP;H3C-SE;CCIP——LJS[华为、华三、思科高级网络]
编辑
专栏跑道五
➡️RHCE-LJS[Linux高端骚操作实战篇]
专栏跑道六
➡️数据结构与算法[考研+实际工作应用+C程序设计]
编辑
专栏跑道七
➡️RHCSA-LJS[Linux初级及进阶骚技能]
编辑
上节回顾
主动信息收集
1.1基于 ping 命令的探测
ping 命令的探测简介:
- PING 命令是我们常用的判断主机之间网络是否畅通,同样也是能判断我们的目标主机是否存活
编辑
1.2Traceroute
Traceroute简介:
- 我们从当前主机到目标主机之间肯定要经过很多网络设备,我们怎么才能知道中间经过了哪些网络设备?
- Traceroute 命令也可以对路由进行跟踪
编辑
- 然而 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 工作原理如下图所示:
编辑
使用 arping 命令查看局域网中的 IP 是否有冲突
root@xuegod53:~# arping 192.168.1.1 -c 1 #-c 参数表示发送的次数,我们只需要 1 次即可
示例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地址)
- 可以发现 arping 只能对一个 ip 地址进行判断,这个时候我们就需要通过脚本来实现对网络的自动扫描。
如何通过脚本来实现对网络的自动扫描?
root@xuegod53:~# vim arping1.sh 插入如下内容 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 prefix=$(ifconfig $interface | grep "inet " | cut -d ' ' -f 2 | cut -d '.' -f 1-3) for addr in $(seq 1 254); do arping -c 1 $prefix.$addr | grep "bytes from" | cut -d" " -f 5 | cut -d"(" -f 2 | cut -d")" -f 1 done
编辑
- 粘贴完成后检查有没有粘贴错误的地方,按 esc 输入 :wq 保存退出
- 给我们写好的脚本加上执行权限,我们 linux 中可执行程序需要拥有执行权限才可以直接执行
root@xuegod53:~# chmod +x arping1.sh
编辑
示例2:模拟 IP 地址冲突
- 再开一台 centos 虚拟机 xuegod63,把 IP 地址改成 192.168.1.1
[root@xuegod63 ~]# ifconfig ens33 192.168.1.1
执行我们的脚本,进行扫描
root@xuegod53:~# ./arping1.sh eth0 #查看局域网中是否存在 arp 攻击
- 编辑
- 如果出现两个一样的 IP 地址,就是有 ARP 攻击了
编辑
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
- 编辑
被动模式:
被动模式的方法更加隐蔽,但是速度会比较慢,网卡被设置为混杂模式来侦听网络内的 arp 数据包进行被动式探测,这种方式就需要网络内设备发送 arp 包才能被探测到。
oot@xuegod53:~# netdiscover -p 参数详解说明: -p被动模式:不发送任何东西,只嗅探
- 编辑
1.5HPING3
HPING3简介:
- Hping3 是一个命令行下使用的 TCP/IP 数据包组装/分析工具,通常 web 服务会用来做压力测试使用,也可以进行 DOS 攻击的实验。
- 同样 Hping 只能每次扫描一个目标。
示例:使用 HPING 进行压力测试
先测试网站正常访问
root@xuegod53:~# ping http://www.xuegod.cn/
对 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 地址。
- 编辑
- 编辑
发现再次刷新网页发现已经打不开了。
- 编辑
Ctrl+c 停止后即可访问网站。
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 ,原因是如果扫描一个网段的话输出结果是非常 多的,我们输出重定向到文件中只会获得存活的主机信息。
查看一下
root@xuegod53:~# cat fping.txt
- 编辑
编辑
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 扫描,不进行端口扫描
2.2使用 nmap 进行半连接扫描
- nmap 扫描类型主要有 TCP 的全连接扫描(会在被扫描机器留下记录),半连接扫描(不会留下记录)
- 编辑
root@xuegod53:~# nmap -sS 101.200.128.35 -p 80,81,21,25,110,443 参数详解说明: sS 表示使用 SYN 进行半连接扫描
- 编辑
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 表示进行端口扫描
编辑