本文已参与「新人创作礼」活动,一起开启掘金创作之路
你能大概说一下,比如数据包或者日志,你的分析思路是什么,以及你会用到哪些工具或者那些网站进行查询?
用流量监测的安全设备,比如天眼,查看报文,分析报文里和 host 和网站目录路径,查看是否可疑,使用微步查询 host 是否为恶意,使用 wireshark 对数据包深度分析
看一下请求的网站路径,源 IP 与目的 IP 地址,host 字段的值以及发包内容等
工具有 wireshark,网站的话微步在线等威胁情报中心
文件上传和命令执行,有看过相关日志吗
文件:可能在系统有上传功能或者有文本编辑器,看一下是否有 base64 加密或者 url 加密,解码验证一下是否有恶意代码
系统日志:有没有 web 容器做了一些危险行为,比如 bash 反弹 shell 等
网络应用日志:有没有异常的网站文件,类似 webshell 等,就有可能是命令执行
windows日志分析工具
Log Parser、LogParser Lizard、Event Log Explorer
Linux日志分析技巧命令
-
定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 复制代码
-
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c 复制代码
-
爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print"$1\n";}'|uniq -c|sort -nr 复制代码
-
登录成功的IP有哪些
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 登录成功的日期、用户名、IP: grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 复制代码
-
增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001 Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali , shell=/bin/bash Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali #grep "useradd" /var/log/secure 复制代码
-
删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali' Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali' Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali' # grep "userdel" /var/log/secure 复制代码
-
su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0) sudo授权执行: sudo -l Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now 复制代码
给你一个比较大的日志,应该如何分析
- 攻击规则匹配,通过正则匹配日志中的攻击请求
- 统计方法,统计请求出现次数,次数少于同类请求平均次数则为异常请求
- 白名单模式,为正常请求建立白名单,不在名单范围内则为异常请求
- HMM 模型,类似于白名单,不同点在于可对正常请求自动化建立模型,从而通过正常模型找出不匹配者则为异常请求
- 借助日志分析工具,如 LogForensics 腾讯实验室 security.tencent.com/index.php/o…
Windows在应急响应中的安全日志以及对应场景
设备误报如何处理
(日志)
Windows和Linux的日志文件放在哪里
-
Windows 主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志
系统日志:
%SystemRoot%\System32\Winevt\Logs\System.evtx
应用程序日志:
%SystemRoot%\System32\Winevt\Logs\Application.evtx
安全日志:
%SystemRoot%\System32\Winevt\Logs\Security.evtx
-
Linux
日志默认存放位置:
/var/log/
查看日志配置情况:more /etc/rsyslog.conf
常见中间件的配置文件路径
- apache:
/etc/httpd/conf
- nginx:
/etc/nginx
- iis7:
C:\Windows\System32\inetsrv\config\
如何查看系统内存 shell
Java 内存马排查
如果我们通过检测工具或者其他手段发现了一些内存webshell的痕迹,需要有一个排查的思路来进行跟踪分析,也是根据各类型的原理,列出一个排查思路。
如果是jsp注入,日志中排查可疑jsp的访问请求。
如果是代码执行漏洞,排查中间件的error.log,查看是否有可疑的报错,判断注入时间和方法
根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框架漏洞,反序列化漏洞。
如果是servlet或者spring的controller类型,根据上报的webshell的url查找日志(日志可能被关闭,不一定有),根据url最早访问时间确定被注入时间。
如果是filter或者listener类型,可能会有较多的404但是带有参数的请求,或者大量请求不同url但带有相同的参数,或者页面并不存在但返回200
如何修改WEB端口?如果不能修改端口还有什么利用方法?
修改 web 端口:修改中间件配置文件中的 web 服务端口即可
不能修改的话可以使用端口映射,使用 nginx 反向代理也可以
获得文件读取漏洞,通常会读哪些文件,Linux和windows都谈谈
通用
- 找 Web 应用的配置文件,指不定有外联数据库
- 找 Web 中间件的配置文件,指不定有 Tomcat 配置界面的用户密码
- 找系统文件
linux
-
etc/passwd、etc/shadow
直接读密码 -
/etc/hosts
# 主机信息 -
/root/.bashrc
# 环境变量 -
/root/.bash_history
# 还有root外的其他用户 -
/root/.viminfo
# vim 信息 -
/root/.ssh/id_rsa
# 拿私钥直接ssh -
/proc/xxxx/cmdline
# 进程状态枚举 xxxx 可以为0000-9999 使用burpsuite -
数据库 config 文件
-
web 日志
access.log, error.log
-
ssh 日志
/root/.ssh/id_rsa /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys /etc/ssh/sshd_config /var/log/secure /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/syscomfig/network-scripts/ifcfg-eth1 复制代码
-
/var/lib/php/sess_PHPSESSID
# 非常规问题 session 文件( 参考 平安科技的一道session包含 www.jianshu.com/p/2c24ea345…)
windows
C:\boot.ini
//查看系统版本C:\Windows\System32\inetsrv\MetaBase.xml
//IIS 配置文件C:\Windows\repair\sam
//存储系统初次安装的密码C:\Program Files\mysql\my.ini
//Mysql 配置C:\Program Files\mysql\data\mysql\user.MY D
//Mysql rootC:\Windows\php.ini
//php 配置信息C:\Windows\my.ini
//Mysql 配置信息
如何分析被代理出来的数据流
分析数据包请求头中的 xff、referer 等收集有用的信息
windows端口进程间转换
端口->进程
netstat -ano | findstr “port”
查看目前的网络连接,定位可疑的 ESTABLISHED- 根据
netstat
定位出的 pid,再通过tasklist
命令进行进程定位tasklist | findstr “PID”
查看进程对应的程序位置
任务管理器–选择对应进程–右键打开文件位置运行输入 wmic,cmd界面 输入 process
查看 Windows 服务所对应的端口
%system%/system32/drivers/etc/services
(一般 %system% 就是 C:\Windows)