大家好! 在
最后一部分中,我们讨论了用于在哈希猫上“协调”“哈希破解”并行任务的现有解决方案。
在这一部分中,我们将继续讨论Hashtopolis项目。 考虑在服务器上准备Web环境的组件。 让我们分析服务器和Hashtopolis代理的主要参数。
安装和配置Hashtopolis
对于其工作,Hashtopolis服务器需要您提供以下组件:
- Apache2 / Nginx的
- 64位PHP 7.0+和模块:php-gd模块,pear,php-curl
- MySQL 5.x + KM具有对应用程序数据库的完全访问权限
Hashtopolis具有Nginx支持,为此您需要为所有包含.htaccess文件的“ / hashtopolis”子目录配置访问阻止。 在本文中,我们正在考虑使用Apache2 Web服务器(因此是LAMP)安装Hashtopolis。
您还可以使用
XAMPP熟悉该项目,在5.6.40版上,一切都“顺利完成”。 本文中的材料对于在XAMPP上配置Hashtopolis很有用。
在剧透下,对Hocktopolis Docker映像进行一些了解:
在Docker中安装Hashtopolis在Docker Hub中发现了hashtopolis服务器的多个映像,但是,只有一个
映像至少产生了一些信任:
hub.docker.com/r/kpeiruza/hashtopolis作者不太懒惰,并添加了对Docker中hashtopolis的“安装”的描述。 详细说明了设置和容器。 重要说明-配置端口映射(例如'docker run ... -p 80:80')时,请考虑您操作系统的功能以及访问Hashtopolis主机代理上的Web服务器的需求。
稍后将在本文中介绍设置Web应用程序本身的过程。
我们使用的项目版本:Hashtopolis 0.10.1
为了使Hashtopolis服务器正常工作,我们有足够的主机具有以下配置:
我们建议安装phpMyAdmin,Adminer或其他与DBMS一起使用的类似软件。 因此,在Hashtopolis功能出现问题的情况下,可以在不离开浏览器的情况下执行疑难解答。
在我们的LAMP服务器上安装软件的过程中,我们使用了Hashtopolis项目Wiki(https://github.com/s3inlc/hashtopolis/wiki/Server-Prerequisites)中的说明:
- sudo apt更新&& sudo apt升级
- sudo apt安装mysql服务器
- 须藤apt install apache2
- sudo apt安装libapache2-mod-php php-mysql php php-gd php-pear php-curl
- sudo apt安装git
- 须藤apt安装phpmyadmin
如果在安装mysql软件包的过程中未启动交互式配置向导,则需要运行以下命令:mysql_secure_installation。
因此,使用“交互式向导”,将设置用于访问DBMS的密码。
然后,您需要在MySQL中创建一个用户以及该用户对其具有读/写访问权限的数据库。
我们继续安装Hashtopolis服务器。
您可以从项目的git仓库中克隆Hashtopolis源代码,我们按照指示进行操作并克隆了仓库,并从“ hashtopolis”目录中将“ src”递归转移到“ www”:
- git克隆github.com/s3inlc/hashtopolis.git
- cd hashtopolis / src
- 须藤mkdir / var / www / hashtopolis
- 须藤cp -r * / var / www / hashtopolis
- sudo chown -R www-data:www-data / var / www / hashtopolis
根据开发人员的建议,将“ KeepAliveTimeout”指令设置为10毫秒。 理由:
为了利用python客户端中TCP会话的使用,需要将服务器的超时设置为高于状态更新时间的时间
我们的免费翻译:“为了在以Python实现的客户端中使用TCP会话,必须将Web服务器配置中的会话超时设置为高于“状态更新”代理值”
使用Apache2配置文件(在我们的系统中,文件“ /etc/apache2/apache2.conf”的路径)打开任何(收藏夹)编辑器,并将“ KeepAliveTimeout”伪指令的值从5更改为10。
如有必要,将别名添加到Web服务器配置中的Hashtopolis文件夹中(如果该目录是在“ / var / www / html”以外的目录中创建的)。 我们还添加了“ AllowOverride All”指令,以允许在子目录中使用.htaccess文件。
为了以防万一,我们在随后重新启动apache2服务时向“ /etc/apache2/apache2.conf”配置文件中添加了“ ServerSignature Off”和“ ServerTokens Prod”指令,并指出了允许访问“ phpMyAdmin”指令的IP地址“允许从1.2.3.4/28“在配置中” /etc/apache2/conf-enabled/phpmyadmin.conf中。 允许从任何地址访问Hashtopolis或限制locahost / PrivateIP空间-取决于特定的设置。 在我们的情况下,允许从任何IP进行访问,最好由您决定这一点。
最好限制对hashtopolis目录的访问。 我们采用了快速简便的方法-访问“ / hashtopolis”目录,Web客户端必须通过基本身份验证。
安装apache-utils软件包(如果之前未完成)。 在此阶段的实用程序中,需要“ htpasswd”。 创建文件和用户登录名:
sudo htpasswd -c /etc/apache2/.htpasswd kraud
输入密码后,用户将被添加到.htpasswd文件,您可以使用命令“ cat /etc/apache2/.htpasswd”进行检查。 添加用户是通过类似的命令执行的,而无需使用“ -c”键。
接下来,我们通过将指令添加到apache2 / sites-available / 000-default.conf配置中来配置对Web应用程序目录的访问。 结果,我们得到了这样的“目录”配置:
Alias /hashtopolis "/var/www/hashtopolis" <Directory /var/www/hashtopolis> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Order allow,deny Allow from all AllowOverride All Require valid-user </Directory>
请注意,在使用“基本身份验证”时,您还必须在Hashtopolis代理的配置中添加参数(文件“ \ hashtopolis_agent_dir \ config.json”):
{ "url": "http://1.2.3.4/hashtopolis/api/server.php", "voucher": "", "token": "token", "uuid": "d54de86f-3942-4127-af63-f257c45b66cd", "debug": false, "auth-user": "kraud", "auth-password": "password" }
关于Hashtopolis代理稍后。
您还必须为Hashtopolis应用程序和有权访问该数据库的MySQL用户创建一个新数据库。 然后,更喜欢它的人-在PMA或控制台中创建数据库-这并不难。 我们将数据库名称和凭据保存在注释中-稍后将需要它们。
这些步骤的结果是,Hashtopolis Web应用程序安装页面应在以下URL加载:http:// <server_ip> / hashtopolis:

如果这没有发生,则问题可能出在目录“ / var / www / hashtopolis”的权限中,或Web服务器的配置中(例如,“ Alias”中的错误)。 值得检查URL http:// <server_ip> /hashtopolis/src/index.php或http:// <server_ip> /hashtopolis/src/install/index.php
然后,将加载“ DB连接”表单,在该表单上必须填写用于连接到DBMS的参数,数据库名称(例如“ hashtopolis”)和用于访问它的用户凭据。 如果正确建立了连接,将打开一个带有“继续”按钮的以下表格-单击它。 如果一切正常,将打开以下“创建管理员用户”表单-在这里,我们指示Hashtopolis Web应用程序管理员的凭据:

单击“创建”按钮后,如果正确处理了表单,将显示一个文档,其中包含成功安装的建议和建议:
- 确保“ ./install”目录上的权限正确或删除此目录
- 检查文件“ ./install/.htaccess”的内容(应为“拒绝订单,允许\ nDeny全部拒绝”)
- 在针对“ ./install”的请求中,状态码403应该返回
完成所有步骤后,应将Hashtopolis身份验证表单加载到URL“ http:// <server_ip> / hashtopolis /”:

接下来(可选),配置HTTPS的使用,安全证书的连接-我们将省略此步骤。 我们继续配置Hashtopolis代理。
代理安装
代理直接参与“哈希破解”任务-在主机代理上启动“哈希猫”或其他破解程序的实例。 Hashtopolis服务器与代理之间的对话通过HTTP / HTTP进行。
该代理可以安装在运行Windows / Linux / MacOS X的系统上。在当前版本的Hashtopolis中,仅支持Python代理。
.net版本的Hashtopolis代理不再受支持我们已经有一个用于使用“ hashcat”“破解哈希”的Windows 10主机。 因此,我们决定不进行任何更改,而是采用现成的工作系统来连接到Hashtopolis。
在Windows系统上,您必须首先安装Python 3解释器,不要忘记安装“将Python 3.x添加到PATH”小鸟(以下示例):

然后,您需要从Hashtopolis服务器下载hastopolis.zip存档,或者以其他方式将存档文件传递到代理主机。
要从服务器下载代理文件,请从“代理”下拉菜单中单击“新代理”。 然后我们进入“添加新代理”部分,其中将包含下载按钮-“下载”。

另外,在“添加新代理”部分中,将显示用于连接代理的URL和用于创建凭证的按钮(您需要单击“创建”)。
在我们的示例中,归档文件保存在目录“ C:\ hashtopolis”中,这将是代理的工作目录。
为了方便使用代理(查看日志,复制/粘贴等),我们使用PowerShell会话。 该代理通过以下命令启动:
> python.exe .\hashtopolis.zip
使用-d选项以调试模式启动代理。
> python3.exe .\hashtopolis.zip -d
您可以通过使用字符串debug:false“编辑config.json配置来禁用调试。
您可以使用“ -h”选项为运行代理程序命令的其他参数调用帮助:
Hashtopolis代理命令> python.exe \ hashtopolis.zip -h
用法:python3 hashtopolis.zip [-h] [--de-register] [--version]
[-仅数字] [-禁用更新] [-调试]
[--voucher VOUCHER] [--URL URL]
Hashtopolis客户端v0.4.0
可选参数:
-h,--help显示此帮助消息并退出
--de-register客户端应立即自动从服务器注销
--version显示版本信息
--number-only仅在使用--version时显示数字
--disable-update禁用从以下位置检索客户端的自动更新
伺服器
--debug,-d强制调试输出
--voucher VOUCHER凭证,用于自动注册
--url URL到Hashtopolis客户端API的URL
初始化之后,代理将询问Hashtopolis服务器URL(您可以从“添加新代理”部分复制它):“请输入Hashtopolis安装API的URL:”
注意:代理脚本必须始终在后台运行。 当从服务器接收多播消息时,有一个hashtopolis-runner组件可运行代理。 Runner仅在Linux主机上工作。 在此处阅读更多信息:
github.com/s3inlc/hashtopolis-runner如果URL正确且代理能够连接,则将收到一条消息,要求提供凭证:“未找到令牌! 请输入优惠券以注册您的代理商:
如果凭单代码正确,则代理将发出确认,并将进入任务的待机模式:
Successfully registered! Collecting agent data... Login successful! Hashtopolis Server version: 0.10.1 () Client is up-to-date! No task available!
在表格的“代理”部分,将添加一个新的代理,其中包含有关系统的信息:主机名,GPU / CPU和其他信息:

在C:\ hashtopolis目录中,将创建一个具有代理配置的config.json文件和一个client.log日志文件。 根据说明,可以手动添加其他参数(例如HTTP代理):
github.com/s3inlc/hashtopolis-agent-python根据代理程序的来源判断,无法找到有关日志轮换或最大日志大小的信息,来自终端的所有stdout也都写入了文件,未发现任何限制或检查。
我们建议您立即转到Hashtopolis Web界面中的代理设置-只需单击主机名(在上面的屏幕快照中为“ DENIGMA”)。 最好安装“带有秘密数据的信任代理”小鸟,并指出所有者(“所有者”):

饼干二进制设置
“ Crackers / Cracker Biniaries”部分介绍了“ cracker”可执行文件的参数,默认情况下,该部分包含“ hashcat 5.1.0”。 如果您需要使用其他版本的hashcat来执行任何特定任务,请单击“添加版本/二进制”(发布列表:
github.com/hashcat/hashcat/releases )。 在表单中,填写所有字段,然后单击“创建二进制文件”:

填写表单时要特别小心,尤其要避免在“下载URL”中使用“空格”,在“二进制基本名称”字段中指定“ hashcat”-代理脚本将补充可执行文件名称中缺少的部分。 因此,我们为版本4.1.0添加了另一组可执行文件。 您可以通过单击“名称”列中的饼干名称进行更改。
作为此“设置”的结果,在创建新任务(“任务/新任务”)时,可以选择一个哈希猫版本。

在“饼干”部分中,您还可以添加另一种饼干,
更多有关在此处使用通用饼干的信息 。
在代理主机上本地“ crackers”目录中启动任务时,在“下载URL”中指定的7z归档文件将解压缩到包含cracker ID号的文件夹中

如果较早版本的“ cracker”已“安装”,则不会再次下载存档。
创建一个任务来破解哈希
我们已经设置了代理,迫不及待要签出。 为了开始“破解哈希”,您需要创建一个哈希列表(或“哈希列表”),然后在任务中指定它。 要在Hashtopolis Web界面中创建列表,请单击“列表”,然后从下拉菜单中选择“新建哈希表”。 在我们的项目中,我们经常遇到NTLM / NetNTLM哈希-我们将在它们上进行练习。 我们将使用任何在线服务并生成NTLM哈希。 然后,设置列表的其余参数,然后单击“创建哈希列表”:
重要的一点 -在创建的列表中可以看到所有“破解/未破解”的哈希。 所有哈希数据都与列表相关联,甚至与列表相关联。 因此,删除哈希列表时要小心。 并且如果由于某种原因应用程序模块停止工作,例如,删除分配了通知的任务后“ notifications.php”模块已关闭,则我们必须单击“ NotificationSetting”表中的条目
接下来,您需要添加字典,因为我们将使用“ dictionary”选择(“ hashcat”中的键“ -a0”)打破哈希。 转到“文件”部分(“单词列表”选项卡将处于活动状态),单击“添加文件”按钮并选择本地文件,然后单击“上传文件”。 我们还可以使用URL下载,例如,
从“已知”存储库下载字典 :

现在,您可以启动代理程序的任务。 从Hashtopolis主菜单中,选择“任务/新任务”。 接下来,填写表格:
- 在“名称”参数中输入任务的名称
- 在Haslist参数中选择哈希列表
- 我们从右侧的“单词列表”列表中标记该词典-词典的名称会在“命令行”字段中自动替换:使用以下格式指定词典的路径:“ .. \ path \到\ file \%filename%”
- 在“命令行”字段中,输入hashcat启动参数,例如“ -a0”
- 当任务很多时,优先级是重要的。
- “任务注释”用于注释;在Hashtopolis之外,它们将不可用。
- 您可以为任务选择一种颜色,该颜色将在任务列表中进行标记(菜单“任务/显示任务”)
我们默认保留其余参数,单击“创建任务”。 之后,新任务将出现在任务列表中:

从表中可以看出,没有将代理分配给任务“ NTLM_test_crack”。 您可以从“分配:”参数的“代理详细信息”菜单中分配代理,也可以在任务属性中,从列表中选择一个代理,然后单击“分配”按钮:

之后,“引擎”将立即在代理上启动-指令将被发送:
在这种情况下,控制台将以“ H / s”的形式显示有关准备GPU的阶段,选择过程,系统性能等信息。
启动任务及其执行的结果是,“哈希列表”的状态将被更新。 通过单击“任务”表或“哈希详细信息”部分中与“破解:”相对的数字,可以查看选定的密码:

如果代理在执行任务期间遇到错误,则该代理的状态将更改,因此有必要手动激活它。 要再次“激活”代理,您需要在代理设置的“活动”参数前放置一个小鸟。 暂停状态如下:

为了防止代理由于错误而停止,您需要将“ Cracker errors”参数更改为“保持代理运行”选项之一(代理可以工作,但是错误可以在日志中固定或拒绝):

尾巴
感谢您的关注! 在下一部分中,我们将讨论在Hashtopolis中设置通知。