(define-module (gnu packages impacket) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix build-system python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages python-web) #:use-module (gnu packages python-crypto) #:use-module (guix licenses)) (define-public ldapdomaindump (package (name "ldapdomaindump") (version "0.10.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/dirkjanm/ldapdomaindump/archive/refs/tags/v" version ".tar.gz")) (sha256 (base32 "0ngxhfswzzjqxkv1xnpzlcchiviv81n2lyyanw90j5450v8pkn75")))) (build-system python-build-system) (arguments (list #:tests? #f #:phases #~(modify-phases %standard-phases (add-before 'build 'build-ignore-toml (lambda _ (substitute* "pyproject.toml" (("license = \"MIT\"") ""))))))); upstream bug in pyproject.toml, but license specified by package def anyway (propagated-inputs (list python-dnspython python-ldap3)) (synopsis "Active Directory information dumper via LDAP") (description "In an Active Directory domain, a lot of interesting information can be retrieved via LDAP by any authenticated user (or machine). This makes LDAP an interesting protocol for gathering information in the recon phase of a pentest of an internal network. A problem is that data from LDAP often is not available in an easy to read format. ldapdomaindump is a tool which aims to solve this problem, by collecting and parsing information available via LDAP and outputting it in a human readable HTML format, as well as machine readable json and csv/tsv/greppable files.") (home-page "https://github.com/dirkjanm/ldapdomaindump") (license expat))) (define-public impacket (package (name "impacket") (version "0.12.0") (source (origin (method url-fetch) (uri "https://github.com/fortra/impacket/archive/refs/tags/impacket_0_12_0.tar.gz") (sha256 (base32 "0v6n3z27bjhvgxx9vh2h723p40051ym8rmlsfkzh6fn054d9ah8w")))) (build-system python-build-system) (arguments (list #:tests? #f #:phases #~(modify-phases %standard-phases (add-before 'check 'fix-require (lambda _ (substitute* "setup.py" (("pyOpenSSL") "pyOpenSSL>=24.3.0")))) (delete 'sanity-check)))) ; gets confused over pyOpenSSL version after build success (propagated-inputs (list python-six python-pyasn1 python-pyasn1-modules python-pycryptodomex python-pyopenssl python-ldap3 python-flask python-charset-normalizer ldapdomaindump)) (synopsis "Forta's Impacket tool suite for low-level programmatic access to packets, protocols and protocol implementations.") (description " Impacket was originally created by SecureAuth, and now maintained by Fortra's Core Security. Impacket is a collection of Python classes for working with network protocols. Impacket is focused on providing low-level programmatic access to the packets and for some protocols (e.g. SMB1-3 and MSRPC) the protocol implementation itself. Packets can be constructed from scratch, as well as parsed from raw data, and the object-oriented API makes it simple to work with deep hierarchies of protocols. The library provides a set of tools as examples of what can be done within the context of this library.") (home-page "https://github.com/fortra/impacket") (license asl2.0))) impacket