利用TLS反制攻击者

admin 2022年10月5日13:52:53评论48 views字数 1016阅读3分23秒阅读模式
前言


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

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


1.

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


对于TLS,在公众号之前的文章中有过分析(在16.2的部分):

分析

达达,公众号:Th0r安全PC端恶意代码分析Lab15.1-18.5


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则是状态,由此我们可以根据判断程序状态来决定是否执行,可以看下方的宏定义:

利用TLS反制攻击者



3.

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

    

利用TLS反制攻击者



4.

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

利用TLS反制攻击者

    接下来扔到OD里看一下:

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

利用TLS反制攻击者

利用TLS反制攻击者



5.

    如何让红队上钩呢??(当然这个文案不够吸引人)

    

利用TLS反制攻击者

利用TLS反制攻击者

    遇到这种情况傻子才会打开,红队选手普遍第一反应就是扔OD找关键信息,当扔OD后,就会成功加载我们的shellcode,并把红队选手的脸打肿...



    结尾:这是很简单的一种反调试手段,具体可以深入改更骚的来反制。 


如何分析TLS程序,可以查看下面的16.2部分:

分析

达达,公众号:Th0r安全PC端恶意代码分析Lab15.1-18.5


原文始发于微信公众号(Th0r安全):利用TLS反制攻击者

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月5日13:52:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用TLS反制攻击者http://cn-sec.com/archives/1330578.html

发表评论

匿名网友 填写信息