7.7 使用Burp Suite破解WebShell密码

Burp Suite是用于攻击Web应用程序的集成平台,其中包含许多工具,并为这些工具设计了许多接口,以加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP消息、持久性、认证、代理、日志、警报的强大的、可扩展的框架。Burp Suite的运行需要Java环境的支持。

7.7.1 应用场景

在渗透测试过程中,目标如果被黑客入侵过,在扫描过程中会发现入侵者留下的WebShell等,但WebShell一般都有密码,如图7-43所示。如果能够获取其密码,就能顺利进入目标系统。WebShell有一句话型的,也有大马型的,本例中为大马。

0281-1

图7-43 WebShell大马

7.7.2 安装与设置

Proxy(代理)是拦截HTTP/S的代理服务器,可作为浏览器和目标应用程序的中间人,允许使用者拦截、查看、修改两个方向上的原始数据流。

01 设置代理服务器

确认安装了Java环境后,打开浏览器进行设置。对IE浏览器,如图7-44所示,依次单击“设置”→“Internet选项”→“连接”→“局域网设置”→“代理服务器”选项,设置地址为127.0.0.1,端口为8080。对Chrome浏览器,则依次单击“设置”→“高级设置”→“网络”→“更改代理服务器设置”选项进行设置。

02 查看Burp Suite代理状态

运行Burp Suite,依次单击“Proxy”→“Options”选项,如图7-45所示,代理端口是8080,状态为正在运行。为浏览器设置代理后,就可以成功抓取浏览器数据了。

0281-2

图7-44 设置IE浏览器

0281-3

图7-45 查看Burp Suite的设置状态

03 拦截设置

在“Proxy”标签页单击“Intercept”标签,然后单击“Intercept is on”按钮,开始进行拦截,如图7-46所示。此时,“Intercept is on”按钮会变成“Intercept is off”按钮,单击“Intercept is off”按钮表示关闭拦截。单击“Forward”按钮表示放行,单击“Drop”按钮表示丢弃。

0282-1

图7-46 拦截设置

7.7.3 破解WebShell的密码

接下来就可以破解WebShell的密码了。

01 抓取密码信息

打开目标WebShell的地址http://127.0.0.1/90sec.php,先随意输入一个密码,提交后在Burp Suite中单击“Forward”按钮对拦截进行放行。Burp Suite抓到了两个数据包,第一个是浏览器访问Shell所发出的GET请求包,第二个是输入密码之后发送的POST请求包。选中“Method”列为“POST”的记录,单击鼠标右键,在弹出的快捷菜单中选择“Send to Intruder”选项,把第二个POST请求包发送到“Intruder”(入侵者)标签页进行破解,如图7-47所示。

0282-2

图7-47 将包发送到Intruder标签页

02 设置密码参数

在“Positions”标签页设置“Attack Type”(功能类型)为默认值“Sniper”,选中Cookie,单击“clear$”按钮,去掉其中的“$”符号,然后单击“Add$”按钮,增加破解密码的参数,如图7-48所示。需要将密码前面的值去掉,同时清除Cookie内容“ASPSESSIONIDCATBRDTD =EMPJNHNALLEHBHIKGGFGENCM”后面的“$”符号。

0283-1

图7-48 设置破解密码的参数

03 设置破解密码字典

单击“Payloads”标签页,这里有密码字典的一些配置项。单击“Clear”按钮清除之前的密码字典设置,然后单击“Load…”按钮,从文件导入密码。如图7-49所示,已经导入了密码字典。

0283-2

图7-49 设置密码字典

04 设置密码,提交错误过滤信息

单击“Options”标签页,该页主要设置错误信息的过滤规则,也就是说,如果是错误结果的则继续进行破解。这里需要针对不同的情况进行设置。如图7-50所示,单击“Clear”按钮清除默认设置。

0284-1

图7-50 设置过滤信息

在WebShell地址中输入任意密码,如图7-51所示,获取信息错误的反馈页面,并获取错误关键字“密码错误不能登录!”。

0284-2

图7-51 获取错误关键字

在“Add”按钮后的文本框中输入关键字并单击该按钮,如图7-52所示,密码暴力破解设置完成。

0284-3

图7-52 添加过滤关键字

05 破解WebShell密码

依次单击“Intruder”→“Start Attack”选项开始进行攻击测试,在攻击响应页面中可以看到前面所设置的密码发送的每一个请求,在“Status”列会返回状态代码。如图7-53所示,密码“00sujung”即为WebShell密码。

0285-1

图7-53 成功破解WebShell密码

状态反馈代码的具体含义如下。

06 成功获取WebShell

在WebShell密码框中输入刚才破解出来的密码“00sujung”,成功登录WebShell,如图7-54所示,成功破解WebShell密码。

0285-2

图7-54 成功获取WebShell