Merge pull request #52 from Pennyw0rth/feature/linux_build

Finalize Native Builds
main
Marshall Hallenbeck 2023-10-01 15:19:46 -04:00 committed by GitHub
commit 72e42e9b75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 122 additions and 97 deletions

View File

@ -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

37
.github/workflows/netexec-build.yml vendored Normal file
View File

@ -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

View File

@ -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

View File

@ -13,57 +13,57 @@ a = Analysis(
('./nxc/modules', 'nxc/modules')
],
hiddenimports=[
'impacket.examples.secretsdump',
'impacket.dcerpc.v5.lsat',
'impacket.dcerpc.v5.transport',
'impacket.dcerpc.v5.lsad',
'impacket.dcerpc.v5.gkdi',
'impacket.dcerpc.v5.rprn',
'impacket.dpapi_ng',
'impacket.tds',
'impacket.version',
'impacket.ldap.ldap',
'nxc.connection',
'nxc.servers.smb',
'nxc.protocols.smb.wmiexec',
'nxc.protocols.smb.atexec',
'nxc.protocols.smb.smbexec',
'nxc.protocols.smb.mmcexec',
'nxc.protocols.smb.smbspider',
'nxc.protocols.smb.passpol',
'nxc.protocols.mssql.mssqlexec',
'nxc.helpers.bash',
'nxc.helpers.bloodhound',
'nxc.helpers.msada_guids',
'paramiko',
'pypsrp.client',
'pywerview.cli.helpers',
'pylnk3',
'pypykatz',
'masky',
'msldap',
'msldap.connection',
'lsassy',
'lsassy.dumper',
'lsassy.parser',
'lsassy.session',
'lsassy.impacketfile',
'dns',
'dns.name',
'dns.resolver',
'dploot',
'dploot.triage',
'dploot.triage.rdg',
'dploot.triage.vaults',
'dploot.triage.browser',
'dploot.triage.credentials',
'dploot.triage.masterkeys',
'dploot.triage.backupkey',
'dploot.triage.wifi',
'dploot.lib.target',
'dploot.lib.smb',
'pyasn1_modules.rfc5652',
'unicrypto.backends.pycryptodomex',
'impacket.examples.secretsdump',
'impacket.dcerpc.v5.lsat',
'impacket.dcerpc.v5.transport',
'impacket.dcerpc.v5.lsad',
'impacket.dcerpc.v5.gkdi',
'impacket.dcerpc.v5.rprn',
'impacket.dpapi_ng',
'impacket.tds',
'impacket.version',
'impacket.ldap.ldap',
'nxc.connection',
'nxc.servers.smb',
'nxc.protocols.smb.wmiexec',
'nxc.protocols.smb.atexec',
'nxc.protocols.smb.smbexec',
'nxc.protocols.smb.mmcexec',
'nxc.protocols.smb.smbspider',
'nxc.protocols.smb.passpol',
'nxc.protocols.mssql.mssqlexec',
'nxc.helpers.bash',
'nxc.helpers.bloodhound',
'nxc.helpers.msada_guids',
'paramiko',
'pypsrp.client',
'pywerview.cli.helpers',
'pylnk3',
'pypykatz',
'masky',
'msldap',
'msldap.connection',
'lsassy',
'lsassy.dumper',
'lsassy.parser',
'lsassy.session',
'lsassy.impacketfile',
'dns',
'dns.name',
'dns.resolver',
'dploot',
'dploot.triage',
'dploot.triage.rdg',
'dploot.triage.vaults',
'dploot.triage.browser',
'dploot.triage.credentials',
'dploot.triage.masterkeys',
'dploot.triage.backupkey',
'dploot.triage.wifi',
'dploot.lib.target',
'dploot.lib.smb',
'pyasn1_modules.rfc5652',
'unicrypto.backends.pycryptodomex',
],
hookspath=['./nxc/.hooks'],
runtime_hooks=[],
@ -85,7 +85,7 @@ exe = EXE(
a.zipfiles,
a.datas,
[],
name='netexec',
name='nxc',
debug=False,
bootloader_ignore_signals=False,
strip=False,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 37 KiB