简介:
Metaspolit是一个渗透测试框架,属于框架,是模块化组成的,是一个免费的可下的框架,通过它可以很容易的获取、开发并对计算机软件漏洞实现 metaspliot时候,计算机安全状况就永久的改变了
MSF:The Metasploit Framework
Metasploit是一款开源的安全的漏洞检测工具,可以帮助安全和IT专业人士识别安全性的问题,验证漏洞的缓解促使,并且管理专家驱动的安全性记性评估,提供真正的安全风险情报,包括智能开发,代码审计,web应用程序扫描,社会工程等。
execllet:漏洞利用程序绝对不会使用目标服务崩溃,看就像SQ!注入,命令执行,远程文件包含,本地文件包含,除非有特殊情况。典型的内存破坏利用程序不可以被评估为该级别
Great:漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回一个特定的返回定制
Good:漏洞利用程序有一个默认目标系统,并且这种类型的软件常见情况(桌面应用程序windows7,服务器的2012等)
Normal:漏洞利用是可靠的,但是依赖于特定版本,并且不能或者不能可靠的自动检测
average:利用利用程序不可靠或者难以利用的。
low:对于通用平台来说。漏洞利用程序几乎不能利用,(成功率低于50%)
manual:漏洞利用程序不稳定或者难以利用并且基于拒绝服务(Dos)。如果一个模块只有在用户特别配置该模块的时候才能用到。否则该模块不会被使用。
Rank排名由高到低,越高代表可靠性越高,反而可靠性越低
1、漏洞Vnlnerability
漏洞:指的是安全性的缺陷(3要素)
- 业务系统停止—可用性
- 数据泄露—机密性
- 高考录取系统—完整性
bug:指的是功能性的权限
2、渗透测试Penatration Test
模拟黑客攻击系统的方式,去找出系统的漏洞,并且修复它。
3、利用Exploit
渗透攻击,利用存在的各种各样的漏洞,对系统进行攻击利用的行为
4、提权 Privilege Escalation
从普通权限提升为管理员
5、攻击载荷Payload
已经利用成功,连接到系统以后去执行一些代码
6、免杀 Anti-AntiVirus
免除杀毒软件的查杀
7、后渗透Post-Exploitation
维持权限,获取等多的有用的信息 一般用于内网渗透
1、确定目标
资产范围、测试方法、要求、限制等
2、信息收集
域名、子域名、ip、端口、网站目录、旁站、C段、网站架构、软件版本
3、漏洞分析(威胁建模)
根据软件版本,基于漏洞数据库,或者挖掘新漏洞
4、漏洞利用
获取权限或者文件,数据等
5、提权(渗透测试报告)
提升到管理员权限
6、后渗透(清理痕迹)
扩大战果,维持权限
1、REX:基础功能库,用于完成日常基本任务,无需手动编码实现,处理socket连接访问,协议应答(http/SSL/SMB等),编码转换(XOR,Base64,Unicode)
2、技术模块:5.0之后增加了一个evasion模块,一共有7个技术模块
3、插件:插件可以调用外部的一些渗透测试工具,例如:load nessus 就可以调用nessus扫描软件。
4、接口:有msfconsole控制终端,msfcli命令行,msfgui图形化界面,armitage图形化解卖弄和msfapi远程调用接口
5、功能程序:metasploit还开发了一些可以直接运行的命令,比如msfpayload、msfencode以及msfvenom
msf技术模块的功能:
1、auxiliary 目录: /usr/share/metasploit-framework/modules/auxiliary
auxiliary模块的命名规则;功能/服务/模块名称
举例;scanner/discovery/arp-sweep
负责执行信息收集、扫描、嗅探、指纹识别、暴力破解、口令猜测、网络协议欺骗和DOS攻击等功能的辅助模块,主要是用于信息收集阶段 不用exploit
分为三个大类:
- admin
admin/http
admin/mssql
admin/postgres
admin/vmware - scanner
mssql
mysql
netbios
pop3
smtp
smb
snmp
ssh
telnet
tftp
vmware
vnc - server 捕获模块
2、explotis 目录:/usr/share/metasploit-framework/modules/exploits
利用系统漏洞进行攻击的动作,此模块对应每一个具体的漏洞攻击的方法(主动、被动) 利用已经发现的漏洞对远程目标进行攻击,植入并运行攻击载荷,从而控制目标系统
active Exploit:直接攻击 适用于服务端 (主动)
passsive Exploit:防止攻击代码运行,适用于客户端(被动)
3、payloads攻击载荷 目录:/usr/share/metasploit-framework/modules/payloads
成功exploit之后,真正在目标系统执行的代码或者指令可以是反弹代码,可以是添加用户的的代码,在渗透攻击触发漏洞后,劫持程序执行流程并且跳入这段代码,这个模块的作用是消除安全人员开发这部分代码的代价。
分为3中payload,分别是single、stages和stagers。shellcode是特殊的payload,用于拿shell
- single:all-in-one
完整的payload,这些payload是一体化的,不需要依赖外部的库和包。(完整独立的payload) - stagers:目标计算机内存有限时,先输入一个较小的payload用于建立连接(搭桥)
- stages:利用stagers建立的链接下载后续payload
4、encoders 目录:/usr/share/metasploit-framework/modules/encoders
对payload进行加密,用来躲避AntiVirus检查的模块,绕过部分杀毒软件,将攻击载荷进行编码(类似于加密),避免操作系统和杀毒软件辨认出来但是会让载荷的体积变大,需要选择传输器和传输体配对成的攻击载荷来下载目标载荷并运行
5、nops 目录:/usr/share/metasploit-framework/modules/nops
提高payload稳定性以及维持大小。在渗透攻击构造恶意数据缓冲区的时候,常常要在真正执行的Shellcode之间添加一段空指令区,这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全的着陆区,从而避免受到内存地址随机化,返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。
6、post 目录:/usr/share/metasploit-framework/modules/post
后期渗透馍块,用于,内网渗透,在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息,跳板攻击等操作。
7、evasion 目录:/usr/share/metasploit-framework/modules/evasion
创建木马文件,相当于msfvenom的一个子功能存在 躲避模块,对比微软的限制或者免杀,免杀效果一般
启动metasploit架构需要运行postgresql数据库,现在只要运行metasploit时都会自动启动postgresql数据库,如果数据库没有启动的话,可以手动启动
banner:版本信息
connect:可以理解成MSF中的nc命令,可以使用conncet -h 查看详细用法、
show:使用show命令查看msf提供的资源,在根目录下执行的话,由于有些模块化资源比较多,需要执行show命令要较长的时间。
- show options/payloads/targets/evasion/missing/ search:搜索模块;简单搜索
例如:seach ms10-046
多条件搜索缩小范围;
- search name:mysql type:exploit platform:linux
use: search 找到模块以后,使用use使用模块
- use exploit/windows/smb/ms08_067_netapi
用use使用一个模块以后,使用show opetions查看我们需要配置的选项,使用show targets选择目标主机系统,使用show payloads选择payload,使用show advanced查看高级参数、使用show evasion查看用来做混淆,逃避的模块。
- set/setg: 设置参数
比如要渗透的主机IP,paylaod等,我们可以使用show missing查看有没有设置的参数,setg是设置全局变量,避免每个模块都要输入相同的参数
- unset/unsetg: 取消设置参数
unsetg是取消设置的全局变量 save;设置的参数在下一次启动的时候不会失效,可以用save 保存我们使用过的设置
/root/.msf4/config cat到文件进行查看
check:检查目标是否真的存在这个漏洞,大部分模块没有check功能。
run/exploit:攻击
jobs/kill:杀死进程
session:建立会话
msf系统文件:
-
路径:/usr/share/metasploit-framework
-
data:可编辑文件,主要给Metasploit使用
-
documenttation:提供一些msf的介绍文档
-
external: 源文件和第三方库
-
lib:msf 框架的主要组成部分
-
modules:msf模块存放位置
-
plubins:存放metasploit的插件
-
scripts:存放meterprter代码(shell code)或者是其他脚本文件
-
tools:各种各样使用的命令行工具
sql相关的文件:
设置流程中必须要的命令:
msf-简单搜索
msf的信息收集的一些模块:
msf-主机发现:(基于2层的信息收集)
msf-端口扫描:(基于4层的信息收集)
FTP信息收集
- 利用msf查到ftp的版本,然后用google查看一下版本里面有什么可以利用的漏洞 然后去看一下tfp是否支持匿名登录
ssh信息收集
SMB信息收集
msf-密码嗅探
- meterpreter简介:
比系统shell更加灵活,功能更加丰富,例如监控主机,监控键盘,开启摄像头,麦克风,还可以灵活的获取你的操作系统信息。
高级,动态,可扩展的payload,一站式后攻击payload;
基于meterpreter上下文利用更多的漏洞来发起攻击
后渗透阶段的一站式操作界面;
完全基于内存的DLL注入式payload(不写硬盘);
基于stager上传和预加载DLL进行扩展模块的注入(客户端API);
基于stager建立的socker连接建立加密的TLS/1.0通信隧道;
利用TLS隧道进一步加载后续扩展模块(避免网络取证)
msf建立反弹shell
- 监听
- 生成反弹连接的木马
msf生成php的木马,获得shell权限
msfvenom生成各种payload
msfvenom的所有参数:
使用msf建立监听
控制段主动发起连接请求去连接被控制端,中间网络链路不存在阻碍
被控制端主动地连接请求去连接控制段,通常被控制端由于防火墙的限制,权限不足,被占用等问题导致被控制端不能正常接收发送过来的数据包
全称:Meta Interpreter(元 解释程序)属于stager Payload 客户端与服务端建立加密的连接通信
电脑端:
手机端:
当我们以一个普通用户登陆到linux的操作系统以后,需要怎么操作来提权呢?
- 内核漏洞
- sudo
- SUID提权
- 找敏感文件
提权模块:
ms14-064简介:
miscrosoft windwos OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响win95+IE3-Win10+IE11全版本
永恒之蓝是利用windwos系统的smb漏洞可以获取系统最高权限。
永恒之蓝漏洞的影响范围:
目前已知的受到影响的windows版本包括但是不局限于 windows NT windows2000 windows xp windows 2003 windows vista windows 7 windwos 8 windows 2008 windwos 2008 r2 windwos server
2012 sp0
CVE的英文全称是comon vulnerabilities & exposures 公共漏洞和暴露 CVE就好像很是一个查看公共漏洞的字典
CVE就相当一字典一样,可以去查看所有已经发生的漏洞。 为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出了一个公共名称。 CVE是国际著名的安全漏洞库。也是对已知漏洞和安全缺陷的标准化名称列表,她是一个由企业,政府,学术参数的国际性组织。
漏洞成因:
heartbleed漏洞是由于未能在memcpy()要用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪openSSL所分配的64kb缓存,将超出必要范围的字节信息复制到缓存中再返回缓存内容,这样一来,受害者的内存就会以每次64kb的速度进行泄露。
漏洞的危害:
如同漏洞成因所讲,我们可以通过该漏洞读取每次攻击泄露出来的信息,所以可能也可以获取到服务器的私钥,用户cookie和密码等。
影响平台:
openssl 1.0.1beta1版本
漏洞介绍;
该漏洞影响最新版本的IE浏览器以及是用来IE内核的应用程序用户在浏览网页或者打开office文档的时候,都可能中招,最终被黑客植入后门木马完全控制电脑。
又叫bashbug
- CVE-2014-6271
攻击者可以构造特殊的环境变量值,以这些环境变量的值包含特定的代码,当shell对这些环境变量求值的时候,这些特定的代码将得以在系统中执行,某些服务和应用接受未经身份者提供的环境变量,因此攻击者可以利用此漏洞同源于再提供这些服务和应用的系统上执行任意的shell命令。
- CVE-2014-7169
因GNU Bash 允许在环境变量的值中进行函数定义,及在函数定义后加入额外的字符串,攻击者可以利用此特性在远程写入文件或者执行其他可以影响到系统的操作
在什么情况下会使用到客户端攻击
- 在无法突破网络边界的情况下转而攻击客户端
- 社会工程学攻击
- 进而渗透线上业务网络
- 含有漏洞利用代码的web站点
- 利用客户端漏洞
- 含有漏洞利用的DOC,PDF等文档
- 诱骗被害者执行payload
linux的
linux的集型结构是elf
hacker可以针对不同的人群进行各种主动攻击,然后把后门捆绑到现在很火的吃鸡游戏外挂上,或者是捆绑到现在很知名的网游外挂布丁上面,然后传到,供给他们下载,再或者是伪装成qq或者微信之类的安装软件,提供给有需求的人群。
比如我们向目标主机发送一个含有后门的apk软件,或者是一个word文档、pdf文件。想到达到效果同时也要利用好社会工程学,来诱骗受害者执行恶意程序。
生成安卓端的
Geolocate 定位
wlan_geolocate wifi定位
dump_callog 获取通话记录
send_sms 发送短信
对windwos的word文档进行渗透测试
- POST模块 #前提是已经建立了meterpreter
- 密码嗅探
- snmp扫描
- 端口扫描
- arp扫描
什么是UAC?(user account control)用户账户控制 是一种安全策略
界面操作是:通过查询用户的访问是否给应用程序,是用硬盘驱动器和系统文件的权力,已达到阻止恶意程序破坏系统的效果。
portfwd是meterpreter提供的端口转发的功能,使用portfwd -h 功能查看
-l 本地监听端口
-r 内网目标的ip
-p 内网目标的端口
pivot是msf常用的代理
首先在msf中使用route add 内网ip 掩码 session 的id 添加一个路由表
route print 打印命令
建立socks代理
- 如果其他程序需要访问内网环境,可以建立sodcks5代理。
- 这里提供了模块
需要设置的参数
metsvc
- 使用exploit/windows/local/persistence模块设置payload然后run
- 使用exploit/mulit/handler模块,payload为windwos/meterpreter/reverse_tcp
然后run
使用模块use incognito
查看可用token list_tokens -u
假冒system权限impersonate_token ‘NT AUTHORITYSYSTEM’
利用假冒身份执行命令 execute -f cme.exe -i -t 不欧哲直接shell
命令:
防止假session
在实战中,经常会遇到假session或者刚连接就断开的情况,这里就需要补充一些监听的参数防止假死与假session
exitonsession flase 可以在接收到session后继续监听端口,保持侦听
set Sessioncommunucationtimeout 0 默认情况下如果一个会话将在5分钟没有任何活动,那么他就会被杀死,防止此情况可以讲此项改为0
set SessionExpriationTimeout 0 默认情况下,一个星期后,会话将被强制关闭,修改为0可以永久不会被关闭