蓝初面试总结
前言
这几天和朋友聊天并看了一些蓝初面经,我将面试重点分为应急响应、常见漏洞、流量特征、端口与杂项几个方面
应急响应
1. DDOS与CC攻击
- 快速检测并确认攻击类型和攻击源;
- 提高带宽和资源利用率,以提供更强的承载能力;
- 实施流量清洗、流量限制和IP封堵等措施,清除恶意攻击流量;
- 配合 ISP 进行攻击源 IP 的追踪和协助;
- 在攻击持续期间,保持实时监控和跟进,随时更新应急响应策略。
2. 动态链接库DLL劫持
概述:攻击者通过将恶意 DLL 文件替换为合法的 DLL 文件,从而实现向操作系统注入恶意代码的目的
- 立即隔离受影响的系统,并从网络中断开,以避免进一步的攻击和传播。
- 恢复被劫持的 DLL 文件,将其从系统中删除,并替换为原始的、正确的 DLL 文件。如果原始的 DLL 文件已经被篡改或删除,需要重新安装相应的软件或应用程序来获取正确的 DLL 文件。
- 检查被劫持的 DLL 文件是否包含恶意代码,以及其他可能被感染的文件和系统组件。使用杀毒软件和反恶意软件等工具来清除恶意代码。
- 修改注册表,防止恶意 DLL 文件再次被加载。例如,修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 键值,将所有可信 DLL 文件添加到其中。
- 加强安全措施,例如,禁用不必要的服务和进程、添加访问控制列表、加密重要数据等。
3. 排查思路(基本流程)
确认事件:首先需要了解事件的具体情况,包括发生的时间、影响范围、受影响的系统和服务等信息。同时还需要判断是否存在钓鱼邮件、病毒感染等情况。
收集证据:在确认安全事件后,需要及时收集相关证据,包括日志记录、网络流量、进程信息、文件系统状态等信息,并进行存档备份,为后续的分析提供依据。
分析数据:对收集到的证据进行分析,尤其是日志和网络流量等数据,可以帮助快速定位问题和确认是否存在攻击行为。在分析过程中,可以利用一些常见的工具,例如 Wireshark、Nmap、Sysinternals 等。
阻止攻击:在确认存在攻击行为后,需要立即采取措施,阻止攻击并保护现有系统。这些措施包括封锁网络、隔离受感染主机、关闭漏洞等。
制定应急计划:包括恢复数据、修复漏洞、加强安全防御等方面。
漏洞
1. SQL注入
(1)宽字节注入
原理:
目标站点对于特殊字符的转义(单双引号)前面会添加斜杠/,斜杠/ url 编码是 %5c,如果目标站点使用的是 gbk 编码,则可以构造 payload %df 加 单引号,%df 与%5c 进行结合成为一个汉字,而单引号则逃逸了出去。
(2)常规
种类:
基于错误的注入:该类型的 SQL 注入利用应用程序返回的错误信息来进行攻击,例如通过构造带有语法错误的查询来触发错误信息,攻击者可以从错误消息中获得关于数据库架构和数据的重要信息。
盲注注入:在盲注注入中,攻击者无法直接获取数据库返回的信息,因此需要通过其他方式来推断相关数据。例如,攻击者可以利用时间延迟等机制来判断是否成功注入恶意的SQL语句。
基于联合查询的注入:攻击者可以利用 UNION SELECT 语句将两个或多个结果集组合在一起,以获取额外的信息或绕过认证检查。攻击者通常会尝试通过添加 UNION SELECT 语句来向查询中添加恶意代码,例如向查询结果集中添加用户列表或密码信息。
基于布尔逻辑的注入:在这种类型的 SQL 注入中,攻击者会构造一个查询,该查询会返回一个布尔值。攻击者可以利用这些查询来推断数据库中的数据,例如使用 WHERE 子句构造一个布尔查询来检查某个字段是否存在。
时间延迟注入:在时间延迟注入中,攻击者通过向查询中添加时间延迟语句来判断查询是否成功执行。例如,攻击者可以使用 SLEEP() 函数来强制查询等待一段时间,在等待期间观察程序的响应时间来确定注入点是否存在。
检测:
- 查看数据库异常日志,如果发现异常 SQL 语句,或者 SQL 语句中包含可疑代码或关键字,就可能存在 SQL 注入攻击。
- 应用服务器日志:在应用服务器上查看访问日志或错误日志,如果发现访问异常、错误码增多,或者包含可疑的 URL 参数等信息,也可能表明存在 SQL 注入攻击。
- 使用专业的漏洞扫描工具。
- 安全审计:通过记录用户行为和操作日志,可以检测和追踪可能存在的 SQL 注入攻击。
- 手动测试:模拟攻击者的行为,手动输入特定的 SQL 语句或注入代码,来验证是否存在 SQL 注入漏洞。
原理:
对用户输入的数据没有进行严格的过滤与判断,导致用户构造各种恶意 payload 拼接进后台数据库查询语句中执行。
原因:
SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。
危害:
数据库信息泄漏
通过操作数据库对特定网页进行篡改。
网站被挂马,传播恶意软件。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
服务器被远程控制,被安装后门。
破坏硬盘数据,瘫痪全系统。
防御:
- 输入验证:对用户输入数据进行验证和过滤,特别是对单引号、双引号、分号等特殊字符进行处理。可以使用输入过滤函数或正则表达式等方式来实现。
- 参数化查询:使用参数化查询操作数据库,可以将用户输入的数据视为参数而不是 SQL 代码的一部分,从而避免 SQL 注入攻击。
- 最小化权限原则:在应用程序连接数据库时,给予最小必要的权限,并严格控制数据库访问权限,以减少攻击者利用 SQL 注入漏洞获取敏感信息的可能性。
- 安全编码标准:在开发应用程序时,遵循安全编码标准,避免使用拼接 SQL 语句的方式。
- 异常信息处理:在应用程序中添加异常处理机制,可以及时捕获和记录 SQL 注入攻击产生的异常信息,便于管理员及时发现和修复问题。
- 安全审计:通过记录用户行为和操作日志,可以检测和追踪可能存在的 SQL 注入攻击。
2. XSS(跨站脚本攻击)
原理:它利用了应用程序没有正确过滤或转义用户输入的数据,导致恶意用户可以向网站上注入恶意脚本代码,使其他用户在浏览网站时受到攻击。XSS攻击通常发生在包含表单、搜索框和评论框等用户输入区域的Web页面上。攻击者会向这些输入框中插入包含恶意脚本代码的数据。例如,如果一个在线购物网站没有对用户在评论框中输入的HTML代码进行过滤,那么攻击者可以通过在评论框中注入恶意JavaScript代码来窃取其他用户的登录凭证或个人信息。
种类:存储型,反射型,DOM型
区别:存储型:常出现在信息修改添加等地方,导致恶
意代码被存储在数据库中,每当被攻击者访问到后就
会触发执行;反射型:常出现在url中,一般需要攻击
者提前构造好恶意链接,欺骗用户点击,触发攻击代
码;DOM型:攻击代码在url中,然后输出在了浏览器
的DOM节点中。简单比较会发现,存储和反射都经过
服务器,而DOM是纯前端。
危害:
(1)网络钓鱼,盗取用户账号
(2)窃取用户Cookie,获取用户隐私,或者利用用户身份进一步执行操作
(3)劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志等
(4)强制弹出广告页面,刷流量等
(5)进行恶意操作,例如任意篡改页面信息,删除文章等,传播跨站脚本蠕虫,网页挂马等
(6)进行基于大量的客户端攻击,如DDOS攻击
防御:
(1)代码里对用户输入的地方和变量都需要仔细检查长度和对单引号、分号等特殊符号做过滤;对输入数据进行Html Encode 处理,白名单过滤,过滤JavaScript 事件的标签,开启http-only
(2)避免直接在cookie 中泄露用户隐私,例如email、密码等等。
(3)通过使cookie和系统ip绑定来降低cookie泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
(4)尽量采用POST而非GET提交表单
3. CSRF(跨站点请求伪造)
原理:用户未关闭与正规网站的会话就重新tab了一个新的页面并访问攻击者的虚假网站,导致自身cookie或其他个人信息被攻击者获取,攻击者可以使用携带用户cookie的浏览器访问其他网站,网站默认从浏览器中获取cookie,误认为是用户操作,导致操作者可以执行一些未经授权的行为
3.防御
(1) GET、POST的正确使用
(2) 利用验证码(在一定的情况下使用,但是为了防止客户产生不好印象,尽量不用)
(3) Anti CSRF Token:为每一个表单生成一个随机数秘钥,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。
4. SSRF(服务端请求伪造)
原理:
攻击者通过在受害者服务器上执行恶意代码,使该服务器对指定的目标URL发起网络请求。这种攻击通常利用了开发人员在编写Web应用程序时没有正确处理用户输入数据的漏洞,例如将用户提供的URL参数直接传递给后台服务器而没有做任何验证。
在SSRF攻击中,攻击者可以欺骗Web应用程序向其他服务器发送HTTP请求,例如内部服务器、本地网络资源或公共Web API等。攻击者还可以使用SSRF攻击来绕过防火墙保护,访问内部系统,并执行未授权的操作,例如读取机密数据、修改配置文件或上传恶意文件等。
URL伪协议:
file:// 这种URL Schema可以尝试从文件系统中获取文件
dict:// 这种URL Scheme能够引用允许通过DICT协议使用的定义或单词列表
sftp:// Sftp代表SSH文件传输协议,或安全文件传输协议,这是一种与SSH打包在一起的单独协议,它运行在安全连接上,并以类似的方式进行工作
ldap:// LDAP代表轻量级目录访问协议。它是IP网络上的一种用于管理和访问分布式目录信息服务的应用程序协议
tftp:// TFTP是一种简单的基于lockstep机制的文件传输协议,它允许客户端从远程主机获取文件或将文件上传至远程主机
gopher:// Gopher是一种分布式文档传递服务。利用该服务,用户可以无缝地浏览、搜索和检索驻留在不同位置的信息。
防御:
- 对所有输入进行严格的验证和过滤:开发人员在编写Web应用程序时应对所有输入数据进行严格的验证和过滤,以确保不会将任何恶意代码或非法请求发送到受害者服务器。
- 使用白名单:开发人员可以使用白名单技术限制应用程序仅向可信的服务器发送请求,例如内部服务器或特定的Web API。
- 限制服务器端请求发出范围,例如通过禁止或限制特定的协议、域名或IP地址,以避免攻击者可以利用SSRF漏洞来发送恶意请求。
- 禁止跳转,限制请求的端口为http常用的端口,比如 80、443、8080、8090
- 禁用不需要的协议,仅仅允许http和https请求。可以防止类似于file://, gopher://, ftp:// 等引起的问题
5. DDOS攻击
1.原理
攻击者是使用傀儡机(俗称“肉鸡”,受病毒木马操控的计算机或服务器)作为攻击平台,通过大量伪装合法的请求占用大量网络资源,以达到使指定目标的网络或服务瘫痪中断。
2.危害:
服务器瘫痪、用户无法正常访问。
3.类型
(1)SYN Flood攻击:这种攻击方法是经典最有效的DDoS方法,主要是通过向受害主机发送大量伪造源 IP 和源端口的 SYN 或 ACK 包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,可通杀各种系统的网络服务。这种攻击由于源头都是伪造的,所以追踪起来比较困难。但是,该攻击实施起来有一定难度,需要大量高带宽的僵尸主机。
(2)TCP 全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的。一般情况下,常规防火墙大多对于正常的 TCP 连接是放过的,但是很多网络服务程序能接受的 TCP 连接数是有限的。TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的 TCP 连接,直到服务器的内存等资源被耗尽而被拖跨, 从而造成拒绝服务。种攻击的特点是可绕过一般防火墙的防护而达到攻击;缺点是需要找很多僵尸主机,且僵尸主机的IP 是暴露,易被追踪。
(3)刷 Script 脚本攻击:这种攻击是跟服务器建立正常的TCP连接, 并不断的向脚本程序提交查询、 列表等大量耗费数据库资源的调用。一般来说, 提交一个指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是非常大。攻击者只需通过代理向目标服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务。这种攻击的特点是可以完全绕过普通的防火墙防护, 轻松找一些代理就可实施攻击;缺点是对付只有静态页面的网站效果会大打折扣,并且会暴露攻击者的IP地址。
4.防御:
(1)采用高性能的网络设备,升级主机服务器硬件,保证充足的网络带宽
(2)尽量避免NAT的使用(NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间)
(3)把网站做成静态页面
(4)增强操作系统的TCP/IP栈
(5)安装专业抗DDOS防火墙
6. CC攻击
原理:
CC(ChallengeCollapsar,挑战黑洞)攻击是DDoS攻击的一种类型,攻击者利用众多广泛可用的免费代理服务器模拟多个用户向受害服务器发送大量貌似合法的请求,许多免费代理服务器支持匿名模式,这使追踪变得非常困难
检测:
1、命令行法
一般遭受CC攻击时,Web服务器会出现80端口对外关闭的现象, 因为这个端口已经被大量的垃圾数据堵塞了正常的连接被中止了。可以通过在命令行下输入命令netstat -an来查看, “SYN_RECEIVED”是TCP连接状态标志,意思是“正在处于连接的初始同步状态 ”,表明无法建立握手应答处于等待状态。这就是攻击的特征,一般情况下这样的记录一般都会有很多条,表示来自不同的代理IP的攻击。
2、查看系统日志
Web日志一般在C:\WINDOWS\system32\LogFiles\HTTPERR目录下,该目录下用类似httperr1.log的日志文件,这个文件就是记录Web访问错误的记录。管理员可以依据日志时间属性选择相应的日志打开进行分析是否Web被CC攻击了。
防御:
1、服务器垂直扩展和水平扩容
资金允许的情况下,这是最简单的一种方法,本质上讲,这个方法并不是针对CC攻击的,而是提升服务本身处理并发的能力,但确实提升了对CC攻击的承载能力。垂直扩展:是指增加每台服务器的硬件能力,如升级CPU、增加内存、升级SSD固态硬盘等。水平扩容:是指通过增加提供服务的服务器来提升承载力。
2、数据缓存(内存级别,不要用文件)
对于服务中具备高度共性,多用户可重用,或单用户多次可重用的数据,一旦从数据库中检索出,或通过计算得出后,最好将其放在缓存中,后续请求均可直接从缓存中取得数据,减轻数据库的检索压力和应用服务器的计算压力,并且能够快速返回结果并释放进程,从而也能缓解服务器的内存压力。要注意的是,缓存不要使用文件形式,可以使用redis、mem—cached等基于内存的nosql缓存服务,并且与应用服务器分离,单独部署在局域网内。局域网内的网络IO肯定比起磁盘IO要高。为了不使局域网成为瓶颈,千兆网络也是有必要的。
3、页面静态化
与数据缓存一样,页面数据本质上也属于数据,常见的手段是生成静态化的html页面文件,利用客户端浏览器的缓存功能或者服务端的缓存服务,以及CDN节点的缓冲服务,均可以降低服务器端的数据检索和计算压力,快速响应结果并释放连接进程。
4、IP限制
可以将IP限制前置至JCb层的防火墙或负载均衡器上去做,并且可以调大限制的阈值,防止恶意访问穿透到应用服务器上,造成应用服务器压力。
5、接入高防
中云AI云防护系统通过用户与防护节点建立加密隧道,接管客户端与服务器端网络连接,准确识别攻击者与真正的访客。
7. 文件上传漏洞
原理:
文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。
相关日志:
- 文件上传日志:Web 服务器或应用服务器上的访问日志中可能包含上传文件的信息
- 访问控制日志:如果应用程序实现了文件上传的访问控制机制,记录访问控制的日志可能包含了上传文件的信息,例如上传人员、上传 IP 地址等。
- 安全审计日志:如果使用了安全审计工具,可以记录文件上传操作的详细信息,例如上传文件的路径、上传文件的内容等。
攻击特征:
- 文件类型绕过:攻击者可能会尝试上传不受支持的文件类型,或者将文件类型伪装成其他类型,以绕过文件类型检查。
- 文件名欺骗:攻击者可能会使用诱人的文件名称来欺骗用户下载或打开恶意文件。
- 文件内容:上传的文件可能包含恶意代码、木马、病毒等恶意程序,这些程序可被用于攻击和控制目标系统。
- 大小限制绕过:攻击者可能会尝试绕过文件大小的限制,上传超过规定大小的文件。
- 目录遍历:攻击者可能会通过在文件名中插入../等字符来遍历目标服务器上的目录,获取敏感信息或执行攻击。
绕过:
- 修改文件扩展名:攻击者可以将可执行文件的扩展名更改为其他文件格式的扩展名,例如将.exe文件更改为.jpg文件。这样,即使应用程序检查文件扩展名,也会认为该文件是合法的图像文件。
- 绕过文件类型检查:应用程序通常会限制上传文件的MIME类型或文件头,以确保只允许上传合法的文件。但是,攻击者可以通过修改文件头或添加特殊字符等方式来伪装文件类型和内容,从而绕过文件类型检查。
- 前端JS突破:抓包修改文件名 或者 禁用当前浏览器的JS脚本
防御:
- 文件类型和大小限制:在服务器端对上传的文件进行检查,确保上传的文件类型、大小和数量符合预期。可以使用白名单方式进行限制,只允许上传特定类型的文件。
- 检查文件内容:在服务器端对上传的文件进行检查,确保它们不包含恶意代码或病毒等危险内容。可以使用杀毒软件或安全扫描工具来帮助检查上传的文件。
- 重命名文件:将上传的文件保存在一个新的随机生成的文件名下,而不是使用用户提供的文件名。这样可以避免攻击者通过伪造文件名来欺骗用户。
- 存储位置:将上传的文件保存在与网站主目录分离的位置上,以避免攻击者上传Webshell等恶意脚本,并能够防止攻击者直接访问上传的文件。
- 使用安全上传类库:使用安全的上传类库或框架,如Apache Commons FileUpload、SecureFileUploader等。
8. 文件解析漏洞
分类:
1.IIS 6.0解析利用方法有两种
(1)目录解析:/xx.asp/xx.jpg
(2)文件解析:wooyun.asp;.jpg
第一种,在网站下建立文件夹的名字为 .asp、.asa 的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。
第二种,在IIS6.0下,分号后面的不被解析,也就是说wooyun.asp;.jpg会被服务器看成是wooyun.asp
还有IIS6.0 默认的可执行文件除了asp还包含这三种.asa、.cer、.cdx
2.Apache解析漏洞后缀名解析漏洞
Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断直到识别。
3.PHP CGI解析漏洞
在默认Fast-CGI开启状况下,上传一个名字为wooyun.jpg,内容为
1 | fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>'); PHP |
的文件,然后访问wooyun.jpg/x.php,(x.php不存在)在这个目录下就会生成一句话木马 shell.php。
4.%00截断漏洞
当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生
防御:
1、防御方法:升级IIS版本,IIS5.1与7.5均无此漏洞
2、Apache文件解析漏洞:
不要使用AddHandler,改用SetHandler,就不会有解析问题
1 | <FilesMatch".+.php$"> |
禁止.php这样的文件执行
1 | <FilesMatch".+.ph(p[3457]?|t|tml)."> |
9. 文件包含漏洞
原理:
文件包含方式:Web应用程序通常会使用动态脚本语言(如PHP、ASP等)来动态地生成网页内容。其中,文件包含函数(如include、require等)允许将一个文件的内容嵌入到另一个文件中,以实现模块化和重用性。当Web应用程序采用用户输入作为文件路径参数时,如果未对这些参数进行足够的过滤和验证,就可能导致恶意数据或代码被动态地加载到页面中。攻击者可以通过向文件路径参数中注入恶意代码或文件名来触发文件包含漏洞,并在服务器上执行恶意操作。例如,攻击者可以上传一个包含恶意代码的文件,并将其作为文件路径参数传递给目标服务器,从而执行恶意操作。
防御:
- 过滤和验证用户输入:在接收用户输入作为文件路径参数时,必须对其进行过滤和验证,确保其中不包含任何恶意数据或代码。
- 使用绝对路径而非相对路径,以避免攻击者通过注入如../等文件路径跳出当前目录并访问其他文件。
- 限制访问范围:为了防止攻击者利用文件包含漏洞攻击服务器上的敏感文件,可以通过配置文件访问权限和文件夹安全策略等方式来限制访问范围。
- 升级和更新软件:Web应用程序中经常会存在许多漏洞和安全风险,因此需要及时升级和更新相关软件和组件,以确保最新的补丁和安全措施已经被采纳。
10. 中间件常见漏洞
- Web服务器漏洞:针对Web服务器(如Apache、Nginx)的攻击通常包括利用目录遍历、文件包含、SQL注入等技术。
- 数据库漏洞:数据库(如MySQL、Oracle、SQL Server)的漏洞通常涉及未授权的访问、SQL注入等方面。
- 应用服务器漏洞:应用服务器(如Tomcat、JBoss、WebLogic)的漏洞通常会导致远程执行代码、拒绝服务等问题。
- 消息队列漏洞:消息队列(如RabbitMQ、Kafka)的漏洞通常涉及未授权访问、拒绝服务等问题。
- 缓存服务器漏洞:缓存服务器(如Redis、Memcached)的漏洞通常包括未授权访问、命令注入等问题。
- 中间件配置问题:中间件的错误配置也可能导致安全问题,比如弱密码、不安全的协议配置等。
11. 挖矿病毒
判断:
当我们的服务器或PC资源(CPU)使用率接近或超过100%,并持续高居不下导致服务器或PC操作延缓,我们就可以判定被挖矿
防御:
- 及时更新杀毒软件,并开启实时保护模式;
- 扫描整个系统,清除所有恶意文件和注册表项;
- 禁止不明程序自启动,及时关闭被感染的进程;
- 在安装软件时仔细阅读许可协议,禁止安装未知来源的软件;
- 加强账户权限管理,限制非管理员用户对系统的操作权限;
- 及时备份重要文件,以便在恶意软件攻击后恢复数据。
Linux确认挖矿
a. 使用top
命令查看系统性能,找出消耗资源较高的进程PID;
b. 根据获取的PID信息利用ps -ef -p PID
命令找出系统进程详细信息;
c. 根据进程详细信息定位到文件位置,进入文件位置进行文件分析,确认是否属于挖矿程序。
d.
停止服务:systemctl stop *.service
;
- 杀掉进程:
kill 9 PID
,很多时候不光杀掉一个进程; - 删除文件:
rm -fr abnormal_file
,删除文件时可以使用find / -name abnormal_file
查找出系统中所有的恶意文件; - 清理定时任务:
crontab -e
;
Windows确认挖矿
使用图形化界面分析确认
a. 打开
任务管理器
:Ctrl + Alt + Delete
快捷键 或者win + r
快捷键,输入taskmgr
;b. 在
任务管理器
中找到资源管理器
;c. 通过
资源管理器
找到占用CPU资源较高的服务或进程,获取其PID信息;d. 利用获取的PID信息在
任务管理器
中的详细信息
一栏中找到对应的程序,右键打开文件位置
,获取异常文件目录;e. 进入到异常文件目录中,对文件进行分析,确认是否属于挖矿程序;
f. 确认挖矿程序后,先对挖矿程序进行备份。然后先关闭对应的服务与进程,再删除对应的定时任务,最后删除对应的文件。在删除文件之后,反向再查询一遍定时任务、进程与服务,最好是在间隔一定时间段后再复查一次
12. webshell
原理:Webshell是一种Web服务器上的恶意代码,可以使攻击者远程控制服务器,并执行各种命令、上传下载文件等操作
防御:
- 配置必要的防火墙,并开启防火墙策略,防止暴露不必要的服务为攻击者提供利用条件。
- 对服务器进行安全加固,例如,关闭远程桌面功能、定期更换密码、禁止使用最高权限用户运行程序、使用 HTTPS 加密协议等。
- 加强权限管理,对敏感目录进行权限设置,限制上传目录的脚本执行权限,不允许配置执行权限等。
- 安装 Webshell 检测工具,根据检测结果对已发现的可疑 Webshell 痕迹立即隔离查杀,并排查漏洞。
- 排查程序存在的漏洞,并及时修补漏洞。可以通过专业人员的协助排查漏洞及入侵原因。
- 时常备份数据库等重要文件。
- 需要保持日常维护,并注意服务器中是否有来历不明的可执行脚本文件。
- 采用白名单机制上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则。
13. 钓鱼邮件
原理:
伪装成合法的邮件,诱骗收件人点击链接或输入个人信息,从而达到窃取用户信息、密码或者安装恶意软件的目的。钓鱼邮件常常伪装成银行、电商、社交媒体等常见网站的邮件,利用用户对这些网站的信任感,诱导用户点击邮件中的链接或下载附件,从而实施攻击
防御:
- 查看发件人地址:钓鱼邮件的发件人地址通常会伪装成合法、可信的机构或公司,但是如果您仔细查看发件人地址,就可能发现其不是该机构或公司真正的域名。
- 检查链接地址:钓鱼邮件中通常会包含可疑的链接,如果您将鼠标悬停在链接上,就可以看到链接的真实地址。如果该地址与邮件内容不符,就可能是钓鱼邮件。
- 注意邮件内容:钓鱼邮件通常会给人留下一种紧急、必须立即采取行动的感觉,从而诱骗用户点击链接或执行某些操作。因此,如果您收到这样的邮件,请仔细阅读邮件内容,并多加思考和确认。
- 尽量避免下载附件:钓鱼邮件通常会携带恶意附件,如果您无法确认邮件的真实性,最好不要下载或打开这些附件,以免被感染。
- 安装反钓鱼软件:有一些反钓鱼软件可以帮助用户检测和拦截钓鱼邮件,例如 Google 的 Password Alert 等。
14. fastjson
原理:
使用AutoType功能进行序列号的JSON字符会带有一个@type来标记其字符的原始类型,在反序列化的时候会读取这个@type来试图把JSON内容反序列化为对象,并且会调用这个库的setter或者getter方法,然而,@type的类有可能被恶意构造,只需要合理构造一个JSON,使用@type指定一个想要的攻击类库就可以实现攻击。常见的有sun官方提供的一个类com.sum.rowset.JdbcRowSetlmpl,其中有个dataSourceName方法支持传入一个rmi的源,只要解析其中的url就会支持远程调用。
漏洞复现:
防御:
- 避免直接将未经过验证的用户输入传递给 fastjson 反序列化器
- 及时更新 fastjson 序列化库,以确保其安全性
- 使用其他序列化和反序列化库,例如Gson和Jackson等,来避免fastjson漏洞的风险
15. shiro
原理:
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会将用户信息加密,加密过程:用户信息-》序列化-》AES加密-》BASE64编码-》RememberMe Cookie值。如果用户勾选记住密码,那么在请求中会携带cookie,并且将加密信息存放在cookie的RememberMe字段里面,在服务端收到请求对RememberMe值,先base64解码然后AES解密再反序列化,这个加密过程如果我们知道AES加密的密钥,那么我们把用户信息替换成恶意命令,就导致了反序列化RCE漏洞。在shiro版本<=1.2.4中使用了默认密钥kPH+blx5D2deZilxcaaaA==,更容易触发RCE漏洞
防御:
- 避免直接从未经过验证的输入数据中反序列化对象。
- 限制反序列化器(如 ObjectInputStream)的使用,只反序列化可信来源的数据。
- 及时更新Shiro框架,以确保漏洞已被修复。
- 将Shiro部署在安全环境中,并使用网络隔离、网络监控和入侵检测等技术来加强安全控制。
shiro550和721的区别:
- 主要在于shiro550使用已知密钥碰撞,只要有足够密钥库,不需要RememberMe Cookie
- shiro721的AES加密的key基本猜不到,系统随机生成,可使用登录后的rememberme去爆破正确的key值,即利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,然后精心构造RememberMe Cookie值来实现反序列化漏洞攻击,难度高
16. log4j
原理:
Log4j是Java中广泛使用的一种日志管理工具,攻击者可以利用Log4j来执行任意代码,以下是此漏洞的原理:Log4j依赖于Apache Commons Math库中的一个子模块以解析日志消息中的数学表达式。这个库使用了JNDI(Java命名和目录接口)技术,JNDI允许开发人员将Java对象绑定到命名空间中,以供其他Java应用程序使用。攻击者可以通过构造特制的请求,将恶意的JNDI名称注入到Log4j中,从而诱骗Log4j调用该JNDI名称代表的对象,例如远程服务器上的恶意Java类。当Log4j尝试解析JNDI名称时,它会触发恶意JNDI资源的加载,并在其中执行恶意代码。
危害:
- 远程代码执行:攻击者可以利用此漏洞在目标系统上执行任意代码,可能导致机密信息泄露、数据损坏和系统崩溃等问题。
- 远程命令执行:攻击者可以利用此漏洞在目标系统上执行任意命令,例如下载和安装恶意软件、创建后门访问等。
防御:
- 更新Log4j版本:最新版本已经修复了此漏洞。
- 关闭JNDI:如果您不需要使用JNDI,建议禁用该功能。
- 阻止外部网络访问:对于架构设计合理的应用程序,应该使用网络隔离等技术来限制外部访问。
- 加强应用程序安全性:开发人员应该定期审计和更新应用程序代码,以确保其安全性和完整性。
补充:weblogic
weblogic是Oracle发布的一个基于JAVA架构的web中间件,可以理解为tomcat promax
漏洞利用:
- 直接通过T3发送恶意反序列化对象
- 利用T3协议配合RMP或ND接口反向发送反序列化数据
- 通过javabean XML方式发送反序列化数据
17. redis(缓存服务器)
原理:Ridic反序列化漏洞的根本原因是,Redis使用了Java标准库中的ObjectInputStream类来处理数据的序列化和反序列化。攻击者可以通过构造恶意请求,并将其发送到目标Redis服务器上,以触发ObjectInputStream在处理该数据时执行恶意代码的情况。
危害:
- 提升权限:攻击者可以通过远程执行任意代码进一步攻击目标系统,例如窃取敏感信息、破坏系统完整性、创建后门等。
- 篡改数据:攻击者可以修改Redis数据库中的数据,例如覆盖现有数据、添加新的键值对等。
- 删除数据:攻击者可以利用此漏洞删除Redis数据库中的数据,包括重要的配置文件、认证令牌等。
防御:
- 不要直接将未经过验证的用户输入数据存储在Redis数据库中。
- 更新Redis版本以确保漏洞已修复。
- 配置Redis服务器的安全设置,例如限制网络访问和使用密码进行身份验证等。
- 启用日志记录并监测Redis服务器上的异常活动。
- 将Redis服务器部署在安全环境中,并定期对其进行安全审计。
18. nmap
- CVE-2016-3714: ImageMagick命令注入漏洞
Nmap使用ImageMagick库来处理图像,在旧版本的ImageMagick中存在命令注入漏洞。攻击者可以构造恶意图像文件,通过Nmap执行这些文件的时候触发该漏洞,导致执行任意命令。
- CVE-2017-11615:脚本引擎环境变量注入漏洞
Nmap支持在其脚本引擎中执行Lua脚本,而在某些情况下,攻击者可以利用环境变量注入漏洞来执行恶意Lua脚本,从而危及系统安全。
- CVE-2018-15173: 路径遍历漏洞
该漏洞存在于Nmap HTTP服务器中,攻击者可以利用此漏洞通过HTTP服务在目标系统上执行任意命令
防御:
这些漏洞大多数已经被修复,并且很少会对最新版本的Nmap构成威胁。建议用户始终使用最新版本的Nmap,并遵循最佳实践,如限制对Nmap的访问权限,避免使用默认帐户和密码,以及定期更新配置文件等。
19. 反序列化漏洞与JAVA内存马
原理:网站暴露或间接暴露反序列化 API,导致攻击者构造恶意对象并上传到服务器触发反序列化过程,调用反序列化函数如_wakeup、_destruct等,攻击者可以实现自定义这些反序列化函数的参数从而引发漏洞
Java反序列化检测:
- 从流量中发现序列化的痕迹,关键字:
ac ed 00 05
,rO0AB
- Java RMI 的传输 100% 基于反序列化,Java RMI 的默认端口是
1099
端口 - 从源码入手,可以被序列化的类一定实现了
Serializable
接口 - 观察反序列化时的
readObject()
方法是否重写,重写中是否有设计不合理,可以被利用之处
防范:
- 类白名单校验:在 ObjectInputStream 中 resolveClass 里只是进行了 class 是否能被 load ,自定义 ObjectInputStream , 重载 resolveClass 的方法,对 className 进行白名单校验
- 禁止 JVM 执行外部命令 Runtime.exec
内存马分类:
- 1、基于动态添加Servlet组件的内存马
- 2、基于动态添加框架组件的内存马
- 3、基于Javaagent和Javassist技术的内存马
特征:
内存马的特性就是无文件落地,只存在内存中,这就代表了这个类对应的Resource是不在本地文件系统中的,那么其Class File/Location/Loader相较于应用正常的组件会有一定的区别。
因为内存马毕竟最后还是要依赖框架的功能来实现的,必然会继承或实现框架的接口,在应用自身提供的接口不多的情况下,通过遍历所有的servlet/filter/listener进行审计也是一种检测的策略
排查:
- 如果是jsp注入,日志中排查可疑jsp的访问请求。
- 如果是代码执行漏洞,排查中间件的error.log,查看是否有可疑的报错,判断注入时间和方法
- 根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框架漏洞,反序列化漏洞。
- 如果是servlet或者spring的controller类型,根据上报的webshell的url查找日志(日志可能被关闭,不一定有),根据url最早访问时间确定被注入时间。
- 如果是filter或者listener类型,可能会有较多的404但是带有参数的请求,或者大量请求不同url但带有相同的参数,或者页面并不存在但返回200
防御:
正常内存马重启以后就没有了
可以做内存镜像,反编译.class,看具体代码,然后注入进去,覆写相关的恶意类即可
- 也可以做比对,看是否新增恶意的类
20. Rookit
分类:
用户态Rootkit:一般通过覆盖系统二进制和库文件来实现
特点:
通常替换的二进制文件为ps、netstat、du、ping、lsof、ssh、sshd等
可能使用环境变量LD_PRELOAD和/etc/ld.so.preload、/etc/ld.so.conf等加载黑客自定义的恶意库文件来实现隐藏
可能直接在现有进程中加载恶意模块来实现隐藏
不依赖于内核
内核态Rootkit:通常通过可加载内核模块(LoadableKernel Module,LKM)将恶意代码被直接加载进内核中。
特点:
直接访问/dev/{k,}mem
更加隐蔽,更难以检测,通常包含后门
排查:
利用Chkrootkit检查Rootkit
利用Rkhunter检查Rootkit
- 就是将一些重要的文件作MD5,定期检查MD5是否有改变
常见功能:隐藏文件、进程、连接、模块等
21. 蠕虫
原理:蠕虫病毒是一种智能化、自动化并综合网络攻击、密码学和计算机病毒技术,可自行运行的攻击程序或代码。蠕虫病毒能够扫描和攻击网络上存在系统漏洞的节点主机,并通过网络自主的从一个节点传播到另一个节点。
主要攻击方法:
Rsh,rexec:用户的缺省认证
Sendmail 的debug模式
Fingerd的缓冲区溢出
口令猜测
特征:
- 主动攻击:从搜索漏洞,到利用搜索结果攻击系统,再到攻击成功后复制副本,整个流程全由蠕虫自身主动完成。
- 利用软件漏洞:蠕虫利用系统的漏洞获得被攻击的计算机系统的相应权限,使之进行复制和传播过程成为可能。
- 造成网络拥塞:在传播的过程中,蠕虫需要判断其它计算机是否存活;判断特定应用服务是否存在;判断漏洞是否存在等等,这将产生大量的网络数据流量。同时出于攻击网络的需要,蠕虫也可以产生大量恶意流量,当大量的机器感染蠕虫时,就会产生巨大的网络流量,导致整个网络瘫痪。
- 留下安全隐患:大部分蠕虫会搜集、扩散、暴露系统敏感信息(如用户信息等),并在系统中留下后门。
- 行踪隐蔽:蠕虫的传播过程中,不需要用户的辅助工作,其传播的过程中用户基本上不可察觉。
- 反复性:即使清除了蠕虫留下的任何痕迹,如果没有修补计算机系统漏洞,网络中的计算机还是会被重新感染。
- 破坏性:越来越多的蠕虫开始包含恶意代码,破坏被攻击的计算机系统,而且造成的经济损失数目越来越大。
防御:
- 系统漏洞打补丁:蠕虫病毒大多数都是利用系统漏洞进行传播的,因此在清除蠕虫病毒之前必须将蠕虫病毒利用的相关漏洞进行修补。
- 清除正在运行的蠕虫进程:每个进入内存的蠕虫一般会以进程的形式存在,只要清除了该进程,就可以使蠕虫失效。
- 删除蠕虫病毒的自启动项:感染蠕虫主机用户一般不可能启动蠕虫病毒,蠕虫病毒需要就自己启动。需要在这些自启动项中清除蠕虫病毒的设置。
- 删除蠕虫文件:可以通过蠕虫在注册表的键值可以知道病毒的躲藏位置,对于那些正在运行或被调用的文件无法直接删除,借助相关工具删除。
- 利用自动防护工具:通过包括个人防火墙软件等防护工具,可以设置禁止不必要的服务。另外也可以设置监控自己主机有那些恶意的流量。
22. XXE漏洞
原理:解析时未对XML外部实体加以限制,导致攻击者将恶意代码注入到XML中,导致服务器加载恶意的外部实体引发文件读取,SSRF,命令执行等危害操作。
特征:在HTTP的Request报文出现一下请求报文,即表明此时是采用XML进行数据传输,就可以测试是否存在XML漏洞。
漏洞利用:
有回显的情况可以直接在页面中看到payload的执行结果或现象,无回显的情况又称为 blind xxe(类似于布尔盲注、时间盲注),可以使用外带数据(OOB)通道提取数据
防御:
XXE漏洞归根结底在于XML文档解析引入外部实体,禁止加载外部实体。
使用安全的libxml依赖库,版本在2.9以上的版本
流量特征
1. cs (client/server)
cs流量是指基于客户端和服务器之间的通信产生的网络流量。C/S 流量特征包括以下几个方面:
cs的流量特征:50050端口,心跳包
- 会话建立:C/S 流量通常都需要进行会话建立,包括握手、协议版本交换、密钥协商等过程。在这个过程中,通常可以看到一些特定的协议字段和标志位。
- 数据传输:传输数据是 C/S 流量的主要特征之一。在这个过程中,通常可以看到明文或加密的数据传输,并且数据大小和传输速度也是分析流量的重要指标。
- 响应时间:C/S 流量通常包含请求和响应消息,因此可以通过分析请求和响应之间的时间差来判断系统性能和服务质量。
- 协议类型:C/S 流量涉及多种不同的协议类型,例如 HTTP、FTP、SMTP、POP3 等,每种协议的特点和流量特征也有所不同。
- 应用程序特点:C/S 流量还表现出应用程序的特点,例如应用程序的请求方式、请求频率、用户行为等等
2. msf
MSF(Metasploit Framework)是一个开源的网络安全测试工具,可以用于对系统进行渗透测试和漏洞分析。在使用 MSF 进行攻击时,会产生一些特定的流量特征,包括以下几个方面:
- 目标端口:MSF 框架使用多种不同的攻击模块来利用目标系统的漏洞,因此 MSF 流量通常涉及多个不同的目标端口,例如常见的 80、443、445 等端口。
- 异常请求:MSF 框架使用恶意代码来对目标系统进行攻击,因此 MSF 流量中通常会出现大量异常请求,例如尝试访问非法 URL、发送恶意数据包等。
- 频繁扫描:为了寻找目标系统的漏洞,MSF 框架通常会频繁地进行端口扫描、服务识别等操作,因此 MSF 流量中通常会出现大量扫描和探测请求。
- 数据包大小:由于 MSF 框架通常会向目标系统发送大量恶意数据包,因此 MSF 流量中通常会出现较大的数据包大小。
- 特殊协议:在攻击过程中,MSF 框架通常会使用一些特殊的协议,例如 Meterpreter、Reverse TCP 等
3. 冰蝎
3.0:
- content-type
- Accept&Cache-Control
- 内置16个ua头
- content-length请求长度
4.0:v3.0 和 v4.0 的区别很明显在于这里 $_SESSION['k']=$key
,v3.0 版本当中会把 key 作为 session 传入;接着判断 extension_loaded
,也就是判断服务端是否存在 openssl
拓展,如果不存在就用 base64 解码,然后使用 key 进行异或加密,这也是冰蝎 v4.0 版本当中的 xor_base64
加密方式;如果服务端能够加载 openssl 拓展,就使用 AES128 解密,这里对应冰蝎 v4.0 版本当中的 aes
加密方式。
- 使用HTTP协议:冰蝎使用HTTP协议与C&C服务器通信,从而绕过网络策略和防火墙的检测。
- 自定义加密:冰蝎使用自定义加密算法对数据进行加密,以避免被网络监测器和安全设备检测到。
- 动态命令: 通过inline和eval函数动态执行指令并返回结果,这使得冰蝎可以运行各种自定义代码,例如扫描目标、下载和安装其他恶意软件等。
- 内存驻留: 冰蝎不需要在受感染设备上安装文件或建立持久性,它只需要注入进程并在内存中驻留,从而难以被传统杀毒软件检测和清除。
- 支持多平台:冰蝎支持Windows, Linux, and Mac OS等操作系统,这使得攻击者可以在跨多个平台上远程控制受感染设备。
4. 蚁剑
5. 菜刀
6. sql注入
分两个维度吧,一个是应用本身产生的,一个是真实的攻击,比如说因为出现select关键字而触发安全设备告警的情况下,首先需要判断下是不是SQL语句还是参数名为select关键字导致的误报,如果不是误报,那就看SQL语句写的是啥,判断是否有危害,还是业务的SQL语句,可以看里面是不是包含恶意的函数或者敏感的高危操作,如果都没有那就跟业务去确认是不是应用本身代码设计缺陷导致直接把SQL语句在参数中传输
7. 哥斯拉
端口
- 端口 21(FTP):FTP服务常用于文件传输,常见漏洞包括弱口令、任意文件上传漏洞等。
- 端口 22(SSH):SSH是远程登录系统的协议,常见漏洞包括弱口令、暴力破解、身份验证绕过等。
- 端口 23(Telnet):Telnet是一个远程控制协议,常见漏洞包括明文传输敏感信息、会话劫持等。
- 端口 25(SMTP):SMTP是发送电子邮件的标准协议,常见漏洞包括垃圾邮件滥用、反射攻击等。
- 端口 53(DNS):DNS是域名解析服务,常见漏洞包括DNS缓存投毒、DDoS攻击等。
- 端口 80/443(HTTP/HTTPS):HTTP/HTTPS是Web服务器常用的协议,常见漏洞包括SQL注入、XSS跨站脚本攻击、文件上传漏洞等。
- 端口 135(RPC):RPC是远程过程调用协议,常见漏洞包括缓冲区溢出、拒绝服务攻击等。
- 端口 139/445(SMB):SMB是Windows系统的文件共享协议,常见漏洞包括远程代码执行、密码破解等。
- 端口 3389(RDP):RDP是Windows远程桌面协议,常见漏洞包括弱口令、暴力破解、远程代码执行等。
- 6379:redis
- 7001:weblogic
- 8080:TCP、HTTP协议代理服务器,Apache-tomcat默认端口号
杂项
1. 判断误报
真正的攻击会大量的占用网络空间,传输效率会降低,占用大量带宽,对系统造成损害,没有的话就是误报。
其次可以去观察请求特征,与正常的业务是否一样,去做一个对比
再有一种情况,比如一个邮箱(OA系统,vpn都是这个情况),有人连续尝试好几次密码都错了,那两种可能,一种他真的忘了,另一种就是有人要搞他,那这种时候就去联系甲方驻场人员,跟他说明情况,然后建议他给邮箱禁了,如果是个正常用户他再用的话肯定就会提示他联系管理员,有人联系了就说明他是个误报,没人找的话就这样封着,如果一直没人理那就说明是个正常告警,然后还可以看时间段,确实也有人凌晨登录,但是正常企业单位凌晨再登录就很不正常,这个时候可以看一下他的ip地址,如果是攻击,那他的ip地址一定是代理池,而且其实护网的时候大家都会遵循一个宗旨,就是宁可错杀也不漏杀,不确定情况的时候,就先去联系这个人问清楚
在复杂一点的就比如抓了一个包,发现他的请求不太对,就非常像攻击特征,然后就查看那个包,去看http请求,分析一下这个流量里面请求的目的地址到底是啥,才能知道是不是误报
如果是个sql注入,就不用分析到底是不是误报,直接封,因为正常用户都是用鼠标点击,根本就不会注入
2. WAF分类
- 基于签名的 WAF:基于签名的 WAF 通过检测请求中是否包含已知漏洞的特征,来拦截攻击。这种类型的 WAF 可以快速识别和阻止已知的攻击方式。
- 基于行为的 WAF:基于行为的 WAF 使用机器学习、人工智能等技术来分析请求的行为模式,并判断其是否具有攻击性。这种类型的 WAF 能够较好地识别未知攻击。
- 综合型 WAF:综合型 WAF 结合了基于签名和基于行为两种技术,能够同时检测已知攻击和未知攻击,提供更加全面的保护。
3. 正向shell与反向shell的区别
正向shell是攻击者主动攻击,连接到目标主机;反向shell是用户主动连接攻击者
- 正向shell
正向shell通常是在目标主机上启动一个服务端程序,等待用户连接并进行身份验证后,允许用户在该主机上执行命令。因此,正向shell需要用户能够直接连接到目标主机,并且需要提供一些身份验证方式来保障安全性。
- 反向shell
反向shell则是在攻击者主机上启动一个客户端程序,通过网络连接到目标主机并执行指定的命令或脚本。这种方式通常需要绕过防火墙和其他安全措施,利用漏洞或社会工程学技巧获取目标主机的网络访问权限。
4. 态势感知原理
就是当攻击发生时,流量经过交换机,就会被探针抓取到,然后传给态势感知的服务器,然后回去特征库里进行一个匹配,匹配成功的话就是一个攻击,会提交给防火墙,进行禁用,匹配不成功的话,就视为正常客户访问,再生成日志文件,显示在客户端
5. 黄金票据和白银票据的区别
1.访问权限不同
- Golden Ticket: 伪造TGT,可以获取任何Kerberos服务权限
- Silver Ticket: 伪造TGS,只能访问指定的服务
2.加密方式不同
- Golden Ticket 由Kerberos的Hash—> krbtgt加密
- Silver Ticket 由服务器端密码的Hash值—> master key 加密
3.认证流程不同
- Golden Ticket 的利用过程需要访问域控(KDC)
- Silver Ticket 可以直接跳过 KDC 直接访问对应的服务器
6. 样本溯源
原理:恶意样本溯源分析的前提是针对样本,然后进行对样本做逆向分析、网络行为分析、日志行为分析。挖掘出恶意样本的攻击者或者团队的意图。
方式:
同源分析:通过利用恶意样本间的同源关系,挖掘出可溯源痕迹,并根据它们出现的前后关系判定变体来源。恶意代码同源性分析,其目的是判断不同的恶意代码是否源自同一套恶意代码或是否由同一个作者、团队编写,其是否具有内在关联性、相似性。从溯源目标上来看,可分为恶意代码家族溯源及作者溯源。
家族溯源:恶意样本的家族变体是已有恶意代码在不断的对抗或功能进化中生成的新型恶意样本,针对变体的家族溯源是通过提取其特征数据及代码片段,分析它们与已知样本的同源关系,进而推测可疑恶意样本的家族。例如,Kinable等人提取恶意代码的系统调用图,采用图匹配的方式比较恶意代码的相似性,识别出同源样本,进行家族分类。
作者溯源:恶意样本的作者溯源就是通过分析和提取恶意样本中的相关特征,定位出恶意样本作者相关特征,揭示出样本间的同源关系,进而溯源到已知的作者或组织。例如,Gostev等通过分析Stuxnet与Duqu所用的驱动文件在编译平台、时间、代码等方面的同源关系,实现了对它们作者的溯源。
步骤流程:
1、信息查询:针对可溯源的IP或域名通过网络上开放威胁情报平台进行查询
//ip查域名
//IP定位
https://www.opengps.cn/Data/IP/ipplus.aspx
//查询邮箱或手机注册过的网站
2、定位目标:利用精准IP定位,进行IP目标位置的确定
3、收集互联网信息侧的用户ID
可以通过利用:微博、贴吧、知乎、豆瓣、脉脉、QQ、微信等社交平台进行对信息收集。如果获取到手机号码可以基于支付方式的支付宝信息、微信信息等支付渠道的信息。
4、进入跳板机收集信息
如果有能力控制了红队的跳板机,则可进入跳板机进行信息收集,查看命令执行的历史记录与日志等
7. 手机号利用
知道用来注册平台后的材料后再根据这两点枚举出来所有可能性的手机号,比如我的归属地在北京 手机号前三位是150,那么可以列出所有可能性,并且这个可能性不会像爆破密码那么离谱,都在一个可验证的范围,而且还有接口可以排除掉空号、不存在号,如果有的网站可以给出后面几位手机号,那么其实可挑选的范围是非常小的。
如果知道运营商信息还可以进一步缩小,之后再导入微信 QQ等社交平台(搜索手机号加好友、可能认识的人功能)验证 ID,如果有相同 ID 的或者行业相关 ID 即可关联出手机号,如果没关联出也没有关系,还可以去行业内的平台进行验证。