作者:hacker 日期:2022-10-27 分类:网络教程
自从powershell在windows开始预装之后,就成为Windows内网渗透的好帮手,好处多多:天生免杀、无文件落地、 无日志(雾) 。
于是老外开发了 empire 框架,毕竟 cobalt strike 要收费的不是?
功能模块丰富,老外把内网[域]渗透中能用到的都整合进去了:内网探测,提权,凭据获取,横向移动,权限维持。模块那么多,不懂就 searchmodule 或者[tab]两下。
基于 debian 系的,如kali或者ubuntu都可以安装。
git clone
在执行安装脚本之前,建议修改软件源和 pip 源,避免因为网络问题安装失败。
sudo ./setup/install.sh
安装好后执行 ./empire 后就可以用了。
先查看可用的 Listener 有哪些?[tab]两下就出来了所有可用的。
通过 info 查看指定模块的配置信息
这里还是先使用http的监听,通过 set Port 8080 修改监听的端口, 2.x版必须同时设置 Host ,然后 execute 启动监听。
通过list命令查看正在运行的监听
可以通过usestager来生成文件,引诱对方运行,可以看到支持linux、Windows、osx。
这里我们选用launcher_bat,通过 info 查看可以配置的参数。
这里需要注意的是Listener的Name,必须跟前面启用的Listener的一致。
生成的文件内容是这样子的
其中那么一大段的powershell命令,跟 (Empire: listeners) launcher powershell test 的执行结果是一样的。这里先不关心怎么让其在别的机子上运行,那是另外的技术活。
用win7的cmd执行了那一串命令后,进程中可以看到有powershell.exe
执行 agents 命令查看回连的机子,然后 interact BNR1T9ZC 来与之进行交互。
通过 help 命令可以查看到在agent上可以执行很多命令。这里挑些重要的讲。
bypassuac ,顾名思义就是绕过uac的。除非你是本机的administrator,否则普通管理员都需要右键某个程序,然后选择 run as administrator 才能运行,这都是uac作的怪。
因为这里是用普通域用户权限执行的,连本机的普通管理员都不算,所以失败了。
sc,屏幕截图命令,可以通过这个了解机子上的人正在做什么。
我们看看usemodule还有哪些可用的模块?(有些模块需要对应权限才能成功运行)
输入 help agentcmds 可以看到可供使用的常用命令
执行 ipconfig 查看网卡信息(如果不在help列表中,那么会自动执行远程主机上的可用命令)
可以看到dns的ip是1.1.1.10,既是域控的ip
当你获得一个会话之后,又想要派生更多会话,怎么办?
使用 invoke_shellcode 来注入 meterpreter 的shellcode
metasploit先要设置一个 listener
然后empire执行
成功获取meterpreter会话(才怪, empire2.5 版本)
在session1建立到1.1.1.0/24网段的路由跳转
run autoroute -s 1.1.1.0/24
通过sesesion1打通网段后,可以看到域控服务器1.1.1.10开放的端口
使用ms17010成功获取meterpreter会话。
至此,域控拿下,可以开始漫游内网。(还是得靠metasploit,单一个empire做的事情很有限)
获取域管理员的明文凭据
用后渗透模块 credential_collector 收集可用的凭据
empire 可以直接使用 mimikatz 来获取凭据。 注意,此时客户端上powershell进程占用的cpu可达90%,会引起卡顿
creds 查看获取的凭据
利用pth来传递hash,用这个hash创建一个新的进程,可以看到新的进程id是3032
然后 credentials/tokens 查看不同用户的进程id
对指定进程steal_token之后,再去与agent交互就是域用户user的权限了。
用revtoself再切换回原来的权限(普通域用户权限太低做不了什么)
到这里尝试了好几个 situational_awareness/network/powerview 的模块返回的都是空结果,看来是需要域管理员才能执行成功。
碰巧域管理员也登陆这台机子,那么就能用他的权限做很多事情了。
也可以使用 usemodule management/psinject 进行切换,设置好ProcessId即可
现在我们又获得了一次域管理员权限,可以开始横向移动了。
先内网探测下可用的机子有哪些,使用了 situational_awareness 中的三个模块:
find_localadmin_access user_hunter get_domain_controller
又一次可以确定1.1.1.10就是域控所在了。用 lateral_movement/invoke_psexec 移动到域控服务器上面。
终于又回到了域控服务器,接下来要考虑的是如何导出域控上面的所有hash,并且维持权限。
Mimikatz其实并不只有抓取口令这个功能,它还能够创建票证、票证传递、hash传递、甚至伪造域管理凭证令牌等诸多功能。由于mimikatz的使用说明网上资料很多,这里就不多加介绍内网渗透使用的工具了,随着这两年hw行动越来越多,企事业单位也都开始注重内网安全,有预算的会上全套的终端安全、企业版杀软或者EDR,就算没有预算的也会装个360全家桶或者主机卫士之类的,这也导致很多时候内网渗透使用的工具你的mimikatz可能都没法拷贝过去或者没有加载执行,拿了台服务器却横向移不动就尴尬了。因为这款工具特别出名所以被查杀的机率很大, 我们可以通过 github 上的开源代码对其进行源码免杀从而 bypass 反病毒软件。
Mimikatz 源代码下载
免杀步骤
替换 mimikatz 关键字 shenghuo
mimikatz 下的文件全部改为 shenghu
把项目里所有的文件注释去掉
/_ Benjamin DELPY gentilkiwi benjamin@gentilkiwi.com Licence : _/
打开红色框框内的内容,替换图标文件
出现 无法找到 v140 的生成工具(平台工具集 =“v140”),要选择自己安装的平台工具集
重新生成
生成的程序能够正确运行
成功过360
PrintSpoofer做免杀
printspoofer提权工具目前主流的提权工具之一,360 安全会自动查杀,其他杀毒软件并不会查杀。
源码下载地址:
将PrintSpoofer.cpp 里面的输出帮助文档全部清空
导入图标
重新生成,程序生成成功
成功过360
metasploit 是一款开源的安全漏洞检测工具,同时Metasploit 是免费的工具,因此安全工作人员常用 Metasploit 工具来检测系统的安全性。Metasploit Framework (MSF) 在 2003 年以开放源码方式发布,是可以自由获取的开发框架。 它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、 shellcode 编写和漏洞研究提供了一个可靠平台。其中攻击载荷模块(Payload) , 在红队中是个香饽饽,使用这个模块生成的后门,不仅支持多种平台,而且 Metasploit 还有编码器模块(Encoders),生成后门前,对其进行编码转换,可以混 淆绕过一部分杀毒软件。
工具 Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup 下载地址
metasploit源码下载:metasploit-loader/master/src/main.c
选择:文件-新建项目-consoleApplication-c 项目
把winsock2.h 移动到windows.h 上 不然编译会出错。
将这四处的数字改为其他数字
设置攻击载荷,执行后成功上线
成功过360
生成python64位的shellcode
添加生成的shellcode
编译成程序
pyinstaller -F test.py —noconsole
此时还要做的就是更改图标,这里介绍一种方法
首先右击它,选择“添加到压缩文件”
在弹出来的一个“压缩文件名和参数”框中设置压缩文件格式为“ZIP”,压缩方式为“存储”,压缩选项为“创建自解压格式压缩文件”。
随后选择“高级”选项卡。选择了“高级”选项卡以后直接点击“自解压选项”
在设置选项卡中解压后运行对应程序
在模式选项卡中选择解压临时文件夹和全部隐藏
随后再选择“更新”选项卡,在覆盖方式中选择“覆盖所有文件”
最后选择“文本和图标”选项卡,在自定义自解压文件徽标和图标中选择“从文件加载自解压文件图标”,点击“浏览”,找到自己想要加载的图标文件后并打开
然后就点击确定(两次)就可以生成一个新的exe程序了。图标已经改变了,再运行测试一下
上传去目标主机,这里更改了程序名称
在线查杀
是很流行的编程语言,也可以用它来做一个加载器运行cobaltstrike的 shellcode,生成出来的 文件特别的小,可以很好地投递传输。
项目地址 用 vs2017 打开 sln 项目文件
选择 xorkryptor 生成编码器 用 cobalt strike生成 raw 二进制文件
encrypt.bin 就是经过编码后的文件
项目里面存有 Rsources 和 encrypt.bin 文件 事实上项目是没有这个文件夹和文 件所以在当前目录新建文件夹和将生成好的shellcode文件 encrypt.bin 复制到文 件夹里。右键选择编译文件即可。
此时文件正常
重新编译,成功生成后门程序
成功过360
成功上线
Pivoting ,在本手册中,指内网渗透使用的工具的是「将一个受害机器转为其他攻击和工具的跳板」。Cobalt Strike 的Beacon 提供了多种 pivoting 选项。前提是 Beacon 处于交互模式。交互模式意味着一个 Beacon 每 秒内多次连接到团队服务器。使用 sleep 0 命令来使内网渗透使用的工具你的 Beacon 进入交互模式。
通过 [beacon] → Pivoting → SOCKS Server 来在你的团队服务器上设置一个 SOCKS4a 代理服务 器。或者使用 socks 8080 命令来在端口 8080 上设置一个 SOCKS4a 代理服务器(或者任何其他你想 选择的端口)。
所有经过这些 SOCKS 服务器的连接都将被转变为让相关联 Beacon 执行的连接、读写和关闭任务。你 可以通过任何类型的 Beacon 经由 SOCKS 隧道传输(甚至是一个 SMB Beacon)。
Beacon 的 HTTP 数据通道是响应速度最快的 pivoting 方法。如果你想通过 DNS 中继流量,使用DNS TXT 记录的通信模式。
要查看当前已经配置的 SOCKS 服务器,通过 View → Proxy Pivots 。 使用 socks stop 命令来停用 SOCKS 代理服务器。
proxychains 工具将强制外部程序使用你指定的 SOCKS 代理服务器。你可以使用 proxychains 强制第 三方工具经过 Cobalt Strike 的 SOCKS 服务器。要了解有关 proxychains 的更多信息,请访问:
安装proxychains,配置文件修改如下
pre class="19d5-d383-c299-a3d2 cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"--- snippet --- [ProxyList] # add proxy here ... # meanwile # defaults set to "tor" socks4 127.0.0.1 8973/pre
过执行代理工具 proxychains,对内网主机 ip 地址为192.168.237.127进行端口探测。执行指令如下所示内网渗透使用的工具:
pre class="d383-c299-a3d2-ac3c cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);" proxychains nmap -sT -Pn 192.168.237.129/pre
然后可以通过代理使用其他的安全工具进行下一步的渗透,如果说有些工具是不支持代理ip的,那么还有方法
Proxifier:
当使用没有代理功能的工具对目标内网进行渗透时,可以使用Proxifier工具能够将程序通过socks代理对内网进行渗透。详细的使用过程如下所示:
打开Proxifier软件,单击Profile-Proxy Server-add 添加本地主机的代理端口。协议选择socks5类型,可以点击check进行测试当前代理是否成功。
这样的配置会让当前所有软件走全局的代理。可以让一些不支持代理功能的软件走代理。
首先,用cs新建一个外部的监听:内网渗透使用的工具我这里选用外部http链接。
开启msf,使用exploit/multi/handler模块,设置payload为windows/meterpreter/reverse_http,然后show options 查看需要设置的参数。
注意:payload必须是和cs上设置的监听模块一致。
然后在cs的beacon控制台中直接输入
pre class="c299-a3d2-ac3c-6e63 cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"spawn msf/pre
过了几秒,msf中就会得到会话
这部分是在msf获取到会话之后,把会话上传到CS上。
首先在CS上新建一个内部监听。
然后在msf中进行配置
首先在msf上面查看要上传·会话的id:(我这里是2)
使用这个exp:exploit/windows/local/payload_inject
设置好参数之后,检查参数时候设置完全和正确。
exploit执行
cs上就会上线了
这两天出文章的速度慢了,是因为我一直在持续的开发和优化知识库,现在知识库上线新的功能GitHub索引,地址是: ,不过现在只能是pc端访问,移动端访问样式会乱掉,因为我前端技术实在是渣渣
首页整理了github上最新流行的趋势。下图是中文趋势
下图是全网趋势
已有4位网友发表了看法:
访客 评论于 [2022-10-27 13:35:53] 回复
socks代理对内网进行渗透。详细的使用过程如下所示: 打开Proxifier软件,单击Profile-Proxy Server-add 添加本地主机的代理端口。协议选择socks5类型,可以点击check进行测试当前代理是否成功。 这样的配置会让当前所有软件走全局的代理。可以让一些不支
访客 评论于 [2022-10-27 13:31:53] 回复
配置会让当前所有软件走全局的代理。可以让一些不支持代理功能的软件走代理。 首先,用cs新建一个外部的监听:内网渗透使用的工具我这里选用外部http链接。 开启msf,使用exploit/multi/handle
访客 评论于 [2022-10-27 06:44:11] 回复
t" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgb
访客 评论于 [2022-10-27 06:02:55] 回复
ypt.bin 复制到文 件夹里。右键选择编译文件即可。 此时文件正常 重新编译,成功生成后门程序 成功过360 成功上线cobalt strike使用跳板进行内网渗透 Pivoting ,在本手册中,指内网渗透使用的工具的是「将一个受害