Windows 10 Build 10532 で Hyper-V を有効にする


最近急に冷えてきまして、
半袖短パンで戦うのは厳しくなってきたかなと思い始めています。

みむらです。

 

さて。つい先日 Windows 10 の Build 532 がリリースされましたが、
これを入れると Hyper-V が有効に出来ないという問題がありました。

私自身、Hyper-V をよく使う人間なのでこれはマズいということで、色々とやってみまして、
ちゃんと使えるようになりましたので記事にまとめておくことにします。


やることの要約としましては、

・「英語」設定に切り替える
・Hyper-V をインストール
・「英語」設定を削除して、日本語に戻す。

という内容です。


1.英語表示に切り替える

設定画面時刻と言語を選択し、横のメニューから地域と言語を選択。
そうしますと、言語を追加するというメニューが出てきますので、そこから “English” を選択、
続けて出てくるメニューからEnglish (United States) を選びます。

image

元の画面に戻りますので、そこで “English (United States)” をクリックしオプションを選択。
そしてそこから、言語パックをダウンロードします。

また、もし日本語キーボードを使っている方がいれば、ここで「キーボード」に
「日本語」を追加しておくといいでしょう。

image

最後に、英語を「既定値として設定」します。

image

 

2. Hyper-V をインストールする

普段 Hyper-V を有効化するのと同じように、
「プログラムと機能」の「Windows の機能の有効化または無効化」から有効にします。

image

 

3.英語表示設定を戻す

image

「日本語」の「既定値として設定する」をクリックしたのち、
”English (United States)” をクリックして「削除」を選び、
再度再起動して完了です。

vCenter Appliance 5.x を 6 にアップグレードする


みむらです。
暑い日が続いておりますがいかがお過ごしでしょうか。

夏と言えば暑い。熱いなら、サーバの台数を減らせばいい。
それなら VMware ESXi と。そうなるわけです。
何もおかしいところはない、実に自然な思考回路です。

 

冗談は置いておいて。

ESXi 5.5 と vCenter Appliance 5.5 での組み合わせで動かしていますが、
6.0 も出たことですし、アップグレードしようということでやってみました。


1.VMware vCenter Server Appliance をダウンロード

2. 古い VMware vCenter Server Appliance の設定を変更する

変更する箇所は次の2点です。

・SSO (シングルサインオン) を設定する
・SSH ログインを有効にする

設定を変更するには:

VMware vCenter Server Appliance の設定画面を開いて設定を行います
( https://(サーバ名):5480/ にアクセスして出てくる画面です )

SSO ( シングルサインオン ) を設定する:

設定画面の “vCenter Server” タブの “SSO” をクリック。

image

他の認証システムを使用する場合は “SSO deloyment type” を変更すれば可能(だと思います)

小規模なシステムであれば “embedded” で大丈夫かと思います。
後は、設定したいパスワードを入力し、右側の “Save Settings” をクリックすれば
設定完了です。

 

SSH ログインを有効にする:

“Admin” タブに移動し、
画面下の “Administrator SSH login enabled”“Certificate regeneration enabled” にチェックを入れ
”Submit” を押します。

 

3. VMware vCenter Server Appliance をアップグレード

1 でダウンロードした VMware VCSA ( VMware –VCSA-all-6.x.x… .iso ) のディスクを
マウント or 書き込んだディスクを読み込んで中のファイルを使えるようにします。

3.1. VMware Client Integration Plugin をインストール

ディスク内の “vcsa” フォルダ内の “VMware-ClientIntegrationPlugin..” をインストールします。

3.2. アップグレード画面を出す

ディスク直下の “vcsa-setup.html” をダブルクリックし、画面を表示します。

image

3.3. 後はウィザードに従ってアップグレードを行う

あとはこんな感じで待ちます・・・

image


長々と時間が掛かりますが、
完了すると古い vCenter がシャットダウンされ、新しい vCenter が立ち上がっています。

あとは、新しい vCenter のキーをインストールすれば完了です。

その他必要に応じて、Update Manager などのアップグレードや
ESXi のアップデートを行ってください。

DEFCON CTF 23 Quals – catwestern Writeup


ご無沙汰してます。みむらです。
今年は、某「みかか」な場所で Team Enu のみなさんと一緒に参加してきました。

やはり合宿形式でやるというのは面白いですし、
出来る人が周りに居ますと、それだけでかなり成長できるなということを強く思いました。
・・・来年もこういう感じで出来たらいいなぁ・・と思うそんな今日この頃です。

というわけで、ちゃんと最後まで自分でやりきった内容の Write-up ということで
catwestern のWrite-up を。

 

catwestern


指定されたサーバに接続すると次のようなバイナリデータが送信されてきます。

image

 

上の方は「レジスタ」の情報で、
”About to send ** bytes:” の先に x86_64 っぽいバイナリが
送られてきていることがわかるかと思います。

 

ここで mzyy94 (みっきー)さんが
「rax=… をそのまま返すと、応答が変わる!」と教えてくれまして
実行してその結果を返せばいいのかな、ということでやってみました。

 

Code:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <string.h>
#include <sys/mman.h>
 
static char* code;
static unsigned long reg[15];
 
void main(void)
{
    int sock;
    struct sockaddr_in server;
 
    memset((void*)&server,0,sizeof(server));
    server.sin_addr.s_addr = inet_addr("52.74.101.145");
    server.sin_family = AF_INET;
    server.sin_port = htons(9999);
 
    sock = socket(AF_INET,SOCK_STREAM,0);
    if(sock == -1) return;
 
    if(connect(sock, (struct sockaddr*)&server, sizeof(server)) < 0)
        return;
 
    while(1)
    {
        char buf[4192];
        int i,codesize,pagesize;
 
        memset(buf,0,sizeof(buf));
        read(sock,buf,sizeof(buf));
 
        printf("INPUT : \n%s\n",buf);
 
        {
            char *tp;
         
            tp = strtok(buf,"\n");
            for(i = -1; tp != NULL; i++)
            {
                if(strstr(tp,"=") != 0)
                    reg[i] = strtouq(strstr(tp,"=")+1,NULL,0);
                tp = strtok(NULL,"\n");
            }
        }

        read(sock,buf,sizeof(buf));
        codesize = atoi(buf+0x37);
 
        if(codesize == 0)
            break;
 
        pagesize = sysconf(_SC_PAGE_SIZE);
        code = memalign(pagesize,pagesize);
 
        memset(code,0xC3,pagesize);
        memcpy(code,buf+0x42,codesize);
        printf("CODESIZE : %d bytes.\n",codesize);
 
        if(mprotect(code,pagesize,PROT_READ | PROT_EXEC) < 0)
        {
            free(code);
            return;
        }
 
        printf("EXECUTE..");
 
        asm volatile ("movq (reg),%rax");
        asm volatile ("movq (reg+8),%rbx");
        asm volatile ("movq (reg+16),%rcx");
        asm volatile ("movq (reg+24),%rdx");
        asm volatile ("movq (reg+32),%rsi");
        asm volatile ("movq (reg+40),%rdi");
        asm volatile ("movq (reg+48),%r8");
        asm volatile ("movq (reg+56),%r9");
        asm volatile ("movq (reg+64),%r10");
        asm volatile ("movq (reg+72),%r11");
        asm volatile ("movq (reg+80),%r12");
        asm volatile ("movq (reg+88),%r13");
        asm volatile ("movq (reg+96),%r14");
        asm volatile ("movq (reg+104),%r15");
         
        asm volatile ("call *code");
 
        asm volatile ("movq %rax,(reg)");
        asm volatile ("movq %rbx,(reg+8)");
        asm volatile ("movq %rcx,(reg+16)");
        asm volatile ("movq %rdx,(reg+24)");
        asm volatile ("movq %rsi,(reg+32)");
        asm volatile ("movq %rdi,(reg+40)");
        asm volatile ("movq %r8,(reg+48)");
        asm volatile ("movq %r9,(reg+56)");
        asm volatile ("movq %r10,(reg+64)");
        asm volatile ("movq %r11,(reg+72)");
        asm volatile ("movq %r12,(reg+80)");
        asm volatile ("movq %r13,(reg+88)");
        asm volatile ("movq %r14,(reg+96)");
        asm volatile ("movq %r15,(reg+104)");
         
        printf("DONE.\n");
        free(code);
 
        memset(buf,0,sizeof(buf));
        sprintf(buf,"rax=0x%llx\nrbx=0x%llx\nrcx=0x%llx\nrdx=0x%llx\nrsi=0x%llx\nrdi=0x%llx\nr8=0x%llx\nr9=0x%llx\nr10=0x%llx\nr11=0x%llx\nr12=0x%llx\nr13=0x%llx\nr14=0x%llx\nr15=0x%llx\n",reg[0],reg[1],reg[2],reg[3],reg[4],reg[5],reg[6],reg[7],reg[8],reg[9],reg[10],reg[11],reg[12],reg[13]);
 
        printf("OUTPUT :\n%s\n",buf);
        write(sock,buf,strlen(buf));
    }
}

 

内容としては、レジスタの初期値を持ってきて、

自分自身に対してその値を設定 → 実行 → レジスタの値を取得して送り返す。

という流れになります。

..そんな感じで実行しますと、

FLAG IS : Cats with frickin lazer beamz on top of their heads!

ということで返答が帰ってきますんで、これを送ると得点がえられました。

 


余談:

このあたりに後ろ姿が..

https://www.ntt.com/wideangle_security/data/sec_repo.html

また、今回こそは “Python コード書くぞ!!” と思っていたんですが、

気づいたら C と C# しか書いていませんでした。

(特に、「コード貼ってよ」→「C# ですがいいですか」→「C#… orz」 の流れは辛かったです)

次回こそは・・次回こそは・・!

(Babyecho も Pwn も C# で取り組んでました.  BitConverter.GetBytes() は偉大です.

…この問題の Write-up も、他の人はみんな通信部分は Python でやってるんですよね。

うーんやっぱりやらないとなぁ。

Nikon D5300 で、再生画面にて詳細情報 (メタデータ) を出す


みむらです。

もう1年ぐらいになると思うんですが、実は一眼レフを持ってます。

_DSC0081

建物とかを取りたいわけじゃなく、ただ単に「面白そう」って思ったものを取ったり、
いい笑顔を記録に残しておこうとか。そんな感じですが。

でも持ってると、これはこれでめっちゃ面白いです。

DSC_0350

特に何も気にしなくても、こんな感じのボケる写真が簡単に撮れたりします。

 

持っているのは ニコン D5300, 18-140 VR レンズキット.
http://kakaku.com/item/J0000014511/

何となく持ち歩いて、ふとカメラを向けて撮影していますと、
友人の嫌そうな顔とか笑顔とか、わくわくした顔とか、
色んな表情がメモリの中に記録されていって、
見返すと、クスッと笑ってしまったり、ニッコリしたり。

建物を撮影してもいいですよね。
何度も行っている場所を夜にカメラを通して撮影すると、
急に幻想的な絵になったりで。

・・・そんなこんなで、やっぱりカメラっていいと思うんです。
撮影はどちらかというと下手っぴではありますが・・w

(下手の横ry

 


閑話休題。

カメラで撮影したあと良く、シャッター速度いくつーとか、感度いくつーとかそんな話になるんです。

・・・実際、そこまで気にせずに撮影する事が多くて(オートにしてしまうことが多々)
こうだったよーと即答する事が出来ないのですが、
まーそれでも、そのオートのシャッターがどの設定で動いたかは知りたいわけです。

 

レンダリングをすれば Exif として出てくるのですが、カメラの時点で知りたい。
マニュアルを見ていましたら、表示方法が書いてありましたのでメモ。

 

設定済みであれば、再生画面にて、
一枚表示の時に「マルチセレクター(中に OKボタン があるリング状のボタン)」の上もしくは下を押して表示を切り替えれば出ます。

 

ただ、設定していない場合は、上を押しても下を押しても変わりませんので、次の手順で設定。

1. 「MENU ボタン」を押してメニューに入る
2.「再生メニュー」より「再生画面設定」を選ぶ
3.「統合表示」にチェックを入れる (マルチセレクターで、右方向を押して切り替えます)
(撮影情報にチェックを入れても出ますが、統合表示が見やすいかと思います)
4.OKを押して設定を完了させる。

 

あとは再生画面にて一枚表示の際に、マルチセレクターで上もしくは下をおすと画面が切り替わり、
表示されるようになります。

 

・・・今後はもっと色々といじってみますかね・・w

YAMAHA ルータの設定を Visual Studio で書きやすく


どうもみむらです。
あけましておめでとうございます! ってやつです。

 

新春はやっぱり「書き初め」しますよね。
新年の抱負や決意をしたためるわけです。

 

私もしようとしていたんです。
絶対に LAN1/1 から開始する通信を LAN1 に流してはいけない、とか。

でもなんというか、書くための環境が気になって手を出してしまったところ
まだ書けていないのが実情です。

・・近いうちにやらないといけませんね。

 

今回はそんな中で生まれたツールをひとつ。


YAMAHA ルータコンフィグ用 Visual Studio 拡張

私も YAMAHA のルータを使うユーザの一人なのですが、
何かコンフィグを書くときに、無機質で疲れてくる、そんなことはありませんか。

YAMAHA NVR500 と OCN でひかり電話と IPv6

ヤマハルータと Hyper-V でネットワーク的な隔離環境を作ってみる

 

ふと昨晩思い立ちまして

作ってみました。

 


動作イメージ:

image

 

とりあえず、知られたコマンドとコメントアウトを色付けて、
知られたコマンドの後ろに続く文字列を緑色で着色する・・・そんな酷い実装なんですが
なんだかんだ見た目が良くなっているのでいいかなと! (ひでえ

あと、深夜のノリで IntelliSense も出るようにしてみました。
・・・これ出すために昨晩ページをスクレイピングしてすいませんでした >ヤマハの中の人

 


準備:

Visual Studio 2013 を使いますので、持っていない方はこちらから:
http://www.microsoft.com/ja-jp/dev/products/community.aspx 

昨日作った YAMAHA ルータの色づけ器はこちらから:
http://mimumimu.net/software/blogup/YamahaClassifier.zip

 

インストール:

ダウンロードした zip ファイル内の “YamahaClassifier.vsix” をダブルクリックすると次のような画面が出ますので「インストール」をクリックします。

image

 

使い方:

1.何でもいいのでプロジェクトファイルを作成します(苦笑)

たぶん Visual C++ の Win32 コンソールアプリケーションが
一番きれいでいいと思います・・!

image

 

2.拡張子 “.yconf” のファイルを作る (空でもOK)

image

作ったらあとはそのファイル上でルータのコンフィグを書いていきます。

 


開発者向け:

https://github.com/mimura1133/YamahaConfigClassifier

オープンソースですんで、ご自由にいじってくださいなー。
ライセンスとしては MIT ライセンスに従いますんでご自由にー。