欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别

程序员文章站 2023-08-31 22:06:14
防火墙简单的识别方式: 如图: 可以简单明了看出:发送SYN不回应,发送ACK回RST可以说明开启过滤等等 基于这个原理,我们可以写一个脚本来对防火墙来探测和识别: 这里的flags==18或者是6或者是4,是TCP中FLAG代表的数字: OK,我们可以试试这个脚本: 如果脚本是从windows移过 ......

防火墙简单的识别方式

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代表的数字:

Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别

 

ok,我们可以试试这个脚本:

如果脚本是从windows移过来的:

vi xxx.py

:set fileformat=unix

:wq

chmod u+x xxx.py

./xxx.py

 Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别

 

随便扫了两个端口,结果准确性不错

 

 

我们可以用nmap来验证一下扫描结果正确性:

Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别

 

负载均衡识别

 

负载均衡从其应用的地理结构上分为本地负载均衡(local load balance)和全局负载均衡(global load balance,也叫地域负载均衡)

本地负载均衡是指对本地的服务器群做负载均衡,全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。

它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

简单来说是dns,即同一个域名对应不同ip。 

基于web的服务负载均衡经常使用nginx、apache应用层负载均衡 

 

命令:lbd:

Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别

 

 

waf识别

waf(web application firewall)的中文名称叫做“web应用防火墙”。

利用国际上公认的一种说法,waf的定义是这样的:web应用防火墙是通过执行一系列针对http/https的安全策略来专门为web应用提供保护的一款产品。

通过从上面对waf的定义中,我们可以很清晰的了解到,waf是一种工作在应用层的、通过特定的安全策略来专门为web应用提供安全防护的产品 

基于机器学习结合语法词法分析的waf将成为主流,几乎可防止所有的sql注入

 

命令:waf00f

Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别

 

检测到某网站使用ibm web application security

 

使用nmap的脚本也可以轻易实现:

 Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别