Merge branch 'main' into neff-bugfixes
commit
d217840dbf
|
@ -0,0 +1,33 @@
|
||||||
|
name: Build ZippApps
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Building Python ZipApp on ${{ matrix.os }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
|
python-version: ["3.8", "3.9", "3.10", "3.11"]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: NetExec set up python on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Build Python ZipApp with Shiv
|
||||||
|
run: |
|
||||||
|
pip install shiv
|
||||||
|
python build_collector.py
|
||||||
|
- name: Upload nxc ZipApp
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: nxc-zipapp-${{ matrix.os }}-${{ matrix.python-version }}
|
||||||
|
path: bin/nxc
|
||||||
|
- name: Upload nxcdb ZipApp
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: nxcdb-zipapp-${{ matrix.os }}-${{ matrix.python-version }}
|
||||||
|
path: bin/nxcdb
|
|
@ -0,0 +1,37 @@
|
||||||
|
name: Build Binaries
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Building Binary on ${{ matrix.os }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, macOS-latest, windows-latest]
|
||||||
|
python-version: ["3.11"]
|
||||||
|
#python-version: ["3.8", "3.9", "3.10", "3.11"] # for binary builds we only need one version
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: NetExec set up python on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Build Native Binary
|
||||||
|
run: |
|
||||||
|
pip install pyinstaller
|
||||||
|
pip install .
|
||||||
|
pyinstaller netexec.spec
|
||||||
|
- name: Upload Windows Binary
|
||||||
|
if: runner.os == 'windows'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: nxc.exe
|
||||||
|
path: dist/nxc.exe
|
||||||
|
- name: Upload Nix/OSx Binary
|
||||||
|
if: runner.os != 'windows'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: nxc-${{ matrix.os }}
|
||||||
|
path: dist/nxc
|
|
@ -1,45 +0,0 @@
|
||||||
name: NetExec Build Binaries
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: NetExec Tests on ${{ matrix.os }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-latest, macOS-latest, windows-latest]
|
|
||||||
python-version: ["3.8", "3.9", "3.10", "3.11"]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: NetExec set up python on ${{ matrix.os }}
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
- name: Build binaries with Shiv
|
|
||||||
run: |
|
|
||||||
pip install shiv
|
|
||||||
python build_collector.py
|
|
||||||
- name: Build Windows binary
|
|
||||||
if: runner.os == 'windows'
|
|
||||||
run: |
|
|
||||||
pip install pyinstaller
|
|
||||||
pip install .
|
|
||||||
pyinstaller netexec.spec
|
|
||||||
- name: Upload nxc binary
|
|
||||||
uses: actions/upload-artifact@master
|
|
||||||
with:
|
|
||||||
name: nxc-${{ matrix.os }}-${{ matrix.python-version }}
|
|
||||||
path: bin/nxc
|
|
||||||
- name: Upload nxcdb binary
|
|
||||||
uses: actions/upload-artifact@master
|
|
||||||
with:
|
|
||||||
name: nxcdb-${{ matrix.os }}-${{ matrix.python-version }}
|
|
||||||
path: bin/nxcdb
|
|
||||||
- name: Upload netexec binary (Windows)
|
|
||||||
if: runner.os == 'windows'
|
|
||||||
uses: actions/upload-artifact@master
|
|
||||||
with:
|
|
||||||
name: netexec-${{ matrix.os }}
|
|
||||||
path: dist/netexec.exe
|
|
|
@ -0,0 +1,131 @@
|
||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
* Demonstrating empathy and kindness toward other people
|
||||||
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
* Giving and gracefully accepting constructive feedback
|
||||||
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior should be
|
||||||
|
reported to the community leaders (i.e. official maintainers) responsible for enforcement.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
*Note*: egregious rule breaking, such as obvious trolling, death threats, etc may
|
||||||
|
lead directly to a permanent ban without warning, i.e. there is no correction or
|
||||||
|
warnings attempts.
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
|
@ -0,0 +1,53 @@
|
||||||
|
# Contributing to Transcriptase
|
||||||
|
We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
|
||||||
|
|
||||||
|
- Reporting a bug
|
||||||
|
- Discussing the current state of the code
|
||||||
|
- Submitting a fix
|
||||||
|
- Proposing new features
|
||||||
|
- Becoming a maintainer
|
||||||
|
|
||||||
|
## We Develop with GitHub
|
||||||
|
We use github to host code, to track issues and feature requests, as well as accept pull requests.
|
||||||
|
|
||||||
|
## We Use [GitHub Flow](https://guides.github.com/introduction/flow/index.html), So All Code Changes Happen Through Pull Requests
|
||||||
|
Pull requests are the best way to propose changes to the codebase (we use [GitHub Flow](https://guides.github.com/introduction/flow/index.html)). We actively welcome your pull requests:
|
||||||
|
|
||||||
|
1. Fork the repo and create your branch from `master`.
|
||||||
|
2. If you've added code that should be tested, add tests.
|
||||||
|
3. Ensure the test suite passes.
|
||||||
|
4. Make sure your code lints.
|
||||||
|
5. Issue that pull request!
|
||||||
|
|
||||||
|
## Any contributions you make will be under the BSD-2-Clause Software License
|
||||||
|
In short, when you submit code changes, your submissions are understood to be under the same [BSD-2-Clause License](https://choosealicense.com/licenses/bsd-2-clause/) that covers the project. Feel free to contact the maintainers if that's a concern.
|
||||||
|
|
||||||
|
## Report bugs using GitHub's [issues](https://github.com/Pennyw0rth/NetExec/issues)
|
||||||
|
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/Pennyw0rth/NetExec/issues/new/choose); it's that easy!
|
||||||
|
|
||||||
|
## Write bug reports with detail, background, and sample code
|
||||||
|
|
||||||
|
**Great Bug Reports** tend to have:
|
||||||
|
|
||||||
|
- A quick summary and/or background
|
||||||
|
- Steps to reproduce
|
||||||
|
- Be specific!
|
||||||
|
- Give sample code if you can.
|
||||||
|
- What you expected would happen
|
||||||
|
- What actually happens
|
||||||
|
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
|
||||||
|
|
||||||
|
People *love* thorough bug reports. I'm not even kidding.
|
||||||
|
|
||||||
|
## Use a Consistent Coding Style
|
||||||
|
[PEP](https://peps.python.org/pep-0008/) is used in this project
|
||||||
|
|
||||||
|
* 4 spaces for indentation rather than tabs
|
||||||
|
* Double quotes on outside of strings
|
||||||
|
* We use Ruff as linter, there is a VS-Code extension available you can use
|
||||||
|
|
||||||
|
## License
|
||||||
|
By contributing, you agree that your contributions will be licensed under its BSD-2-Clause License.
|
||||||
|
|
||||||
|
## References
|
||||||
|
This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebook/draft-js/blob/a9316a723f9e918afde44dea68b5f9f39b7d9b00/CONTRIBUTING.md)
|
22
README.md
22
README.md
|
@ -7,6 +7,13 @@
|
||||||
🚩 This is the open source repository of NetExec maintained by a community of passionate people
|
🚩 This is the open source repository of NetExec maintained by a community of passionate people
|
||||||
# NetExec - The Network Execution Tool
|
# NetExec - The Network Execution Tool
|
||||||
|
|
||||||
|
This project was initially created in 2015 by @byt3bl33d3r, known as CrackMapExec. In 2019 @mpgn_x64 started maintaining the project for the next 4 years, adding a lot of great tools and features. In September 2023 he retired from maintaining the project.
|
||||||
|
|
||||||
|
Along with many other contributers, we (NeffIsBack, Marshall-Hallenbeck, and zblurx) developed new features, bugfixes, and helped maintain the original project CrackMapExec.
|
||||||
|
During this time, with both a private and public repository, community contributions were not easily merged into the project. The 6-8 month discrepancy between the code bases caused many development issues and heavily reduced community-driven development.
|
||||||
|
With the end of mpgn's maintainer role, we (the remaining most active contributors) decided to maintain the project together as a fully free and open source project under the new name **NetExec** 🚀
|
||||||
|
Going forward, our intent is to maintain a community-driven and maintained project with regular updates for everyone to use.
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<!-- placeholder for nxc logo-->
|
<!-- placeholder for nxc logo-->
|
||||||
</p>
|
</p>
|
||||||
|
@ -17,14 +24,23 @@ You are on the **latest up-to-date** repository of the project NetExec (nxc) !
|
||||||
- 🔀 If you want to contribute, open a [Pull Request](https://github.com/Pennyw0rth/NetExec/pulls)
|
- 🔀 If you want to contribute, open a [Pull Request](https://github.com/Pennyw0rth/NetExec/pulls)
|
||||||
- 💬 If you want to discuss, open a [Discussion](https://github.com/Pennyw0rth/NetExec/discussions)
|
- 💬 If you want to discuss, open a [Discussion](https://github.com/Pennyw0rth/NetExec/discussions)
|
||||||
|
|
||||||
# Acknowledgments
|
## Official Discord Channel
|
||||||
All the hard work and development over the years from everyone in the CrackMapExec project
|
|
||||||
|
If you don't have a Github account, you can ask your questions on Discord!
|
||||||
|
|
||||||
|
[![NetExec](https://discordapp.com/api/guilds/1148685154601160794/widget.png?style=banner3)](https://discord.gg/pjwUTQzg8R)
|
||||||
|
|
||||||
# Documentation, Tutorials, Examples
|
# Documentation, Tutorials, Examples
|
||||||
See the project's [wiki](https://netexec.wiki/) (in development) for documentation and usage examples
|
See the project's [wiki](https://netexec.wiki/) (in development) for documentation and usage examples
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
Please see the installation instructions on the [wiki](https://netexec.wiki/) (in development)
|
Please see the installation instructions on the [wiki](https://netexec.wiki/getting-started/installation) (in development)
|
||||||
|
|
||||||
|
# Development
|
||||||
|
Development guidelines and recommendations in development
|
||||||
|
|
||||||
|
# Acknowledgments
|
||||||
|
All the hard work and development over the years from everyone in the CrackMapExec project
|
||||||
|
|
||||||
# Code Contributors
|
# Code Contributors
|
||||||
Awesome code contributors of NetExec:
|
Awesome code contributors of NetExec:
|
||||||
|
|
104
netexec.spec
104
netexec.spec
|
@ -13,57 +13,57 @@ a = Analysis(
|
||||||
('./nxc/modules', 'nxc/modules')
|
('./nxc/modules', 'nxc/modules')
|
||||||
],
|
],
|
||||||
hiddenimports=[
|
hiddenimports=[
|
||||||
'impacket.examples.secretsdump',
|
'impacket.examples.secretsdump',
|
||||||
'impacket.dcerpc.v5.lsat',
|
'impacket.dcerpc.v5.lsat',
|
||||||
'impacket.dcerpc.v5.transport',
|
'impacket.dcerpc.v5.transport',
|
||||||
'impacket.dcerpc.v5.lsad',
|
'impacket.dcerpc.v5.lsad',
|
||||||
'impacket.dcerpc.v5.gkdi',
|
'impacket.dcerpc.v5.gkdi',
|
||||||
'impacket.dcerpc.v5.rprn',
|
'impacket.dcerpc.v5.rprn',
|
||||||
'impacket.dpapi_ng',
|
'impacket.dpapi_ng',
|
||||||
'impacket.tds',
|
'impacket.tds',
|
||||||
'impacket.version',
|
'impacket.version',
|
||||||
'impacket.ldap.ldap',
|
'impacket.ldap.ldap',
|
||||||
'nxc.connection',
|
'nxc.connection',
|
||||||
'nxc.servers.smb',
|
'nxc.servers.smb',
|
||||||
'nxc.protocols.smb.wmiexec',
|
'nxc.protocols.smb.wmiexec',
|
||||||
'nxc.protocols.smb.atexec',
|
'nxc.protocols.smb.atexec',
|
||||||
'nxc.protocols.smb.smbexec',
|
'nxc.protocols.smb.smbexec',
|
||||||
'nxc.protocols.smb.mmcexec',
|
'nxc.protocols.smb.mmcexec',
|
||||||
'nxc.protocols.smb.smbspider',
|
'nxc.protocols.smb.smbspider',
|
||||||
'nxc.protocols.smb.passpol',
|
'nxc.protocols.smb.passpol',
|
||||||
'nxc.protocols.mssql.mssqlexec',
|
'nxc.protocols.mssql.mssqlexec',
|
||||||
'nxc.helpers.bash',
|
'nxc.helpers.bash',
|
||||||
'nxc.helpers.bloodhound',
|
'nxc.helpers.bloodhound',
|
||||||
'nxc.helpers.msada_guids',
|
'nxc.helpers.msada_guids',
|
||||||
'paramiko',
|
'paramiko',
|
||||||
'pypsrp.client',
|
'pypsrp.client',
|
||||||
'pywerview.cli.helpers',
|
'pywerview.cli.helpers',
|
||||||
'pylnk3',
|
'pylnk3',
|
||||||
'pypykatz',
|
'pypykatz',
|
||||||
'masky',
|
'masky',
|
||||||
'msldap',
|
'msldap',
|
||||||
'msldap.connection',
|
'msldap.connection',
|
||||||
'lsassy',
|
'lsassy',
|
||||||
'lsassy.dumper',
|
'lsassy.dumper',
|
||||||
'lsassy.parser',
|
'lsassy.parser',
|
||||||
'lsassy.session',
|
'lsassy.session',
|
||||||
'lsassy.impacketfile',
|
'lsassy.impacketfile',
|
||||||
'dns',
|
'dns',
|
||||||
'dns.name',
|
'dns.name',
|
||||||
'dns.resolver',
|
'dns.resolver',
|
||||||
'dploot',
|
'dploot',
|
||||||
'dploot.triage',
|
'dploot.triage',
|
||||||
'dploot.triage.rdg',
|
'dploot.triage.rdg',
|
||||||
'dploot.triage.vaults',
|
'dploot.triage.vaults',
|
||||||
'dploot.triage.browser',
|
'dploot.triage.browser',
|
||||||
'dploot.triage.credentials',
|
'dploot.triage.credentials',
|
||||||
'dploot.triage.masterkeys',
|
'dploot.triage.masterkeys',
|
||||||
'dploot.triage.backupkey',
|
'dploot.triage.backupkey',
|
||||||
'dploot.triage.wifi',
|
'dploot.triage.wifi',
|
||||||
'dploot.lib.target',
|
'dploot.lib.target',
|
||||||
'dploot.lib.smb',
|
'dploot.lib.smb',
|
||||||
'pyasn1_modules.rfc5652',
|
'pyasn1_modules.rfc5652',
|
||||||
'unicrypto.backends.pycryptodomex',
|
'unicrypto.backends.pycryptodomex',
|
||||||
],
|
],
|
||||||
hookspath=['./nxc/.hooks'],
|
hookspath=['./nxc/.hooks'],
|
||||||
runtime_hooks=[],
|
runtime_hooks=[],
|
||||||
|
@ -85,7 +85,7 @@ exe = EXE(
|
||||||
a.zipfiles,
|
a.zipfiles,
|
||||||
a.datas,
|
a.datas,
|
||||||
[],
|
[],
|
||||||
name='netexec',
|
name='nxc',
|
||||||
debug=False,
|
debug=False,
|
||||||
bootloader_ignore_signals=False,
|
bootloader_ignore_signals=False,
|
||||||
strip=False,
|
strip=False,
|
||||||
|
|
BIN
nxc/data/nxc.ico
BIN
nxc/data/nxc.ico
Binary file not shown.
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 37 KiB |
Loading…
Reference in New Issue