VMware 与 Credential Guard 不兼容 Posted on 2018-06-15 | In Problems&Solutions | 0x01 Problem每次更新完 Windows10 后,使用 VMware Workstation 时都会出现以下错误: VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM ... Read more »
二进制程序分析框架 angr Posted on 2018-05-29 | In Program Analysis | angr 是一个功能强大的二进制程序分析框架,可用于程序的静态分析和动态符号执行。支持 x86、ARM、MIPS 和 PPC 架构中 32 bit 和 64 bit 可执行程序的分析。 0x01 安装angr 是一个 python 库,适用于 python2.x 系列,暂时不支持 python3.x ... Read more »
Linux 系统调用与虚拟动态共享库 Posted on 2018-05-17 | In Linux | 系统调用是应用程序与操作系统间的接口。Linux 下使用 0x80 号中断作为系统调用入口,使用 eax寄存器指定系统调用号,ebx、ecx、edx、esi、edi 和 ebp 用于传递调用参数;Windows 下使用0x2E 号中断作为系统调用入口。 直接使用系统调用编程有以下弊端:1)系统调用 ... Read more »
Linux 动态链接 Posted on 2018-05-08 | In Linux | 动态链接在程序运行时才对组成程序的目标文件进行链接,使用动态链接的方式可使得多个进程共用物理内存中的同一个共享目标文件,从而可节省内存空间。此外,使用动态链接使得各个模块更独立,并方便模块的更新。 为了验证多个进程是否可以共用物理内存中同一个共享对象文件中的代码段,需要将进程虚拟地址转换为对应的物理 ... Read more »
Linux 延迟绑定机制 Posted on 2018-04-29 | In Linux | 如果使用动态链接方式生成的程序模块中使用大量的函数引用,在程序执行时会花费大量的时间用于模块间函数引用的符号查找和重定位,导致程序性能下降。由于程序中可能存在部分不常用的功能模块,那么在程序开始执行时就完成所有函数的链接工作将会是一种浪费。因此,Linux 系统采用延迟绑定机制优化动态链接程序的符号 ... Read more »
Linux glibc heap house-of-force Posted on 2018-04-19 | In Exploit | 该利用方法通过堆溢出漏洞修改 top chunk 的 size 字段,使得 malloc 一块很大的内存可使用 top chunk 进行分配,当更新 top chunk 的 ptr 时会发生整数溢出,从而控制 top chunk ptr 为指定目标内存地址,如 .bss 段、.data 段和 GOT ... Read more »
Linux glibc heap house-of-spirit Posted on 2018-04-13 | In Exploit | House of Spirit 利用方法针对 fastbin 中的 chunk,该方法不修改 chunk 结构中的 metadata,而是直接控制释放 chunk 时传递给 free() 函数的指针,使其指向内存中伪造的 fake chunk,free() 函数执行时会将伪造的 chunk 放入 f ... Read more »
配置 Linux Python 开发环境 Posted on 2018-03-16 | In Linux | 环境:1264bit Ubuntu 16.04.4 LTS (Xenial Xerus)Python 2.7.12 0x01 安装1. virtualenvwrappervirtualenv 是一个可以在同一台计算机中隔离多个 Python 环境的工具。它能够用于创建独立的 Python 环境,使得 ... Read more »
zsh 使用笔记 Posted on 2018-03-10 | In Linux | Zsh 是一款功能强大终端(shell)软件,既可以作为交互式终端,也可以作为脚本解释器。它在兼容 Bash 的同时,还有提供了很多改进,例如: 更高效更好的自动补全更好的文件名展开(通配符展开)可定制性高 0x01 安装1. 安装 zsh首先安装 zsh,并设置 zsh 为系统默认 b ... Read more »
Linux 堆内存溢出 unlink 攻击 Posted on 2017-12-31 | In Exploit | 在二进制漏洞利用中,缓冲区溢出漏洞是最常见的一类漏洞,这类漏洞具有很强的危害性,通常能被攻击者利用并实现任意代码执行。缓冲区溢出漏洞可分为基于栈的内存溢出和基于堆的内存溢出。本文主要介绍如何利用堆内存溢出进行 unlink 攻击,进而实现任意代码执行。 首先看以下漏洞程序:1234567891011 ... Read more »