#

西安周末游

说好的一人一篇游记,3年了,妹子的这篇游记终于出炉了
自打成都到西安通高铁,周围无数同事到西安打卡,我也是心心念念好久,一直没有机会,趁这次中级会计考完,特想放松放松。周一开会时坐旁边的同事去过西安,心血来潮,跟小哥哥商量去西安可好,小哥哥痛快答应,于是开启了这次断腿的旅程。




Windows内核重拾:DebugObject

0x00 什么是DebugObject

在Windows系统中对调试的支持主要在三个模块中,分别为内核执行体(多核处理器一般为ntkrnlmp.exe,以Dbgk为前缀,主要负责注册和监听调试事件、管理调试对象等)、原生系统库ntdll.dll(DbgUi为前缀,负责将底层的调试对象封装起来)、子系统dll(kernelbase.dll)。而调试对象(DebugObject)是一个结构体,支持用户模式调试,由一系列的标志(决定对象的状态)、一个事件、一个调试事件双链表组成。

IDA Pro ClassInformer使用指南(翻译)

0x00 介绍

本文主要针对几乎没有使用IDA Pro经验及逆向水平一般的人。IDA对初学者还是有一定的门槛的,主要是由于IMO没有详细介绍IDA使用环境设置和插件使用的指南。我的目标是展示当我在客户端(这里应该是开发外挂)开发遇到困难的时候,我是如何解决这个问题的方法和策略。在本指南中我将演示如何从SDK中的一个字符串识别出二进制文件中反汇编代码中的函数。目标是将IDA中原始的汇编代码转换为ClientMode::CreateMove函数。

Kernel Data and Filtering Support for Windows Server 2008(翻译)

1.介绍

这仅仅是一份供接受审阅和反馈的初稿。收到独立软件开发商的反馈后,一些内容和函数可能会改变。此外,这份文档仅限于适用Microsoft Windows Server® 2008。这些API是根据ISV社区讨论确定的,按照Kernel Evaluation Criteria
很多系统管理安全类应用程序都需要访问内核信息及过滤系统调用的能力,其中一些操作涉及一些进程、线程对象。之前,当第三方软件开发商(ISV)想实现监控/修改/阻断操作时,但操作系统现有提供的过滤回调不支持时,他们一般采用的方式为挂钩在内核服务表(SSDT)中这些内核对象管理(OB)的API。提供官方支持的文档及过滤和访问内核信息的接口有利于操作系统平台,因为挂钩SSDT从来没有官方支持过并且可能会影响操作系统的稳定性。此外,随着在x64平台采用内核补丁保护技术(KPP),在x64平台,ISV不能像32位x86平台中那样使用SSDT Hook了。

脱壳的艺术(翻译:The Art of Unpacking)

摘要

脱壳是一门艺术,同时也是一种智力挑战,在逆向领域脱壳是最令人头脑兴奋的智力游戏之一。在某些情况下,逆向工作者需要对操作系统内部原理非常熟悉,这样才能识别和绕过壳开发人员的反逆向分析技术,耐心和聪明是成功脱壳的两个主要条件。这些挑战包括壳开发人员开发壳,同时在另一方面也包括逆向工作研究者如何绕过壳的这些保护。
这篇文章主要介绍了壳开发人员使用的一些反逆向工程技术,同时也讨论如何绕过和关闭这些保护的技术和一些公开的工具。当遇到被壳保护的恶意代码的时候,这些信息能让逆向工作研究人员尤其是恶意代码分析人员更加容易的去识别这些技术,然后绕过这些反逆向分析技术去进行下一步的分析工作。这篇文章的第二个目的是让一些开发人员能够去使用这些技术在一定程度上减缓被逆向分析的可能,给代码增加更多的保护。当然,遇到逆向分析高手的时候,什么方法都没辙。
关键词:逆向工程,壳,保护,反调试,反逆向分析

msimg32.dll劫持失败原因分析

问题描述

前一段事件做一个题的时候,需要修改主程序执行逻辑,当时想想应该很简单,直接做dll劫持然后在该DllMain中去修改主程序Exe的执行逻辑(因为之前看到飘云阁的 Visual Assist X劫持用的msimg32)。很顺利的在调试系统(win xp)做完了,达到了预期目的。但是拿到win7和win10上运行顿时就不行了。
主要问题有两个:

  • win7上直接不加载劫持dll,msimg32.dll了
  • win10上会加载msimg32.dll,但是加载时间靠后,在主程序逻辑执行后才被加载,这会修改逻辑也没用了

当时时间紧急,也比较慌。没有分析,改了方案直接修改主程序二进制,文件补丁方式做的

Linux木马分析初体验(BillGates及XORDDOS查杀)



分析工具:

  • ida pro
  • edb
  • strace

事情是这样的,某一天发现某一台服务器数据流量异常,怀疑中了木马而且是一台Windows机器,想着就能一展我手动杀毒的技能了,但是开了机才发下这台机器上通过Hyper-V装了另外5台虚拟机,比我想象中复杂多了而且在机房狭小的环境中。在几台Windows机器上找了良久也未发现木马的踪迹,难道是什么高级木马?好在师兄经验丰富一想肯定是剩下的那台centos有问题,果然一找一大堆,billgates附送个xorddos,不是说linux很安全么,怎么会中马呢? linux是很安全但是耐不住用的人没安全意识啊,直接暴露在公网的主机被设置了ssh弱密码。好了故事编完了,进入正题,这篇博客主要是这两天的linux系统下的木马分析与查杀的一个简单记录。

BillGates

BillGates就是上面那个比重最大的Linux.BackDoor.Gates.5,2014年就被drweb曝光过,网上很多分析的很多了,但是还是自己跟着走一遍还是能学到很多东西的,特别是第一次分析Linux木马的我。

静态分析

基本信息

漏洞调试-释放重引用UAF-cve-2011-0065

##实验环境
操作系统:Windows xp、
辅助环境: MetaSploit、Windbg

##准备
继续漏洞分析学习,上次分析了0158之后就买了泉哥的漏洞战争,很详细很nice,不用到处去找了就跟着书上流程走就可以了。

###样本生成
虽然书的配套资料有样本,但是还是按照之前的流程用MetaSploit生成了漏洞利用样本,然后用python写了个小脚本把样本存下来了(主要是ruby写的利用代码,不怎么看得懂用浏览器访问也不好存)。python脚本和漏洞样本如下

漏洞调试-栈溢出漏洞-cve-2012-0158

实验环境

操作系统:Windows 7(7600)、office 2007(12.0.4518.1014)
辅助环境: MetaSploit、Windbg、ida pro

前言

这个漏洞很老,但是很好用,经常看到有利用的文章,之前也没有认真分析过系统漏洞相关的东西(ps 主要是找工作的时候被问漏洞相关的时候自己基本答不上来),所以花上2天时间分析研究下。
网上关于这个漏洞分析的文章比较多,主要看了看雪的那篇分析文章,发现就是一个由于程序员疏忽小于写成大于造成的栈溢出漏洞,比较经典典型。

漏洞调试

How to debug a Visual C++ Runtime Error




一个程序总算是把一些异常崩溃这些弄得差不多了,能够长时间稳定运行了,但是还是会随机出现崩溃这个问题,而且崩溃了没提供调试选项,没有装VS,只有复制个windbg过去,然后出现断点 查看堆栈信息
1
2
3
4
5
6
7
0:009> k
ChildEBP RetAddr
064afd8c 779ef826 ntdll!DbgBreakPoint
064afdbc 757833ca ntdll!DbgUiRemoteBreakin+0x3c
064afdc8 77989ed2 kernel32!BaseThreadInitThunk+0xe
064afe08 77989ea5 ntdll!__RtlUserThreadStart+0x70
064afe20 00000000 ntdll!_RtlUserThreadStart+0x1b

Ubuntu Boost使用小记

最近写一个linux版的小程序需要用到Boost库,这里记录下使用。
使用Linux版boost库有两种方式,apt-get和下源码自己编译,这里使用第一种方式。
过程记录

  • 1.sudo apt-get install libboost-dev libboost-thread1.55-dev libboost-system1.55-dev
  • 2.gcc选项 -L/usr/lib -lstdc++ $(PTHREAD) -lboost_thread -lboost_system
  • 3.然后make就可以了

SysinternalsSuite工具使用之Procmon

SysinternalsSuite工具箱是windows系统上强大的系统辅助套装,Procmon是其中最常用的工具之一,是Windows系统下最好用的实时监控工具,功能强大、稳定、兼容性好。可用于监控文件系统、进程线程活动、网络、注册表活动,能够对Windows系统全局事件进行监控,并提供强大的过滤功能,我认为就是监控Windows系统的wireshake。主要用途如下:

  • 注册表:监控注册表的创建、读取、删除或查询操作。
  • 文件系统:监控本地磁盘或网络驱动器中文件的创建、写入、删除等操作。
  • 网络:监控进程的 TCP/UDP 源和目标及流量。
  • 进程:可以被动监控进程和线程的活动,包括线程的启动或退出等。不过通常情况下我们都使用 Process Explorer 来监控进程。
  • 性能分析:Process Monitor 还可以捕获进程的 CPU 时间和内存使用,通常情况下这些信息我们也主要依赖 Process Explorer 来监控分析