赞
踩
假设我们已经控制了一台主机,我们您希望它能够自动执行任务并向我们报告结果。在本章中,我们将创建一个对远程机器无害的木马框架,但是我们可以为它分配各种邪恶的任务。
创建一个可靠的特洛伊木马框架最具挑战性的一个方面是弄清楚如何控制、更新和接收来自被被植入的木马的数据。更重要的是,我们需要一种相对通用的方式将代码推送到远程特洛伊木马。首先,这种灵活性将允许我们在每个系统上执行不同的任务。此外,有时我们可能需要特洛伊木马来选择性地为某些目标操作系统运行代码,而不是为其他目标操作系统。
尽管黑客多年来设计了许多创造性的命令和控制方法,依赖于互联网中继聊天(IRC)协议甚至推特等技术,但是在这里,我们将尝试一种真正为代码设计的服务。我们将使用GitHub作为存储植木马的配置信息的一种方式,并作为从受害者系统中过滤数据的一种手段。此外,我们还将托管植入木马在GitHub上执行任务所需的任何模块。在设置这一切的过程中,我们将破解Python的本地库导入机制,以便在创建新的特洛伊木马模块时,我们的植入木马可以直接从我们的repo中自动检索它们和任何依赖库。
利用GitHub完成这些任务可能是一个聪明的策略:到GitHup的流量将通过安全套接字层(SSL)加密,我们作者看到很少有企业主动阻止GitHub本身。我们将使用私有repo,这样窥探者就看不到我们在做什么。一旦将这些功能编码到特洛伊木马程序中,理论上可以将其转换为二进制文件,并将其放在受损的机器上,这样它就可以无限期地运行。然后,您可以使用GitHub存储库告诉它要做什么,并找到它发现了什么。
如果还没有GitHub账号,请转到https://github.com/,注册并创建一个名为bhptrojan的新的repo。接下来,安装Python GitHub API库,以便可以自动化与repo的交互:
现在,为我们的新创建的repo(bhptrojan)创建一个基本的基本的框架结构,在命令行中输入下面的命令。
说明:这里先贴上原书中需要在命令行中敲入的命令,如果之前没有配置好git,这里会有不少的问题,下面会逐一解释。
首先,当执行“git commit -m…”命令时,如果是初次配置,会得到如下的错误提示。
因为是新配置的,本地还木有git的账号和用户等信息,git并不知道应该用哪个用户commit到git上去,所以汇报上述错误。这个错误也很容易消除,执行上图中提示的两行命令即可,注意邮箱和用户名替换成前面自己注册git账号时使用的邮箱和用户名。
当执行上面最后一行的push命令的时候,也会报错,如下图
因为从2021年8月份开始,git就不再支持用户名密码认证方式了,所以push提交失败。接下来就教大家怎么通过ssh key进行身份认证。
首先在linux机器上(这里是kali,其它linux也基本一致)执行如下的命令(注意 -C后面跟自己注册Git的邮箱)生成一对公私钥。
$ ssh-keygen -t rsa -b 4096 -C "<你注册git的邮箱号>"
然后根据对话框依次输入相关信息,如下图。
首先登录自己的git,然后通过右上角用户头像的下拉菜单进入“Settings/SSH and GPG keys”页面,如下图。
然后在上图所示的页面中添加“New SSH Key”按钮,给自己的key输入一个名字,最好用repo名加日期,便于后期的维护。然后将上面在linux下创建的公钥(即.pub文件)中的内容拷贝到下面存放key的多行编辑框中,点击按钮保存,如下图。
保存成功过后,可以在页面中看到新添加好的key,如下图。
接下来给大家讲讲如何用创建好的ssh key进行身份认证。这里多啰嗦几句,上面原书中又是创建这个目录又是创建那个目录,这些都是没有必要的,因为这些东西都没有跟git关联起来(可能作者当年写书的时候git就是这么low吧)。直接从自己前面创建的bhptrojan工程的主页面的code下拉菜单的SSH选项中复制那个名为git@github.com:…的一串字符,如下图。
然后在linux命令行中执行下面的命令把前面创建的整个工程(尽管目前是空的)克隆到本地。
$ git clone <上图中拷贝的字符串>
执行结果如下图所示。
如果上面配置的SSH Key有效,这时候git会自动在执行命令的目录下生成一个跟Git上的repo重名的目录,这个目录空空如也,仅有的一个README还是我在git上创建repo的时候添加上去的,如下图。
这时候可以在这个目录下创建上面所述的modules、config、data目录,不再赘述。创建完对应的目录之后,顺便执行一下原书中的commit命令和push命令试试看,如下图。
在执行最后的push命令的时候报错了,上网搜索了一下,出现这个错误的原因是我们前面在本地只添加了空目录,并没有创建或者修改文件,而Git规定空目录是不能提交上去的。但是我理解不是这样子,好几年没有用git了,有些迷糊,但是我觉的是因为目前新创建的repo还没有分支。将最后一行命令直接改成“git push origin”试试看,正常提交了,这时候的git status也正常了,如下图。
在这里,我们为repo创建了初始结构。config目录保存每个特洛伊木马程序的唯一配置文件。在部署特洛伊木马时,我们希望每个木马执行不同的任务,因此每个木马都将检查一个单独的配置文件。modules目录包含特洛伊木马应拾取并执行的任何模块化代码。我们将实现一个特殊的导入,以允许我们的特洛伊木马程序直接从GitHub repo导入库。这种远程加载功能还允许我们将第三方库存储在GitHub中,这样您就不必每次添加新功能或依赖项时都不断重新编译特洛伊木马程序。数据目录是特洛伊木马将check in任何收集的数据的位置。
现在,我们可以创建一些简单的模块和一个示例配置文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。