第一章 魔鬼训练营--初识Metasploit
第一章 魔鬼训练营–初识Metasploit
课程
- 渗透测试就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。一般分为黑盒测试 和 白盒测试 ,两种结合是灰盒测试。
白盒测试的最大问题在于无法有效地测试客户组织的应急响应程序,也无法判断他们的安全防护计划对检测特定攻击的频率。 - 渗透测试方法体系标准:
安全测试方法学开源手册(OSSTMM),NIST SP 800-42 网络安全测试指南,OWASP十大Web应用安全威胁项目,Web安全威胁分类标准,PTES渗透测试执行标准。
- 渗透测试环节
- 前期交互阶段:确定渗透测试的范围、目标、限制条件以及服务合同细节。
- 情报搜集阶段:方法包括公开来源信息查询、Google Hacking、社会工程学,网络踩点、扫描探测、被动监听、服务查点等。
- 威胁建模阶段:针对获取的信息进行威胁建模(Threat Modeling)与攻击规划。
- 漏洞分析阶段:综合分析前几个阶段获取并汇总的情报信息,特备是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻击的攻击点,并实验验证。
- 渗透攻击阶段: 需要考虑对目标系统检测机制的逃逸。
- 后渗透攻击阶段: 自主设计攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。
- 报告阶段: 想客户提交渗透测试报告。
- 安全漏洞生命周期
渗透代码(Exploit)
- 安全漏洞研究与挖掘:源代码审核,逆向工程,Fuzz测试
|-- 安全漏洞发现- 渗透代码开发与测试: 概念验证性的渗透攻击代码(POC)
Exploit代码出现- 安全漏洞和渗透代码在封闭团队中流传: 白帽子和黑帽子
安全漏洞揭露公布- 安全漏洞和渗透代码开始扩散
- 恶意程序出现并开始传播 ----0day----|— Patch发布 1day --|
- 渗透代码/恶意程序大规模传播并危害互联网
Patch修补/检测/移除机制广泛应用- 渗透攻击代码/攻击工具/恶意程序逐渐消亡
- 安全漏洞披露方式
完全公开披露,负责任的公开披露,进入地下经济链,小范围利用直至被动披露。
- 安全漏洞公共资源库
CNNVD(中国国家漏洞库),CNVD(中国国家信息安全漏洞共享平台),乌云安全漏洞报告平台,SCAP中文社区
CVE(通用漏洞与披露),NVD(国家漏洞数据库),SecurityFocus,OSVDB
Metasploit,Exploit-db,PacketStorm,SecurityFocus
- Metasploit
- 情报搜集阶段:内建扫描探测,查点辅助模块,通过插件机制集成调用Nmap,Nessus,OpenVAS。
- 威胁建模阶段:内置PostgreSQL支持
- 漏洞分析阶段:Fuzz测试器,Web应用漏洞探测分析模块
- 后渗透攻击阶段:Meterpreter 多平台,驻留内存免杀,实现特权提升、信息 取、系统监控、跳板攻击与内网拓展。
- 报告生成阶段: 输入内置数据库,Pro提供HTML,XML,Word和PDF格式的报告。
- Metasploit设计尽可能采用模块化的理念
- 基础库文件:libraries目录中,包括Rex、framework-core、framework-base
Rex:基础依赖组件
framework-core:实现所有与各种类型的上层模块及插件的交互接口
framework-base:扩展core,提供更加简单的包装例程- 模块
辅助模块Aux,渗透攻击模块Exploits,后渗透攻击模块Post,攻击载荷模块Payloads,空指令模块Nops,编码器模块Encoders- 插件:定义松散,能够扩充框架功能。
- 接口: msfconsole,msfcli,msfgui,armitage,msfapi
- 功能程序:msfpayload、msfencode、msfvenom
- 辅助模块Aux
信息搜集环节:网络服务扫描,构建虚拟服务收集密码,口令猜测破解,敏感信息嗅探。。
- 渗透攻击模块
利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标访问权的代码组件
Metasploit源码目录的modules/exploits下,按照操作系统平台分类
主动渗透攻击:主机上开启一些监听端口。被动渗透攻击:利用客户端软件漏洞
- 攻击载荷模块
渗透成功后促使目标系统运行的一段植入代码
分为独立Singles,传输器Stager,传输体Stage。独立攻击载荷包含传输器和传输体,但体积较大,一般先植入传输器。
- 空指令模块
在shellcode之前添加一段空指令区,避免受到内存地址随机化、返回值地址计算偏差造成的Shellcode执行失败。
- 编码器模块
避免‘坏字符’,对攻击载荷进行编码,免杀处理
- msfcli
msfcli multi/samba/usermapscript PAYLOAD=cmd/unix/bind_netcat RHOST=xxx.xxx.xxx.xxx E
实践作业
- usermap_script
- Samba协议的一个漏洞CVE-2007-2447,用户名映射脚本命令执行
- 影响Samba的3.0.20到3.0.25rc3 版本 - 当使用非默认的用户名映射脚本配置选项时产生 - 通过指定一个包含shell元字符的用户名,攻击者能够执行任意命令
漏洞的时间线: - 2007年5月7日:漏洞匿名披露到security@samba.org电子邮件列表中。
- 2007年5月7日:Samba的开发人员GeraldCarter开始响应这个漏洞。
- 2007年5月9日:Samba的开发者JeremyAllison发布了补丁,用于iDefense测试。
- 2007年5月10日:向vendor-sec邮件列表发布通知。
- 2007年5月14日:公开漏洞信息。
/multi/samba/usermap_script
msf > info exploit/multi/samba/usermap_script
- 更新Metasploit,统计各平台渗透攻击模块数量
- 安装Metasploit,利用usermap_script,尝试植入VNC攻击载荷
- 使用msfcli命令行接口编写shell,输入IP即可利用usermap_script攻击
第一章 魔鬼训练营--初识Metasploit相关推荐
- 《java学习之路》第一章:初识java第二节:helloworld
嗨大家好,我是埪动白,前一段时间由于一些原因,java学习之路停更了,我向大家道歉.今天我们来学习下一节 第一章:初识java 第二节:hello world 如果哪位同学没有看第一节,建议先看一下, ...
- 吴恩达机器学习(第一章)——初识机器学习
第一章 初识机器学习 文章目录 第一章 初识机器学习 前言 机器学习定义 机器学习算法 监督学习 无监督学习 学习工具 前言 Machine Learning: Grewout of work in ...
- 第一章:初识数据库(3):数据库的语言分类
第一章包含以下内容: 1.数据库的基本概念 2.数据库的基本功能 3.数据库的语言分类 4.常见的数据库对象 前言 非科班自学SQLSERVER和C#编程两年.该系列文章中涉及的知识点是在工作中需要用 ...
- 【重温C++ Primer】第一章、初识C++
目录 前言 一.编写一个简单的c++程序 二.编译.运行程序 三.初识输入输出 四.注释类型 五.控制流 5.1.循环语句:while + for 5.2.读取数量不定的输入数据 5.2.if 语句 ...
- 第一章:初识WPF,XAML,WPF控件
前言 总目录 本章主要介绍WPF与XAML,以及WPF的控件的基本使用,让大家先初步认识WPF. 关于WPF的官方资料:官方WPF文档1 .官方WPF文档2.官方WPF文档3.官方WPF文档4 一.W ...
- 《c primer plus》学习笔记第一章 :初识c语言
文章目录 初识c语言 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.1 c语言起源 1.2 c语言的特点,应用范围 1.3 使用c语言的七个步骤(编程的基本流程) 1 ...
- 第一章:初识python
"""用python设计第一个游戏 """ temp = input("不妨猜一下我现在心里想的是哪个数字")#inpu ...
- java创建mysql sche_爱可生详解MySQL|入门必看DBLE中间件使用指南第一章:初识DBLE...
目录: 一.DBLE项目资料 二.环境准备 安装JDK环境 三.安装DBLE 四.配置DBLE 应用场景一:数据拆分 应用场景二:读写分离 五.总结 DBLE 项目资料 DBLE 是企业级开源分布式中 ...
- codesys 简单案例_第一章:初识Codesys-1.4从一个示例程序讲起
上一章节,我们给出的功能块源码实现的功能是输出一个占空比以及周期可调的脉冲信号.这个功能,我们可以映射成IO的高低电平功能,控制蜂鸣器报警. 全局变量-Main Python //{attribute ...
最新文章
- OpenCV和Python动手操作计算机视觉学习教程
- C++ 函数模板和排序的函数模板——学习笔记
- 直线电机原理动画_每周一品 · 直线电机(Linear Motor)中的磁性材料
- mysql 快照能否恢复某个表_mysql全库备份恢复某个表
- MPEG的完整形式是什么?
- css 轨道,html-当其他轨道增加时,CSS网格的轨道不会缩...
- Python机器学习基础教程
- 程序员面试宝典(一) - 流程概览
- 树莓派各种系统默认账号密码合集
- 全志android编译过程
- 盛格塾丨品鉴《金石录后序》
- 解析Google地图的Search接口返回的f.txt文件数据(其他类似)
- maven自定骨架创建流程
- 送书 | 教你爬取电影天堂数据
- 深度学习学习率对模型训练的影响
- K8S 多 Maser 集群架构和 Dashboard UI 的二进制部署
- 使用spring-data-redis实现incr自增
- C++获取打印系统当前时间、日期
- 问题 C: Be Unique (20)--《算法笔记》
- 民事诉讼法知识点详细版