《入侵生命周期细分实践指南系列》:路径劫持攻击

admin 2022年4月23日11:45:14评论63 views字数 2833阅读9分26秒阅读模式
美创科技为了更好地进行入侵检测和防御,参照各种安全威胁框架和自身的实践与思考,提出了基于入侵生命周期的攻击管理模型,作为美创新一代安全架构的三大支柱之一。
入侵生命周期v1.0把入侵过程划分为7个阶段:探索发现、入侵和感染、探索感知、传播、持久化、攻击和利用、恢复。入侵生命周期v1.0同样以ATT&CK作为基本战术知识库,匹配到不同的入侵阶段。需要注意的是,并非所有的入侵都会经历这7个阶段,也没有绝对的线性次序。
1)探索发现
在这个阶段中,攻击者会先锁定攻击对象,然后利用某些技术手段,尽可能多地获取目标暴露出来的信息,如通过端口扫描、指纹探测等方式,发现敏感端口及版本信息,进而寻找攻击点,为下一步入侵做准备。
2)入侵和感染
在这个阶段,攻击者会根据“探索发现”阶段所发现的重要信息,来对目标暴露出的攻击面进行攻击尝试,在“探索发现”阶段收集到的信息越多,攻击对象所暴露的攻击面也就越多,攻击更易成功。
3)探索感知
攻击者在成功进入系统内部后,由于是首次进入所以会出现对内部环境不熟悉的情况,这时攻击者的动作一般会是对当前所处环境进行探索,摸清内部大致的网络结构,常常伴随着被入侵本机的敏感信息收集以及对内网大量的端口进行扫描,后续根据攻击者的目的进行下一步操作。
4)传播
在此阶段,攻击者根据上一阶段在内网探索感知收集到的信息,选择特定的攻击手法。如若发现内部是域环境,攻击者可能会尝试先攻破域控服务器,再传播其他机器。若是工作组环境,可能会利用收集到的端口和服务信息,选择特定漏洞进行批量扫描攻击,来尽可能多地继续获得其他计算机的控制权。
5)持久化
攻击者在对资产进行恶意操作后,为了能够减少再次连接的攻击成本,方便下次进入,会进行“留后门”的操作,常见的后门如:建立计划任务,定时连接远程服务器;设置开机启动程序,在每次开机时触发执行特定恶意程序;新建系统管理员账号等。这样便于攻击者下次快速登录并控制该系统。
6)攻击和利用
攻击者在此阶段便会开始对目标资产进行恶意操作,按照攻击者意愿,对能利用的数据进行窃取、利用;对操作系统、敏感文件进行破坏、删除。所有的防御手段都应该极力阻止攻击者进行到这一阶段。
7)恢复
攻击者在执行所有的攻击操作时,往往会在系统上留下大量的行为日志,因此在这一阶段,攻击者会对记录自身痕迹的所有日志进行处理,或删除或混淆,从而消灭证据,逃避追踪。

本系列文章基于美创科技入侵生命周期1.0架构,细分各阶段攻击者的常用攻击手段,并对相关攻击手段的具体实施方式进行逐一剖析,为安全防御建设提供有力知识补充和反制准备。



《入侵生命周期细分实践指南系列》:路径劫持攻击
  路径劫持攻击(传播)

《入侵生命周期细分实践指南系列》:路径劫持攻击

路径劫持(path interception)实际上可以算是一种漏洞,恶意软件以及渗透测试人员都可以利用这项技术来对目标设备进行渗透和入侵。

这一漏洞的最常见形式如下:在Windows操作系统平台中,系统会等待例如“c:program.exe”形式的路径地址,并根据这一地址来提供服务,否则其他的应用程序将会使用没有加引号的路径地址来启动和运行。如果没有使用引号来将路径地址括起来,那么系统会对给定的路径地址进行遍历,当给定的地址中存在空字符或者空格符的话,操作系统将会执行遍历路径下任何一个子字符串与给定路径匹配的应用程序。攻击者可以根据这一特点来执行自己的恶意负载。

根据攻击者的入侵流程和操作手段,路径劫持在入侵过程的多个生命周期流程有发挥举足轻重的作用,可以帮助攻击者完成各类操作。从入侵生命周期角度分析,路径劫持可作用于攻击者传播、攻击和利用以及持久化三个阶段。攻击者在传播阶段,可以利用路径劫持执行恶意软件,以尽可能多地获得其他计算机的控制权,为之后的扩散攻击以及构建持久化后门提供便利。

从攻击行为链条的上下文来看,针对数据外传的行为链条输入输出如下。

  • 输入:以部分目录名命名的恶意可执行文件;以windows系统程序或无路径执行的程序命名的文件;

  • 输出:恶意程序的执行结果

针对路径劫持,目前主要有以下几种常用手段:

1. 通过未加引号的路径进行路径劫持

如果服务路径(存储在Windows注册表项中)和快捷方式路径具有一个或多个空格,并且没有用引号引起来(例如,C:unsafe path with spaceprogram.exe VS "C:safe path with spaceprogram.exe"),则很容易受到路径拦截。攻击者可以将可执行文件放置在路径的更高级别的目录中,Windows会解析该可执行文件而不是预期的可执行文件。

例如,如果快捷方式中的路径为C:program filesmyapp.exe,则对手可能会在此处创建一个程序,C:program.exe而不是预期的程序。

下面看一个实例:

(1) 在C:下放一个计算机执行文件(可以是可执行的恶意文件),重命名为Program.exe

(2) cmd中运行C:Program Filestaskschd.exe

《入侵生命周期细分实践指南系列》:路径劫持攻击

(3) 可以看到此时发生了路径劫持,运行的是Program.exe文件(若将Program.exe文件换为勒索病毒文件,则运行taskschd.exe受到路径劫持后,实际运行的为勒索病毒)

2. 按PATH环境变量进行路径劫持

某些执行程序的方法(即使用cmd.exe或命令行)仅依靠PATH环境变量来确定未给出程序路径时搜索程序的位置。

例如C:example net.exe(可以是可执行的恶意文件)位于Windows目录%SystemRoot%system32(例如C:Windowssystem32)之前的PATH环境变量中列出了任何目录中,则在C:example path下,从命令行执行“net”时,将调用名为net.exe的程序,而不是Windows系统“net”。

下面看一个实例:

(1) 正常执行net view时,结果如下图:

《入侵生命周期细分实践指南系列》:路径劫持攻击

(2) 环境变量中,可以看到Windows目录%SystemRoot%system32(C:Windowssystem32)

《入侵生命周期细分实践指南系列》:路径劫持攻击

(3) 因此,将计算机执行文件(可使用恶意可执行文件)放入C:Windows目录下,并重命名为net.exe。

(4) 进入C:Windows目录下,执行 net view,可发现该命令实际上执行的是net.exe,也就是计算器。

《入侵生命周期细分实践指南系列》:路径劫持攻击

3. 通过搜索顺序进行路径劫持

当攻击者滥用Windows搜索未指定路径的程序的顺序时,就会发生搜索顺序劫持。搜索顺序因执行程序所使用的方法而异。但是,Windows通常在搜索Windows系统目录之前先搜索启动程序的目录。

下面看一个实例:

(1) 在桌面随意新建一个文件夹,并将计算机文件(可使用恶意可执行文件)重命名为net.exe放入文件夹中

(2) cmd中,进入该新建目录,并执行net user

《入侵生命周期细分实践指南系列》:路径劫持攻击

(3) 此时,可以观察到该命令执行的是net.exe文件,并非windows系统的net。

《入侵生命周期细分实践指南系列》:路径劫持攻击


《入侵生命周期细分实践指南系列》:路径劫持攻击

原文始发于微信公众号(第59号):《入侵生命周期细分实践指南系列》:路径劫持攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月23日11:45:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   《入侵生命周期细分实践指南系列》:路径劫持攻击http://cn-sec.com/archives/913306.html

发表评论

匿名网友 填写信息