目录
Windows日志分析
流程
确定问题--查看事件日志--注重关键字段--使用筛选器--分析趋势-自动化分析
日志分类
应用程序日志
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录默认位置:%SystemRoot%\System32\Winevt\Logs\Application.evtx
系统日志
记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。系统日志中记录的时间类型由Windows NT/2000操作系统预先定义。默认位置:%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志
记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。默认位置:%SystemRoot%\System32\Winevt\Logs\Security.evt
安全日志记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于调查人员而言,更有帮助。
设置方法
设置 1:开始 → 管理工具 → 本地安全策略 → 本地策略 → 审核策略设置 2:设置合理的日志属性,即日志最大大小、事件覆盖阀值等
查看 在开始菜单上,依次指向“所有程序”、“管理工具” ,然后单击“事件查看器” 按 "Window+R" ,输入 ”eventvwr.msc“ 也可以直接进入“事件查看器”
日志分析
事件日志分析
4624 登录成功 4625 登录失败 4634 注销成功 4647 用户启动的注销 4672 使用超级用户(如管理员)进行登录 4720 创建用户
登陆类型 | 描述 | 说明 |
---|---|---|
2 | 交互式登陆 | 用户再本地进行登陆 |
3 | 网络 | 共享文件夹/打印机 |
4 | 批处理 | 某计划任务启动 |
5 | 服务 | 特点账户运行某种服务 |
7 | 解锁 | 屏保解锁 |
8 | 网络明文 | ftp登陆密码 |
9 | 新凭证 | 使用带/Netonly参数的RUNAS命令运行一个程序 |
10 | 远程交互 | 通过终端服务、远程桌面或远程协助访问 |
11 | 缓存交互 | 以一个域用户登录而又没有域控制器可用 |
分析工具
Log Parser
基本查询结构: Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM c:\xx.evtx "
登录成功的所有事件: LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM c:\Security.evtx where EventID=4624"
登录失败的所有事件:LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM c:\Security.evtx where EventID=4625"
系统历史开关机记录:LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated,EventID,Message FROM c:\System.evtx where EventID=6005 or EventID=6006"
Linux日志分析
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
日志信息
日志文件 | 说明 |
---|---|
/var/log/cron | 系统定时任务相关的日志 |
/var/log/cups | 打印信息的日志 |
/var/log/dmesg | 开机时内核自检的信息 |
/var/log/mailog | 记录邮件信息 |
/var/log/message | 系统重要信息的日志 |
/var/log/btmp | 错误登录日志,使用lastb命令查看 |
/var/log/lastlog | 所有用户最后登录时间使用lastlog命令查看 |
/var/log/wtmp | 永久记录所有用户的登录、注销信息;启动、重启、关机事件,使用last命令来查看 |
/var/log/utmp | 当前已经登录的用户信息 使用who,users等命令来查询 |
/var/log/secure | 记录验证和授权方面的信息, 只要涉及账号和密码的程序都会记录 |
查看日志
grep -C 5 foo file 显示file文件里匹配foo字串那行
cat input_file | tail -n +1000 | head -n 2000 从第1000行开始,显示2000行。即显示1000~2999行
find /etc -name init 在/etc下查找init
cat /etc/passwd |awk -F ' : ' '{print$1}' 查找/etc/passwd的账户
sed -i '153,$d' .bash_history 删除历史记录保留钱153
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 定位爆破主机root的ip
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|20-4|[01]?0-9?).(25[0-5]|20-4|[01]?0-9?).(25[0-5]|20-4|[01]?0-9?).(25[0-5]|20-4|[01]?0-9?)"|uniq -c 定位那些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}' 成功登陆的用户名IP
Web日志分析
分析思路
1确定入侵的时间范围,以此为线索,查找这个时间范围内可疑的日志,进一步排查,最终确定攻击者,还原攻击过程
2攻击者在入侵网站后,通常会留下后门维持权限,以方便再次访问,我们可以找到该文件,并以此为线索来展开分析
分析方法
Window下,推荐用 EmEditor 进行日志分析
Linux下,使用Shell命令组合查询分析
分类
Apache日志分析技巧
1、列出当天访问次数最多的IP命令: cut -d- -f 1 log_file|uniq -c | sort -rn | head -20 2、查看当天有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc -l 3、查看某一个页面被访问的次数: grep"/index.php" log_file | wc -l 4、查看每一个IP访问了多少个页面: awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file 5、将每个IP访问的页面数进行从小到大排序: awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n 6、查看某一个IP访问了哪些页面: grep ^111.111.111.111 log_file| awk '{print $1,$7}' 7、分析访问量前5的页面: cat access.log | awk ‘{print $7}’ |sort |uniq -c| sort -nr | head -5 8、查看2022年6月21日14时这一个小时内有多少IP访问: awk '{print $4,$1}' log_file | grep 21/Jun/2022:14 | awk '{print $2}'| sort | uniq | wc -l
日志统计
爬虫 grep -E 'Googlebot|Baiduspider' /www/logs/access.2022-02-23.log | awk '{ print $1 }' |sort | uniq 浏览器 cat /www/logs/access.2022-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100 状态码 cat access_time.log | awk ‘{print $9}’ | sort|uniq -c|sort -rn 域名 cat /www/logs/access.2022-02-23.log |awk '{print$2}'|sort|uniq -c|sort -rn|more
数据库日志分析
mysql日志分析
1、查看log配置信息
show variables like '%general%';
2、开启日志
SET GLOBAL general_log = 'On';
3、指定日志文件路径
#SET GLOBAL general_log_file = '/var/lib/mysql/mysql.log';
使用shell命令进行分析
有哪些IP在爆破? grep"Access denied"mysql.log |cut -d "'" -f4|uniq -c|sort -nr 爆破用户名字典都有哪些? grep"Access denied"mysql.log |cut -d "'" -f2|uniq -c|sort -nr 在 MySQL 日志分析中,特别需要注意一些敏感的操作行为,比如删表、备库,读写文件等。 关键词:drop table、drop function、lock tables、unlock tables、load_file() 、into outfile、into dumpfile。 敏感数据库表:SELECT * from mysql.user、SELECT * from mysql.func
SQL注入入侵痕迹
1、检查网站目录下,是否存在一些木马文件:
2、检查是否有UDF提权、MOF提权痕迹,检查目录是否有异常文件 mysql\lib\plugin c:/windows/system32/wbem/mof/
检查函数是否删除 select * from mysql.func
3、结合web日志分析
msssql日志分析
1/MSSQL数据库应启用日志记录功能,默认配置仅限失败的登录,需修改为失败和成功的登录,这样就可以对用户登录进行审核 2/登录到SQL Server Management Studio,依次点击 管理--SQL Server 日志 3/双击日志存档文件即可打开日志文件查看器,并可以对日志进行筛选或者导出等操作 4/MSSQL提供了一个工具SQL Server Profiler ,方便查找和发现SQL执行的效率和语句问题
SQL注入入侵痕迹
在利用SQL注入漏洞的过程中,我们会尝试利用sqlmap的--os-shel1参数取得shell,如操作不慎,可能留下一些sglmap创建的临时表和自定义函数。通过查看数据库中最近新建的表 的结构和内容,可以判断是否发生过sql注入漏洞攻击事件。
检查方法:
1、数据库表检查 2、检查xp_cmdshell等存储过程xp_cmdshell在mssql2005之后的版本中是默认禁止的,查看xp_cmdshell是否被启用。 `Exec master.dbo.xp_cmdshell ' whoami' 3、需要结合web日志,通过查看日志文件的大小以及审计日志文件中的内容,可以判断是否发生过sql注入漏洞攻击事件。
检测工具
Sysmon作为强大轻便的监视和记录工具,可以记录系统的各种活动。通过收集系统上发现的事件,可以了解到恶意程序再操作系统上进行了哪些操作。可选择记录网络连接,包括每个连接的源进程、IP 地址、端口号、主机名和端口名。记录注册表和文件的操作记录。
Windows下安装:
下载链接:https://docs.microsoft.com/enus/sysinternals/downloads/sysmon
安装并指定配置文件:
https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml
应急响应
勒索病毒
表现情况
内网多台主机遭受勒索病毒攻击,业务系统瘫痪
应急方法
紧急处置
(1)对已经中招的服务器: 下线隔离 (2)对于未中招的服务器: ·在网络边界防火墙上全局关闭3389端口或3389端口只对特定IP开放。 ·开启Windows防火墙,尽量关闭3389、445、139、135等不用的高危口。 ·每台服务器设置唯一口令,且复杂度要求采用大小写字母、数字、特殊号混合的组合结构,口令位数足够长(15位、两种组合以上)。
排查
1.文件排查
对该服务器文件进行查看,发现勒索病毒将服务器文件进行加密,同时发现加密后的文件后缀名为RESERVE,文件最后加密时间为20xx-08-22 4:36:13
2.网络排查
查看当前端口开放情况并发现该服务器开放445、3389等服务
3.日志排查
查看Windows-TerminalServices-LocalSessionManager日志发现在文件加密时源网络地址为:XXX. XXX. XXX. XXX管理员用户通过远程桌面方式登陆该服务器进行操
4.排查系统补丁信息
日志发现服务器(源网络地址:XXX.XX.XXXX.XXX)通过远程桌面方式登陆受害主机,与客户沟通后,发现该主机管理员用户口令为弱口令。
5.寻找恶意脚本
发现,Temp目录下的恶意批处理文件功能
6.提取日志进行分析
攻击手法包括:
(1)攻击者先对暴露在公网上并开放了远程桌面的主机进行暴力破解
(2)成功登陆后再利用专用工具抓取本地用户密码
(3)加入字典后再执行内网爆破,以此类推
(4)在种植勒索病毒前,攻击者手工关闭相关安全防止软件
(5)种植勒索病毒后,退出
样本分析
常用形式
1.样本首先解密内置的加密的字符串
2.解密出攻击者一些信息,可以看出是18:05:30左右生成
3.随后拷贝样本到目录下
4.添加开机启动项
5.随后生成字符串并在C:\Users\Public创建文件
6.开始生成RSA加密密钥
7.创建autoexec.bat,最后生成autoexec.bat.RESERVE记录密钥
8.创建how_to_back_files.html
9.写入生成的密钥信息/写入勒索邮箱相关信息
10.加密相关信息写入到%public%文件
11.随后开始执行加密主流程
12.获取磁盘信息
13.启动线程开始扫描加密
14.在%tmp%目录下生成清除脚本最后加密完成后调用cmd删除痕迹
挖矿病毒
进程占用cpu极高,为通过redis未授权访问、weblogic反序列化漏洞来进行攻击
判断方法
1.检查系统资源:挖矿病毒会利用大量的CPU和内存资源。
2.查看进程列表:打开任务管理器查找可疑名称或描述的进程。例如svchost.exe。
3.扫描系统:使用反病毒软件进行系统扫描,以检查系统是否被感染了挖矿病毒。
4.检查网络流量:如果计算机连接到了Internet,可以使用网络监控工具来观察网络流量是否异常。挖矿病毒通常需要与远程服务器通信,以便将挖掘到的加密货币发送给攻击者。
5.注意异常电脑行为:如果计算机出现了异常的响应速度缓慢、卡顿或崩溃等问题。
紧急处置
第一时间记录了进程快照,和进程开启的文件等信息,并帮用户杀掉这两个进程,将cpu恢复至正常状况
1、把被黑系统断网;
2、结束恶意进程;
3、删除发现扫描出来的木马;
4、备份木马给实验室分析,查看是否会释放没有被查杀出来的恶意文件;
5、黑盒渗透挖掘是否存在其他漏洞;
6、输出报告和建议
排查方法
1/计划任务,该计划任务定期下载2.sh并执行 下载并创建挖矿主程序,并启动程序开始挖矿,因此导致cpu负载过高 2/始查找攻击者的入侵路径 1.排查ssh弱密码登陆, 2.查看cron日志记录第一次执行时间 3.查看网站的访问日志和其他相关日志 4.struts2、java反序列化等漏洞排查 5.针对xhtml文件访问量较多IP,我们发现大量来自同一个地方
webshell
判断方法
1.检查网站目录:攻击者通常会将Webshell放在易于访问的目录中。因此,检查网站目录以查找任何可疑文件或文件夹是一个不错的开始。
2.分析Web服务日志:如果Web服务器已启用访问日志记录,则可以查看日志以确定是否有来自未知IP地址的异常请求。这些请求可能是攻击者使用Webshell执行恶意操作的迹象。
3.使用反病毒软件扫描系统:一些反病毒软件可以检测和删除已知的Webshell变体。因此,运行反病毒扫描可能有助于检测和清除Webshell。
4.监控网络流量:使用网络监控工具来监视出站网络流量,寻找任何与Webshell相关的异常活动或数据传输。
应急方法
排查
1.利用D盾webshell查杀工具对网站服务器进行全盘扫描
2.据webshell木马文件,排查访问日志,查看创建时间
3.排查webshell创建时间段相关日志,推断攻击者利用攻击方式
4.复现攻击公式
5.分析攻击手法
6.排查操作系统层面安全
紧急处置
1、把被黑网站服务器断网;
2、如果网站被挂黑链或者被篡改首页,把网站恢复成原样;
3、删除发现扫描出来的webshell;
4、黑盒渗透挖掘是否存在其他漏洞;
5、输出报告和建议
钓鱼邮件
紧急处置
1、先对需要处理的事件现场情况进行详细的了解,先将受害主机进行断网关机处理,如果有主机安全管
理设备,先对所有主机资产进行病毒查杀。
2、查看发件人的邮件名,如果是自建的邮件服务器,可以查询域名IP备案信息等,扩大信息收集面。
3、通过查看邮件原文,查看发件人的IP地址,在威胁情报系统上进行查询。
4、上机排查:
a、Netstat -ano(windows)/netstat-antpleu(linux)查询外联
b、记录有问题的进程PID,使用tasklist /svc/fi “PID eq pid” (windows)/ ps aux | grep pid(linux),定位到进程
c、wmic process get name,executablepath,processid|findstr PID查看进程对应的文件路径
分析
1、一定要把木马放在虚拟机上运行,并且做好隔离;
2、可以使用反编译软件如 Dnspy 对木马文件进行反编译;
3、在反编译后的代码中寻找以下危险函数:
防范
1)组织员工进行钓鱼邮件防范培训,提高全员网络空间安全防范意识;
2)在公司内部不定期进行钓鱼邮件安全测试,及时发现问题并采取补救措施;
3)使用高安全性邮件系统,并及时配置安全过滤机制;
4)敦促员工安装杀毒软件,并及时更新病毒库