6.24~~~~(渗透技术学习)

Application Compatibility是什么

Application Compatibility是指确保应用程序在不同的操作系统、运行环境、设备或平台上都能够正常工作的能力。具体来说,它是一组技术、工具和方法,旨在解决企业在进行操作系统升级或迁移时面临的应用程序兼容性问题。
随着技术的不断发展和更新,企业需要将其应用程序迁移到新的操作系统和硬件平台上,以实现更高的性能和可靠性。但是,新的环境可能会导致一些应用程序无法正常运行,或者在某些情况下表现不稳定。因此,企业需要采取一些措施来保证应用程序的顺利运行。
应用程序兼容性解决方案通常包括以下几个方面:

1.应用程序调查:对应用程序进行分析,确定它们在新环境中的兼容性问题。

2.兼容性测试:对应用程序进行测试,验证其在新环境中的兼容性。

3.迁移问题解决方案:对那些出现问题的应用程序进行修复、升级或替换。

4.兼容性数据库:维护一个兼容性数据库,记录应用程序的兼容性信息,以便企业进行参考。

总之,Application Compatibility是解决企业在进行操作系统升级或迁移时面临的应用程序兼容性问题的一套技术方案。

Application Compatibility框架通常包括以下组件:

1.应用程序调查工具:该工具能够确定企业中哪些应用程序需要进行兼容性测试,并生成相应的报告。

2.兼容性测试工具:这些工具能够自动化地测试应用程序在新环境中的兼容性,例如Windows兼容性测试工具。

3.应用程序修复工具:这些工具能够自动化地修复应用程序中的兼容性问题,例如Microsoft的应用程序修复工具包。

4.兼容性数据库:该数据库包含了各种应用程序与操作系统之间的兼容性信息,提供给企业判断应用程序是否兼容所需操作系统的依据。

Application Compatibility Shims是什么

Application Compatibility Shims是微软提供的一种应用程序兼容性技术,它可以在不影响原始代码的情况下,为应用程序提供修改行为的能力,以解决应用程序在新的操作系统或硬件上运行时出现的问题。Shim是一个小的代码块,它被插入到应用程序和操作系统之间的代码流中,然后修改或增加某些行为。
通过创建Shim,开发人员可以轻松地解决应用程序在新环境中的兼容性问题,而无需修改或升级应用程序本身。Shim的实现方式通常包括以下步骤:

1.找到应用程序中导致兼容性问题的Windows API调用或函数。

2.创建一个Shim DLL(动态链接库),并编写一个或多个Shim引导程序,用于修改或增强应用程序使用的Windows API调用或函数。

3.将Shim DLL和Shim引导程序注入到应用程序的地址空间中,使其在应用程序运行时被加载和执行。

通过使用Application Compatibility Shims技术,可以在不修改应用程序源代码的情况下,使其具有更好的兼容性。在微软的Windows操作系统中,Shims已被广泛应用于解决其他版本Windows中应用程序的兼容性问题。

WindowsLoader是什么

Windows Loader是一个Windows操作系统激活工具,主要用于激活未经授权的Windows操作系统。它可以模拟Windows系统的启动过程,绕过Windows系统的验证机制,使Windows系统误认为已经完成了激活过程。Windows Loader通常用于破解Windows密钥时使用。
Windows Loader的操作相对简单,只需打开工具,点击“Activate”按钮,等待数秒钟,即可完成Windows激活。值得注意的是,Windows Loader并不是官方认可的激活方式,使用它可能会导致操作系统无法升级或更新,甚至被微软封锁。此外,如果用户的计算机因为使用Windows Loader而被损坏或导致文件丢失,微软公司也不承担任何责任。
因此,应该避免使用Windows Loader等未经官方认可的激活工具,以免造成不必要的麻烦和风险。如果需要激活Windows操作系统,应该选择正规途径,购买官方授权或者通过有效的授权规则进行激活。

SDB文件

SDB文件(Shim数据库)是用于Windows应用程序兼容性的数据库文件。它是微软Application Compatibility Toolkit中的一个组件,用于解决应用程序在不同的Windows版本中可能出现的兼容性问题。SDB文件包含一个或多个Shim(中间层)以及与这些Shim相关联的应用程序和Windows系统的API函数。Shim是Windows支持库的一部分,它允许应用程序调用Windows API时在API调用之前进行修改或拦截。
当Windows系统在运行应用程序时,会遍历SDB文件并查找对应的Shim来解决与API函数的兼容性问题。这些Shim可能调用其他Windows API或函数,或者修改原始API的行为,以解决应用程序的兼容性问题。通常,在安装应用程序之前,系统会先检查SDB文件,以确保应用程序可以在该Windows版本上正确运行。
基于SDB文件的兼容性解决方案可以帮助企业减少应用程序迁移和升级所需的时间和资源,同时提高应用程序的兼容性和稳定性。SDB文件也可以通过编写自定义Shim和应用程序,来扩展其兼容性功能。

写入注册表中

注册表是Windows操作系统中用于存储配置信息和各种系统和应用程序设置的中央存储库。攻击者可以在注册表中隐藏恶意代码,以便在系统启动时加载并执行。这种攻击方式被称为“注册表注入”(Registry Injection)或“注册表劫持”(Registry Hijacking),是一种常见的恶意软件攻击技术。通过隐藏在注册表中,攻击者可以在系统启动时自动运行恶意代码,从而获取系统权限、窃取敏感信息或执行其他恶意活动。

注册表

其实和系统运作息息相关,也可以理解为系统的配置文件
很多操作,都会实现去注册表中读取配置信息,然后根据配置信息执行操作
所以注册表,也是安防软件重点防护的对象
里面有很多关键的键或者键值,比如,系统自启动程序列表,文件打开关联等等
注册表操作相关函数,大多是以Reg开头的,参考链接:
https://learn.microsoft.com/zh-cn/windows/win32/sysinfo/registry-functions?redirectedfrom=MSDN
注册表这块,重点理解好两个概念,键和键值

总的概述:渗透测试中的Application Compatibility Shims

利用WindowsLoader开机时会执行sdb文件,sdb文件中包含了很多shim文件,shim文件可以修改程序的代码,而shim文件可以直接用Microsoft Application Compatibility Toolkit这个工具生成
在Microsoft Application Compatibility Toolkit工具中可以使用选择函数
Command line填入的方式直接生成shim文件

原文链接:https://zhuanlan.zhihu.com/p/23821504

进程注入技术

https://blog.csdn.net/MachineGunJoe/article/details/117535749
进程注入是一种恶意软件攻击技术,通过将恶意代码注入到已经运行的进程中,来绕开系统的安全防护机制,从而实现对目标系统的控制或访问。
进程注入离线或在线成为可能,攻击者可以利用一些工具或者编写相关代码进行实施。一些常用的进程注入技术包括:
DLL注入:通过将恶意DLL文件注入到目标进程地址中,获得进程内核控制权。DLL注入可以直接读取和修改目标进程的内存,并运行自己的指令;
API挂钩:攻击者通过篡改进程所依赖的API系统调用,将恶意代码注入到目标进程的系统调用中。这种方法比较隐蔽,很难被系统防护机制所检测;
进程镜像注入:使用进程的镜像文件来替换或添加代码;
进程空间注入:攻击者通过修改目标进程的空间来注入代码,并在修改后,使程序执行到被修改的位置中去。
进程注入技术可以被广泛应用于各种恶意软件攻击,例如:木马、间谍软件、勒索软件、蠕虫等。为了防止进程注入攻击对系统的影响,系统管理员可以采取一些措施来保护系统安全,例如:限制用户访问权限,安装杀毒软件,监视恶意进程行为并及时清除。

CREATEREMOTETHREAD

是一种Windows API函数,允许程序在远程进程中创建一个线程并在其上运行代码。该函数通常用于进程注入和远程线程执行等技术。
使用CREATEREMOTETHREAD可以向远程进程(例如,在目标计算机上运行的程序)注入恶意代码,从而实现远程控制目标计算机的能力。比如,攻击者可以将一个DLL注入到远程进程中,通过注入的代码来获取目标计算机上的敏感信息或实施其他恶意行为。CREATEREMOTETHREAD还可以通过与传输层安全性协议(如TLS)等技术配合使用,以实现远程代码执行的传输加密和认证。
自然地,CREATEREMOTETHREAD这类操作对计算机系统安全带来了危险。为了防止它被滥用,Windows 系统提供了各种控制方法来规范哪些进程有权创建远程线程。此外,一些杀毒软件和网络防火墙等安全软件也可以对CREATEREMOTETHREAD的使用进行检测和拦截,以保护计算机安全。

快照

在计算机中,快照(Snapshot)通常指对计算机系统、虚拟机、虚拟硬盘等进行备份或留下一份现场记录。这样可以在需要时快速恢复到之前的状态。
具体来说,快照可以是以下内容之一:
1.硬件快照:存储的是计算机系统或虚拟机当前的硬件状态信息,包括了操作系统、应用程序、硬盘、内存、CPU等等。通过硬件快照,用户可以在需要时快速恢复到指定时间点的系统状态。
2.软件快照:存储的是软件应用程序当前的运行状态,通过保存当前的程序内部状态和变量值来创建“软件快照”。比如,文本编辑器可以通过软件快照记录当前正在编辑的文本内容,以便在失误后恢复到之前的状态。
3.虚拟机快照:虚拟机快照就是记录虚拟机当前状态的备份。通过虚拟机快照可以在下一次打开虚拟机时回到之前的状态,快速恢复到上次快照拍摄时的虚拟机状态。
快照技术在计算机中具有广泛的应用,可用于实现快速备份、实时转移、系统还原、软件回滚等。现今的操作系统和虚拟化平台均提供了丰富的快照机制,使得备份恢复等任务变得更加简单和高效。

CreateRemoteThread

CreateRemoteThread 是Windows操作系统中一个API函数,用于让一个进程可以在另一个进程中创建一个线程并运行指定的代码。这个函数可以用于进程注入、远程控制、Hook等多种技术场景中。
攻击者可以使用CreateRemoteThread API,在另一个进程中创建一个线程,并将恶意代码注入到该线程中去,以达到远程控制的目的。比如,攻击者可以在目标进程中注入一个恶意DLL,通过该DLL来获取敏感信息、传播恶意代码等。除了攻击性使用情况外,CreateRemoteThread 还可以被用于远程执行任务,例如将一个非阻塞代码段在远程计算机中运行。
对于系统管理员来说,他们可能会担心使用CreateRemoteThread API的恶意行为。因此,Windows 操作系统还提供了一些机制来限制CreateRemoteThread 的使用。例如,管理员可以通过设置访问权限来限制访问进程和API,或者使用专业的杀毒软件来实施保护措施。同时,能够进行检测和监控 CreateRemoteThread 使用的安全工具,可以帮助管理员及时发现可能的安全问题。

WriteProcessMemory

WriteProcessMemory 是Windows操作系统中的一个API函数,它可以将数据写入到另一个进程的内存中。这个函数通常用于进程注入、内存修改、调试工具等多种技术场景中。
攻击者可以使用 WriteProcessMemory 调用,在目标进程中修改某些敏感数据,从而实现进程注入或窃取敏感信息。比如,攻击者可以利用 WriteProcessMemory ,向目标进程中注入恶意代码或DLL,从而获得对目标系统的远程控制。
除了攻击性用途外,WriteProcessMemory API 在一些调试工具中也有广泛的应用。调试工具可以通过 WriteProcessMemory 实现对另一个进程中内存数据的读写操作,从而进行调试、分析、修复等任务。
针对 WriteProcessMemory 的安全风险,Windows 操作系统也提供了一些安全机制来保护系统。比如,Windows 会检测目标进程的访问权限,以及对 WriteProcessMemory 的调用者的权限,从而防止恶意程序和攻击受害者的行为。同时,很多杀毒软件和安全工具也可以通过检测 WriteProcessMemory 使用的行为,来预防潜在的安全问题。

ZwUnmapViewOfSection

ZwUnmapViewOfSection是Windows操作系统中的一个系统调用函数,用于取消映射一个已经映射到虚拟内存中的文件或共享内存。它是内核模式函数,可以被Windows内核或内核模式驱动程序调用。
当进程需要访问一个文件或共享内存时,它可以使用ZwMapViewOfSection函数将文件或共享内存映射到它的虚拟地址空间中。这样,在进程需要访问文件或共享内存时,就可以直接访问虚拟地址空间中对应的内存位置,而无需进行繁琐的文件或内存访问操作。
当进程不再需要访问已经映射的文件或共享内存时,可以调用ZwUnmapViewOfSection函数将其从虚拟地址空间中取消映射。这样,系统可以回收相应的物理内存和其他资源,以便后续的使用。

NtUnmapViewOfSection

NtUnmapViewOfSection是Windows操作系统中的一个系统调用函数,与ZwUnmapViewOfSection相似,都用于取消映射一个已经映射到虚拟内存中的文件或共享内存。与ZwUnmapViewOfSection不同的是,NtUnmapViewOfSection是用户模式函数,只能被用户模式的应用程序调用,而不能被内核或驱动程序直接调用。
如果一个用户模式的应用程序需要取消访问一个已经映射的文件或共享内存,它可以使用NtUnmapViewOfSection函数,将其从虚拟地址空间中取消映射。这样,系统就可以回收相应的物理内存和其他资源,以便后续的使用。
需要注意的是,NtUnmapViewOfSection只是将映射从进程的虚拟地址空间中删除,并不能对映射的物理内存进行管理或回收操作,这由系统自动处理。并且,在使用NtUnmapViewOfSection函数时,必须保证相应的映射是由当前进程创建的,否则将会导致未知的错误或异常。

SuspendThread

SuspendThread是Windows操作系统中的一个函数,用于暂停一个线程的执行。它将会挂起当前进程中的指定线程,直到该线程被恢复,或者直到该线程执行完成。
当一个线程被挂起后,该线程的CPU时间片将会被暂停,因此该线程不会占用CPU资源,这可以使其他线程有机会获得更多的CPU时间片。此外,当线程被挂起时,它的上下文环境(如寄存器状态、栈内容等)也将被保存下来,以便于恢复该线程时可以继续执行之前的任务。
需要注意的是,SuspendThread函数对于正在独占资源的线程使用时应该非常小心,因为该函数可能会导致整个系统因为死锁问题而停滞。如果一个线程被挂起,而它正在占用某个共享资源,那么其他线程将无法获取到该资源,可能会导致整个系统陷入死锁状态。
因此,尽管SuspendThread函数可以暂停线程的执行,但应谨慎使用,并保证线程间的共享资源在使用时能够正确同步。

SetWindowsHookEx

SetWindowsHookEx是Windows操作系统中的一个函数,用于安装一个操作系统级别的钩子。它可以使一个应用程序或者 DLL 监听全局或局部钩子事件,比如键盘、鼠标、事件等等。

通过调用SetWindowsHookEx函数,可以安装全局或局部钩子,挂载其回调函数,以便在事件发生时,能够接收到通知并进行相关的操作。回调函数的内容根据具体的钩子类型而定。例如,对于键盘钩子,回调函数可能会记录用户按下的按键;对于鼠标钩子,回调函数可能会记录用户的鼠标事件。
SetWindowsHookEx函数包含4个参数,分别是:

  1. idHook:要安装的钩子类型。可以是全局钩子或局部钩子,具体的定义参考Microsoft MSDN文档。
  2. lpfn:钩子的回调函数,该函数会在事件发生时进行调用。
  3. hmod:包含指定函数(lpfn)的模块的句柄,一般为null。
  4. dwThreadId:指定钩子的线程,为0表示钩子适用于所有线程。

需要注意的是,由于全局钩子是在操作系统层级别下运行的,因此在使用时应该谨慎考虑安全问题,并保证回调函数的效率,避免对系统性能产生负面影响。

映像劫持 (IFEO)

IFEO是Windows操作系统中的一个调试技术,全称是Image File Execution Options。它允许开发人员在调试应用程序时对程序的行为进行自定义控制,以便更好地进行调试和分析。
在IFEO中,开发人员可以使用一个叫做“调试器”(Debugger)的功能来指定一个程序在启动时应该如何被处理。具体地说,在IFEO中,可以为一个应用程序或进程指定调试器,或者在未指定调试器的情况下,对应用程序中的各种异常进行自动化调试。
开发人员可以在注册表中创建一些项,以便将程序与调试器进行关联,当程序启动时,Windows会自动执行与它相关联的IFEO项。例如,创建一个名为"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\myapp.exe"的注册表项,将myapp.exe关联到调试器dbg.exe。
IFEO在调试应用程序时是非常有用的。例如,使用IFEO可以绕过应用程序的代码保护机制,以便深入了解应用程序的行为,并检查是否存在潜在的安全漏洞。需要注意的是,由于IFEO对应用程序的行为进行了修改,因此在生产环境中应谨慎使用。

APC(异步过程调用)

APC是Windows操作系统中的一个概念,指异步过程调用(Asynchronous Procedure Call)。异步过程调用是一种在 Windows 用户模式下执行的机制,用于使系统内的线程能够异步地执行自定义的代码。它允许处理类似于信号的异步事件,并且相对于内核回调,APC具有易编程、灵活和效率等优点。
在Windows操作系统中,线程同样是系统资源,一个正在运行的线程可能因为等待某些条件(比如I/O操作)而被阻塞,从而导致系统资源的浪费。APC允许线程在等待的过程中,可以执行其它任务,从而更好地利用系统资源。APC需要与QueueUserAPC函数一起使用,用于将一个异步过程调用函数添加到指定线程的异步过程调用队列中。
当指定的线程被系统调度时,系统中维护的异步调用队列会将异步过程调用函数从队列中提取出来执行。异步过程调用是以用户模式的状态运行的,不需要进入内核模式,因此运行效率非常高。
需要注意的是,APC能够让用户线程异步执行代码,但是由于该机制存在副作用和潜在的不稳定性等问题,因此在使用时需要谨慎考虑,并遵循相应的编程规范,以避免出现不可预期的行为和异常状况。

什么是异步

异步(Asynchronous)指的是在程序执行过程中,如果遇到某些耗时的操作,操作系统会将该操作交给其他线程或后台进程去处理,从而避免主线程被阻塞,提高程序的性能和响应速度。在异步模型中,程序会立即继续执行之后的代码,而不是等待当前操作完成再进行下一步操作。
异步的一个典型应用是异步 IO 操作,比如从文件中读取数据或发送网络请求等。在传统的同步 IO 模型中,当进行 IO 操作时,程序会一直等待数据返回,直到操作完成才能进行后续的逻辑。而异步 IO 模型中,应用程序会将 IO 请求发送给操作系统,然后继续执行其他的逻辑,当操作完成时,操作系统会将结果传递给应用程序进行处理。
在异步模型中,可以使用各种异步机制,比如异步函数、异步事件、异步委托等。在使用异步模型时,需要特别注意处理异步操作返回结果的方式,以及异步操作之间的依赖关系和错误处理等问题。
需要注意的是,虽然异步模型可以提高程序的性能和响应速度,但也增加了编程的难度和复杂度,需要开发人员有比较深入的理解和处理异步代码的经验。

AtomBombing内存

AtomBombing内存是一种以前未曾发现的 Windows 恶意攻击方式,它允许攻击者在不被检测到的情况下执行恶意代码。这种攻击方法可以绕过现代杀毒软件的检测和排查,因为它不依赖于任何安全漏洞。
AtomBombing攻击在 Windows 操作系统中利用“注入狗(Atom Tables)”的方式,将恶意代码藏在系统内部的 Atom 数据结构中,然后使用Windows原生的API在受感染的进程中执行该恶意代码。这种攻击方法是通过利用已有的API和操作系统内部结构来实现的,因此很难被检测和阻止。
与传统的攻击方式相比,AtomBombing技术所采用的方法更为隐蔽,其攻击过程在网络流量和系统日志中不会留下痕迹。由于该技术可以利用 Windows 操作系统内部的机制来执行恶意代码,因此它可以被用于窃取敏感数据、盗用身份信息等多种攻击,并且更加危险和难以检测。
为了免受 AtomBombing 攻击的威胁,Windows 操作系统可以通过更新补丁等安全机制来加强安全性。此外,用户也应该避免下载和运行未知的程序,并在使用 Windows 操作系统时保持警醒。

Rootkits

Rootkits(根工具包)是一种恶意软件,它被黑客用于从系统中隐藏存在和活动,以及执行恶意操作而不被检测或阻止。Rootkits 的主要作用是深入操作系统并取得最高权限(例如管理员权限,或者是在 Linux 系统中的 root 权限),从而可以操控和控制目标计算机,收集敏感信息,窃取密码等。
Rootkits 能够工作的主要原因是它们可以隐藏自己的存在,而且它们可以从系统内核级别操作,并且成为系统的一部分,从而在系统执行任何操作时都可以几乎不被检测到。Rootkits 的常见形式包括软件 Rootkits 和硬件 Rootkits。
软件 Rootkits 在系统中呈现出虚假的进程、文件和注册表项等信息,并可以在系统启动时自启动和工作,而硬件 Rootkits 被放置在计算机硬件上,通常是在硬盘驱动器或 BIOS 中,因此更难被检测或清除。
防御 Rootkits 的最佳方法之一是使用专业的杀毒软件和安全工具,以保持计算机的安全性。此外,用户还可以使用防火墙和 IDS 检测 Rootkits 的操作,并进行及时的更新和维护。另外,保持系统补丁和应用程序的更新也是减少 Rootkits 感染和扩散的重要一环。

IAT HOOKING

IAT HOOKING(Import Address Table Hooking)是一种恶意软件攻击技术,这种技术利用了 Windows 操作系统中的一个系统模块——导入地址表(IAT)的漏洞。在这种攻击中,黑客会利用程序加载IAT表中的DLL文件名和函数指针,并将其重定向到被攻击者修改过的代码段中,从而执行恶意代码。
IAT HOOKING技术通常被用于实现Rootkits,通过将攻击代码插入IAT表的恶意DLL并重定向IAT表中的函数指针,黑客可以实现对操作系统和应用软件的完全控制,并隐藏攻击代码的存在。
虽然IAT HOOKING技术已经被广泛研究和应用,但是许多防病毒软件仍无法检测到这种高级威胁。为了防范 IAT HOOKING 攻击,Windows 操作系统可以通过采用数字签名和完整性保护技术来保证系统和应用程序的安全运行。
此外,防火墙和安全软件可以实现维护IAT表的完整性,从而检测和阻止 IAT HOOKING 攻击。最重要的是,用户在使用电脑时必须保持警觉,不下载和运行不信任的程序和文件,以避免受到 IAT HOOKING 攻击的威胁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Back~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值