Agartha 是一个渗透测试工具,它创建动态有效负载列表和用户访问矩阵,以揭示注入缺陷和身份验证/授权问题。已经存在许多不同的攻击有效载荷,但 Agartha 创建了运行时、系统和供应商中立的有效载荷,具有许多不同的可能性和绕过方法。它还提请注意用户会话和 URL 关系,这使得发现用户访问违规变得容易。此外,它将 Http 请求转换为 JavaScript,以帮助更多地挖掘 XSS 问题。总之:
有效负载生成器:它为不同的攻击类型创建有效负载/单词列表。
目录遍历/本地文件包含:它创建具有各种编码和转义字符的文件字典列表。
代码注入/远程代码执行:它为具有不同组合的 unix 和 windows 环境创建命令字典列表。
SQL 注入:它为各种数据库创建堆叠查询、基于布尔值、基于联合、基于时间和基于顺序的 SQLi 词表,以帮助发现漏洞。
授权矩阵:它根据用户会话和 URL 列表创建访问角色矩阵,以确定与授权/身份验证相关的访问违规问题。
和Http 请求到 JavaScript 转换器:它将 Http 请求转换为 JavaScript 代码,以用于进一步的 XSS 攻击等。
安装教程:
打开Extender-->Options
-->2 步骤是java路径
-->3 步骤是jpython路径
设置完成打开Extender-->Extensions --> Add
它同时支持 unix 和 windows 文件系统。您可以为您想要的路径动态生成任何单词列表。您只需要提供一个文件路径即可。
“Depth 深度”表示词表应该有多深。您可以生成“直到”或“等于”这个值的词表。
'Waf Bypass'询问您是否要包括所有旁路功能;比如空字节,不同的编码等等。
它使用您提供的命令创建命令执行动态词表。它将 unix 和 windows 环境的不同分隔符和终止符组合在一起。
“URL 编码”对字典输出进行编码。
它为 Stacked Queries、Boolean-Based、Union-Based、Time-Based、Order-Based SQLi 攻击生成有效负载,您无需提供任何输入。您只需选择您想要的 SQLi 攻击类型和数据库,然后它会生成一个具有不同组合的词表。
“URL 编码”对字典输出进行编码。
'Waf Bypass'询问您是否要包括所有旁路功能;比如空字节,不同的编码等等。
“Union-Based”和“Order-Based”询问有效载荷应该有多深。默认值为 5。
其余的与数据库和攻击类型有关。
这部分侧重于用户会话和 URL 关系以确定访问违规。该工具将访问来自预定义用户会话的所有 URL,并用所有 Http 响应填充表。它是一种访问矩阵,有助于找出身份验证/授权问题。之后我们将看到哪些用户可以访问哪些页面内容。
用户会话名称:您可以右键单击任何请求并将其发送到“Agartha Panel”以定义用户会话。
用户可以访问的URL 地址:您可以使用 Burp 的蜘蛛功能或任何站点地图生成器。您可能需要为不同的用户提供不同的 URL。
提供会话名称、HTTP 标头和允许的 URL 后,您可以使用“添加用户”按钮添加它。
向 Agartha 发送 Http 请求后,面板将填写工具中的一些字段。
您提供的会话的用户名是什么。您最多可以添加 4 个不同的用户,每个用户将有不同的颜色,以使其更具可读性。
“添加用户”用于添加用户会话
您可以在“GET”和 POST 之间更改 HTTP 请求方法。
“重置”按钮清除所有表格和字段内容。
“运行”按钮执行任务。
“警告”以不同颜色表示可能存在的问题。
用户的请求头和所有用户相关的 URL 访问都将基于它。
用户可以访问的 URL 地址。您可以使用手动或自动工具(如蜘蛛、站点地图生成器等)创建此列表,并且不要忘记删除注销链接。
您提供的所有 URL 都将在此处。如果 URL 属于她/他,用户单元格也会被着色。
未经身份验证的 Http 请求和响应。所有会话 cookie、令牌和参数都将从 Http 调用中删除。
带有您在第一步中定义的用户会话的 Http 请求和响应。单元格标题显示 Http 响应代码和响应长度。
只需单击您要检查的单元格,此处将显示 Http 详细信息。
单击“运行”后,该工具将用不同的颜色填充用户和 URL 矩阵。除了用户颜色,您还会看到橙色、黄色和红色单元格。URL 地址不属于用户,单元格颜色为:
黄色,因为响应返回带有身份验证/授权问题的“HTTP 302”
橙色,因为响应返回“HTTP 200”但内容长度不同,存在身份验证/授权问题
红色,因为响应返回“HTTP 200”和相同的内容长度,存在身份验证/授权问题
它将非常相似,即使我们添加更多用户并且任何授权问题都将以相同的方式突出显示。
您可能还注意到,它只支持一种 Http 请求方法和用户会话,因为它处理批量请求,并且不可能为每个调用提供不同的 header 选项。但是您可以使用“GET/POST”方法来查看响应差异。
该功能用于将 Http 请求转换为 JavaScript 代码。进一步挖掘 XSS 问题并绕过标头限制(如 CSP、CORS)会很有用。
要访问它,请右键单击任何 Http 请求、扩展、“Agartha”和“复制为 JavaScript”。
它会自动将其保存到您的剪贴板,并附上一些备注。例如:
Http request with minimum header paramaters in JavaScript:
<script>var xhr=new XMLHttpRequest();xhr.open('POST','http://vm:80/dvwa/login.php');xhr.withCredentials=true;xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.send('username=admin&password=password&Login=Login');</script>
Http request with all header paramaters in JavaScript:
<script>var xhr=new XMLHttpRequest();xhr.open('POST','http://vm:80/dvwa/login.php');xhr.withCredentials=true;xhr.setRequestHeader('Host',' vm');xhr.setRequestHeader('User-Agent',' Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0');xhr.setRequestHeader('Accept',' */*');xhr.setRequestHeader('Accept-Language',' en-US,en;q=0.5');xhr.setRequestHeader('Accept-Encoding',' gzip, deflate');xhr.setRequestHeader('Content-type',' application/x-www-form-urlencoded');xhr.setRequestHeader('Content-Length',' 44');xhr.setRequestHeader('Origin',' http://vm');xhr.setRequestHeader('Connection',' close');xhr.setRequestHeader('Referer',' http://vm/dvwa/login.php');xhr.send('username=admin&password=password&Login=Login');</script>
For redirection, please also add this code before '</script>' tag:
xhr.onreadystatechange=function(){if (this.status===302){var location=this.getResponseHeader('Location');return ajax.call(this,location);}};
请注意,JavaScript 代码将在原始用户会话上调用,并且许多标题字段将自动填充。在某些情况下,服务器可能要求某些头字段是强制性的,因此您可能需要修改代码以进行调整。
项目地址:https://github.com/volkandindar/agartha