赞
踩
日志分析常用工具:
Excel NotePad++ Sublime等
Shell中常用工具:
Linux中的文本三剑客 Grep Sed Awk
(相关使用命令介绍可以见Linux中文本三剑客的文章:Linux之计划任务和文本三剑客_Simon_Smith的博客-CSDN博客)
web日志分析
Notepad++分析方法
shell命令分析方法
360星图
操作系统日志分析
windows日志分析工具:Log Parser Lizard+Log Parser
Linux操作系统日志:
/var/run/utmp -->w who users
/var/log/lastlog -->lastlog
/var/log/wtmp -->last
/var/log/btmp -->lastb
/var/log/secure <--> /var/log/auth.log (cat)
日志分析思路
- 查找有哪些ip在暴力破解
- grep -a "Failed password for root" /var/log/auth.log | awk '{print $11}'
-
- 查找暴力破解的用户名字典是什么
- grep -a "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
-
- 查找登录成功的用户及其IP
- grep -a "Accepted" /var/log/auth.log | awk '{print $9,$11}' | sort | uniq -c | sort -nr
网络及安全设备日志分析
路由交换机日志
防火墙日志
web应用防火墙日志
访问日志
攻击日志
DDOS日志
网页防篡改日志
入侵防御IPS/入侵监测IDS日志
APT设备日志((Advanced Persistent Thread 高级持续性威胁)
本产品参考奇安信天眼产品相关资料)APT检测
威胁情报
流量传感器(流量分析)
Web漏洞分析
WebShell分析
网络攻击分析
恶意代码分析
文件威胁鉴定器(沙箱)
威胁情报分析
静态分析
行为分析
进程分析
网络行为分析
释放文件分析
内存字符串分析
分析平台
态势感知
仪表盘
威胁感知
调查分析
场景化分析
日志检索
NGSOC日志
关联分析
暴力破解
撞库攻击
流量异常
web应用系统可能被攻击成功
场景分析
资产主动外连
暴力破解
DNS隧道
HTTP代理检测
reGeorg隧道发现
socks代理检测
DNS服务器发现
机器学习
重点:Linux中Shell下 借助文本三剑客进行日志分析
wc -l 文件名 //可以看到这个文件里有多少行
grep 主要功能就是搜索
举例:
搜索auth.log文件中所有的含有root的行
grep "root" auth.log
grep也支持正则表达式 将引号部分换成正则表达式即可
-v "abc" //会展示出不包含abc内容的行
Sed工具(很少用于修改)
该工具的文本行编辑能力比较强大
sed -n '10p' message.1 //打印该文件的第十行的信息
匹配第十行的另一种方法
head message.1 | tail -1 //先输出头部的前10行 然后输出其尾部的第一行 也就是第10行
sed 's/想要替换的内容/替换成的内容/'
head messages.1 | sed 's/May/hahahahahah/'
注意 此时只是替换以后进行了输出 文件里的内容并没有被真正替换保存!
awk工具
awk工具可以对列数据进行切片(awk默认是用空格作为分隔符的 如果要使用其他符号 需要自行指定才行 -F可以指定分隔符)
awk -F ":" '{print $1}' /etc/passwd //按照冒号作为分隔符 打印该文件的第一列的内容
需求:通过awk去查看ll命令指定的当前目录下所有文件的大小总和
ll | awk '{x+=$5}END{print x}' //前面括号中的内容每一行都会执行 END后面括号里的内容只会执行一次
需求:netstat -tan 查看本地连接的状态 使用awk分析其中的内容
netstat -tan | awk 'BEGIN{print "统计状态数量"}{state[$NF]++}END{for (i in state){print i,state[i]}}' //begin在最开始的时候执行一次
但是发现其把前两行也算上了 可以进行如下的优化
在统计之前进行正则表达式判断
netstat -tan | awk 'BEGIN{print "统计状态数量"}/^tcp/{state[$NF]++}END{for (i in state){print i,state[i]}}'
也可以进行语句的叠加变化
netstat -tan | grep "tcp" | awk 'BEGIN{print "统计状态数量"}{state[$NF]++}END{for (i in state){print i,state[i]}}'
补充:
| sort | //将信息通过管道符传递到sort中会进行排序操作
| uniq | //会将信息进行去重
| uniq -c | //会在去重的同时 统计重复的信息的数量
例题分析部分:
日志分析样本下载地址:
- 链接:https://pan.baidu.com/s/1RXWpIhQmFxuDd2AWgOFOsA
- 提取码:jm4i
核心考点:Google蜘蛛
直接在日志中搜索关键词:Googlebot
所以该涉案IP地址是:210.185.192.212
例题2:
没有提前准备日志 所以可以自己尝试尝试 用linux虚拟机测试
可以考虑lastb 但是只能看到登录失败的案例 也可以通过secure文件查看认证的相关信息
注意:新版本linux的认证信息存储在/var/log/auth.log中
这题比较简单 就不多赘述了(可以借助管道符传入uniq -c 对ip进行去重并统计数量 即可知道爆破的数量了)
例题3:(日志文件在网盘可以进行下载)
日志结构:
- awk '{print $9}' /var/log/3.log
- awk '{print $9}' /var/log/3.log | sort | uniq -c //对所有的状态去重并统计
awk '{print $1,$9}' /var/log/3.log | sort | uniq -c
不妨再对其进行一次降序排列
awk '{print $1,$9}' /var/log/3.log | sort | uniq -c | sort -nr
可见出现的比较多的IP地址需要重点分析
grep "118.218.219.90" /var/log/3.log
但是发现该IP地址并不是做扫描攻击
访问的地址都很类似 所以可以去尝试分析下一个
grep "118.24.15.241" /var/log/3.log
此时就发现请求很乱了 非常像工具进行的测试
而且请求方式不是GET/POST 是HEAD方式 其只会返回头部 没有都返回 这是为了加快扫描的效率 所以基本可以断定这个IP地址是发动扫描攻击的地址
例题4:
思路拓展:很多时候SQL注入的黑客不会去伪装 所以可以尝试通过User-Agent进行尝试突破 也许可以看到请求信息
日志格式:
思路差不多 尝试搜索出来User-Agent中的信息
awk '{print $12}' /var/log/4.log | sort | uniq -c
在其中可以看到sqlmap的指纹 专门用于sql注入的工具
接下来直接针对这个指纹搜索即可
awk '/sqlmap/{print $1}' /var/log/4.log | sort | uniq -c //awk也可以进行搜索 表示搜索sqlmap所在的行
接下来可以去分析分析其做了什么事
grep "210.246.31.45" /var/log/4.log
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。