add owasp zsc api

This commit is contained in:
Ali Razmjoo 2015-09-27 14:47:33 +03:30
parent 1e621254a5
commit 2164094b73
2 changed files with 68 additions and 3 deletions

View File

@ -14,7 +14,8 @@ import random
import socket
import struct
import traceback
import httplib
import urllib
import six.moves.http_client
from six.moves import range
@ -358,3 +359,22 @@ class Shellcode():
data = data.replace("&lt;", "<")
data = data.replace("&gt;", ">")
return data
#OWASP ZSC API Z3r0D4y.Com
def zsc(self,os,job,encode):
try:
msg('Connection to OWASP ZSC API api.z3r0d4y.com')
params = urllib.urlencode({
'api_name': 'zsc',
'os': os,
'job': job,
'encode': encode})
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 [GDB-PEDA]'}
conn = httplib.HTTPConnection('api.z3r0d4y.com')
conn.request("POST", "", params, headers)
return '\n"'+conn.getresponse().read().replace('\n','')+'"\n'
except:
error_msg("Error while connecting to api.z3r0d4y.com ...")
return None

49
peda.py
View File

@ -5644,6 +5644,7 @@ class PEDACmd(object):
MYNAME generate [arch/]platform type [port] [host]
MYNAME search keyword (use % for any character wildcard)
MYNAME display shellcodeId (shellcodeId as appears in search results)
MYNAME zsc [generate customize shellcode]
For generate option:
default port for bindport shellcode: 16706 (0x4142)
@ -5726,12 +5727,56 @@ class PEDACmd(object):
return
msg(res)
#OWASP ZSC API Z3r0D4y.Com
elif mode == "zsc":
'os lists'
oslist = ['linux_x86','linux_x64','linux_arm','linux_mips','freebsd_x86',
'freebsd_x64','windows_x86','windows_x64','osx','solaris_x64','solaris_x86']
'functions'
joblist = ['exec(\'/path/file\')','chmod(\'/path/file\',\'permission number\')','write(\'/path/file\',\'text to write\')',
'file_create(\'/path/file\',\'text to write\')','dir_create(\'/path/folder\')','download(\'url\',\'filename\')',
'download_execute(\'url\',\'filename\',\'command to execute\')','system(\'command to execute\')']
'encode types'
encodelist = ['none','xor_random','xor_yourvalue','add_random','add_yourvalue','sub_random',
'sub_yourvalue','inc','inc_timeyouwant','dec','dec_timeyouwant','mix_all']
try:
while True:
for os in oslist:
msg('%s %s'%(yellow('[+]'),green(os)))
os = raw_input('%s'%blue('os:'))
if os in oslist: #check if os exist
break
else:
warning_msg("Wrong input! Try Again.")
while True:
for job in joblist:
msg('%s %s'%(yellow('[+]'),green(job)))
job = raw_input('%s'%blue('job:'))
if job != '':
break
else:
warning_msg("Please enter a function.")
while True:
for encode in encodelist:
msg('%s %s'%(yellow('[+]'),green(encode)))
encode = raw_input('%s'%blue('encode:'))
if encode != '':
break
else:
warning_msg("Please enter a encode type.")
except (KeyboardInterrupt, SystemExit):
warning_msg("Aborted by user")
result = Shellcode().zsc(os,job,encode)
if result is not None:
msg(result)
else:
pass
return
else:
self._missing_argument()
return
shellcode.options = ["generate", "search", "display"]
shellcode.options = ["generate", "search", "display","zsc"]
def gennop(self, *arg):
"""