A-A+

针对php的web流量抓取、分析的应用

2019年04月29日 15:22 汪洋大海 暂无评论 共2748字 (阅读2,232 views次)

一个针对php的web流量抓取、分析的应用。

可供ctf线下赛使用,也可用于实际场景来抓web流量、分析攻击手段。

目前主要功能如下:

  1. 完整http报文请求抓取,同时进行对可能存在的攻击进行分类,通过文件存储模拟出数据库,适应各种场合。
  2. 根据hash判断流量是否重复,只记录次数和最新一次的请求包,减少存储空间的占用以及流量分析的成本。
  3. 4个waf等级,推荐使用1等级,不会影响应用的正常运行,还可以抵御绝大多数的常见攻击。
  4. 设置flag获取命令,通过分析页面返回判断是否被读取了flag,从而替换掉flag(有些场合可能无法使用),将此流量标记为危险流量,同时攻击者ip加入黑名单,永 久ban掉(可从黑名单去除)。
  5. 黑白名单模式,可以手动添加,选择白名单模式,则服务正常通过给白名单机器,其他机器全部拦截。
  6. 可根据ip、时间筛选出想要查看的对应日志。
  7. 通过分析是否为危险流量,统计相同流量出现次数,显示出最可能是最终payload的流量排行。
  8. 一键生成ctf线下赛exp(获取flag+自动提交flag),快人一步进行攻击(除了正常攻击流量外,exp中还包含大量垃圾混淆流量)
  9. 删除并压缩备份选中的流量。
  10. 因流量转发太过不公平,不考虑添加。

使用方法:

   cd /var/www/html/ (or other web dir)
   
   git clone https://github.com/wupco/weblogger.git
   
   chmod -R 777 weblogger/
   
   open http://xxxxx/weblogger/install.php in Web browser
   
   install it
   
   

更详细说明和帮助: https://gist.github.com/wupco/ee26f88656fbf36d014f49b4ac47ddc8

说明:

weblogger 分为静态文件群和动态文件群:

动态文件群:

  • 所有流量数据与脚本模板均存储在tmp目录下,所以要保证tmp目录的持续可写。

静态文件群:

  • web管理页面存在web目录下的一个新建文件中,所以要保证web目录的可写(待install.php生成管理文件结束后可设置目录不可写)

 

软件地址:https://github.com/wupco/weblogger

 

更详细的介绍请看下面:

  1. 在web目录或其他目录 git clone https://github.com/wupco/weblogger.git 注意给当前目录可写..不然clone不进来 
  2. 给目录权限,可以给777,因为这个目录没用,安装完会自动销毁 
  3. 检查自己的php.ini,有没有禁用掉system等系统函数(disable_functions),如果禁用了,暂时先打开,因为安装时移动文件的操作用的是system("mv xxx");
  4. 打开浏览器安装

这里的数据存储路径就是数据部分存储的位置,建议采用类似tmp目录一样的各种权限都有的目录,方便处理。web根目录则是输出管理页面的位置,这个目录一定要有写权限。

因为环境的问题,有的php-fpm将每个Web用户的tmp文件都放在沙箱隔离,导致后来写入tmp下的文件实际路径不在tmp下,这种情况建议按照 https://www.cnblogs.com/lihuobao/p/5624071.html 解决,也可以将数据部分写入 /var/tmp/


获取flag的命令用于读取flag来自动替换别人读到的flag,从而让其他人读不到正确的flag,所以输入一个可以读到flag的系统命令即可。 账号密码是管理页面的账号密码,尽量不要弱口令,填一个比较难爆破的。


出现这个页面代表安装成功了,这时你先别关掉这个页面,去检查一下你的web目录下git clone的那个目录还存在不存在,正常会进行自我销毁,如果没销毁成功,应该是某些权限配置不对或者system被禁用了。

上面那个tmp的路径用来在web入口处包含 下面的是管理页面的路径

  1. 在web入口处或指定文件包含第一行的文件

在index.php 代码中插入 require_once('/tmp/33253f64133730fabaa52a487ff98740/weblogpro.php'); 就ok了

下面的命令可以批量包含

find /var/www/html/ -path /var/www/html/124687a7bc37d57cc9ecd1cbd9d676f7 -prune -o  -type f -name '*.php'|xargs  sed -i '1i<?php require_once("/tmp/33253f64133730fabaa52a487ff98740/weblogpro.php");?>'

访问 http://127.0.0.1/124687a7bc37d57cc9ecd1cbd9d676f7/2cf8e3f14841b6b9b11570eca7e33017/managelog.php 登录,刷新页面,之后所有访问index.php的记录都会在这里看到。 

这里可以显示全部header 

tools可以显示一些工具:按照时间筛选流量、删除打包流量、获取复合流量exp等 

点击get poc  会下载一个python文件 

具体需要你修改的部分如下: 

需要你在python脚本同目录下创建一个ip.txt,每一行输入一个要攻击的队伍ip

这个python文件会自动重放你get poc对应的流量到你指定的ip,拿到flag并自动提交到平台,而且会发送大量干扰流量,使得对手做流量分析十分困难。

如果想要按照某个顺序重放多个流量怎么办?(例如有登录到后台再getshell的场景)

按照流量的id,填入用英文逗号分割,例如 5,2,3,2,1 会依次重放id=5的流量、id=2的流量、id=3的流量、id=2的流量、id=1的流量。

第二个菜单栏,iplist,可以列出所有访问ip,点击对应ip会筛选相应ip的流量 

第三个栏,risk high ,当其他人通过Web应用拿到flag时,会将该流量记录在risk high中。

第四个栏, 根据几个判断条件,按照是exp的可能性排序所有流量。

在tmp下 可配置参数 

其他可修改文件 黑白名单按照一行一个ip来计算,默认开启黑名单模式,当攻击者拿到flag后会自动将他加到黑名单。 白名单模式则需要你手动将checker的ip填入白名单并配置到白名单模式。

其他有用的文件  这个bash运行起来会不停的kill掉www-data起的服务,通常都是内存马、不死马,可以放心使用(因为重要服务都不是www用户起的)。 运行这个bash的方法: 和managelog.php 既管理页面同目录下有个killer.php 直接在浏览器访问即可。

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言