🙀
CrackMapExecのエラー解決方法 [Poetry]
エラー
結論
公式ドキュメントのインストール方法を実施する。
poetryを使いましょう。
apt-get install -y libssl-dev libffi-dev python-dev build-essential
git clone --recursive https://github.com/byt3bl33d3r/CrackMapExec
cd CrackMapExec
poetry install
poetry run crackmapexec
環境
kali linux
# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2022.4
Codename: kali-rolling
経緯
デフォルトインストールされているcrackmapexec (cme) を実行したらエラーが出た。
ライブラリをpip installすれば良いかと思ったけど入れてもエラーが出る。
# crackmapexec -h
/usr/lib/python3/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
Traceback (most recent call last):
File "/usr/bin/crackmapexec", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/lib/python3/dist-packages/cme/crackmapexec.py", line 117, in main
args = gen_cli_args()
^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/cme/cli.py", line 76, in gen_cli_args
protocol_object = p_loader.load_protocol(protocols[protocol]['path'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/cme/loaders/protocol_loader.py", line 15, in load_protocol
protocol = imp.load_source('protocol', protocol_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/imp.py", line 170, in load_source
module = _exec(spec, sys.modules[name])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 621, in _exec
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/cme/protocols/rdp.py", line 11, in <module>
from aardwolf.commons.factory import RDPConnectionFactory
File "/usr/lib/python3/dist-packages/aardwolf/commons/factory.py", line 7, in <module>
from asyauth.common.credentials import UniCredential
File "/usr/lib/python3/dist-packages/asyauth/common/credentials/__init__.py", line 168, in <module>
from asyauth.common.credentials.kerberos import KerberosCredential
File "/usr/lib/python3/dist-packages/asyauth/common/credentials/kerberos.py", line 10, in <module>
from minikerberos.pkinit import PKINIT
File "/usr/lib/python3/dist-packages/minikerberos/pkinit.py", line 15, in <module>
from oscrypto.keys import parse_pkcs12
File "/usr/lib/python3/dist-packages/oscrypto/keys.py", line 5, in <module>
from ._asymmetric import parse_certificate, parse_private, parse_public
File "/usr/lib/python3/dist-packages/oscrypto/_asymmetric.py", line 27, in <module>
from .kdf import pbkdf1, pbkdf2, pkcs12_kdf
File "/usr/lib/python3/dist-packages/oscrypto/kdf.py", line 9, in <module>
from .util import rand_bytes
File "/usr/lib/python3/dist-packages/oscrypto/util.py", line 14, in <module>
from ._openssl.util import rand_bytes
File "/usr/lib/python3/dist-packages/oscrypto/_openssl/util.py", line 6, in <module>
from ._libcrypto import libcrypto, libcrypto_version_info, handle_openssl_error
File "/usr/lib/python3/dist-packages/oscrypto/_openssl/_libcrypto.py", line 9, in <module>
from ._libcrypto_cffi import (
File "/usr/lib/python3/dist-packages/oscrypto/_openssl/_libcrypto_cffi.py", line 44, in <module>
raise LibraryNotFoundError('Error detecting the version of libcrypto')
oscrypto.errors.LibraryNotFoundError: Error detecting the version of libcrypto
解決方法
OffSecのDiscordで他の人も同じエラーが出ていたので同じ解決方法を実施した。
公式ドキュメントのインストール方法を実施する。
Poetryを使うのが良いらしい。そもそもpipはもう古いらしい...
Poetryとは
PoetryはPythonのパッケージ管理ツールで、プロジェクトの依存関係を管理し、仮想環境を構築することができます。pyproject.tomlという設定ファイルを使って、依存関係を管理します。開発者がPythonプロジェクトを整理し、パッケージの取り扱いを容易にするツールです。 (GPT-3.5より)
サンプルコマンド
# 多分pyproject.tomlがあるディレクトリに移動する必要がある(要勉強)
cd CrackMapExec
poetry run crackmapexec smb 192.168.50.100 -u usernames.txt -p passwords.txt --continue-on-success
poetry run crackmapexec smb 192.168.50.100 -u pachirisu -p "P@chis1ru" --shares
おまけ
CrackMapExecとは
CrackMapExec(CME)は、ネットワーク内でセキュリティ検査や侵入テストを行うためのオープンソースのツールです。主に、Windowsベースのネットワークで使用され、様々なネットワークプロトコルを利用してシステムへの侵入や情報収集を行うためのツールです。CMEは複数の機能を提供し、パスワードスプレー、ユーザー認証、共有フォルダのリストアップ、セキュリティ脆弱性の探査、セキュリティポリシーの評価などを実行できます。セキュリティ専門家やペネトレーションテスターがネットワークの脆弱性を評価し、セキュリティ上の問題を特定するためにCMEを利用することがあります。(GPT-3.5より)
Discussion