Klyda项目旨在帮助针对在线Web应用进行快速的基于凭证的攻击。
Klyda支持从简单的密码喷洒到大型多线程字典攻击的使用。
Klyda是一个新项目,我正在寻找任何贡献。任何帮助都非常感激。
Klyda提供简单易记的使用方式,同时仍可根据您的需求进行配置:
1) 将Git仓库克隆到本地,git clone https://github.com/Xeonrx/Klyda
2) 进入Klyda目录,cd Klyda
3) 通过Pip安装必要的模块,pip install requests beautifulsoup4 colorama numpy
4) 显示Klyda帮助提示以了解用法,python3 klyda.py -h
Klyda主要针对Linux设计,但应该能在任何能够运行Python的机器上工作。
Klyda工作所需的只是四个简单的依赖项:攻击的URL、用户名、密码和表单数据。
您可以通过 --url 标签解析URL。它应该看起来像这样:--url http://127.0.0.1
请记住永远不要在您没有适当权限的网页上发起攻击。
用户名是这些字典攻击的主要目标。可能是一整个范围的用户名、特定的几个,或者仅仅一个。这些完全由您在使用脚本时决定。您可以通过以下几种方式指定用户名……
1) 手动指定,-u Admin User123 Guest
2) 提供一个文件,或多个文件组合使用,-U users.txt extra.txt
3) 同时使用文件与手动输入,-U users.txt -u Johnson924
密码是这些攻击的难点。您不知道它们,因此才存在字典攻击和暴力破解。与用户名类似,您可以从仅一个密码开始,一直到任意多个。您可以通过以下几种方式指定密码……
1) 手动指定,-p password 1234 letmein
2) 提供一个文件,或多个文件组合使用,-P passwords.txt extra.txt
3) 同时使用文件与手动输入,-P passwords.txt -p redklyda24
表单数据是您构建请求的方式,以便目标网站接收并处理所给信息。通常您需要指定:一个用户名字段、一个密码字段,有时还需要一个额外字段。您可以通过浏览器的检查元素的网络选项卡来查看目标使用的表单数据。对于Klyda,您使用 -d 标签。
您需要使用占位符,以便Klyda知道在转发请求时将用户名和密码注入何处。它可能看起来像这样……
-d username:xuser password:xpass Login:Login
xuser 是注入用户名的占位符,xpass 是注入密码的占位符。请确保您知道这些,否则Klyda无法工作。
以 (key):(value) 的格式提供表单数据。
为了使Klyda能判断是否成功命中,您需要提供数据供其分析。Klyda利用给定的失败登录尝试的黑名单数据,以便区分失败请求和成功请求。您可以黑名单三种不同类型的数据……
1) 字符串,--bstr "Login failed"
2) 状态码,--bcde 404
3) 内容长度,--blen 11
您可以根据需要为每个黑名单指定任意数量的数据。如果响应中未找到任何给定的数据,Klyda会将其标记为“命中”,表示这是一次成功的登录尝试。否则,如果黑名单中的数据被找到,Klyda会将其标记为失败的登录尝试。
由于您提供数据供Klyda评估,因此假阳性不会出现。
如果您不提供任何黑名单数据,那么每个请求都会被Klyda标记为命中!
默认情况下,Klyda仅使用单个线程运行;但您可以通过 -t 标签指定更多线程。这对于加快工作速度很有帮助。
然而,凭证攻击在网络中可能非常显眼,因此容易被检测到。目标账户可能仅仅因为登录尝试过多而被直接锁定。这会造成拒绝服务攻击,但阻止了您获取用户的凭证,而这正是Klyda的目标。
因此,为了使这些攻击不那么显眼,您可以使用 --rate 标签。这允许您将线程限制为每分钟一定数量的请求。
其格式如下:--rate (# of requests) (minutes)
例如,--rate 5 1 将每分钟仅发送5个请求。请记住,这是针对每个线程的。如果您有2个线程,则每分钟将发送10个请求。
在Damn Vulnerable Web App (DVWA) 或 Mutillidae 上测试Klyda。
python3 klyda.py --url http://127.0.0.1/dvwa/login.php -u user guest admin -p 1234 password admin -d username:xuser password:xpass Login:Login --bstr "Login failed"
python3 klyda.py --url http://127.0.0.1/mutillidae/index.php?page=login.php -u root -P passwords.txt -d username:xuser password:xpass login-php-submit-button:Login --bstr "Authentication Error"
如前所述,Klyda仍在开发中。未来,我计划增加更多功能并重新格式化代码以使其更整洁。
我的首要任务是增加代理功能,目前正在开发中。