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 原文地 ...
随机推荐
- EasyPR源码剖析(2):车牌定位
上一篇主要介绍了车牌识别的整体框架和流程,车牌识别主要划分为了两个过程:即车牌检测和字符识别,而车牌识别的核心环节就是这一节主要介绍的车牌定位,即 Plate Locate.车牌定位主要是将图片中有可 ...
- MySQL ERROR 1064(42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
通常出现该错误的原因是使用了 MySQL 的保留字 解决方法是对使用的保留字使用反引号 (Tab键上面)
- 服务管理之openssh
1. 使用 SSH 访问远程命令行 1.1 OpenSSH 简介 OpenSSH这一术语指系统中使用的Secure Shell软件的软件实施.用于在远程系统上安全运行shell.如果您在可提供ssh服 ...
- Python学习:经典编程例题
九九乘法表 ,): ,i+): print(i,'*',j,'=',i*j,end='\t') print() 水仙花数问题描述:100-999之间每个数的立方相加等于原数例如:153=1 ^ 3 + ...
- [翻译]理解分析Linux里的101个ELF文件
原文:https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/
- apache ab 结果Failed requests探究
Failed requests: 537 (Connect: 0, Receive: 3, Length: 268, Exceptions: 266) Receive:当客户端connect成功后,并 ...
- Sublime Text Snippets(代码片段)功能
原文链接:http://www.bluesdream.com/blog/sublime-text-snippets-function.html 我们在编写代码的时候,总会遇到一些需要反复使用的代码片段 ...
- log4j-日志记录小结
log4j.properties配置 ### 以系统输出流的方式按照指定的格式在控制台上输出日志信息 ###log4j.appender.stdout=org.apache.log4j.Console ...
- python的文件读写笔记
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
- apache kylin的单节点及多节点安装
Kylin的使用安装文档Kylin简介Kylin是什么Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区.它提供Hadoop之上的SQL查询接口及多维分析(OLAP) ...