黑客网站渗透入侵破解拿权限
11.3K subscribers
2.4K photos
109 links
Download Telegram
使用渗透工具 BeEF 连接 Web 浏览器
浏览器漏洞利用是指利用网络浏览器中的安全漏洞执行未经授权的操作。这可能涉及各种技术,通常是为了控制浏览器或运行浏览器的系统,或窃取敏感信息。

浏览器漏洞利用的基本概念是,网络浏览器与任何软件一样,其代码中可能存在缺陷或漏洞。这些漏洞可能会导致浏览器以非预期的方式运行。

利用 BeEF,可以利用 JavaScript 的广泛使用来“挂钩”浏览器,从而利用潜在漏洞、执行命令并可能获得未经授权的访问或提取敏感信息

可以通过创建一个网站,将钩子脚本添加到页面标题,然后让目标通过网络钓鱼攻击访问该网站来实现此目的。这可以通过电子邮件、社交媒体或其他方式 发送链接,可以使用 URL 缩短器来伪装原始 URL。
可以在这里发挥创造力,创建一个看起来合法的竞赛表格,使我们能够挂接用户的浏览器并同时通过表格收集一些信息,一旦用户的浏览器被挂接,浏览器就会出现在BeEF控制台中。
BeEF 为我们提供了大量信息。有价值的见解包括正在使用的浏览器、其版本、运行的操作系统、其架构、平台信息、语言详细信息、已安装的插件等等
BeEF黑客渗透扫描软件安装 BeEF
BeEF 目前尚未安装在 Kali 上。请确保在安装之前使用以下命令运行更新:
sudo apt update
可以使用以下命令安装 BeEF:
sudo apt install beef-xss
启动 BeEF
安装 BeEF 后,您可以使用以下命令运行它:
sudo beef-xss
第一次运行该程序时,系统会提示您更改“beef”用户的默认密码。 一旦更改密码,BeEF 将开始加载,并且您将看到 WebUI 地址和“hook.js”的钩子脚本。
BeEF 应该会为您打开浏览器,您需要使用在进入程序之前设置的新密码以用户“beef”身份登录。
BeEF 的界面
一旦成功登录,将看到初始 BeEF 界面。
已连接浏览器:您将在此处看到当前已连接的所有浏览器的列表。每个浏览器都列出了详细信息,例如 IP 地址、浏览器名称和操作系统。由于最初没有连接任何浏览器,因此此部分为空。

入门:如何使用 BeEF 框架的指导。它包括有关如何挂接浏览器和使用命令模块的信息。

日志:此部分显示 BeEF 活动的日志。其中包括与目标浏览器的交互、发送的命令、收到的响应以及任何错误或重要的系统消息。

僵尸:在 BeEF 术语中,“僵尸”是指 BeEF 服务器控制的已挂接浏览器。“僵尸”部分列出了这些浏览器并允许您与它们交互。由于尚未挂接任何浏览器,因此此部分也将为空。

基本:此视图提供有关已挂钩浏览器的基本信息,例如 IP 地址、浏览器类型和操作系统。在此视图中,您还可以使用可用的命令模块与已挂钩浏览器进行交互。

请求者: “请求者”视图可让您从挂钩浏览器手动制作和发送 HTTP 请求。这对于从挂钩浏览器的角度探索网站或 Web 应用程序、测试访问控制或执行其他手动测试任务非常有用。
BeEF,即浏览器利用框架,是黑客用来评估和利用网络浏览器漏洞的工具。

专注于系统或服务器端漏洞的安全工具不同,BeEF 专注于客户端——具体来说,是用户的 Web 浏览器。这一点很重要,因为即使系统的网络或操作系统是安全的,Web 浏览器中的漏洞仍可以为攻击者提供进入网络或系统的途径。

深入的浏览器分析: BeEF 可以提供有关挂钩浏览器的详细信息,例如浏览器类型、版本、已安装的插件、浏览器是否在 Tor 上运行、cookie 等。

客户端利用: BeEF 有许多命令模块,可帮助利用 Web 浏览器。这些模块可以执行各种任务,例如窃取 Cookie、进行社会工程攻击、发起网络攻击等。

真实世界模拟: BeEF 允许道德黑客模拟真实世界的攻击场景,帮助组织更好地了解他们的风险状况。

持续访问:即使 IP 发生变化,BeEF 仍能保持对挂钩浏览器的控制,从而提供对目标的持续访问以进行进一步的利用。

易于使用的界面: BeEF 界面基于 Web 且用户友好,可以更轻松地管理挂钩的浏览器和执行命令模块。
邮箱弱token
获取邮箱弱token的方法:Unix时间戳 + md5

(1)通过邮箱找回密码,正常流程去邮箱查看重置密码链接,发现链接处有一串 md5 加密字符串。字符串解密,类似 1491293277(10位),可以判断为Unix时间戳。 重置他人密码只需利用他人邮箱发送重置密码邮件,在短时间内对Unix时间戳进行暴力破解,即可获得重置密码的链接。

(2)用户名,重置密码链接直接使用用户名进行区别,改变用户名即可更改他人密码

(3)服务器时间,利用两个帐号同时点击找回密码,去邮箱查看找回密码的链接,发现两者的随机 token 只差1-2,而且可以猜测出为服务器时间。所以可以用一个未知帐号和一个已知帐号同时点击找回密码,稍微遍历随机 token,就可以构造出未知帐号的密码找回链接

修改密码页面抓包,修改其中的USERNAME_COOKIE为其他用户(有可能会经过编码,比如 base64),提交即可修改其他用户密码,抓包其中有 step 参数,输入用户名,抓包,数据包中有step参数,将这个参数改为最后一步,step改为4即可,提交后便掠过之前所有的验证步骤,修改密码成功
金额数据纂改
在提交订单时进行抓包,修改支付的金额或折扣等相关数据。

修复: 商品信息如金额、折扣等原始数据校验应来自于服务器端,不应接受客户端传来的值。

订单支付时的总价未验证漏洞
在支付时抓包,将数据包中的支付的金额修改为1

本地JS参数纂改
应用程序通过Javascript处理用户提交的请求, 通过修改Javascript脚本,测试修改后的数据是否影响到用户。

服务器校验;跨平台支付调用接口,要做好数据的完整性校验,确保一致性
任意密码重置漏洞

验证码泄露
验证码返回凭证的三种形式:url返回凭证、抓包返回凭证、凭证在页面中

进入重置密码页面,输入手机号,验证码,下一步,抓包,查看返回值。得到验证码信息

验证码爆破
进入找回密码界面,输入需要找回的手机号进行验证,如果存在该手机号,则会向改手机号发送短信验证码进行验证

这里随便输入一个验证码然后抓包,然后对该验证码进行爆破,即可爆破出正确验证码
渗透测试实战之Sea
Web渗透端口扫描
使用nmap进行端口探测,发现存在22和80端口开放。
访问80端口,然后使用F12查看源代码。
目录爆破
接着使用工具爆破目录,发现存在一些 目录。
访问README.MD,发现是WonderCMS
Linux渗透实战之Trickster
web服务枚举,点shop跳转了一个页面,其实右键看源码也可以看见目录&子域名爆破。
发现admin634ewutrx1jgitlooaj路由,会跳转到一个登录界面,发现PrestaShop版本为8.1.5,上网搜索找到了CVE-2024-34716
建立立足点
CVE-2024-34716利用,枚举
建立了初始立足点,www-data账号,权限不高,先把shell完整一下
python3 -c 'import pty; pty.spawn("/bin/bash");'
home目录发现三个用户,获得www-data账号,我们能操作的地方很少,常见思路是去找数据库&备份&配置等敏感文件,开了3306端口,本地大概率起了一个mysql,尝试找配置文件
出现了很多config相关的文件夹及文件,一个一个找不现实,从哪里下手依赖经验及当前情势的判断,发现在app/config下放了很多config相关的文件
Linux渗透HTB-Heal
详细端口扫描:nmap -sTVC -O -p22,80 10.10.11.46
.................
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 68:af:80:86:6e:61:7e:bf:0b:ea:10:52:d7:7a:94:3d (ECDSA)
|_ 256 52:f4:8d:f1:c7:85:b6:6f:c6:5f:b2:db:a6:17:68:ae (ED25519)
端口利用,一个登录界面,有注册功能,注册一下看看
一个简历生成器,可以尝试着生成一个简历,同时使用bp进行抓包,在放包的过程中我们发现了filename参数,利用目录遍历来读取敏感文件,利用成功,并且知道了两个用户ron和ralph,可以利用这个去读网站的配置文件,用套路进行信息收集:目录爆破&子域名爆破.
目录爆破:gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-small.txt
找到survey路由,点击参与调查发现一个子域名
在index.php发现一个用户名ralph
再次进行目录爆破,在这里使用rust编写的feroxbuster来进行目录爆破,因为在爆破的过程中看到了很多503,为了便于直观看结果,使用-C参数过滤一下503:
feroxbuster --url http://take-survey.heal.htb/index.php/ -C 503
找到一个登录界面,目前只有两个用户名,和破解的密码
通过上面的流程我可以将所有收集到的渗透测试edu资产储存到我的字典中,供下次的爆破使用,因为这次没有找到账号密码,所以这一次并不是很顺利,经历了2-3天终于让我在一个api测试的时候发现了敏感信息泄露
一般那种302直接转到统一身份认证的资产我都是会直接跳过的,但是实在是没有思路了,于是扫描了一下302的资产的目录
然后我是用如下命令扫描目录
./feroxbuster --scan-limit 2 -t 10 --filter-status 404 -x jsp -A -u https://you-url -k --proxy

发现了几个可疑的目录,将他们提取出来,然后使用katana爬取所有的链接到指定文件中

./katana -list urls.txt -o allurls.txt -proxy socks5://ip:10808

网站的指纹能够识别的的话,比如说我的这个资产是xx平台,根据这个信息去zoomeye寻找相似的网站,寻找不用统一身份认证的,然后将路由添加到urls.txt文件中

扫描出来的结果全部储存在allurls.txt文件中,我们需要将所有的js文件的路由提取到js-urls.txt

然后使用SecretFinder扫描js文件,并且将结果放到result.txt文件中

可以自行修改正则匹配,修改SecretFinder.py文件即可
Sharp4Byass2SYSTEM:一款通过令牌复制将进程提升至SYSTEM权限的工具

在内网渗透环境中,获得 SYSTEM 权限是攻击链中的关键一环。通过分析 Windows 系统中对高权限进程的访问机制,发现利用 SYSTEM 账户运行的关键进程,如 winlogon 的访问令牌,可以伪装为操作系统内核,启动具有最高权限的进程。

识别当前进程的所有者权限
Sharp4Byass2SYSTEM.exe 工具内部调用 WMI 的 GetOwner 方法获取进程所有者的用户名和所在的域,然后通过判断进程所有者的用户名是否包含了关键词 "NT",比如返回 "NT AUTHORITY\SYSTEM",包含了NT就表示该进程是系统用户创建的,因此也具备了SYSTEM权限.

通过 Process.GetCurrentProcess().Id 获取当前运行的进程的PID,接着,调用 上述的 GetProcessOwner 方法,通过传递当前进程的 ID,获取进程的所有者信息。
随后,通过调用 WMI 的 Win32_Process 类查询获取进程的各种信息,例如 PID、名称、启动时间等,这里最核心的代码是获取进程所有者
将当前进程提升至SYSTEM
当 Sharp4Byass2SYSTEM 以管理员权限运行且当前用户不是系统账户时,将触发自定义的 jumptoSys() 方法,尝试将当前进程提升为 SYSTEM 权限.

这里有个重新启动该进程的步骤,主要是当前运行程序的完整路径(通过 Assembly.GetEntryAssembly()获得),以便在提升权限后重新启动该进程,先保存在变量 procTostart 之中。随后,通过 Process.GetProcessesByName("winlogon")[0],获取名称为 winlogon 的进程,而 winlogon 是一个高权限进程,通常运行在 SYSTEM 账户下.

接着,使用 OpenProcessToken 函数打开 winlogon 进程的访问令牌,并将令牌句柄存储在 tokenHandle 中,最后,使用 DuplicateTokenEx 函数创建一个新的令牌,并且指定 TokenPrimary 为主令牌,代码如下所示

doubleDuplicateToken 是存储复制后的新令牌句柄,再使用 CreateProcessWithTokenW 函数启动一个进程

创建新的进程中,procTostart 变量是当前程序的路径,用于重新启动自身,doubleDuplicateToken 表示 SYSTEM 权限的令牌,这样重启后的进程权限是SYSTEM,并且进程的所有者变成NT系统用户。