mirror of
https://github.com/carlospolop/PEASS-ng
synced 2025-02-24 23:15:25 +01:00
56 lines
2.7 KiB
Python
56 lines
2.7 KiB
Python
from .src.peasLoaded import PEASLoaded
|
|
from .src.linpeasBuilder import LinpeasBuilder
|
|
from .src.linpeasBaseBuilder import LinpeasBaseBuilder
|
|
from .src.yamlGlobals import FINAL_FAT_LINPEAS_PATH, FINAL_LINPEAS_PATH, TEMPORARY_LINPEAS_BASE_PATH
|
|
|
|
import os
|
|
import stat
|
|
import argparse
|
|
|
|
# python3 -m builder.linpeas_builder
|
|
def main(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules, output):
|
|
# Load configuration
|
|
ploaded = PEASLoaded()
|
|
|
|
# Build temporary linpeas_base.sh file
|
|
lbasebuilder = LinpeasBaseBuilder(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules)
|
|
lbasebuilder.build()
|
|
|
|
# Build final linpeas.sh
|
|
lbuilder = LinpeasBuilder(ploaded)
|
|
lbuilder.build()
|
|
lbuilder.write_linpeas(output)
|
|
os.remove(TEMPORARY_LINPEAS_BASE_PATH) # Remove the built linpeas_base_temp.sh file
|
|
|
|
st = os.stat(output)
|
|
os.chmod(output, st.st_mode | stat.S_IEXEC)
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description='Build you own linpeas.sh')
|
|
parser.add_argument('--all', action='store_true', help='Build linpeas with all modules (linpeas_fat).')
|
|
parser.add_argument('--all-no-fat', action='store_true', help='Build linpeas with all modules except fat ones.')
|
|
parser.add_argument('--no-network-scanning', action='store_true', help='Build linpeas without network scanning.')
|
|
parser.add_argument('--small', action='store_true', help='Build small version of linpeas.')
|
|
parser.add_argument('--include', type=str, help='Build linpeas only with the modules indicated you can indicate section names or module IDs).')
|
|
parser.add_argument('--exclude', type=str, help='Exclude the given modules (you can indicate section names or module IDs).')
|
|
parser.add_argument('--output', required=True, type=str, help='Parth to write the final linpeas file to.')
|
|
args = parser.parse_args()
|
|
|
|
all_modules = args.all
|
|
all_no_fat_modules = args.all_no_fat
|
|
no_network_scanning = args.no_network_scanning
|
|
small = args.small
|
|
include_modules = args.include.split(",") if args.include else []
|
|
include_modules = [m.strip().lower() for m in include_modules]
|
|
exclude_modules = args.exclude.split(",") if args.exclude else []
|
|
exclude_modules = [m.strip().lower() for m in exclude_modules]
|
|
output = args.output
|
|
|
|
# If not all, all-no-fat, small or include, exit
|
|
if not args.all and not args.all_no_fat and not args.small and not args.include:
|
|
print("You must specify one of the following options: --all, --all-no-fat, --small or --include")
|
|
parser.print_help()
|
|
exit(1)
|
|
|
|
main(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules, output)
|