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') ('./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,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 37 KiB