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 原文地 ... 
随机推荐
- 使用Snappy将html或者url转成PDF文件
			这是一个操作简单的html文件或者url转PDF的php库 Github地址 https://github.com/KnpLabs/snappy 安装: $ composer require knpl ... 
- HDU2034
			#include <bits/stdc++.h> using namespace std; int main() { int n,m,val; set<int>::iterat ... 
- Java Swing实现展示数据,以及过滤排序
			public class RelationCostctrTable extends DefaultTableModel { public RelationCostctrTable(Vector< ... 
- Job集群设计
- java Quartz任务调度器
			1.quarz对java1.5实现的简单调度做了封装 /** * quartz对任务调度进了高度抽象: 1调度器:2任务:3触发器 * Job接口(任务):定义需要调度的任务 ... 
- Android接口Parcelable的使用
			注明:非原创,转载,原链接地址为:http://www.2cto.com/kf/201205/132814.html 和 http://www.blogjava.net/lincode/archive ... 
- 【SerpentAI:Python开源游戏智能体开发框架——相比OpenAI Universe可导入自己的游戏、可脱离Docker/VNC运行】
			https://weibo.com/fly51fly?from=myfollow_all&is_all=1#1514439335614 [SerpentAI:Python开源游戏智能体开发框架 ... 
- 虚拟DOM
			传统的 DOM 操作是直接在 DOM 上操作,当需要修改一系列元素中的值时,就会直接对 DOM 进行操作.如果需要操作的DOM元素过多,则成本太高,而采用 Virtual DOM 则会对需要修改的 D ... 
- MUI动态生成轮播图片
			$$.ajax({ url:'http://localhost:8080/api/v1/food/listFeatureFood', type:'Get', xhrFields: {withCrede ... 
- Linux 云计算运维之路
			搭建中小型网站的架构图 s1-2 Linux 硬件基础 s3-4 linux 基础 文件系统 用户权限 s5-6 Linux 标准输出 系统优化 目录结构 w7 rsync-备份服务器 w8 NFS服 ... 
