####################################################################### Luigi Auriemma Application: DAQFactory http://www.azeotech.com/daqfactory.php Versions: <= 5.85 build 1853 Platforms: Windows Bug: stack overflow Exploitation: remote Date: 13 Sep 2011 Author: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduction 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduction =============== DAQFactory is an HMI/SCADA software. ####################################################################### ====== 2) Bug ====== When DAQFactory is running it listens on the UDP port 20034 for NETB packets of max 0x400 bytes. The software is affected by a stack overflow in the code that logs the informations of the incoming packet allowing an attacker to execute malicious code: 005C3FB0 /$ 6A FF PUSH -1 005C3FB2 |. 68 E6777D00 PUSH DAQFacto.007D77E6 005C3FB7 |. 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 005C3FBD |. 50 PUSH EAX 005C3FBE |. 64:8925 00000000 MOV DWORD PTR FS:[0],ESP 005C3FC5 |. 81EC 2C020000 SUB ESP,22C ...skip... 005C41B2 |. 8D8C24 7C010000 LEA ECX,DWORD PTR SS:[ESP+17C] 005C41B9 |. 68 B02C9000 PUSH DAQFacto.00902CB0 ; "MAC:[%02x-%02X-%02X-%02X-%02X-%02X] IP:%d.%d.%d.%d DHCP:%d.%d.%d.%d %s%s" 005C41BE |. 51 PUSH ECX 005C41BF |. FF15 6CC07F00 CALL DWORD PTR DS:[<&MSVCRT.sprintf>] ..and.. 005C423A |. 8D8C24 6C010000 LEA ECX,DWORD PTR SS:[ESP+16C] 005C4241 |. 68 682C9000 PUSH DAQFacto.00902C68 ; "MAC: [%02x-%02X-%02X-%02X-%02X-%02X] IP:%d.%d.%d.%d %s%s" 005C4246 |. 51 PUSH ECX 005C4247 |. FF15 6CC07F00 CALL DWORD PTR DS:[<&MSVCRT.sprintf>] ####################################################################### =========== 3) The Code =========== http://aluigi.org/poc/daqfactory_1.dat nc SERVER 20034 -u < daqfactory_1.dat ####################################################################### ====== 4) Fix ====== No fix. #######################################################################