信息搜集 - 四层发现 hping3

news/2024/5/17 16:56:37 标签: udp, tcp, hping3, kali

0x00:简介

hping3 之前在三层发现有记录,格式是 hping3 1.1.1.1 --icmp -c 1,利用的主要是三层协议 icmp。而在四层中,格式类似,区别在于指定的协议不同。

0x01:hping3 udp

hping3 四层发现主要使用的协议是 udptcp,使用方法和三层的 icmp 类似,先来看下 udp 的用法,格式是 hping3 1.1.1.1 --udp -c 1,运行示例如下:

请输入图片描述

上面是单个 ip 的检测,如果需要检测 ip 段时,可以借助 shell 脚本来实现,示例代码如下:

#!/bin/bash
if [ "$#" -ne 1 ]; then
    echo "使用错误,示例:./hping3-udp.sh 1.1.1.1"
    exit
fi
prefix=$(echo $1 | cut -d '.' -f 1-3)
for addr in $(seq 1 254); do
    hping3 $prefix.$addr --udp -c 1 >> hping3-udp-list.txt;
done
grep Unreachable hping3-udp-list.txt | cut -d " " -f 5 | cut -d "=" -f 2 >> hping3-upd-output.txt
rm hping3-udp-list.txt

脚本还是之前的老思路,给一个 ip 参数,去 ip 的前三段然后 1-254 循环第四段,给 hpin3 去检测,筛选结果。

脚本执行情况如下:

请输入图片描述

脚本在循环 ip 时,把结果定向输出到了一个文本文件中,因为 hping3 的执行输出内容比较多,不利于查看,随后利用 grep 筛选关键字 Unreachable,然后就是利用 cut 筛选出 ip,把最终的结果也放到了文本文件中,这样直接查看这个文件就可以看到 hping3 检测到在线的主机。

grep 那块为什么要筛选关键字 Unreachable,首先 Unreachable 翻译过来是端口不可达的意思,用 udp 进行发现的时候,如果目标不在线会直接返回 loss 100% packet 的情况,也就是百分百的丢包率,且没有关于端口的情况,如果目标在线,则会返回信息告诉自己端口不能访问。所以这里主要的原理是根据返回的端口信息来判断目标是否在线。

下面是目标在线和目标不在线输出信息的对比,如下图:

请输入图片描述

104 是在线的,返回的信息是 icmp port unreachable from ip,意思 ip 的 icmp 端口不可达,而 105 是不在线的,则没有此信息。

脚本运行完毕后,会在当前目录下生成一个结果 txt 文件,结果如下:

请输入图片描述

因为我这里扫的是内网的 ip 段,所以 wireshark 抓到的协议是 arp 的,如果是外网的 ip 段,则协议就是 udp,如下图:

请输入图片描述

0x02:hping3 tcp

hping3 在四层使用 tcp 去进行主机发现时,格式和之前的 icmp、udp 一样,只不过这里没有 --tcp 参数,因为 hping3 默认就是使用的 tcp,如果没有指定其他包类型,则就以 tcp 去检测,所以其格式为:hping3 1.1.1.1 -c 1,运行示例如下:

请输入图片描述

检测 ip 段的话也需要结合一下 shell 脚本,其示例代码如下:

#!/bin/bash
if [ "$#" -ne 1 ]; then
    echo "使用错误,示例:./hping3-udp.sh 1.1.1.1"
    exit
fi
prefix=$(echo $1 | cut -d '.' -f 1-3)
for addr in $(seq 1 254); do
    hping3 $prefix.$addr -c 1 >> hping3-tcp-list.txt;
done
grep ^len hping3-tcp-list.txt | cut -d " " -f 2 | cut -d "=" -f 2 >> hping3-tcp-output.txt
rm hping3-tcp-list.txt

tcp 的脚本和 udp 的很像,区别在于一个是 hping3 的命令是直接跟的 ip,再一个是筛选的时候检测关键字,这里是以 len 开头的进行筛选。为什么筛选以 len 开头的内容?hping3 在使用 tcp 检测时,如果目标在线,返回的信息中带有 flags 标志,值为 RA,即代表 RST 包,RST 回应包则代表目标在线,开头是 len 长度,也可以检测 flags 关键字。下面是在线和不在线的返回信息对比,如下图:

请输入图片描述

脚本运行示例如下:

请输入图片描述

使用 wireshark 抓包应该是 tcp 协议,但我这里是内网,所以是 arp 的,wireshark 抓包如下:

请输入图片描述

结果最后也会放到一个 txt 文件中,如下图:

请输入图片描述

hping3 去发现主机的时候会有这种情况,如果目标开了防火墙,这个时候使用 udptcp 是检测不出来的,结果会告诉你 loss 100% packer 也就是包全丢了,而使用 --icmp 参数用 icmp 去检测,则会探测到。所以不被发现的原因可能在于目标有防火墙,也有可能是设备的原因,很多设备路由默认是不接受一些突然的包的。

所以在四层发现使用 udptcp 时,目标准确率不是很高,只能作为参考,建议是结合其他层发现的结果做整合。

0x03:总结

hping3 使用 icmp 参数利用 icmp 协议可在三层用来做发现,使用 udp 参数利用 udp 协议可来四层做发现,默认不带协议参数,则用 tcp 在四层做发现。其四层发现的结果准确率不高,建议对其他层的结果一起做整合。


                                                                     公众号推荐:aFa攻防实验室

                         分享关于信息搜集、Web安全、内网安全、代码审计、红蓝对抗、Java、Python等方面的东西。

                                                                         


http://www.niftyadmin.cn/n/1148052.html

相关文章

Essential UV On Subdivide Surface

随着CCSS Catmull-Clark Subdivide Surface(以下简称CCSS)越来越多的运用,由此产生的问题也层出不穷。不过总的来说,使用CCSS要比纯粹使用Polyhedron或者是NURBS要好,首先不存在NURBS的拼合、变形、骨骼绑定、贴图绘制…

Adobe推出Web版Photoshop 可免费使用

3月28日消息,据国外媒体报道,Adobe本周四推出了著名的图片编辑软件Photoshop的Web版本,用户可免费使用。 Web版Photoshop被命名为PhotoshopExpress,相对Photoshop主要面向专业人士而言,PhotoshopExpress在很大程度上…

端口扫描 - Scapy

0x00:简介 scapy 除了之前在二层三层四层做发现外,也可以用来扫描端口。 0x01:scapy udp 端口扫描 先说一下 scapy 根据 udp 来发现端口的原理,首先,要扫描端口的主机是在线的,可以通过之前各层的发现技…

Asp.Net MVC 学习心得 之 View

一、使用View Data 首先要在Controller里加代码&#xff1a; public class ProductController : Controller{//// GET: /Product/public ActionResult Index(){ViewData["Message"] "Hello World";return View();}} 然后在View里添加代码&#xff1a; <…

原HP中国总裁孙振耀出山 任扬智、海辉董事长?

去年辞去惠普中国总裁一职的孙振耀&#xff0c;简直成了IT业职场的“香饽饽”。 昨天&#xff0c;联发科旗下著名芯片设计企业扬智科技(下称“扬智”)发布公告说&#xff0c;董事长蔡明介因公务繁忙将辞去董事长一职&#xff0c;新任董事长将改由孙振耀担任。 也是挑战 孙振…

UDP 端口扫描 - Nmap

0x00&#xff1a;简介 nmap 在二层做主机发现时使用的参数是 sn&#xff08;ping 扫描&#xff0c;不做端口扫描&#xff09;。在三层做主机发现时也是使用的 sn 参数&#xff0c;这里二三层都用的 sn 参数&#xff0c;而具体使用的是二层协议 arp 还是三层协议 icmp&#xff…

李阳英语365句

1.Absolutely. (用于答话&#xff09;是这样;当然是;正是如此;绝对如此。 2.Absolutely impossible! 绝对不可能的&#xff01; 3.All I have to do is learn English. 我所要做的就是学英语。 4.Are you free tomorrow? 你明天有空吗? 5.Are you married? 你结婚了吗&#…

端口扫描 - Scapy - 隐蔽扫描

0x00&#xff1a;简介 端口扫描可分为三种&#xff0c;分别是隐蔽扫描、全链接扫描、僵尸扫描。 隐蔽扫描&#xff1a;像服务器发起的请求不会经历完整的三次握手&#xff0c;首先会向目标服务器进行第一次握手&#xff0c;发送一个 SYN 包&#xff0c;然后根据服务器返回的 …