第15天:信息打点-主机架构&蜜罐识别&WAF识别&端口扫描&协议识别&服务安全

img

常用的一些端口服务,以及对应的渗透风险

image-20250509144212495

image-20250509144246178

image-20250509144307923

image-20250509144327348

image-20250509144343924

端口扫描

常用的有:nmap , masscan , 网络空间

nmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
nmap -p1-65535 -A  www.xiaodi8.com 


nmap扫描结果的几种状态:

Open:端口处于开放状态:
例如:当nmap使用TCP SYN对目标主机某一范围的端口进行扫描时,我们知道 TCP SYN报文是TCP建立连接的第一步,所以,如果目标主机返回SYN+ACK的报文,我们就认为此端口开放了并且使用了TCP服务。

Closed:端口处于关闭状态:
例如:TCP SYN类型的扫描,如果返回RST类型的报文,则端口处于管理状态。这里我们值得注意的是关闭的端口也是可访问的,只是没有上层的服务在监听这个端口,而且,只是在我们扫描的这个时刻为关闭,当我们在另一个时间段进行扫描的时候,这些关闭的端口可能会处于open的状态。

Filtered(过滤的):
由于报文无法到达指定的端口,nmap不能够决定端口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的。当nmap收到icmp报文主机不可达报文(例如:type为3,code为13(communication administratively prohibit)报文)或者目标主机无应答,常常会将目标主机的状态设置为filtered。

Unfiltered(未被过滤的):
当nmap不能确定端口是否开放的时候所打上的状态,这种状态和filtered的区别在于:unfiltered的端口能被nmap访问,但是nmap根据返回的报文无法确定端口的开放状态,而filtered的端口直接就没就没能够被nmap访问。端口被定义为Unfilterd只会发生在TCP ack扫描类型时当返回RST的报文。而端口被定义为filtered 状态的原因是是报文被防火墙设备,路由器规则,或者防火墙软件拦截,无法送达到端口,这通常表现为发送NMAP的主机收到ICMP报错报文,如:TYPE为3,code为13的报文(通信被认为的禁止 communication administratively prohibited),或者主机通过多次重复发送没有收到任何回应)。

Open|filtered状态:
这种状态主要是nmap无法区别端口处于open状态还是filtered状态。这种状态只会出现在open端口对报文不做回应的扫描类型中,如:udp,ip protocol ,TCP null,fin,和xmas扫描类型。

Closed|filtered状态:
这种状态主要出现在nmap无法区分端口处于closed还是filtered时。此状态只会出现在IP I idle scan中。

image-20250510072414826

image-20250510104350487

masscan

1
masscan -p 1-1000 43.138.145.195

image-20250510072820273

网络空间

网络空间是一个综合性的收集总结,其中包括,主机的架构,waf的识别,端口的扫描,协议识别这些都会被网络空间进行收录.

image-20250510080413856

如果使用网络空间收集开放的端口,网络空间是通过爬虫进行自动爬取的,如果对方没有爬取,也就是数据没有及时更新那么就会不如你实时扫描端口,有时候也会对过往的一些端口进行记录,所以网络空间的接口可以参考一下.

从上面的扫描结果来看,每个端口都对应了不同的网络协议,就是说除开最基本的web攻防之外,还会有一些不同协议端口服务的安全问题.

1
2
除开对方防火墙导致端口扫描受限一个原因,还有一个原因就是一个公司的web服务器是搭建在内网,然后在通过NAT转换到外网,假设web服务器上有3306端口,然后出口防火墙上不开放3306端口,那么就是说即使对方开启了对应的端口,你也扫描不到.
反向代理也会出现这种情况.

总结: 网络空间为辅助,nmap用于对于单个目标进行精准打击,masscan用于批量扫描

WAF

1
2
3
4
5
6
WAF分类:

云 WAF:百度安全宝、阿里云盾、长亭雷池,华为云,亚马逊云等
硬件 WAF:绿盟、安恒、深信服、知道创宇等公司商业产品
软件 WAF:宝塔,安全狗、D 盾等
代码级 WAF:自己写的 waf 规则,防止出现注入等,一般是在代码里面写死的

看图识别:

1
https://cloud.tencent.com/developer/article/1872310

image-20250510092241380

image-20250510092255752

image-20250510093557962

wafw00f

工具在kali中内置:

image-20250510091633650

使用方式: wafw00f https://www.fastreportcn.com/

image-20250510092547937

1
wafw00f -l			#查看支持识别的列表

image-20250510092755977

网络空间也可以对waf进行识别

identYwaf

项目地址:https://github.com/stamparm/identYwaf.git

用法:

1
python identYwaf.py https://www.fastreportcn.com/

image-20250510093207448

总结: wafw00f和identYwaf都可以混合搭配使用

蜜罐识别

蜜罐解释

1
蜜罐是一种安全威胁的检测技术,其本质在于引诱和欺骗攻击者,并且通过记录攻击者的攻击日志来产生价值.安全研究人员可以通过分析蜜罐的被攻击记录推测攻击者的意图和手段等信息.攻击方可以通过蜜罐识别技术来发现和规避蜜罐,因此,我们有必要站在红队攻击者角度钻研蜜罐识别的方式方法.

蜜罐分类

1
根据蜜罐与攻击者之间进行的交互的程度可以将蜜罐分为三类:低交互蜜罐,中交互蜜罐,高交互蜜罐.当然还可以根据蜜罐模拟目标进行分类.比如:数据库蜜罐,工控蜜罐,物理网蜜罐,web蜜罐等等..

蜜罐安装

HFish

1
2
3
4
项目地址: https://hfish.net/#/

根据官方教程进行安装
bash <(curl -sS -L https://hfish.net/webinstall.sh)

image-20250510095623024

如果部署者没有修改默认端口,那么这个默认的4433端口本身也是一种特征.

image-20250510100506022

image-20250510100533299

image-20250510100722771

可以看到上图中全部是模拟的端口服务,只要我对其进行测试,这边就会触发报警.

image-20250510100816233

访问其8080端口,然后虽然输入一个账号密码.

在攻击列表中,选择一个数据包,然后查看详细数据包,就可以发现我提交的内容.

image-20250510100935165

在账号资源板块,同样可以看到我的访问请求:

image-20250510101113896

蜜罐识别插件

项目地址:https://github.com/Ghr07h/Heimdallr

image-20250510101721376

感觉挺鸡肋的

360quake

项目地址:https://github.com/360quake/quake_rs

1
2
第一个启动需要初始化一下:
./quake init 360空间测绘的key

image-20250510112921518

image-20250510112821128

image-20250510113236969

我这里误判了

某些蜜罐的特征

1
2
3
4
5
6
7
8
这里说的是某些蜜罐的特征不代表全部

由于蜜罐需要记录攻击者的攻击手法,那么常规来说我们去访问类似于mysql服务的端口的时候是访问不成功的,但是当我们去使用http的方式去访问这个服务端口,就会下载这个网页

一部分的蜜罐的传输方式,是使用jsonp的格式进行传输
JSONP(JSON with Padding)是一种用于跨域请求数据的技术,它本身不是跳转,但通过动态加载脚本的方式间接实现了跨域数据交互。

部分蜜罐开启的端口d具有规律性,类似于 9989,9990