Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别
防火墙简单的识别方式:

如图:
可以简单明了看出:发送SYN不回应,发送ACK回RST可以说明开启过滤等等
基于这个原理,我们可以写一个脚本来对防火墙来探测和识别:
#!/usr/bin/python from scapy.all import *
import logging logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
import sys if len(sys.argv) != 3:
print "Usage - ./FW_detect.py [Target.IP] [Target Port]"
print "Example - ./FW_detect.py 1.1.1.1 443"
print "Example will determine if filtering exists on port 443 of Host 1.1.1.1"
sys.exit() ip = sys.argv[1]
port = int(sys.argv[2]) ACK_response = sr1(IP(dst=ip) / TCP(dport=port, flags="A"), timeout=1, verbose=0)
SYN_response = sr1(IP(dst=ip) / TCP(dport=port, flags="S"), timeout=1, verbose=0) if SYN_response == None and int(ACK_response[TCP].flags) == 4:
print "Stateful filtering in place"
elif (int(SYN_response[TCP].flags) == 18 or int(SYN_response[TCP].flags) == 6) and (ACK_response == None) == 4:
print "Stateful filtering in place"
elif (int(SYN_response[TCP].flags) == 18 or int(SYN_response[TCP].flags) == 6) and int(ACK_response[TCP].flags) == 4:
print "Port is unfiltered or open"
elif (ACK_response == None) and (SYN_response == None):
print "Port is closed"
else:
print "Unable to determine if the port is filtered"
这里的flags==18或者是6或者是4,是TCP中FLAG代表的数字:

OK,我们可以试试这个脚本:
如果脚本是从windows移过来的:
vi xxx.py
:set fileformat=unix
:wq
chmod u+x xxx.py
./xxx.py

随便扫了两个端口,结果准确性不错
我们可以用Nmap来验证一下扫描结果正确性:

负载均衡识别:
负载均衡从其应用的地理结构上分为本地负载均衡(Local Load Balance)和全局负载均衡(Global Load Balance,也叫地域负载均衡)
本地负载均衡是指对本地的服务器群做负载均衡,全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。
它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
简单来说是DNS,即同一个域名对应不同IP。
基于web的服务负载均衡经常使用Nginx、Apache应用层负载均衡
命令:LBD:

WAF识别:
WAF(Web Application Firewall)的中文名称叫做“Web应用防火墙”。
利用国际上公认的一种说法,WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
通过从上面对WAF的定义中,我们可以很清晰的了解到,WAF是一种工作在应用层的、通过特定的安全策略来专门为Web应用提供安全防护的产品
基于机器学习结合语法词法分析的WAF将成为主流,几乎可防止所有的SQL注入
命令:waf00f

检测到某网站使用IBM Web Application Security
使用Nmap的脚本也可以轻易实现:

Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别的更多相关文章
- go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c ro ...
- 【官方文档】Nginx负载均衡学习笔记(二)负载均衡基本概念介绍
简介 负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台 ECS 的流量分发控制服务.负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应 ...
- SQL反模式学习笔记15 分组
目标:查询得到每组的max(或者min等其他聚合函数)值,并且得到这个行的其他字段 反模式:引用非分组列 单值规则:跟在Select之后的选择列表中的每一列,对于每个分组来说都必须返回且仅返回一直值. ...
- Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法
Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法 Summary的用法和Group一样简单,分为两步: 启用Summary功能 在Feature标签内,添加如 ...
- 性能学习随笔(1)--负载均衡之f5负载均衡
负载均衡设计涉及软件负载和硬件负载,下文转自CSDN中一篇文章涉及f5硬负载知识 ----转载:https://blog.csdn.net/tvk872/article/details/8063489 ...
- 并发编程学习笔记(15)----Executor框架的使用
Executor执行已提交的 Runnable 任务的对象.此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节.调度等)分离开来的方法.通常使用 Executor 而不是显式地创建 ...
- CDN或负载均衡或WAF,后端服务器获取真实IP
问题起因: 1. 后端PHP的$_SERVER["REMOTE_ADDR"]个别服务器获取不到真实IP 2. iptables 和 悬镜 等工具,设置IP黑名单不起作用 简单点说, ...
- Kali学习笔记25:Arachni使用(实现分布式扫描)
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 Arachni不同于上次介绍的nikto和skipfi ...
- Adaptive AUTOSAR 学习笔记 15 - 持久化 Persistency
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf.作者:Zijian/TENG 原文地 ...
随机推荐
- JS判断图片是否加载完成 背景图404 快到碗里来
面对这个问题 我最多做到表面笑嘻嘻 …… 真不知道测试怎么那么…… 啥都能给你测出来 有的没的都能给你测出来 算了算了 谁让本仙女本精灵本可爱温柔大方善解人意呢 …呵呵呵 ————————————正 ...
- 计算机网络ip地址
ip地址组成 IP地址 = 网络地址 + 主机地址(又称:主机号和网络号组成) 我们通常将网络也可以分为很多的子网络,每个子网络有自己的网络地址,每个子网络由很多的计算机组成(当然也可以包含另外一个子 ...
- 防止网页被别人的网站iframe,服务端如何设置HTTP头部中的X-Frame-Options信息?
一.现象:in a frame because it set 'X-Frame-Options' to 'deny'. 二.服务配置 因为,有时候为了防止网页被别人的网站iframe,我们可以通过在服 ...
- window下mongodb的安装和环境搭建
一.下载安装包或者压缩包 1.下载 mongodb官网社区版下载页面 开发者一般使用社区版即可 3.6.3版本仅支持64位版本 2.安装 mongo compass是一个图形界面管理工具,安装过程非常 ...
- c++11新标准for循环和lambda表达式
:first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-previ ...
- vue间通信
1,父子组件通信 props 传递 父组件: 子组件: 2,子父组件通信 父组件: 子组件: 3,子组件与子组件传递 使用bus.js 如下 传递子组件: 接收子组件
- C++概念小结
API:应用程序编程接口 SDK:软件开发包 调用程序是通过消息来进行的 事件驱动方式的程序设计模式,主要是基于消息的.消息,是由MSG结构体表示的. 消息队列:用来存放该程序创建的窗口的消息 Win ...
- cmd下的一些小技巧
切换盘符:[盘符]+: tips1: 在盘符A执行一条命令后的同时切换到盘符B:A:\>dir && B:(此处只能用&&或者&) tips2: 在盘符A ...
- [规则原则定理]规则原则定理章4 HTTP&RPC
rpc是远端过程调用,其调用协议通常包含传输协议和序列化协议. 传输协议包含: 如著名的 [gRPC](grpc / grpc.io) 使用的 http2 协议,也有如dubbo一类的自定义报文的tc ...
- java37
1.键盘录入格式: Scanner sc = new Scanner(System.in); int i = sc.nextInt();//录入整数 字符: Scanner sc1 = new Sca ...