【原创】bashshell实现自动检查网站敏感信息泄露
种田 安全工具 12513浏览 · 2016-11-23 01:10

bash shell实现自动检查网站敏感信息泄露
一、用途
    1.研发人员在网站目录下生成带有敏感内容的log文件;
    2.运维人员修改配置文件后生成.bak的文件;
    3.代码压缩文件上传更新后未及时删除;
    4.内部系统附件下载未添加权限校验;
    ……
本程序实现:
    通过批量自动化的方式检查web服务器代码目录敏感文件泄露,并通过web展示。

二、思路
    1.因为网站服务器较多,首先要实现批量管理Linux,远程调用,推荐使用ansible;
    2.通过bash shell(当然你也可以用python)获取网站目录所有文件列表(或指定类型文件,可排除图片、JS、CSS文件等),写入数据库供web展示,;
    3.如果你的网站服务器部署没有规范化,站点目录不是固定的,需要一个配置平台。

三、实现

    1.  web配置
    用于配置服务器IP、IP对应域名(后面用得上)、网站目录、排除文件类型规则。
    如图:
    

    2.检查脚本
    关键脚本如下:
    变量设置:
    
    生成文件列表:
    使用for循环是因为支持多个网站目录地址。
    
    写入数据库:
    这里循环文件列表分别写入数据库,如果文件多的话,多台服务器同时运行文件会对数据库有性能要求,如果你有更好的方法可以讨论。数据库中一个文件 一条记录是为了方便分析。
    

    3.每天定时批量调用
    只需要在ansible控制端执行,ansible可以设置并发数,只有脚本文件变更了,才会重新上传至网站服务器。
    主要命令:
    #更新脚本文件
    ansible ${ip} -m copy -a "src=${file_shell_default} dest=${file_shell}"
    #设置执行权限
    ansible ${ip} -m file -a "dest=${file_shell} mode=755"
    #获取文件列表
    ansible ${ip} -m raw -a "cd /script/checkfile/;./getfile.sh ${ip}"

    4.web展示
    1.如果前面配置了IP对应的域名,程序自动从公网请求判断该文件是否未授权访问。
    2.常见类型的敏感文件:
     [压缩文件]   [日志文件]   [phpinfo文件]   [备份文件]   [数据文件]   [配置文件]   [脚本文件]   [OFFICE文件]   [源码文件]   [系统文件]
    后台展示如图:
    

8 条评论
某人
表情
可输入 255
目录