欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-24 08:32:52
...

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


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

在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

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

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(一):开始与结束的序章

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

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

在早期的版本中还有一款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。下面具体讲解每个文件夹的具体作用。

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

0x01:data

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

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

0x02:documentation

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

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

0x03:lib

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

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

0x04:modules

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

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

0x05:plugins

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

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

0x06:scripts

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

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

0x07:tools

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

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


间奏:黑客们的葵花宝典

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

0x01:search命令

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

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

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

0x02:Nmap扫描+msf攻击

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

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

nmap -sV $目标IP地址

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

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上一群活跃的年轻人维护。

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

相关标签: Metasploit