流量分析与日志溯源的个人理解

一颗小胡椒2022-07-27 17:42:45

现阶段大部分企业都会上日志审计设备,在配上流量分光,还有各类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丶有些挖矿病毒的程序里面不会直接连接,而是通过加载器的方式加载一串加密代码来连接挖矿池,不要因为查杀不到病毒就判断服务器是安全的。

五、总结

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

特征码
本作品采用《CC 协议》,转载必须注明作者和本文链接
特征免杀
2023-01-16 10:39:39
特征又称电脑病毒特征,它主要由反病毒公司制作,一般都是被反病毒软件公司确定为只有该病毒才可能会有的一串二进制字符串,而这字符串通常是文件里对应程式码或汇编指令的地址。杀毒软件会将这一串二进制字符串用某种方法与目标文件或处理程序作对比,从而判定该文件或进程是否感染病毒。
前言提到webshell免杀,方法无外乎对静态特征的变形,编码,或利用语言特性绕过。计算机中有很多符号,它们在编程语言中占据一席之地,这些符号作为运算符号,标识符号或起到特殊含义。本文以PHP为例介绍一些利用符号免杀方法。免杀WAF检测通过对安全狗、护卫神、D盾等常见软WAF的测试,发现WAF查杀主要依赖两种检测方法1.静态检测:通过匹配特征来查找webshell。如危险函数,文件特征等。例如 ${$my_var[8]}与${$my_var}[8]的区分${xxx} 括起来的要当成变量处理。
Bypass_AV msf免杀,ShellCode免杀加载器 ,免杀shellcode执行程序 ,360&火绒&Windows Defender代码够简单,估计要不了多久就进特征库了,被杀了再去改几个特征照样又可以免杀,作者的github保持更新,可以去瞅瞅。测试可以免杀国内杀软?注意:ShellCode 需要是64位的加载器将生成的ShellCode 填至 Bypass_AV.py 里的 ShellCode = '''ShellCode''' 处注意:保留原始ShellCode 里的双引号 "示例:最终格式:打包成可执行程序编译Python 3.8.6pyinstaller 4.7pip install pyinstaller
webshell免杀之传参方式及特征绕过传参方式 在这里解释一下为什么,需要讲述传参方式,由于在很多情况下,以请求头作为参数传递并非waf和人工排查的重中之重且非常误导和隐藏
而且Mimikatz这些知名工具的内容像mimikatz、作者信息之类的字符串就很容易被做为特征识别。可以利用Visual Studio的替换功能实现关键字的处理。
杀软及免杀原理
2021-12-02 06:21:50
将内存、文件扫描出的特征信息与病毒特征数据库进行对比。(存在黑白名单)
免杀知识汇总
2021-08-25 23:11:00
免杀知识汇总
CS免杀姿势
2022-08-02 16:42:30
花指令免杀,在程序 shellcode 或特征代码区域增添垃圾指令,增加的垃圾指令不会影响文件执行,在动态查杀或者文件hash对比是校验会不一致。加壳,比如upx加壳等,一般文件落地后对比哈希值也可绕过杀软。二次编译,一般用于对shellcode进行二次编译bypass杀软。安装火绒,查杀CS上线加壳另外再加壳测试。赛门铁克也未报毒,其它杀软不放图了。
因前段时间退出了内网的学习,现在开始复习web方面的漏洞了,于是乎,开始了挖洞之旅,当我像往常一样上传冰蝎的webhsell时,发现冰蝎的子居然被杀了.......于是便有了该文章.....
一颗小胡椒
暂无描述