为了方便平时定期web服务器安全日志分析,闲暇时写了个小脚本,支持自动scp远程web服务器日志到本地,然后多线程安全分析,分析策略是软waf提取到正则,所以基本上目前主流的web攻击行为,sql注入、xss、扫描器扫描、webshell、目录遍历之类都可以配合分析。
软waf策略参考:https://github.com/loveshell/ngx_lua_waf/tree/master/wafconf
脚本如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import re
from multiprocessing.dummy import Pool as ThreadPool
import sys
import time
import pexpect
# 规则列表
rulelist = ['\.\./', 'select.+(from|limit)', '(?:(union(.*?)select))', 'having|rongjitest', 'sleep\((\s*)(\d*)(\s*)\)',
'benchmark\((.*)\,(.*)\)', 'base64_decode\(', '(?:from\W+information_schema\W)',
'(?:(?:current_)user|database|schema|connection_id)\s*\(', '(?:etc\/\W*passwd)',
'into(\s+)+(?:dump|out)file\s*', 'group\s+by.+\(', 'xwork.MethodAccessor',
'(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|preg_\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\(',
'xwork\.MethodAccessor', '(gopher|doc|php|glob|file|phar|zlib|ftp|ldap|dict|ogg|data)\:\/',
'java\.lang', '\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\[',
'\<(iframe|script|body|img|layer|div|meta|style|base|object|input)', '(onmouseover|onerror|onload)\=',
'.(bak|inc|old|mdb|sql|backup|java|class)$', '\.(svn|htaccess|bash_history)',
'(vhost|bbs|host|wwwroot|www|site|root|hytop|flashfxp).*\.rar',
'(phpmyadmin|jmx-console|jmxinvokerservlet)', 'java\.lang',
'/(attachments|upimg|images|css|uploadfiles|html|uploads|templets|static|template|data|inc|forumdata|upload|includes|cache|avatar)/(\\w+).(php|jsp)']
SSH_PASSWD = 'toor' #webserver密码
def Auto_scp():
cmd = ['scp -r root@192.168.188.131:/var/log/snort/* log-2016-07-28/40/',
'scp -r root@192.168.188.131:/var/log/*.log log-2016-07-28/39/'
]
for line in cmd:
child = pexpect.spawn(line,timeout=300)
child.expect('password:')
child.sendline(SSH_PASSWD)
child.expect(pexpect.EOF)
return True
def File_Search(filepath):
filelist = []
for lists in os.listdir(filepath):
path = os.path.join(filepath, lists)
if os.path.isfile(path):
filelist.append(path)
if os.path.isdir(path):
File_Search(path)
pool = ThreadPool(50)
results = pool.map(Log_Analysis, filelist)
pool.close()
pool.join()
def Log_Analysis(filename):
content = open(filename).read()
r = open('result.txt', 'a') #需要本地先新建个result.txt文件
r.write('\n' + '=================== web_log_secAnalysis ===================' + '\n' + filename + '\n')
for regex in rulelist:
result_tmp = re.compile(regex,re.IGNORECASE).findall(content)
if result_tmp:
r.write(str(result_tmp) + '\n' )
return 'True'
if __name__ == '__main__':
if len(sys.argv) < 2:
print "Usage: log_SecAnalysis.py filepath"
sys.exit(0)
else:
if Auto_scp():
start = time.clock()
print '====> Log is analyzing, please wait for a moment <==== '
File_Search(sys.argv[1])
end = time.clock()
print '分析完毕,共运行时长:' + str(end - start)
sys.exit(0)
else:
print '文件scp传输异常...'
效果如下:
转载出自FreeBuf,原文链接:http://www.freebuf.com/sectool/110644.html
- 上一篇:SQLMAP的注入命令以及使用方法
- 下一篇:php安全代码审计小结
猜你还喜欢
- 05-18暗链隐藏的N种姿势
- 08-06多线程WEB安全日志分析脚本
- 08-04Python渗透工具的架构探讨
- 09-03自己动手打造工具系列之自动刷新简历
- 09-25伪造电子邮件以及制造电子邮件炸弹的攻防探讨
- 08-29linux操作系统的快捷键及命令讲解
- 05-12如何编写高质量的Windows Shellcode
- 02-17为Nginx加入一个使用深度学习的软WAF
- 07-23PHP
- 07-24Python入门学习
- 最新文章
- 随机文章
-
- 作为黑客的你应该拥有的10个小工具
- SQL注入测试技巧TIP:再从Mysql注入绕过过滤说起
- Kali Linux字典生成工具Cewl使用全指南
- UPnProxy:一种利用路由器UPnP漏洞的恶意代理系统
- SubDomainizer:用于查找页面Javascript文件中隐藏子域的工具
- 疑似国内某知名团伙的最新挖矿脚本分析
- CVE-2018-17612:没想到吧?买个耳机也能遭遇中间人攻击
- 技术分析 | 浅析无文件攻击
- kbd-audio:通过麦克风来捕获和分析键盘输入的工具
- QQ二十年沉浮起落,黑产从未缺席
- 密码朋克的社会实验(一):开灯看暗网
- Smart Greybox Fuzzing:一种功能更强效率更高的Fuzzer模型
- WordPress Plugin AutoSuggest插件SQL注入复现与分析
- 一次被防火墙拦截的挖矿病毒应急处置经历
- 总结回望 | MS08-067漏洞的十年回顾
- 恶意文档执行命令提取工具:CMD Watcher
- Struts2-005远程代码执行漏洞分析
- AI和网络安全工作的未来
- CVE-2018-19518:PHP imap_open函数任意命令执行漏洞复现
- 漏洞分析:解析Windows XP版永恒之蓝中的一个Bug
- 热门文章
-
- 八年专业安全团队承接渗透入侵维护服务
- Emlog黑客站模板“Milw0rm”发布
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
- 利用Thinkphp 5缓存漏洞实现前台Getshell
- 文章标签
-