meterpreter 笔记

**第一章:**

```
PETS渗透测试流程
```

--前期交互
--情报搜集
--威胁建模
--漏洞分析
--渗透攻击
--后渗透攻击
--测试报告撰写

```
渗透测试类型
```

白盒测试:
即和客户一起工作,测试者在拥有客户组织所有知识的情况下进行的渗透测试,问题在于无法有效地测试客户组织的应急响应程序,无法判断他们安全防护计划检测特定攻击的效率。减少了情报搜集阶段。

黑盒测试:模拟对客户组织一无所知的攻击者所进行的渗透攻击

灰盒测试:测试者具有客户组织的部分信息,可以组织黑盒测试和白盒测试实施渗透

**第二章:**

```
metasploit基础
```

用户接口

启动:通过 msfconsole 或者 msfdb run 启动

命令行:编写命令行,携带-x 参数,例如:msfconsole -x “use exploit/xxx/; set RHOSTs xx;set Payload windows/XX/; run”来操作步骤

编写资源脚本,类似写 shell 一样。携带-r 参数 ,“msfconsole -r /home/myscript.rc”

图形化:Armitage 图形化操作接口

msf 攻击载荷木马生成器:msfvenom

msf 编码器:对攻击载荷进行编码,避免类似X00 等坏字符,逃避杀毒软件检测,msfvenom -l encoders 查看编码器种类

**第三章:**

```
情报搜集
```

要点:谨慎细致做好情报搜集工作,记录每一个细节。

被动信息搜集:不接触目标而挖掘信息。利用 whois,站长之家,netcraft,nslookup,google 黑语法等工具进行详细挖掘

主动信息搜集:直接对目标进行扫描,容易被目标防火墙等防御系统检测。利用 namp,msf 中的 db_namp 等工具

```
针对性扫描:
```

--smb 协议信息搜集:use auxiliary/scanner/smb/smb_version

--ssh 协议信息搜集:use auxiliary/scanner/ssh/ssh_version

--ftp 协议信息搜集:use auxiliary/scanner/ftp/ftp_version,use auxiliary/scanner/ftp/anonymous 测试是否运行匿名登录

--snmp 协议信息搜集:use auxiliary/scanner/snmp/snmp_login

**第四章:**

```
漏洞扫描
```

使用漏洞扫描工具:Nexpose,Nessus

专用漏洞扫描器:

试试 smb_login 模块验证 smb 登录;试试 vnc_none_auth 模块扫描开放的 VNC 空口令,针对没有口令的目标,可以用 vnc viewer 工具进行连接;试试 open_x11 模块扫描 x11 服务器,该服务运行用户无须身份认证即可连接,然后可以用 xspy 工具进行目标键盘记录

**第五章:**

```
渗透攻击
```

show exploits : 攻击模块,针对发现的漏洞实施相应的攻击

show options: 查看某个模块的参数设置

back:返回上一个状态

search:查找内容

use :使用内容

show payloads:攻击载荷模块

show targets:列出某漏洞适合的目标系统类型

info:显示详细信息

set 和 unset:设置参数&撤销参数

setg 和 unsetg:全局设置参数&全局撤销参数

save:在使用 setg 对全局参数设置后,可使用 save 保存,下次启动 msf 时参数仍然保存

exploit&run:启动攻击

session:查看会话,session -i 选择会话

background:使会话在后台运行

资源文件:可通过编写一系列的 msf 中会使用的命令,并以 rc 后缀名结尾。最后在 msf 终端中使用 resource 文件名 进行自动化攻击

**第六章**

Meterpreter:当攻击成功后,将会获得一个 meterpreter shell 终端会话执行操作

```
基本命令
```

help:查看所有命令

screenshot:获得活动用户桌面并截屏

sysinfo:查看目标系统运行平台

migrate:将会话迁移到某个进程的 PID 中。

getuid:查看当前用户权限

getsystem:提升权限为管理员权限

run vnc:开启远程桌面控制

```
挖掘用户名和密码
```

提取密码哈希值:使用 hashdump

传递 hash 值:当密码是 hash 值的密码,可用 smb/psexec 模块,将 SMBPass 参数设置为 hash 密码。就可以认证通过了。

权限提升:当获得系统访问权限,可用 net user 创建限制权限的普通用户账号,在登录此用户,上传 msfvenom 制作的木马。使用 use priv 命令加载 priv 扩展,一边访问某些特权模块,再输入 getsystem 尝试提升此账号权限,

假冒令牌:提升权限,详细操作查看书本内容

通过跳板攻击其他机器:通过已入侵的系统,把此系统作为跳板进行内网拓展攻击内网中其他机器,所有流量将会通过受控机器与子网其他机器通信。
通过 run get_local_subnets 命令,把当前已入侵会话放后台执行。在查看已入侵系统上的本地子网,在使用 route add 命令添加某子网。在对其他机器实施攻击。

```

使用meterperter脚本
```

通过 run 脚本名字,可以在 meterprter 终端中运行扩展脚本

迁移进程:迁移攻击进程,可以避免目标系统连接丢失,使用后渗透攻击模块,将 meterpreter 会话迁移到内存空间中其他稳定的进程中,以便维持连接
run post/windows/manage/migrate

关闭杀毒软件:run killav 扩展脚本来停止相关进程

获取系统哈希值:获取系统密码哈希值的副本可以帮助我们实施哈希值传递攻击,或进行哈希值暴力破解还原明文密码。通过使用 run hashdump 获取密码哈希值

查看目标机上的所有流量:运行数据包记录脚本 run packetrecorder -i 1 ,然后使用 wireshark 等工具解析数据

获取系统信息:run scraper 脚本可以列举出系统信息,从而获取用户名和密码,下载全部注册表,挖掘密码哈希值,收集系统信息以及输出 HKEY_CURRENT_USER

控制持久化:run persistence 脚本允许注入 meterpreter 代理,确保系统重启后还能运行 meterp...如果是反弹连接方式,可设置连接攻击机的时间间隔,如果是绑定方式,可设置在指定时间绑定开放端口
(如当前渗透使用了 shell,为了更多功能可以提升为 meterpreter shell)
向后渗透攻击模块转变
通过 railgun 组件操作 windowsAPI:irb 命令

**第七章**

```
免杀技术
```

概念:杀毒软件使用特征码识别恶意代码。特征码装载在杀毒引擎中,对磁盘和进程进行扫描。发现匹配对象,杀毒软件便会删除。

使用 msf 编码器:在使用 msfvenom 生成木马时,添加参数-e 指定对于编码器,-i 设置编码次数
自定义可执行文件模板:通常 msf 生成的攻击载荷被嵌入到默认的可执行文件模板中,默认模板在 data/template/template.exe。可用 msfvenom -x 使用其他 windows 可执行程序代替默认模板文件,比如可以使用微软官网的 processexplorer 作为模板。

捆绑某一程序:使用 msfvenom -x 指定 exe 文件名,可以将生成的木马捆绑到这,以此逃避杀毒软件查杀。可以捆绑至快播,注册机等用户希望的软件中。使用-k 选项,会配置攻击载荷运行独立线程中,就不会影响宿主软件运行。

加壳软件:加壳软件可以改变可执行文件的结构,对可执行文件进行加密压缩并将解压代码嵌入其中。比如使用 upx 加壳软件。在终端可以使用 upx。

> 关于免杀处理最后忠告:不断寻找最强的免杀方法。利用社会工程学

**第八章**

```
客户端渗透攻击
```

基于浏览器渗透攻击

概念:利用社会工程学,将我们事先构造的网站发送给目标,目标点击连接后进入网页,这将会溢出某个特定版本 IE 浏览器中的漏洞,如果用户使用浏览器包含漏洞版本,我们便可以使用 msf 进行入侵渗透;(如果用户以管理员权限运行程序,我们也将获得同意的权限)

原理:相对常规渗透,浏览器渗透利用称为堆散射的漏洞利用技术,(堆:用于动态分配的进程内存空间,程序运行时按需对这段内存进行申请使用)

PS--空指令(NOP):不做任何事情,继续执行下一条指令的汇编指令,空指令着陆区是指内存中由很多条密集相连的空指令所构成的一个指令区域,如果程序在执行过程中遇到一连串的空指令,那么程序就会顺序“滑过”这段空指令区域到指令块末尾,执行该块指令之后的下一条指令。在 x86 架构中,一个空指令对应操作码时 90,经常以x90 的形式出现在渗透代码中。

堆散射技术:将空指令滑行区与 shellcode 组合成固定形式,然后将他们重复填充到堆中,直到填满一大块内存空间。由于堆的缘故,内存动态分配,通常利用 JS 脚本去申请大量内存。然后利用空指令滑行区和 shellcode 填充大块内存区域,当程序的执行流被改变后,程序将会随机跳转到内存中某个地方,而这个内存地址往往已经被空指令构成的滑行区覆盖,紧跟其后的 shellcode 也会被执行。

关于空指令:十六进制表达式x90 是 x86 架构的操作码,一个 90 代表一条空指令。把攻击 shell 插入到一连串X90 中,如x90x90....攻击载荷十六进制码

使用 ollydbg 调试器揭秘空指令机器码:调试器提供一个窗口获得关于进程运行状态,包括汇编指令流、内存数据、以及异常处理细节。利用调试器了解应用程序如何工作,以及如何攻击它。
文件格式漏洞渗透攻击

使用相关文件格式漏洞模块,生成恶意文件。通过各种方式发送到目标机器,监听 shell。例如:ms11_006 漏洞会生成一个 msf.doc 木马,不需 msfvenom 生成了。

**第十章**

社会工程学工具包

SET工具包:git clone https://github.com/trustedsec/social-engineer-toolkit.git;安装并配置config/core/set_config中的参数;

此工具默认使用python假设的内建服务器,需要把apache服务开启,set会使用apache服务进行攻击
针对性钓鱼攻击向量:通过运行/usr/share/setoolit/setoolkit 。利用pdf漏洞生成恶意pdf文件。通过邮件发送到目标,若目标打开此文件,便会利用adobe pdf查看器的漏洞。然后开始监听目标连接与否。

Web 攻击向量:

> 概念:构造使目标具有诱惑力的网页,或克隆某个站点的网页发给目标

java applet:

通过引入恶意java applet进行智能化浏览器检测,确保applet能在目标浏览器正常运行,同时也能在目标主机运行攻击载荷。当目标浏览恶意网页时,网页会弹出一个警告,询问是否需要运行一个不被信任的java applet。可以对applet选择任意名字进行签名,可以叫goole,Microsoft等。通过修改set_config文件。并将WEBATTACK_EMAIL标志位开启,就可以在群发邮件中引入这种攻击方式。

客户端 Web 攻击:
通过侦查目标浏览器可能存在的漏洞进行攻击。用户名和密码获取:set 将克隆某一登录页面,同时自动重写 POST 方法,先把信息 POST 到 set 设置的网页服务器上进行窃取,然后再重定向到合法网站上。set 使用一个內建目录来标识站点中含有敏感信息的表单字段和参数,使用高亮标记获取的用户名和密码。完成信息获取后,按下 ctrl-C 生成报告。

标签页劫持攻击:

目标在浏览器中打开多个标签页访问我们构造的恶意网页时,网页将展现“页面正在装载,请等待...”的提示,而当目标切换标签页时,恶意网页检测到焦点转移到另外一个标签页上,并重写当前页面,提示“请等待。。”并转向目标将要访问网站的提示信息。实际上,目标却是点击了一个被劫持的标签页,并相信自己正在访问合法的E-mail应用或业务应用。并被要求进行登录,当他在这个伪装的恶意网页中输入他的敏感信息之后,目标会重定向至合法网站。可以通过set的Web攻击向量接口来使用标签页劫持攻击技术。

中间人攻击:
使用 HTTP Referer 机制从一个已被控制的网站,或利用跨站脚本漏洞,将目标的敏感信息传递给攻击者的 http 服务器。可以在 set 的 Web 攻击向量接口中找到。

网页劫持:通过一个声称网站已经被转移至其他地方的链接展示给目标,当目标将鼠标放在给链接的时候显示的时正常的URL。

综合的多重攻击方法:综合攻击向量允许攻击者把各种单一的攻击方式串联起来,实施一次多重攻击。通过配置组合不同的攻击向量,生成最终的钓鱼Web页面实施攻击。

传染性媒体生成器

通过这个向量,set创建一个文件夹,烧制到cd/dvd光盘上,或者存储到usb驱动器上。一旦存储媒介被插入到目标主机上,autorun.inf 文件就被自动加载,并运行autorun.inf文件内指定的任意攻击。

USB HID 攻击向量

Teensy USB HID(人机接口设备)攻击向量时定制化硬件和通过键盘模拟绕过限制攻击技术的非凡组合。当在电脑中插入一张DC/DVD光盘,或一个USB设备,如果自动播放被关闭的话,autorun.inf就不能自动执行内嵌的恶意文件。但是利用Teensy USB HID,能够模拟出一个键盘和鼠标,当插入这个设备的同时,电脑识别出一个键盘,利用微处理器和主板的闪存存储空间,就可以发送一组键击命令到目标主机上,进而完全控制目标主机。而不论自动播放是否开启。

SET 的其他特性

交互式shell:可以替换meterpreter 作为一个攻击载荷; RATTE(Tommy版远程管理工具):基于HTTP隧道的攻击载荷,依赖于HTTP协议进行通讯,并利用目标主机的代理设置。当目标主机使用外出包监控规则对非HTTP流量进行阻断时,RATTE发挥其作用; SET图形化界面:输入./set-web就可以进入图形化界面。能够实施无线攻击向量在目标主机创建一个假冒的无线热点,一旦目标主机访问该热点,目标用户访问的任何页面将会被重定向到攻击主机上,便可以发动set存在的各种攻击手段。

**第十一章**

```
Fast-Track
```

介绍:

基于python,实现了一些扩展的高级渗透攻击技术,并使用Metasploit框架进行攻击载荷植入,也通过客户端向量来实施渗透。此外,还增加了对Microsoft SQL攻击,更多渗透攻击模块和自动化浏览器攻击新特性对Metasploit做了补充。通过运行./fast-tracke.py -i进入交互模式,类似set通过选择不同的模块进行渗透攻击。还可以通过fast-track.py -g进入图形化界面。

目的:

主要针对MS SQL进行渗透攻击 和 大规模客户端攻击

**第十二章**

```
Karmetasploit无线攻击套件
```

介绍:

Karametasploit时KARMA在Metasploit框架上的实现,Karma利用windows xp和mac os 操作系统在搜寻无线网络时存在的漏洞(当操作系统启动时,会发送信息寻找之前连接过的无线网络)。karma支持dns,pop3,imap4,smtp,ftp,smb,http服务。这些服务能响应大部分客户端请求,而且能搞出各种各样的恶作剧。(这些模块位于/modules/auxiliary/server中)

原理:

攻击者使用karma在目标电脑搭建一个假冒AP,然后监听并响应目标发送的信号,并假冒成客户端所寻找的任何类型的无线网络,因为大部分客户端电脑都配置成自动连接已使用过的wifi,karma可以用来完全控制客户端的网络流量,这样就允许攻击者发动客户端攻击,截获密码等。

用法:

先安装dhcp服务(isc-dhcp-server),并创建配置。然后下载karma源文件(wget http://www.offensive-security.com/wp-content/uploads/2015/04/karma.rc_.txt),通过db_connect连接到postgres数据库,便会加载browser_autopwn服务。这是针对浏览器尝试多种渗透测试程序的便捷攻击方法。最后再利用airmon-rg工具打开无线网卡的监听模式。通过一系列配置后,在msf中 resource karma.rc_.txt。当客户端连接到制造的ap上,我们通过tail -f /var/log/messages 查看ip的分配情况。详情转至msf-P205页...

> 小结:构造伪装 wifi,DHCP 分发 ip,监听连接,获取信息,配置诱惑页面,kamr 自动进行攻击,获取会话,msf 迁移进程。

**第十三章 **

```
编写自己的模块
```

> metasploit 由 ruby 语言编写,所以需要具备 ruby 语言基础。
> 例子:将一段二进制文件转换为十六进制描述,通过 ms sql 进行传输,到目标主机在通过 powershell 转换为二进制文件。

**第十四章 **

```
创建你自己的渗透攻击模块
```

以下章节为学习编写渗透攻击莫来看看,msf 是由 ruby 语言编写的软件。

原文地址:https://www.cnblogs.com/cou1d/p/14189163.html