[異種OS格闘戦]RedStar Linux 3.0をインストールしてroot取ってみた
みなさんこんにちは。昨日、Slashdot Japanのつぶやきがタイムラインに流れてきてRedStar Linux 3.0がtorrent経由で入手できるのを知ったので試してみました。ご存知の方もいらっしゃると思いますが、わたくし2011年3月にUSP MAGAZINE Vol.0 (現シェルスクリプトマガジン) で「RedStar2.0をインストールしてみた。」なんていう記事を寄稿したので、こりゃインストールしなきゃ!(使命感) というわけで、RedStar Linux 3.0をVirtualBoxにインストールしてrootを取るまでの手順を公開します。
■ RedStar Linux 3.0 ダウンロード
RedStar Linuxはどこで入手できるんだろうと探していたら、米帝もといアメリカ本国のgizmodoにtorrentのリンクがありました。
You Can Download North Korea’s OS X Knockoff for Desktops (But Don’t)
というわけでwgetしてきます。
$ wget http://torcache.net/torrent/2e85d200d81b74a57dd70dab66c81222df1cf715.torrent
私のPCはfedoraなのでTransmissionでダウンロードしました。
しかし、好きこのんでダウンロードしておいて言うのもどうかと思うのですが、かなり出処が怪しいので、いつも以上にmd5sumを確認します。
$ cd ${HOME}/Downloads/Red\ Star\ 3.0\ Desktop/ $ md5sum redstar_desktop3.0_sign.iso $ grep $(md5sum redstar_desktop3.0_sign.iso | awk '{print $1}') readme.txt ; echo $? acf53d2b50ecb1391044b343502becf5 redstar_desktop3.0_sign.iso 0
md5値がreadme.txtに書いてあった通りだしgrepの終了ステータスも0なので、もうこれ信じるしかないでしょう。。。本日ちょっとだけやったシェル芸です。
■ RedStar Linux 3.0 インストール
ダウンロードしてきたredstar_desktop3.0_sign.isoはVirtual Boxの環境にインストールしました。ゲストOSが起動すると、読めない画面が出てくるので、まずは押せるボタンを押します。きっとこれ「次へ」的なボタンなのでしょう。ぽち。
さらに読めないダイアログをぽちります。
前の画面に戻るのでぽちります。
またまた読めないダイアログが出てくるので、右側のボタンを野生の勘でぽちります。
お、このアイコン見たことあるで!ハードディスクやろ?ということで、ハードディスクのアイコンをクリックします。って簡単に書いてますが、(パーティション切らなきゃ)いかんのか?などとしばらく格闘してました。。。
ハードディスクのアイコンに↓が重なりました。
そして再び右側のボタンをぽちります。
どうやら初期ユーザーを作成する画面のようです。勿論ハングル読めませんので、ここはKim Jong-un将軍様になりきることにします。入力フォームは上から「フルネーム」「ログインアカウント名」「パスワード」「パスワード(確認)」で、最後の行はなんだかよくわかんないので空欄にします。
次にネットワーク設定ですが、プルダウンメニューから固定IPアドレスかDHCPを選択しますので、DHCPと書いていないほう(だって読めないですから・・・)を選択して固定IPアドレスを選択します。左上から「IPアドレス」「サブネットマスク」「デフォルトゲートウェイ」を入力します。右上にはコンピューター名を入力します。右下は参照するDNSサーバーのアドレスを入力します。これは /etc/resolv.conf に反映される内容なので、とりあえず3行書いておきました。
タイムゾーンの選択画面ですが、勿論初期状態では平壌でしたが、東京をクリックします。
次に日付と時刻を入力するのですが、JSTではなくUTC (Coordinated Universal Time:協定世界時) と思われる時間になっていました。が、面倒なので次に進みます。
恐らくこれがインストール最終確認画面なのでしょう。次へ進みます。
ログイン画面が表示されました。いよいよパスワードを入力してログインします。
噂通り、Mac OSXっぽいdockが鎮座しています。どのメニューを開いてもハングルなので、GUIで何かを弄るというのは恐怖でしかありません。dock右から2番目のアイコンをクリックし、ポップアップされた画面最上部の右から2番目のアイコンをクリックします。
更に、ハンマーとスパナのアイコンが出てくるので、これをクリックします。私にはこれが斧にしか見えませんでした。ぼくに向かって投げられる的な意味で。。。
お、ターミナルのアイコンが出てきました!これで勝つる!!!
/etc/redhat-release を見てみましたが、案の定 読 め ま せ ん 。。。
さてrootのパスワード設定してなかったぞ?と思いながらsuしてみましたが、rootになれません。ubuntuみたいにsudoするのかな?と思っても、初期状態ではsudoできないようです。さあ困った。。。何 も で き な い ぞ ・・・。いや、国民を統制下に置いている巨大LANで運用するデスクトップOSですからそれでいいんでしょうけど、これじゃ面白くありません。
■ rootを取る方法 その1 redstarrootをインストールする
海外のフォーラムを漁っていたら、@richardg867さんのブログでこんな素敵なものが公開されていました。
Obtaining root
The root user is disabled on Red Star, and it doesn’t look like there is a way to enable it. UnFortunately, they left a big security hole: the Software Manager (swmng.app), which runs as root through sudo and will install any RPM package, even if unsigned.
To get root, get this RPM package I made (2015-01-02: fixed the RPM, I had uploaded the wrong one) into Red Star through an ISO (if you’re using a virtual machine) or USB key, double-click it to open it with the Software Manager, and click through the blue buttons until it’s done. After that, run rootsh to get a root shell. Being a RedHat-based system (hinting on Fedora 15), SELinux will prevent you from doing some things, but disabling it is a matter of running setenforce 0 as root.
Also, I am aware that @hackerfantastic has developed another root method using udev event scripts.
rootを取る方法 その2 でも書きますが、udevの脆弱性(というかなんでこんなパーミッションにしたんやろ?)を利用してrootを取るrootshというコマンドがインストールされました。で、USBメモリをうまく認識できなかったようなので、redstarroot.rpmはcurlでダウンロードしてきました。
fileコマンドで見てみたところ、無事rpmパッケージとしてダウンロードできたようです。なお、rpm -ivhでインストールしようとしたところ、 /var/lib/rpm/__db.000に書き込めないとエラーが出たので、ここは@richardg867さんの言う通り、デスクトップに持ってきてダブルクリックすることにします。
また例によって読めないダイアログが出ましたが、とにかく右側のボタンをぽちることにします。それではrootshを実行してみましょう。
rootになれた!!!
というわけで、コンソールからの作業はストレスフルなのでsshでログインすることにします。バージョン2.0のときもそうでしたが、sshdはインストールされているものの、chkconfigでonになっていませんでした。ひとまずは言語環境をできる限り日本語化して、ファイアウォールとSELinuxを停止します。
$ rootsh # cp -p /etc/sysconfig/i18n{,.orig} # cp -p /usr/share/config/kdeglobals{,.orig} # sed -i 's/ko_KP/ja_JP/g' /etc/sysconfig/i18n # sed -i 's/ko_KP/ja_JP/g' /usr/share/config/kdeglobals # rm -f /etc/sysconfig/iptables # sed -i 's/enforcing$/disabled/' /etc/selinux/config # reboot
■ rootを取る方法 その2 udevをゴニョゴニョ
こちらにも少し書きましたが、udevの脆弱性というかあり得ないパーミッションのおかげでrootを取ることができました。恐らく一般ユーザーでもプリンターをインストールできるようにという意図なのでしょうか。詳細はこちらに書かれています。
North Korea’s Red Star OS Open to Root Access – Softpedia
Heads up, dear leader: Security hole found in North Korea’s home-grown OS | Ars Technica
そのものズバリのroot奪取手順もこちらに書かれていたので、その通りに実行します。
Script to enable sudo on RedStar 3.0 Desktop (using the exploit discovered by @hackerfantastic): http://t.co/nAnIQmNySq
— sfan5 🙃 (@sfan5@mastodon.online) (@sfan55) December 31, 2014
まさかそんなことはないだろうと思って見てみたら、これあかんやつでした。。。
$ ls -l /etc/udev/rules.d/85-hplj10xx.rules -rwxrwxrwx. 1 root admin 1598 2012-11-18 16:26 /etc/udev/rules.d/85-hplj10xx.rules
なお、再起動後もsu -でrootになれませんでしたが、これはrootユーザーのシェルが/sbin/nologinだったからでした。勿論NOPASSWDでsudoできる環境になったので、
$ sudo usermod -s /bin/bash root
で解決です。
■ 北のブラウザはやはり怖かった
コンソールでも日本語が一部表示され、可能な限りGUIのメニューが英語で表示されるようになった(日本語はさすがに無理か)ので、私のブログを見てみることにしました。あれ?なんだかホストOS側と見え方が違うぞ・・・。そうです、facebookボタンが表示されていません。
で、facebookにアクセスしようとしたのですが、案の定SSL証明書のエラーで怒られてしまいました。恐らく本国ではファイアウォールの他にこうしたアクセス制限をしているのでしょう。
怖いので証明書のインポートはせずそっとブラウザを閉じました。。。勿論ハングル読めないので、ブラウザのエラーメッセージをコピペしてホストOSから翻訳にかけました。
いかがでしたでしょうか。ほんとはもっと別のことやりたくてRedStarをインストールしたのですが、root取った時点でかなりやり切った感が。。。一応、やろうと思っていた続きは、シェルスクリプトマガジンの4月号あたりで記事にして公開しようと思います。なお、最後にこのエントリーは特定の政治的意図を持つものではなく、純粋に興味本位であることを申し添えておきます。。。あぁ疲れた(ヽ’ω`)
[amazonjs asin=”4904807154″ locale=”JP” title=”シェルスクリプトマガジン vol.21″]
「[異種OS格闘戦]RedStar Linux 3.0をインストールしてroot取ってみた」への0件のコメント