用户
搜索

该用户从未签到

i春秋-脚本小子

Saferman

Rank: 2

0

主题

36

帖子

84

魔法币
收听
0
粉丝
0
注册时间
2016-7-2
发表于 2017-5-10 18:34:59 2711256
本帖最后由 Parrot 于 2017-5-11 16:50 编辑

一、前言
本人从事信息安全领域有二年之久,近期在埋头研究机器学习领域。众所周知,在未来的不久,人工智能在安全领域的应用将会越来越广,所以作者我也计划在以后的工具开发中加入更多的机器学习算法以力求工具的效果达到最佳。其中由我本人一人完成并维护的工具cupper将会成为我的第一个应用机器学习的安全工具。近期我刚完成cupper V2.0版本,其实最早做这款工具的初衷是为了自己在CTF比赛中能快速解决许多社工密码猜解问题,结果后来发现这款工具越做越偏向一款完整的社工工具,效果随着自己知识和经验的积累越来越好,也就此想分享给各位大表哥们。
希望这款工具能带给各位正面的帮助,同时也通过这篇文章提出自己对构建这样一款工具的一个思路。
工具项目地址:https://github.com/Saferman/cupper
!警告:工具、技术文章全部仅限于学习、比赛和研究用途,切勿用于违法的事情,否则后果自负,作者概不负责。

二、cupper来源
还记得很多年前一款社工神器cupp,全称:common user passwords profile。然而cupp多年不更新而且密码生成习惯和汉语还是有很大差异的,在渗透测试环节存在许多。因此最初为了be better than cupp,我将我的社工密码生成器命名为cupper。但是现在这款工具的目标不仅仅是be better than cupp,而是力求达到国内最好的社工密码猜解效果。

这款工具核心的密码生成是createpassword.py中的 PasswordGenerator类
[Python] 纯文本查看 复制代码
class PasswordGenerator(object):
    '''
    Password generator.
    '''
......

如果对国内各种社工密码生成算法熟悉的读者一定会发现,我的类的命名事实上和pentestDB中的社工密码生成类是一样。这一点不得不说,最早我就是在这个pentestDB中的PasswordGenerator基础上进行修改的,后来就一直延续了很多命名习惯。
没想到pentestDB的社工密码生成算法被很多人使用,包括之前有人发帖讲解如何搭建自己的渗透测试平台,其中的社工密码也是使用的pentestDB中的算法。

三、cupper功能特性
cupper可以实现的功能如下:

  • 根据目标的信息,生成目标可能使用的密码列表(核心功能)
  • 对各种密码字典进行各式各样的处理,包括检查并删除重复密码、为每一行密码添加新的内容、大小写转换、合并密码字典、分析密码字典、按照一定规则对密码进行排序以提高破解效率
  • 下载作者提供的常用密码字典(这个最近无心维护了,哪天心情好了再说)




四、使用方法
输入命令python cupper.py -h即可查看帮助说明。
其中本次V2.0版本的cupper我特别加入了session保存,这样当你需要对相同目标使用相同信息生成密码的时候不需要重新输入(重新输入真的很累)

五、cupper V2.0的设计过程

在V1.0版本中cupper基本雏形和国内pentestdb中社工密码模块接近,只是在密码生成算法里做了很多改进以提高猜中目标密码的准确度。但是随着实际使用,发现了很多模仿pentesdb模块结构带来的不足:
  • 第一,本身社工密码生成功能在pentesdb中只是一个简单py脚本,很难直接拿出来当称手的工具
  • 第二,cupperV1.0使用极其不方便,如果输入用户信息量较大,每次输入都感到乏累
  • 第三,即使我对原本的算法做了改进,但是工具仍然不能处理很复杂的情况,并且算法的改进缺少科学性,仅仅凭个人经验,对准确度的提升不是很大

鉴于这些问题,在V2.0中我做了大幅度改进:
  • 第一,是算法改进,这次我对手中的密码库进行分析和提取,构建了一个简单的神经网络分析密码结构并分类,设定一个门阈值,凡是密码结构出现次数高于这个门阈值的都会被吸收进cupper的算法里
  • 第二,为了解决用户每次针对同一个目标重复输入信息的困扰,会自动保存用户输入
  • 第三,这个版本的工具还是以一个人为目标的社工生成器为主,但是新增了针对网站的密码猜解场景,以后会继续增加
  • 第四,对密码的文件处理增加了一项排序,此工具会为每一个密码打一个权重,以表示这个密码被用户使用的可能性,之后会按照权重将密码从高到低排列放入密码文件里,提高破解效率
  • 第五,其他的部分细节改变,比如通用弱密码文件由原来的10个增加至33个,密码文件分析得到信息更多等
  • 第六,此工具纯python编写,并且为了很好的便捷性,尽量使用python自带模块,不需要额外依赖。上一个版本V1.0工具仅限在Linux下使用,这次支持windows
  • 第七,密码生成算法和V1.0一样,封装在createpassword.py中的PasswordGenerator对象里,你可以通过下面的方法在你的程序中使用这个算法:
    [Python] 纯文本查看 复制代码
    import createpassword
    pg = PasswordGenerator(目标信息的PI结构体数据)
    password_list = pg.generator()



六、展望
人工智能、机器学习用于信息安全上一个趋势,在未来的版本中我会加入更多的人工智能领域的算法,以便更好地挖掘密码结构规律和分析密码文件,最终提高密码猜解的准确度。
除此之外,如果你有任何工具使用过程中的困惑、建议和问题欢迎到cupper的wiki页面说明你的情况。


Keep quieter to hear more
Traceback (most recent call last):
  File "G:\password\createpassword\cupp.py\cupper-master\cupper.py", line 172, in <module>
    main()
  File "G:\password\createpassword\cupp.py\cupper-master\cupper.py", line 161, in main
    interactive()
  File "G:\password\createpassword\cupp.py\cupper-master\cupper.py", line 120, in interactive
    passwordslist=pg.generator()
  File "G:\password\createpassword\cupp.py\cupper-master\lib\createpassword.py", line 373, in generator
    self.preHandlePhase()
  File "G:\password\createpassword\cupp.py\cupper-master\lib\createpassword.py", line 280, in preHandlePhase
    TwoNestedList = self._GetSituationList()
  File "G:\password\createpassword\cupp.py\cupper-master\lib\createpassword.py", line 197, in _GetSituationList
    r=SituationHandle(self.situation)
  File "G:\password\createpassword\cupp.py\cupper-master\lib\situationhandle.py", line 34, in SituationHandle
    word_List,number_List = Situation2(SituationDict['2websiteName'],SituationDict['2domainName'])
KeyError: '2websiteName'
使用道具 举报 回复
发表于 2017-5-17 13:05:21
Mr_杰先生 发表于 2017-5-13 15:41
Traceback (most recent call last):
  File "G:\password\createpassword\cupp.py\cupper-master\cupper.p ...

感谢你的回复,问题已修复
Keep quieter to hear more
使用道具 举报 回复
发表于 2017-5-11 23:02:58
pope想 发表于 2017-5-11 22:56
这...小白我不会用啊

我的问题,最近刚想在windows西安运行,还没解决编码问题。你可以在Linux下先用着
Keep quieter to hear more
使用道具 举报 回复
Parrot 发表于 2017-5-11 23:24
你的问题我已经解决,重新下载试试

window下还是乱码  算了,我去linux下搞
使用道具 举报 回复
你好,第二次使用出现是否要加载session,跳过之后不能重新输信息吗? 1.jpg
使用道具 举报 回复
发表于 2017-5-26 00:04:12
暗影风暴 发表于 2017-5-24 16:00
查了查,好像局部变量和全局变量的事,求解。

已修复错误
Keep quieter to hear more
使用道具 举报 回复
发表于 2017-5-11 10:25:41
666666测试一下
Keep quieter to hear more
使用道具 举报 回复
支持楼主,前来学习
使用道具 举报 回复
发表于 2017-5-11 15:26:50
膜拜大牛
使用道具 举报 回复
发表于 2017-5-11 15:35:00
学习学习、、、
使用道具 举报 回复
发表于 2017-5-11 20:11:38
去我试试去
使用道具 举报 回复
发表于 2017-5-11 22:56:50
1.jpg
这...小白我不会用啊
使用道具 举报 回复
发表于 2017-5-11 23:24:53
pope想 发表于 2017-5-11 22:56
这...小白我不会用啊

你的问题我已经解决,重新下载试试
Keep quieter to hear more
使用道具 举报 回复
发表于 2017-5-13 02:18:10
感谢分享
使用道具 举报 回复
发表于 2017-5-17 17:24:09
大牛收下我的膝盖
使用道具 举报 回复
膜拜大牛
使用道具 举报 回复
12下一页
发新帖
您需要登录后才可以回帖 登录 | 立即注册