帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:LIBC  hooking  钩子  
Go LD_PRELOAD backdoor experiment

  • 源代码名称:go-ldpreload-backdoor
  • 源代码网址:http://www.github.com/mattbostock/go-ldpreload-backdoor
  • go-ldpreload-backdoor源代码文档
  • go-ldpreload-backdoor源代码下载
  • Git URL:
    git://www.github.com/mattbostock/go-ldpreload-backdoor.git
  • Git Clone代码到本地:
    git clone http://www.github.com/mattbostock/go-ldpreload-backdoor
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/mattbostock/go-ldpreload-backdoor
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 使用Go的 LD_PRELOAD hooking

    这是一个实验,用于在共享库中进行包装,并启动一个( a'服务器后门') 。

    这是一个用于教育目的的玩具,展示了围棋的一些。

    仅适用于 Linux,需要转到 1.5或者更高版本才能构建共享库。

    的基本原理

    在写这篇文章的时候,我有四个目标:

    • 尝试使用构建模式,它允许编译到可以从C 调用的共享库。

    • 尝试 LD_PRELOAD 利用的实验

    • 尝试从Go调用C

    • 学习一些C ;)

    用法

    因为这是一个实验,后门只能在本地主机上监听。

    GO15VENDOREXPERIMENT=1 go build -buildmode=c-shared -o backdoor.so main.go
    LD_PRELOAD=./backdoor.so top

    在单独的控制台中,当 top 运行时:

    nc localhost 4444
    [...type your commands here...]

    限制

    • 仅适用于 Linux
    • 仅适用于调用libc函数的strrchr的二进制文件。 我理想的做法是 hook __libc_start_main 。 我用 ps 测试的二进制文件是和 top,由Ubuntu信任。


    文章标签:钩子  LIBC  hooking  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语