As a part of the education "IT Säkerhetstestare" at "IT-Högskolan" we got this assigment in the "programmering för pentestare" class:
Inlämning ska ske som ett Github repo
-
Generera och spara en krypteringsnyckel.
-
Kryptera en fil med hjälp av en symmetrisk nyckel (filnamn som argument).
-
en krypterad fil med rätt nyckel (filnamn som argument).
-
Använd cryptography-biblioteket (Fernet rekommenderas)
-
Använd argparse-biblioteket för att ta argument
-
Nyckelgenerering:
- Skapa ett separat skript (ex: generate_key.py) som genererar en symmetrisk nyckel och sparar den i en fil.
-
Kryptering och Dekryptering:
- Implementera ett andra skript (ex crypto_tool.py) som använder argparse för att hantera kommandoradsalternativ och utföra följande funktioner:
- Kryptera en fil med en befintlig nyckel.
- Dekryptera en krypterad fil och återställa originalet.
- Implementera felhantering för fil om den saknas
- Lägg till funktionalitet för att skapa en lösenordsbaserad nyckel med hjälp av PBKDF2.
- Skapa ett script som krypterar shellcode och sedan genererar en nyckel och krypterad shellcode som char arrays för användning i C.
Nyckeln ska sedan kunna användas för att dekryptera shellcoden i ett c-program
(vi kommer göra detta i en framtida kurs)
The separate tools have a more detalied documentation here:
- keygenerator.py The tool to generate keys (gernates symmetric key and an assymetric keypair)
- crypto_tool.py The tool to en-/decrypt files. Can use the above created keyfiles or use a password to en-/decrypt with
- sc_obfuscator.py The tool to obfuscate a shellcode and store as a file of hexvalues to be imported in a c-program.