こんにちは、TOBBY LABOの小安です。
鉄道知識を教えてもらいたいアイドルれんてつのWEBサイトがまさかの乗っ取りに会いました。
さて、まさに同じ現象で困ってしまっている方はここを読んでも具体的な解決策は書いてないので、下記のURLの記事2件が最高に参考になったので貼っておきますので是非こちらへ。
WordPressを運用中のサーバがまるごとPHPマルウェアに感染していた時の対応メモ→
https://qiita.com/Ayutanalects/items/a359df4e4b445229fcf2
当WordPressブログを乗っ取りされかけた件【現在は復旧済み】→
https://fukuro-press.com/wordpress-blog-was-hacked/
どういう症状かというとTOPページは普通に表示されるのですが、下層のニュースページと乗務員紹介ページの2ページが、謎のページに…
通常は下記のようなページなのですが、
ぎゃん
なにこれ・・・。ここに載っている内容自体はちゃんとしたところのWEBサイトの内容なのですが、CSSすら読み込んでないのでこんな感じに。実際調べるとちゃんと出てくるししっかりしたサイトですので、こちらのサイトさんも被害者ですよなあ…。
これに気が付いたのが2021年12月24日(金)れんてつかふぇクリスマス営業を終えて(私もこの日は店舗でスタッフとしてお手伝いしていた)家に間抜け面で帰ってきてTwitterを主人のふじたさんと一緒に見ていたら、ふじたさんが「大変だ!!れんてつフォロワーさんがWEBが変だって言ってる!」とのことでして、見てみると、乗っ取られている…。これ、リダイレクトがかかっているのかと思っていたらそうではないようで…
ふん!こんなんログインしてさっさと修正してやるわーー!と息巻いて、家のipadでログインを試行するが、500エラーが帰ってくるのみ…。
これは…やばいぞ。PC無いと無理。FTPサーバー覗いてやるやつだ…。
ということでとりあえず風呂に入ってからまた会社に行くことに。その時すでに深夜3時。ほんとこの日はお酒飲みすぎてなくて良かった…。
ふじたさんもなぜか道連れで会社に連れていかれて、深夜の作業が始まりました。
正直、私、システム屋さんではないのでphpについて詳しくない。だけどワードプレスというコンテンツマネジメントシステム(ブラウザからログインして更新ができるやーつ)はphpファイルとデータベースで成り立っているのである。MySQLとかphpとかhtaccessは存在することはわかっているしなんかすごくphpは動くやつっていうのもわかるんだけど、開いて記述ができるかっていうとそれは無理という雑魚キャラが今回これをどうにかしなくてはいけないのであった。
絶望。どれくらい絶望かというと、ラスボス戦に初期装備で行くようなものである。最悪の場合、世界(れんてつWEB)の滅亡…。
5年くらい続けてきた某美容クリニック5件のWEB更新の仕事のおかげで、問題が発生したときに解決するにはとにかくググるということだけはわかっていた。このステータスでよくやろうとおもったよね!小安!だって、小安はDTP屋さんが専門だもん!(といいつつ、WEBの仕事の方が多いのが現実である)
さて、まずはサイトを見れないように簡単なindex.htmlを作ってhtaccessを書き換えてアクセスはこのindex.htmlに飛ばそう、と思ったのですが、え、htaccessが書き換えられない。
FTPサーバー用のアプリケーションで見てみると(私はWinSCPを使ってます)通常は下記のように644というステータスなのですが、
htaccessファイルが444、つまりReadはできるけどWriteはできないという状態になってしまっていたのである。
なのでここは冷静にプロパティから644に直してみて、よいしょっと更新してみたのですが…、え?元に戻る…?というかそもそもこのhtaccessに書いてあることへんじゃない…?こんなこと書いてたっけ…?
この黄色い部分…
うおおお!!これじゃん!これ!!
と思っていろいろ調べてたらやっぱりこいつが問題児。
なんだ、これを消せば…
消しても復活する。
何なのこれ!!ともったら、同じ階層にいるindex.phpも問題児らしく、こちらを開いてみると
こっわ!!!
長すぎるのでスクショとるの大変だったので一部です。
こいつを先にやっつけないといけないらしく、やはりパーミッションが444なので644に変更して削除…よしよし、そしてhtaccessも削除…よしよし…
そしてその次の瞬間また復活しているのです…なんなのほんとに…。
サーバーで何が起こってるの…
不安になって、サーバーのログインした人履歴を見るけど私だけである。となると、やっぱりワードプレス突破してきたんだなあ…。
という頃にふじたさんがあまりにも眠そうにしていてかわいそうだったので家にPCを持って帰って作業を続けることにした。
とにかくぐぐって冒頭で紹介しているURLの記事にあるように、初めてSSHというサーバー内での動きなどを教えてくれるやつを使う。詳しくはその記事を見てもらった方がいいです。はい。すごくわかりやすいので。
about.php、radio.php、index.php、content.php、lock360.php、admin.php、wp-login.php、wp-l0gin.php、wp-theme.php、wp-scripts.php、wp-editor.php
このファイルたちがhtaccessにも書いてあるのでとりあえず問題なわけですが、でもindex.phpなんで山ほどあるしなあ…と途方に暮れていたのですが、おかげさまで、12/24の17:53頃に新しいファイルが加わったり書き換えられたりしていたことが判明。
というわけであとは17:53のファイルを地道に消していくしかないので消していく。
よし、全部消したぞ!どうだ!
ええええーん…またindex.phpとhtaccessが復活した…ほんとなんなのよおおお。
※多分なんだけど、これ、私あまりにも頭がパンパンだったので見落としてた説あり。
これの怖いところですが、多分消す順番間違えるとまた全部もとに戻っていくのでは…?という点。いや、戻ってはいないのかもしれない、index.phpとhtaccessだけが復活するのかもしれない…?頭がもうろうとしていてダメ。時計を見るともう8時半。さすがに限界が来たようなので一回寝ました。
ああ、夜が明けてしまうよ…WEBにアクセスしてくる人いるよ…どうしよう…でも寝る。
こういうときは開き直って寝た方がいい。1時間の仮眠のはずがしっかり寝てしまい正午に起きる。
そしてぱやぱやの状態で会社に。頭の中には永遠に復活し続けるファイルのことが占めている。
もう一度、変更のあったファイルを洗い出す。
そしてとにかく丁寧に一個ずつ消していく、そして問題のindex.phpとhtaccessの問題の記述削除を何度もやってみる。
そしたらどうやらですが謎のhtmlファイルを発見。(ワードプレスの中に基本htmlファイルなぞ無い)
これがnewsページに置き換わってたのか…
後はあちこちに謎のradio.php等がちりばめられており、それも削除をしていく。
びっくりしたのがプラグインの階層にもいたし、テーマの階層にも、CSSのところにもいた。あちこちにいた。
なのでかたっぱしから開いて怪しいphpを削除していくしかない。
何度目だろう。消せた。ついに問題児が復活しなった…。やったー!!!!いつものページが表示されている、うれしー!
と思ったら今度ログイン画面でログインできない問題が発生。正確に言うと、wp-adminのページに遷移するときに500エラーが返されて白い悲しい画面が出てくるのです。
しかし、問題はあるけど、とりあえず安堵してしまった小安はこれを2日ほど放置する。ログインできなくたってすぐには問題は起きないじゃん!と思っていたら、起こりました。そうだった、シフトとかイベントとか更新しないといけないんだったよ…これは年越したら最悪な事態になる。
そして12/27(月)、ログインできなくなったのをどうにか直せました。
結論から言うと、そもそもログインはできていたんだけどwp-admin.phpのページが表示できないというエラーだったようで、wp-adminの中のindex.phpを見てみる。そして正常に動いているサイトの同じファイルを見てみる。
全然記述していること違うべ。
これがログインできない記述のやつ↓
これしか書いてないわけがない。全然足らない。
そっか、そもそもログインできないようにしてるんだね件の問題プログラムは…
なのでこちらはワードプレスの公式ページから初期ファイルをダウンロードして、該当ファイルを入れ替えました。そしたら見事に管理画面表示されるようになりましたーよかったー…
で、なんでログインできているか気が付いたかというと
ログインしている状態でサイトを見ると上部にワードプレスのメニューが出てくるんですよね。だからログインはできている。ここから固定ページの編集などを押すとそこに入れるけど、管理画面のTOPに行けないというようなことが起こってました。なのでwp-adminのindex.phpがおかしいんだろうねえと思って入れ替えたという寸法です。
なんか長くなりましたが、あんまり参考にならない記事だと思いますのでまず謝っておきます…これ、解決できたテンションで書いているので無茶苦茶な文章な気がします。
あと、ほんとパスワードは桁数これでもかってあげた方がいいのだなあと思いました。どうしても複数人で管理する場合簡単なやつにしがちなのでここは心を鬼にして、桁数ものすごくてしんどいやつにするのがいいのでしょうね。
WEBサイトのバックアップ取っておけばよかったよ…たまに思い出してバックアップ取ってた時期があったんだけど見事に今回なかったです。ワードプレスのバックアップはAll-in-One WP Migrationがお便利です。
あと、ほんと役に立たないサイトを読んでる時間が無駄だった。どことは書かないけど、「その1、まずは落ち着きましょう」って書いてあるやつ。わかっとるわー急いでるんですよこっちは!!ログインできない場合の対処法で「パスワードが間違っていませんか?」とか書かれてもそれはないから今調べてるんでしょうがーーー!ってなりますよね。ほんとに。というわけで検索ワードは「ワードプレス 乗っ取り 管理画面 500」とか入れていくのがいいかと思います。
それでは皆様よき電脳ライフを…
似たような事案があった場合、小安にサイトの復旧を求めてもうまくいく保障はありませんのでお仕事として依頼してこないほうがいいです。phpのプロではないです。世の中にはしゃららーんって解決できるエンジニアさんがたくさんいるのでそこにお願いするのがいいと思います。