前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Empire:PowerShell后期漏洞利用代理工具

Empire:PowerShell后期漏洞利用代理工具

作者头像
FB客服
发布2018-02-06 16:26:24
1.4K0
发布2018-02-06 16:26:24
举报
文章被收录于专栏:FreeBufFreeBuf

文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用!

Empire是一个纯碎的PowerShell后期漏洞利用代理工具,它建立在密码学、安全通信和灵活的架构之上。

Empire实现了无需powershell.exe就可运行PowerShell代理的功能。快速部署后期漏洞利用模块,从键盘记录器到Mimikatz,并且能够适应通信躲避网络检测,所有的这些功能都封装在一个以实用性为重点的框架中。

为什么会选择PowerShell?

PowerShell有很多攻击优势,包括完整的.NET框架的访问,应用程序白名单,可以直接访问Win32 API,在内存中加载恶意的二进制文件,并且默认安装在了Windows 7+中。

2014年是PowerShell发挥攻击优势的转折性的一年。虽说有很多有用的项目,但是很多pentester仍然为将PowerShell以一种安全的方式整合在实际的攻击行为中而在努力。

初始化安装

运行./setup/install.sh脚本,会安装一些依赖的Python库并执行./setup/setup_database.py脚本。这个setup_database.py文件包含了各种设置,你可以手工修改,之后会初始化./data/empire.db数据库。运行./empire将启动Empire程序。./empire-debug会生成一个详细的调试日志文件./empire.debug。安装目录所包含的./data/reset.sh会重置并初始化数据库,同时会在调试模式下启动Empire。

主菜单

一旦你进入了主菜单,你会看到已激活的代理,已激活的(监听器)Listener,已加载模块的数量。

help命令适用于所有的菜单,使用TAB键可以补全命令行。使用Ctrl+C随时结束程序。

Listeners

首先你要建立一个本地的Listener,listeners命令将跳到listener管理菜单。你可以随时使用list命令列出被激活的listener。Info命令将显示当前listener配置的选项。

使用set命令设置Host/Port参数,可以直接使用域名。

set Host http://192.168.16.130:8081

要设置HTTPS的Listener,首先将CertPath参数设置为一个本地的.pem文件。

执行./data/cert.sh脚本,会生成一个自签名的证书,路径为:./data/empire.pem.也可以为listener设置可选的参数如:WorkingHours,KillDate,DefaultDelay,DefaultJitter。然后输入execute命令启动这个listener。如果这个listener的名称已经被使用,那么将会在名称后面添加数字来进行区别。如果端口被占用,Empire也会提醒你。

Stagers

Empire在./lib/stagers/*里实现了多个模块化的stagers。包含有dlls,macros,one-liners等等。使用usestager <tab>列出所有可用的stagers。

同样,可以使用set/unset/info 命令来设置参数。

对于UserAgent和Proxy选项,默认使用的是系统默认的信息。在Listener菜单中,你可以运行launcher [listener ID/name]别名来给当前这个listener来生成 stage0发射器。也就是Payload。将生成的命令行在装有powershell的主机上执行,就会得到这个主机的一个powershell。

如下图 :

代理

使用agents命令可以列出当前已激活的代理。指定代理的ID可以批量或者指定主机执行命令。要连接一个代理,可以使用

interact [代理名称]。代理的名称也同样支持TAB键的补全。

连接到代理之后,你可以使用info命令列出当前这个代理的详细信息。使用help命令列出所有的代理命令。如果你输入的命令不是Empire内置的命令,那么将会被解释为一个shell命令。另外,你可以使用 upload/download进行上传下载文件,也可以使用rename [新的代理名称],cd命令进入文件夹。

每当有代理注册之后,会新建 ./downloads/代理名称/文件夹(当你重命名代理名称时也会跟着改变)。./agent.log文件中为代理通信记录着带有时间戳的命令和返回的结果的日志,并在Downloads/module 里分解成相关的文件。

模块

键入 usemodule <tab> 来查看可用的模块。使用 searchmodule privsec 来搜索模块的名称或描述信息。

要使用一个模块,例如:

usemodule situational_awareness/network/sharefinder

info命令可以显示当前模块的所有信息。

要设置一个选项,例如在域中使用sharefinder模块,使用set命令设置Domain选项为域的名称。也可以设置Agent为其他的代理执行当前模块。

脚本

除了Empire内置的模块外,你也可以用很简单的方式在远程的Empire代理中导入并使用一个.ps1脚本。使用scriptimport ./path/ 命令导入一个脚本。该脚本将被导入并访问脚本中的任何功能。在连接代理后,使用scriptcmd [导入的脚本文件名称]命令,来执行你导入的ps1脚本。

如下图:

我写了一个打开计算器的test.ps1脚本,使用scriptimport ./test.ps1命令

译者小结

Empire作为一款使用PowerShell脚本作为攻击载荷的渗透攻击框架,它的实用性其实很强,内置的模块有键盘记录,抓Hash/password,绕过UAC,Anti-AV,内网扫描等等。当然,所有的这些功能都得益于PowerShell能够将Shellcode加载到自己的内存中去执行。这款轻量级的渗透攻击框架也是我平时作为内网渗透的工具之一。

*参考来源:kitploit,编译/丝绸之路,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档