反调试之反制HVV红队

admin 2021年3月30日02:57:12评论75 views字数 773阅读2分34秒阅读模式
前言


    简单分享一个通过TLS反调试来反制红队,当红队试图调试的话,则会成功调用我们的shellcode,直接反打红队。

    (PS:凭什么蓝队就要挨打)

        源码:关注本公众号回复 7474 即可获取


1.

    TLS有一个特点,就是在程序EP执行之前就运行。那根据这一特性,就可以达到目的。


2.

    TLS调用过程分析:

#pragma comment(linker,"/INCLUDE:__tls_used");//声明TLS
#pragma data_seg (".CRT$XLB") //注册PIMAGE_TLS_CALLBACK _tls_callback =  我们的回调函数;#pragma data_seg ()
//回调函数原型void NTAPI __stdcall TLS_CALLBACK(PVOID DllHandle, DWORD dwReason, PVOID Reserved);
    根据上方代码,其实简单说,TLS_CALLBACK这个函数在程序执行之前就运行了,这样解释起来,就比较通俗易懂了吧

    在TLS_CALLBACK的第二个参数dwReason则是状态,由此我们可以根据判断程序状态来决定是否执行,可以看下方的宏定义:

反调试之反制HVV红队



3.

    正常代码分析:在下方代码中,可以看到TLS的回调函数test是比main函数更加提前执行的。当进程创建时,就执行了test函数

    

反调试之反制HVV红队



4.

      反制红队:在下图中,我首先准备了一个shellcode(弹窗),当程序创建时,则先调用我们的shellcode

反调试之反制HVV红队

    接下来扔到OD里看一下:

     可以看到,程序在进程创建时,就首先调用了我们的shellcode。当shellcode执行完才会载入程序。

反调试之反制HVV红队

反调试之反制HVV红队





反调试之反制HVV红队


本文始发于微信公众号(连接世界的暗影):反调试之反制HVV红队

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年3月30日02:57:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   反调试之反制HVV红队http://cn-sec.com/archives/312557.html

发表评论

匿名网友 填写信息