目录
- 知识点必备:
- windows权限认识(用户及用户组)
- 0x01 普通权限
- 0x02特殊权限
- 演示案例:
- 基于WEB环境下的权限提升-阿里云靶机
- 基于本地环境下的权限提升-系统溢出漏洞
- 基于本地环境下的权限提升-AT&SC&PS命令
- 案例给到的思路点总结如下:
- 涉及资源:
这个章节会讲到内网的权限提升,获取系统权限主要是针对linux和windows两个操作系统,像mac系统因为很少
Windows版本是区分为个人使用和服务器使用的操作系统版本,因为我们知道是个人电脑的话,目前主流的是win7和win10,当然也有人用到了其它的版本,但是大部分支持win7和win10多一点,服务器目前主流的是windows2008和2012,当然也有人用到了win2016,这个是windows上的版本
提权主要集中在两块,一种是借助于web提权,一种是本地提权
#明确权限提升基础知识: 权限划分
#明确权限提升环境问题: WEB及本地
#明确权限提升方法针对: 针对方法适应问题
#明确权限提升针对版本: 个人及服务器版本,针对方法
我现在获得一个网站的权限,这个网站权限仅仅只能对网站自身的东西进行操作,需要对服务器上的东西进行操作,需要我们进行服务器提权,获取当前系统的一个权限,可能是administratro和system,这种提权情况,我们称之为web提权,就是借助web权限的口子,然后提升到系统权限,它的提权环境是建立在拿下网站的权限之后的操作,我们称之为web的提权环境
比如说我们windows电脑有很多用户,你像administrator用户,例外还有一些普通用户,简简单单的users,在电脑上分配个用户,给这个人,它能操作这个电脑,但是它有部分操作操作不了,这个时候普通用户要跨越到管理员用户,提权环境,我们就称之为本地提权,就是建立在当前本地用户,它没有建立在web层面的操作,所以提权是有两个环境的
这两个环境最终会影响到提权的成功机率,可以这样说,如果是本地提权,成功机率是非常高的,web提权方面成功机率相对会低一些,网站权限没有本地用户权限高,所以它有很多东西不能操作,有些东西会阻止到你,非常麻烦,所以它的成功机率会低一些
把版本区分开来,主要是告诉大家,针对的是个人还是电脑操作系统、服务器操作系统,我们大部分演示是针对服务器的,因为个人电脑,我们在事情情况下面,可能大部分网站、应用,架设的都是服务器操作系统,2008、2012,2016会比较多一点,不可能碰到win10,个人的操作系统,
提权方法也是有适应条件的,这个溢出漏洞提权方法,它可以针对web层面的,针对本地层面的,都可以用到这个提权方法,但是有一些部分,它就针对不到
知识点必备:
用户及用户组权限划分; windows提权命令
windows权限认识(用户及用户组)
Windows系统内置了许多本地用户组,这些用户组本身都已经被赋予一些权限(permissions),它们具有管理本地计算机或访问本地资源的权限。只要用户账户加入到这些本地组内,这些用户账户也将具备该组所拥有的权限。
0x01 普通权限
默认情况下,系统为用户分了7个组,并给每个组赋予不同的操作权限,管理员组(Administrators)、高权限用户组(Power Users)、普通用户组(Users)、备份操作组(Backup Operators)、文件复制组(Replicator)、来宾用户组(Guests),身份验证用户组(Ahthenticated users)。其中备份操作组和文件复制组为维护系统而设置,平时不会被使用。
管理员组拥有大部分的计算机操作权限 (并不是全部) ,能够随意修改删除所有文件和修改系统设置只有程序信任组(特殊权限)。再往下就是高权限用户组,这一部分用户也能做大部分事情,但是不能修改系统设置,不能运行一些涉及系统管理的程序。普通用户组则被系统拴在了自己的地盘里,不能处理其他用户的文件和运行涉及管理的程序等。来宾用户组的文件操作权限和普通用户组一样,但是无法执行更多的程序。身份验证用户组(Ahthenticated users) 经过ms验证程序登录的用户均属于此组。
0x02特殊权限
除了上面提到的7个默认权限分组,系统还存在一些特殊权限成员,这些成员是为了特殊用途而设置,分别是: SYSTEM(系统)、Trustedinstaller(信任程序模块)、Everyone(所有人)、CREATOR OWNER(创建者) 等,这些特殊成员不被任何内置用户组吸纳,属于完全独立出来的账户。
真正拥有“完全访问权”的只有一个成员: SYSTEM。这个成员是系统产生的,真正拥有整台计算机管理权限的账户,一般的操作是无法获取与它等价的权限的。
“所有人”权限与普通用户组权限差不多,它的存在是为了让用户能访问被标记为“公有”的文件,这也是一些程序正常运行需要的访问权限——任何人都能正常访问被赋予“Everyone”权限的文件,包括来宾组成员。
被标记为“创建者”权限的文件只有建立文件的那个用户才能访问,做到了一定程度的隐私保护。
但是,所有的文件访问权限均可以被管理员组用户和SYSTEM成员忽略,除非用户使用了NTFS加密。
无论是普通权限还是特殊权限,它们都可以“叠加”使用,“叠加”就是指多个权限共同使用,例如一个账户原本属于Users组,而后我们把他加入Administrators组再加入Trustedinstaller等权限提升,那么现在这个账户便同时拥有两个或多个权限身份,而不是用管理员权限去覆盖原来身份。权限叠加并不是没有意义的,在一些需要特定身份访问的场合,用户只有为自己设置了指定的身份才能访问,这个时候“叠加”的使用就能减轻一部分劳动量了。
system是系统权限,我们操作系统最高的权限,administrator是属于管理员权限,现在我们在用c盘的windows目录,我们删除不了它,因为你的操作系统正在引用这个目录里面的文件,你是删除不了的,你是属于administrator,你只能用这个系统,但是我想毁掉这个系统的话,你是system权限的话,你就能把windows目录删掉,那么这个系统就没有了,但是你是本地的administrator你就删除不了,你没有权限对操作系统的系统文件进行这个删除,我们一般提权的目的,就是提升为system,当然如果是提升不到system,提升到一个administrator,我们本地的管理员组,这个用户组里面的成员,也是可以的,所以一般提权就是两个方向,最好是system,其次是administrator,像其它的一些组,你自己看一下,其它的关系不大,简单来说就是系统、管理员组特殊点
演示案例:
基于WEB环境下的权限提升-阿里云靶机
信息收集-补丁筛选-利用MSF或特定EXP-执行-西瓜到手
Vulmap,Wes,WindowsVulnscan对比,exp在那里获取?
我这里靶机使用的是win2012操作系统,目前很主流的服务器操作系统版本
我们这里就通过它来演示,由于演示的是web环境,目前取得的是web权限,我们要通过web权限获得这台服务器的权限
这里采用菜刀、冰蝎、蚁剑连接都可以,但是要免杀,不然连接不上去,原因就是阿里云自带防护,前期在web文章跟大家讲过了,这里用asp加密的木马,相当于绕过了拦截
提权里面大部分都会用到cmd功能,我们今天演示的是提权方法里面的溢出漏洞,这个是主要的提权方法,一般数据库和溢出漏洞无法提权,才会考虑下面这些方式
溢出漏洞一般都是要执行文件,进行提权,windows上是用cmd或powershell来执行文件,所以这个cmd是要经常看的,要去执行运行的,我们这里执行一条命令,可以看到这是它当前的IP地址
获取它当前用户的权限
我们在桌面创建个bat文件,把cmd给调出来
我当前在本机上执行的时候,它返回的是administrator
然后我在webshell里面返回的是apppool,明确两个东西不一样,所以它的权限不一样,这就是web权限为什么要进行提权的原因
我们要知道普通用户权限是做不了事情的,它直接添加用户显示空白,就是很多敏感操作它无法执行
一般进行提权,我们先信息收集,然后进行补丁筛选,信息收集会用到系统的查询命令
它就简简单单就这几个
systeminfo、whoami、whoami /priv
命令执行把结果保存到x.txt里面,因为systeminfo的结果,我们会经常拿他做一个参考
执行结果在当前目录的下面也可以webshell里面去看结果
阿里云很厉害,执行敏感点直接封IP
我们着重看操作系统版本、系统类型、修补程序
一个补丁编号多应一个漏洞
那我们就知道,这是一台win2012、64位的操作系统,补丁编号154个
Vulmap Windows不支持,wes和windowsVulnscan会比较好,wes老旧不支持2018年后的EXP,我们弃用它的原因就在这里
windowsVulnscan挺好的
wes主要是应用在web提权页面的,这三款工具都是进行补丁筛选的,都是用来查找漏洞的
我们看第一款Vulmap,ps1是windows上的powershell脚本,就是跟cmd命令差不多的语言,是windows上的特殊语言
它会查找到当前操作系统的漏洞,它会自动帮你进行判断,它对windows支持的不是很友好,不是很好用
执行.ps1的文件是利用powershell平台,我们在web提权里面,是在cmd窗口执行,.ps1在cmd窗口是执行不了的,因为cmd识别不了.ps1
我们后门上面没有powershell的执行环境,但是也可以启用powershell环境,得看你当前webshell的权限,如果有一定权限,就能够使用,但是大部分是不能启用的,基本上在web环境下面,你想要执行ps1文件,是不行的,所以这个工具的受用面就已经窄了很多,这个受用面建立在图形化的操作,把这个powershell打开,然后去运行它
Vulmap的应用环境不适应在web层面去运行,一般我们拿到网站权限是不支持调用powershell窗口出来,去执行.ps1的,因为东西执行不了,结果我们就看不了
Vulmap运行完的结果是没有漏洞,其实这台服务器是有漏洞的,所以Vulmap工具不好,就是这个原因
第一次使用WES,会让你安装新来源,自动安装漏洞库,他就是在漏洞库里面筛选systeminfo.txt的数据,就是我们刚才在cmd里复制出来的,对比漏洞编号,然后给予他的漏洞库,这个漏洞库是微软官方下载到的
结果出来了
这个结果表明目前操作系统可能存在操作系统漏洞,因为他没有打补丁,但不代表就一定有漏洞,我们知道windows有很多系列,中文版、英文版,另外还有国内的盗版,阉割版、改版的,由于每个漏洞的成因,你的版本有差异的话,即使你是win2008,但不代表你就是原生态官方的源码,可能是盗版,阉割的一些东西,改的一些东西,可能会造成漏洞的失败,没有打补丁,并不代表就有这个漏洞
2020代表2020年,1519漏洞的id值
wes能在web环境下执行,python是我自己电脑装的,不需要对方服务器装这个东西,我只需要systeminfo的信息就可以了,在我自己的电脑上进行对比,如果是在对方服务器上进行对比的话,那就只能说这个工具比较鸡肋了
wes使用在web环境的,同样的道理,他也适用在本地提权,因为web环境也能适应的话,那么本地我们操作在对方的界面,一些UI,我们肯定想怎么搞就怎么搞
WindowsVulnScan诞生在Vulmap不行的情况下,我们试一下
我们可以看官方的文档进行操作,首先WindowsVulnScan项目是不能在web环境使用,因为它执行的是ps1脚本,所以我们要把ps1放到对方的服务器进行运行
其实KB.json完全是systeminfo的信息,只是它是利用powershell脚本去读取,看到的结果跟systeminfo的结果是如出一辙的
打开一看其实就是systeminfo的信息,按照它的格式把操作系统和漏洞编号这些写上去就可以了,也就是说这个也是可以利用到web环境的,只是你要改一下
把编码改成UTF-8,在执行
这个信息就是它下面得到的,然后检索出来存在漏洞的就是这些编号,是服务器可能存在的漏洞,所以它是通用的,本地也行,web也行,只是说web用起来需要你自己人工的把格式对起来,这两个工具,我是推荐使用WindowsVulnScan工具
我们可以把WindowsVulnScan工具二次开发一下,直接在web环境使用,因为你把powershell脚本一改的话,生成的kb.json也按照你指向的格式进行显示
基于本地环境下的权限提升-系统溢出漏洞
MSF结合云服务器搭建组合组合拳?模拟上述操作实战演练?
搭建: https://www.cnblogs.com/MOrtals/p/11920903.html
我们现在已经知道补丁了,那些漏洞可能存在,接下来就是要利用这些漏洞,一种叫msf或者你用特定的exp,msf就是在kali上寄生的强大平台,也是在安全圈里面天天吹的,流行很多年的老牌渗透平台了,kali上面就是msf牛逼了,其它的基本上就跟不上了
在网上搜索漏洞编号,有些人喜欢公开一些信息,把自己生成好的漏洞脚本放在上面
https://github.com/SecWiki/windows-kernel-exploits,这个漏洞收集的会比较全一些
我们用那种方法都行,一般是优先操作msf,然后再选用特定,因为msf不是每天都在更新,它的漏洞是随着它的版本在更新,它不是每天都在更新,也就是说隔一年或者半年发布新的产品,然后新的成品会把半年内产生的新漏洞更新到产品里面去,所以前10天产生的漏洞,msf没有集全到上面去,所以这个时候,我们用到特定的exp
优先选msf工具的原因,是这个工具是由人去开发出来的,每个漏洞是经过自己测试的,所以这个漏洞不大可能存在执行不了,因为漏洞开发者的错误,这个特定exp是每个作者写出来的,它没有经过严谨的测试,所以你用特定的exp去利用漏洞,没成功,可能是因为漏洞开发者工具没写好,有些东西没兼容进去
由于我们在利用的时候,大部分是针对外网的主机,msf放在我们本地电脑上面又运行不了,一般msf提权会反弹会话到你的主机,而我们的本地电脑一般在内网,我们还要做内网映射,这是非常麻烦的,所以msf在实战中的应用,我们一般自己购买一台服务器,这个配置不需要特别好,搞个2核2G,就足够了,因为我们在上面只装msf,其它的不安装,然后操作系统就是Linux系统、ubuntu
msf有Linux版本和windows版本,建议用linux版本,因为原生态就在上面,兼容性会好一点,不会出现乱七八糟的问题
很多时候会遇到一些反弹后门、反弹文件、远控的木马,都会遇到杀毒软件的拦截,这个时候就涉及到免杀的知识点
如果我们在攻击中碰到阿里云,我们就不要想反弹了,反弹就不现实了,只能对应exp执行,在它本地显示提权的结果,你这个反弹就不现实了,阿里云自带安全组,其它地方的服务器就不会有这个问题
这个权限就是名副其实的web权限,它不是administrator也不是sysytem,现在我们要对它进行漏洞提权,我们可以通过前期的知识点,去里面筛选一个exp
我们通过操作系统win2012进行筛选,使用16年的exp进行攻击
这个漏洞会载入到seseion3里面,它就用exp通过这个会话去攻击
在设置个payload
现在就是利用ms16的漏洞,成功创建第四个会话
直接返回system权限
阿里云不是说每台服务器都有安全组,我们可以使用隧道技术解决阿里云端口的问题
Vulmap,Wes,windowsVulnScan针对漏洞面,其他方法不同层面?
CVE-2020-0787 BitsArbitraryFileMoveExploit
这里突然出现了一个黑窗
我通过普通用户连接到这台计算机了,在内网渗透中,经常使用一款工具mimikatz,盗hash和明文密码的东西,针对windows上的东西,能直接获取你当前账号的明文密码,但是你运行这款工具,需要你当前administrator的权限,你不是这个权限,你运行不了工具,它无法成功获取。在内网渗透里面口令是非常重要的,它可以通过这个口令渗透到其它的主机,因为其它主机很有可能跟这个口令相关,我们要知道,我们的权限足够了,你才能进行下去,你运行mimikatz是内网的常用工具,你权限不够,运行它也没用
我有你电脑普通用户、会话权限,这种提权就属于本地提权,将你当前用户提权至administrator或system,有这个权限之后,你无论在上面安装东西,执行一些东西,都是可以的,想干嘛就干嘛,服务器的信息你都能得到,信息收集的越多,你在内网成功的机率就会越大,否则你的普通用户收集起来是有阻碍的
BitsArbitraryFileMoveExploit是通杀windows系统版本的漏洞,通过它能将普通用户直接提权至system
我们要明白exp的使用场景,它能做什么事情,这才是重要的
执行exp能不能成功,我们要看漏洞说明,就是有的webshell的权限会执行不了exe文件,有的在webshell里面执行不了cmd的命令,当然这是有原因的
我们在连接shell工具里面执行BitsArbitraryFileMoveExploit.exe文件是不可以的,是因为这个利用工具在执行的时候,会弹cmd窗,而shell工具只有命令回显,无法弹这个窗口给我们看,是因为开发者,编译漏洞的人,它用代码写出来的,除非我们自己二次开发,但是这个也要看漏洞原理,有些它也想直接获取系统权限,它不想单独弹窗出来,可能漏洞成因必须要这样做,因为它在执行的时候会生成几个文件
像这种编译出来的一般是c++语言,因为windows底层就是c语言写的,如果不会c,就不用想编译,如果你还想在上面加一些二次开发的功能,那肯定也需要懂,很难的,不是一个简单的事情
深度的黑客,大部分都是搞开发的,特别是像c++底层的
基于本地环境下的权限提升-AT&SC&PS命令
at 15:13 /interactive cmd.exe
sc Create syscmd binPath= "cmd /K start" type= own type=interact
sc start syscmd
psexec.exe -accepteula -s -i -d cmd.exe
有些提权的思路和技巧,网上都有文章,然后我写这个2003是想告诉大家,有些东西已经不适用在2008、2012上去了
at系统计划命令,就是提权布置个作业,这个是系统设置的一个小bug,权限上面设计的逻辑错误,导致的提权
它这个设计在计划任务运行的时候,会以system去调用执行,它是windows系统层面权限设计的一个错误,跟我们说的逻辑漏洞是一个道理
这个nt命令只针对win7之前的操作系统,也就是说win2003,在win2008之后的就没有了,已经被修复了
有时候网上资料是有问题的,sc针对win7和win8操作不了
syscmd服务会绑定exe的执行文件,相当于在我电脑上面创建一个服务,叫syscmd,然后这个时候在用sc启动服务,就会启用对应的文件,弹出一个窗口
at和sc只有在老的系统上有用,所以我们主要用的是ps命令,但是这个ps命令有个前提条件,需要下载pstool,它是windows提供的第三方工具库
案例给到的思路点总结如下:
1.提权方法有部分适用在不同环境,当然也有通用方法
2.提权方法也有操作系统版本区分,特性决定方法利用面
3.提权方法有部分需要特定环境,如数据库,第三方提权等
有些漏洞它不是提权漏洞,我们得具体看待,具体分析
我们在进行提权的时候,上面有数据库可以借助数据库提权,还有第三方软件可以借助第三方软件,但是数据库和第三方软件不是操作系统自带的,是管理员安装的,数据库还比较常见,很多数据库都有,第三方软件比如安装VNC、FTP的软件,这个就是由管理员自身决定的,我们说的第三方软件提权,就是由第三方软件上的安全问题造成的,但是这个东西不是说每个服务器都有,这不安装也没办法,数据库也一样,虽然说很多服务器都有数据库,但不代表我们复现都有,所以有些提权方式是适用到特殊环境的,它有这个东西,你才能有这个思路
有条件的后面搞台服务器,装个msf,后期用的着,然后msf不仅是装在上面,因为msf装在上面就是用的方便,后期在内网渗透里面,大家用的CS这个平台也要建立在外网上面,如果你也在实战环境下面的话,我们也可以在靶机上面YY一下,不装外网也可以,但是你要在实战环境下的话,cs也要部署在外网下面
涉及资源:
https://github.com/vulmon/Vulmap
https://github.com/bitsadmin/wesng
https://github.com/unamer/CVE-2018-8120
https://github.com/chroblert/WindowsVulnScan
https://github.com/SecWiki/windows-kernel-exploits
https://www.cnblogs.com/MOrta1s/p/11920903.html
https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWSVERSION/releases/tag/1