首页 > 其他分享 >【攻防技术系列+流量分析】--日志溯源技巧

【攻防技术系列+流量分析】--日志溯源技巧

时间:2024-03-31 15:35:17浏览次数:29  
标签:请求 -- IP 攻击 病毒 日志 溯源 挖矿

下面是结合网上论坛针对日志分析溯源的理解

现阶段大部分企业都会上日志审计设备,在配上流量分光,还有各类IDS、WAF等设备日志,对安全溯源分析十分方便,但在日常工作中,免不了要直接看服务器相关请求日志的情况,这个时候就需要我们自身具备日志分析的能力了。
一、日志分析流程

1、统计

首先需要对数据进行处理,如请求IP统计,访问地址统计,HTTP状态码统计等,这些数据统计可以使用excel或者python脚本,如果手头有各类工具那就更容易统计了。

2、威胁发现

①关键字过滤:

直接查找在请求中携带的关键字,如script、select、from、echo、bash、.sh等

②查看异常请求:

4XX请求、5XX请求

③行为分析:

由于日志大概率不会记录post请求体,所以在post请求包体中的攻击往往很难发现,这个时候就需要我们对特定的IP进行行为查看,如查询IP的威胁情报,某个IP登录了多个账号等等

3、报告撰写

在报告中我们重点要体现某个IP或者某些IP的攻击画像,确定这些IP的攻击行为,以便最终确定是否来着同一拨攻击,还是互联网上的肉鸡日常扫描。
ps excel中的数据透视表功能是真的香,谁用谁知道。

二、在日志中看到的行为分析

1、恶意IP请求带有多个身份操作

可以看到上述日志中,某IP对登录了邮件并进行了相关操作,可以看到其登录了不同的账户,那么这个时候怎么判断其是正常的请求还是恶意请求呢?

(1)威胁情报,查找请求IP相关的威胁情报信息,如果是恶意IP那么大概率就有可能是恶意访问了
(2)观察请求中的UA标识,如果UA标识一样,那么是恶意访问的概率就又增加了
(3)观察这个IP前的一些请求行为,你就可能发现来着不同IP的登录请求,恶意攻击前的撞库攻击,这时基本就可以坐实了
(4)联系相关人员看该IP是否归属自己(太麻烦,一般不会用),可以在二次确认时使用。

2、非正常请求

正常业务逻辑不会发送的请求,这些可以通过关键词快速查找过滤

3、扫描行为

通过过滤404请求和GET等,可以发现某些IP的目录扫描探测行为,同时在通过IP去过滤状态码是200的请求,可以发现一些安全隐患。

4、重要接口

可以根据自己的业务类型,对一些敏感接口地址进行查找,观察其访问行为。

5、扫描器特征请求

wvs、acunetix、test、appscan、nessus、webreaver、sqlmap、bxss.me等

bess.me是awvs其中一个XSS扫描插件的地址。部分扫描器带有固定的特征值,需要平时积累发现。

6、关键词查找

select、sleep、echo、bash、down、passwd等

使用这些敏感的关键字也能迅速定位攻击请求,上图就是使用sqlmap跑注入所产生的日志。

7、一些特征性的请求

sqlmap的WAF探测请求

8、同源分析(对于个人能力要求比较高)

恶意代码分析是检测和防范恶意代码的重要基础。在反病毒领域的实际应用中,除了分析恶意代码的各种外部表现,还关心恶意代码在同源演化方面的内在特性,包括恶意代码从何而来、如何发展变化以及相互之间的关系等。

目前仅有少量专门针对恶意代码同源与演化分析技术的研究。

对恶意程序进行反汇编之后,从命令序列、字符串序列提取出一段特征码作为特征,提取筛选出相同的特征码,挑选一些加密算法代码作为特征码,可以使用Bindiff来比较已有样本相似的代码片段,找到相似度较高且不是系统API的函数。

优先选取Blocks数较多、匹配指令数较多的函数,降低误报的几率,分析时。除此之外,也可以使用一些自动化提取yara规则的工具可以使用,
比如yargen:https://github.com/Neo23x0/yarGen
提取出来的恶意程序的特征码,可以在VT上进行关联,来追踪相似攻击组件。

【Virustotal的使用】:

VirusTotal,是一个提供免费的可疑文件分析服务的网站,可以通过多种反病毒引擎扫描文件使用多种反病毒引擎对您所上传的文件进行检测,以判断文件是否被病毒,蠕虫,木马,以及各类恶意软件感染。

VirusTotal每15分钟更新一次病毒资料库,可以实时提供最新的反病毒引擎以检测出大部分可能的威胁。
同时可以筛选出相同的特征码片段样本,在搜索框搜索之后可以对比往期相关样本本的活跃,打开详细信息可以查看是什么组织开发并使用的攻击组件,通过这种方式可以关联出该组织所使用的攻击组件。

最后将yara规则添加到hunting中,一旦virustotal捕获到新的样本符合这条规则,就会立刻通知我们。

三、对于挖矿病毒几个点

针对于我们大批量服务器的日志分析工作,可能会碰到比较多的挖矿病毒,现在的挖矿病毒种类多,加载方式多,这里简单总结几个点

1、挖矿病毒是怎么进入到服务器的

大多数挖矿病毒进入到服务器都是不是特意针对性的,一般都是利用现成的攻击包程序,对网络上所有的IP地址进行扫描攻击,然后在目标机器执行自己构造好的攻击载荷,就可达到快速传播木马的目的,由于挖矿木马的特点是利用快速控制大量肉鸡组建挖矿网络进行计算,而不需要选取特定的目标,所以大多数的挖矿病毒都是批量进行的,通过一些常用的web漏洞,系统漏洞,弱口令,还有一些比较少见的0day,Nday,以及文件捆绑,下载器等等。

2、挖矿病毒的特征

一般服务器感染到挖矿病毒后,服务器会超负荷运转,主要表现在CPU的使用率上。挖矿病毒执行后需要连接挖矿池,这里肯定是有外连的。挖矿病毒在运行时,因占用大量系统资源,造成系统卡顿后容易被察觉,所以会使用伪装成系统文件、无文件持久化等技术保护自身。
挖矿病毒的套路特征参考文章:
https://zhuanlan.zhihu.com/p/164557943

3、针对无文件落地的powershell马

之前碰到过一些没有文件落地,通过在Powershell中嵌入PE文件加载的形式,达到执行“无文件”形式挖矿攻击。挖矿木马执行方式没有文件落地,直接在Powershell.exe进程中运行,这种注入“白进程”执行的方式可能造成难以检测和清除恶意代码。在感染机器上安装计划任务,通过计划任务启动Powershell攻击模块(无文件落地),Powershell攻击模块包含利用 “永恒之蓝”漏洞攻击、弱口令爆破+WMIC、 Pass the hash攻击代码。在攻陷的机器上执行Payload安装计划任务,上传文件到启动目录,相应的Payload执行后继续进行下一轮感染。
在windows下查看某个运行程序(或进程)的命令行参数
使用下面的命令:
wmic process get caption,commandline /value

如果想查询某一个进程的命令行参数,使用下列方式:
wmic process where caption=”xxx.exe” get caption,commandline /value

这样就可以得到进程的可执行文件位置等信息。
这样可以查看powershell的运行命令
下面这个是我之前碰到的一个powershell挖矿马
https://blog.csdn.net/weixin_44578334/article/details/107438038

四、写报告时注意的点

1、不一定恶意IP的请求就是攻击行为
2、相同的payload在不同的IP请求,可以将其划分同一人
3、部分IP的请求量较低,但存在恶意行为,可能为真实IP(具体可从漏扫成功的地方去跟踪)
4、日志中并无同一地理位置的两个IP同一一个时间区间出现,大概率是可以说是同一人所为
5、查询大量IP,发现威胁情报大多是撞库攻击。这些地址可能不是来自攻击团队,而是来自互联网上的扫描
6丶有些挖矿病毒的程序里面不会直接连接,而是通过加载器的方式加载一串加密代码来连接挖矿池,不要因为查杀不到病毒就判断服务器是安全的。

五、总结

我了解的日志流量分析溯源是比较有规章顺序的一套流程,从取证到溯源,但是针对于目前我们流量日志分析的方式,我感觉还是有很多局限性的,有很多的特征以及排查都是需要登录到服务器才能更有效快速的解决发现问题,这个也是出于客户环境的原因,对于流量分析溯源人员的权限问题也是对溯源工作的。

作者:Azjj98
来源:https://blog.csdn.net/weixin_44578334
欢迎各位关注作者博客。

标签:请求,--,IP,攻击,病毒,日志,溯源,挖矿
From: https://www.cnblogs.com/o-O-oO/p/18106780

相关文章

  • LeetCode刷题记录——day9
    https://leetcode.cn/problems/game-of-life/?envType=study-plan-v2&envId=2024-spring-sprint-100先创建一个数组,让它比原数组大一圈,然后将其全设为0,在原数组中每有一个1出现,就将其对应位置的新数组的周围全部加一,最后新数组中对应位置的数字就是其周围有多少个活细胞classSo......
  • 高兴的事儿
    第一份工作半个月(13号至今),虽然业务就我一个人,踩坑不少,但还是独自完成了挑战和任务,幸好有前人框架和轮子可以参照(9成时间都在调试),老板测试后一声“牛逼!”。战胜挑战带来的成就感使得心情不错,在周六先后去逛了北大街和南大街,北大街给人映像是原料市场中心旁边还有个没什么人烟的游......
  • SMU Winter 2024 div2 ptlks的周报Week 7(3.25-3.31)
    哈夫曼编码对出现频率大的字符赋予较短的编码,对出现频率小的字符赋予较长的编码。哈夫曼树的建树过程为,每次选取最小和次小的根节点,将它们之和作为它们的根节点,左子节点为小点,右子节点为次小点,直至仅剩一棵树。一棵哈夫曼树,左子树为0,右子树为1,以根节点到叶子结点的路径作为每个叶......
  • AtCoder Beginner Contest 347 (A~E)
    #AtCoderBeginnerContest347(A~E)这场C>E>D不好评价...(DE赛后一发过,被C卡死了)A模拟即可。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constllN=2e5+5;lln,k,a[N];intmain(){ ios::sync_with_stdio(false); cin>>......
  • C++类(class)中的this指针与静态成员
    1.this指针作用:指向成员函数所作用的对象2.静态成员定义方式:在定义成员时加static关键字。访问方式:不用通过对象就可以访问(类似全局变量/全局函数)目的:设置静态成员这种机制的目的是将和某些类紧密相关的全局变量和函数写到类里面,看上去像一个整体,易于维护和理解。①......
  • 调试逻辑及变量声明顺序
    模型功能使用ILA观察信号观察变量的转化触发信号的设立ILA调试状态机的编写VIO的手动控制模型框图ila_0u_ila_0(.clk(clk),.probe0(probe_0));实现步骤ILA调试核的使用直接调用该IP核,可以实现一个在线逻辑分析仪的功能ILA核的设置包括信号个数(对应位宽......
  • JAVA编程基础与面向对象程序设计(基础)
    1.1标识符与命名规范 标识符:java中的类,方法,变量,包命名的符号。标识符规则(1)只能由字母,数字,下划线,美元符号组成,并且不能一数字开头。(2)java标识符大小写敏感,长度无限制。(3)标识符不可以是java的关键字与保留字。关键字:java中预先定义好的一些有特别意义的单词,它们构......
  • 消息队列专题
    消息队列专题1.总体介绍我们知道操作系统中的进程通信的一种很重要的方式就是消息队列。我们这里提到的消息队列稍微有点区别,更多指的是各个服务以及系统内部各个组件/模块之前的通信,属于一种中间件。简单来说:中间件就是一类为应用软件服务的软件,应用软件是为用户服务的,用户......
  • 猜猜我们的职位是什么?
    在离散课本里,我发现了一个特别有趣的问题,问题如下:在某班班委成员的选举中,已知王小红、李强、丁金生三位同学被选进了班委会,该班的甲,乙,丙三名学生预言如下:甲说:王小红为班长,李强为生活委员。乙说:丁金生为班长,王小红为生活委员。丙说:李强为班长,王小红为学习委员。班委会分工......
  • Kafka理论知识总结
    参考文献:基本概念:https://zhuanlan.zhihu.com/p/392568942可靠传输:https://www.zhihu.com/question/483747691/answer/2392949203kafka基本概念?kafka有逻辑分区叫做topic,每个topic可以设置多个partition物理分区,每个物理分区可以设置一个或多个副本。生产者producer将数据推......