![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安全研究
文章平均质量分 88
蛇矛实验室
丈八网安蛇矛实验室
展开
-
网络靶场实战-物联网安全Unicorn框架初探
这一小节,我们学习了unicorn框架的使用基础,并通过一道ctf题目仿真并解出了flag。同时学习了unicorn在固件解密方向的思路,使我们更加了解unicorn框架。原创 2024-04-26 15:32:18 · 803 阅读 · 0 评论 -
maldev tricks在注册表中存储 payload
注册表是 Windows 操作系统中一个重要的数据库,它包含 Windows 操作系统和应用程序的重要设置和选项。由于注册表的功能非常强大,因此注册表对于恶意程序来说是非常有利用价值的。在 windows 注册表中存储二进制数据,这是一种常见的技术,常被恶意软件用于持久化或存储恶意的 payload。原创 2024-04-26 15:29:56 · 291 阅读 · 1 评论 -
网络靶场实战-杀软EDR对抗-脱钩
一般的杀毒软件会在我们进程启动的时候注入DLL到进程中,然后对系统函数进行Hook(挂钩).从而拦截我们进程的执行流程,当然这个流程只针对于未被添加到白名单的程序.我们来看下效果图.这里我设置了白名单为apps目录,在次目录下不会被检测.我们运行一个系统自带的软件Notepad来看下效果.首先X64dbg附加进程我们随便搜索一个函数看看是否被HOOK。原创 2024-04-25 12:23:06 · 1051 阅读 · 0 评论 -
VBA隐藏技术stomping
由于各种工具对VBA的检测角度不同,单一宏隐藏技术不能不能满足我们的要求,因此在对抗检测工具时,我们需要打出一套组合拳,将文件重定向与VBA stomping相结合,使其无法通过解析源码方式分析脚本,也无法通过找到脚本的二进制文件来提取P-Code。原创 2024-04-25 12:17:40 · 911 阅读 · 0 评论 -
网络靶场实战-物联网安全qiling框架初探
在这一小节中,我们简单学习了qiling框架,我们使用ctf例题以及qilinglab的11个闯关题目进行练习,熟练掌握了qiling框架的基础使用。后面的小节中,我们将使用qiling框架对仿真设备进行实例fuzz测试。原创 2024-04-25 12:15:28 · 894 阅读 · 4 评论 -
免杀技术之白加黑的攻击防御
黑就是指我们自己的文件,没有有效证书签名,也不是微软文件。手动检测的方式也很简单,我们只需要多注意这种exe只带有一个dll的文件,因为如果是木马的话他一般不会有很多文件,我们可以dll右键属性看看是否有签名,如果没有就很可疑,如果有的话看看签名是否有效,这里也可以用代码去代替这个过程。此时看到这个图,不要认为我们又要换白程序了,报错是成功的一大步,到这里就说明我们已经成功百分之90了,这里的问题是我们dll虽然有了但是程序加载我们的dll后调用的函数我们并没有提供,好的我们用dumpbin来看下。原创 2024-04-24 19:00:11 · 1047 阅读 · 0 评论 -
进程命令行参数欺骗
一些事件记录工具会监视目标进程的创建从而记录进程创建后的一些信息,可以在创建进程的时候使用假的命令行参数进行欺骗,从而误导这些分析工具,还存在一些进程管理工具,比如 Process Hacker 会通过目标进程的 PEB 中获取进程命令行参数信息,它会根据命令行参数的长度读取命令行参数信息,只需要修改命令行参数的长度进而欺骗这些进程管理工具。在进行进程命令行参数欺骗时,注意用于欺骗的命令行参数长度(在创建挂起的进程时传递的参数)要大于真实的命令行参数长度(在运行时修改的命令行参数)。原创 2024-04-24 18:51:37 · 575 阅读 · 0 评论 -
VBA脚本终章编译器崩溃
在上篇《VBA隐藏技术stomping》中,我们分析过,当编译脚本的VBA版本与运行时版本一致时,才能执行P-Code,可以通过修改VBA脚本的源码,来欺骗OLE分析工具,但是该方法无法欺骗编译器,因为编译器版本与脚本文件运行版本一致时,编译器会将P-Code反编译,分析人员可以看到VBA脚本的真实代码,stomping技术便会失效,因此我们需要阻止分析人员打开编译器。修复完脚本文件后,重新将文档文件打包,修改后缀,然后打开word,点击的编译器编辑按钮,发现VBA脚本编译器可以正常打开。原创 2024-04-19 14:31:11 · 529 阅读 · 0 评论 -
网络靶场实战-Qiling Fuzz实例分析
接下来我们编写fuzz.py,前面我们触发快照的地址为getenv("REQUEST_METHOD") 执行后的一条指令,那么我们在编写fuzz.py中ql.run的起始地址时就应该为下一条指令,这里为了方便我直接让其跳过if判断直接从cgibin_parse_request处开始执行(0x40c0a4)。在上一小节中,介绍了qiling框架的背景和基础使用,并以相关的CTF和qilinglab实例进行练习加深对qiling框架的使用,后续并简单介绍了qiling fuzz的功能。原创 2024-04-19 14:27:11 · 1227 阅读 · 9 评论 -
进程注入系列Part 1 常见的进程注入手段
进程注入是一种众所周知的技术,恶意程序利用它在进程的内存中插入并执行代码。进程注入是一种恶意程序广泛使用的防御规避技术。大多数情况下,恶意程序使用进程注入来动态运行代码,这意味着实际的恶意代码不需要直接写入磁盘上的文件中,以避免被防病毒软件的静态检测所发现。简单来说,进程注入就是将一段数据从一个进程传输到另一个进程的方法,这种注入过程可以发生在执行操作的同一进程(自注入)上,也可发生在外部进程上。原创 2024-04-18 10:09:07 · 1054 阅读 · 0 评论 -
免杀技术之优雅地绕过函数调用链
最简单的绕过是使用类似功能的函数进行替代,这里也可能存在一个问题,就是常见的那些函数已经被挂钩了,因为很多沙箱默认就挂钩了很多内存相关的API,如果我们如果只是替换一些函数可能还是会被检测到,当然不排除这些方式可以绕过一些沙箱,单这次遇到的沙箱我测试替换了很多API还是会被检测到。下一步我们要去判断软件架构,为什么要进行这一步是取决于我们的ShellCode是多少位的,这里我的ShellCode是64位,所以要过滤掉32位进程,不然在后续找到可读可写可执行内存的时候我们虽然可以写入到内存,但不能执行起来。原创 2024-04-18 09:52:41 · 805 阅读 · 0 评论 -
网络靶场实战-加密固件分析
不同镜像的解密程序,这里的以fortigate为例,具体思路为fortigate的硬件设备固件都被加密,而fortigate提供多个镜像版本(比如vmx和kvm版本的固件),这些固件我们可以无条件获取,厂商在发布同一个系列固件中,很有可能使用同一份代码。使用下面的命令,对文件中重复出现相同数据的行进行次数统计并排序,排序后发现,有64行数据重复出现了3800次左右,其他数据则是500次以下,64行的16字节数字恰好是1024字节,也就是说密钥长度为1024字节。解密固件的最简单方法是在固件中查找解密程序。原创 2024-04-17 10:03:20 · 1038 阅读 · 1 评论 -
网络靶场实战-恶意程序自启动
上述介绍中,可以知道该攻击利用了白加黑,那么想在每次开机时都执行恶意程序,saxbn.exe需要设置自启,该样本对saxbn.exe自启方式比较隐蔽,如果在没有原始样本的情况下,找到自启配置还是比较困难的,在隔离环境中执行样本,并将原始样本清理,然后试着用常规方式,看能否找到可疑的启动项。Autoruns 对自启动的检测是比较全面的,然而遗憾的是,我们在Autoruns中依然没有找到saxbn.exe自启动的信息,但是Autoruns帮我们排除了很多saxbn.exe可能配置的方法。原创 2024-04-17 09:58:48 · 1004 阅读 · 0 评论 -
网络靶场实战-Juniper SRX远程代码执行漏洞复现分析
首先是未授权文件上传漏洞,我们可以通过poc快速定位到webauth_operation.php文件中,php使用了includes/sajax.php文件,并调用了sajax_init()和sajax_handle_client_request()函数。在sajax_handle_client_request函数的末尾,我们可以看到"$internal_functions"变量,通过打印变量中user的值,我们可以获取150个单独的功能,其中对于我们比较重要的就是文件上传和写入的功能了。原创 2024-04-16 11:19:22 · 971 阅读 · 0 评论 -
BypassUAC漏洞挖掘和代码集成
这里是我们要查询的关键,我们去看看注册表HKCU\Software\Classes\ms-settings\Shell\Open\command 存放的是什么。这里需要注意的是目前很多杀毒软件在我们的程序写注册表值到HKCU\Software\Classes\ms-settings\Shell\Open\command会报毒,解决办法网上也有很多种,可自行测试。在启动程序之前先创建HKCU\Software\Classes\ms-settings\Shell\Open\command的项。原创 2024-04-16 11:07:50 · 957 阅读 · 0 评论 -
无线网络安全之WiFi Pineapple初探
总结一下上面的内容,目前WiFi Pineapple生成了Management AP和Open AP,我们的PC机连接Management AP从web界面管理wifi pineapple,而Open AP开放给所有人使用。Allow List中添加允许的客户端后,才可进行访问。WiFi Pineapple连接电源后,等待机器开机后,蓝灯开始闪烁,会生成一个Pineapple_xxxx的WiFi AP,我们使用pc连接wifi后访问http://172.16.42.1:1471进行系统设置。原创 2024-04-16 11:05:10 · 1032 阅读 · 0 评论 -
网络靶场实战-PE 自注入
在 PE 文件中,重定位表位于 ". reloc" 节。FileHeader 结构 (IMAGE_FILE_HEADER)中给出了节表的数量,通过循环将 PE 文件中的所有节表数据拷贝 (memcpy)到分配的内存中,每个节表数据从 IMAGE_SECTION_HEADER.PointerToRawData 开始复制,复制的大小为 IMAGE_SECTION_HEADER.SizeOfRawData,复制到分配内存基地址偏移为 IMAGE_SECTION_HEADER.VirtualAddress 处。原创 2024-04-15 11:09:53 · 645 阅读 · 0 评论 -
基于veh+sleep免杀CS
这里为一个exe加载CS ShellCode的简单流程,在我们生成ShellCode分为stager和stageless两种,从上图可知最后都会加载beacon.dll这个程序,原始生成出来的shellCode我们很容易处理加密解密,但是ShellCode执行时加载的beacon的ShellCode我们就是很好处理了。Free掉之后会直接掉线并且程序崩溃,我们基本可以确定这是主要的,但是这里并不是真正的beacon的ShellCode,仍是一个主要的检测点,我们目前只针对这里做处理。原创 2024-04-15 09:56:57 · 915 阅读 · 0 评论 -
软件无线电安全之HackRF One初探
在这一小节中,我们初步了解了HackRF的接收和发送信号的功能。并通过指定操作进行了接收和发送,并以GPS欺骗实验为例,对HackRF One的信号发送有了一定程序的理解。在后续的小节中,我们会以GNU Radio相关实验为例深入了解HackRF One的信号接收和发送能力。原创 2024-04-14 12:54:09 · 3022 阅读 · 1 评论 -
网络靶场实战-反调试技术(下)
通过检测自身父进程来判定是否被调试,原理非常简单,我们的系统在运行程序的时候,绝大多数应用程序都是由explorer.exe这个父进程派生而来的子进程,也就是说如果没有被调试其得到的父进程就是explorer.exe的进程PID,而如果被调试则该进程的父进程PID就会变成调试器的PID值,通过对父进程的检测即可实现检测是否被调试的功能。需要注意的是,虽然使用 ThreadHideFromDebugger 可以增加程序的安全性,但它并不是绝对的安全措施,因为仍然存在其他方法可以绕过或检测到线程隐藏。原创 2024-04-14 12:39:17 · 554 阅读 · 0 评论 -
网络靶场实战-反调试技术(上)
反调试技术,是一种防止逆向的方案。逆向人员如果遇到复杂的代码混淆,有时会使用调试器动态分析代码逻辑简化分析流程。例如恶意软件通常会被安全研究人员、反病毒厂商和其他安全专业人员分析和调试,以了解其行为和功能,并开发相应的安全措施来保护系统,这时,恶意软件开发人员就会使用反调试技术阻碍逆向人员的分析,以达到增加自己恶意代码的存活时间。此外,安全人员也需要了解反调试技术,当遇到反调试代码时,可以使用相对应的反反调试。原创 2024-04-14 12:35:32 · 923 阅读 · 0 评论 -
网络靶场实战-反射DLL注入
下图说明了反射 DLL 注入的工作原理。在之前的文章中,通过模拟 Windows 映像加载程序的功能,完全从内存中加载 DLL 模块,而无需将 DLL 存储到磁盘上,但这只能从本地进程中加载进内存中,如果想要在目标进程中通过内存加载 DLL 模块,可以通过一些 I/O 操作将所需的代码写入目标进程,但这大量的 I/O 操作对病毒引擎来说过于敏感,还有一个思路就是编写一段引导程序,这段引导程序用来模拟 Windows 映像加载程序的功能加载所需 DLL 模块,这就是本文所描述的技术,反射 DLL 注入。原创 2024-04-11 14:02:25 · 650 阅读 · 0 评论 -
ModuleStomping
常规的注入手段通常的工作流程是,内存分配,写入载荷,执行载荷。而 ModuleStomping 注入通过利用已经 "分配" 的 RX 区域省去了内存分配的步骤,其中 shellcode 被注入到合法的牺牲(sacrificial) DLL 的 .text 段中。优点:不会使用动态分配内存相关的 API。shellcode "隐藏" 在合法 DLL 代码段中。shellcode 写入的内存区域类型为 image 类型,而不是可疑的私有已提交(private committed)的可执行内存原创 2024-04-10 13:25:28 · 427 阅读 · 0 评论 -
Linux系统下的HOOK
Linux系统下的HOOK原创 2024-04-10 13:21:04 · 635 阅读 · 0 评论