2020年12月31日木曜日

2020年を振り返って

 2020年を振り返って。

日々、情報収集した内容や勉強した内容をブログや技術メモとして、
継続的にまとめようと思いつつ、なかなか継続的にこなす事が出来ませんでした。

最終日くらい何か書きたいので、今年役立った資料を3つ紹介したいと思います。


2020年9月14日月曜日

PowerShellのInvoke-WebRequestでSession用のCookieを維持する

PowerShellのInvoke-WebRequestでSession用のCookieを維持する

PowerShellでページにアクセスしてからPOSTする方法。
セッション用のCookie等があるサイトでは、CookieをPOSTリクエストに含める必要があります。

ページの取得

Invoke-WebRequest 'https://0dsec.blogspot.com/' -SessionVariable 'Session'

Cookieを維持したままPOSTする

Invoke-WebRequest 'https://0dsec.blogspot.com/' -Method 'POST' -body 'key=value' -WebSession $Session

参考:Invoke-WebRequestのExample 2: Use a stateful web service

2020年9月13日日曜日

LinuxのPowerShellでハッシュ値を求めてみたら

ハッシュ値の取得でハマった

Kali Linuxで文字列のハッシュ値を取得する処理でハマったので整理する。

~$ echo -n test | md5sum
098f6bcd4621d373cade4e832627b4f6 -

~$ echo test | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -

この二つでハッシュ値が変わるのは、echoコマンドのオプション-nにあります。
このオプションは文字列の最後に改行を入れません。

さて、なぜハマったかですが、PowerShellはLinuxにもインストールできますので、Kali LinuxでPowerShellのスクリプトを作成していました。
Linux への PowerShell のインストール

PowerShellでハッシュ値を取得する処理を記載していたのですが、コマンドの結果は以下の通りです。

PS > echo -n test | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -
PS > echo test | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -

いずれもハッシュ値はd8e8fca2dc0f896fd7cb4cb0031ba249となります。

では、echoのAliasを見てみます。

PS > alias echo
CommandType Name Version Source
----------- ---- ------- ------
Alias echo -> Write-Output

echoのAliasはWrite-Output なので、Powershellでecho test | md5sumを実行したら以下のコマンドと同一になります。

Write-Output test | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -

Write-Outputのオプションを見ましたが、最後の改行を出力させないオプションは無いようです。

簡単にハッシュ値を求めるにはBashを使用する方が良さそうですね。

2020年9月2日水曜日

タスクバーの時計に秒を表示する

画像のように、秒を表示する方法手順は以下の通り。
※レジストリを変更するため、内容を理解出来る方以外は実施しないでください。

  1. Windowsキー + Rで「ファイル名を指定して実行」ウインドウを出す
  2. 「regedit」を入力し、レジストリエディタを起動
  3. 以下のレジストリを登録
    • キー
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
    • 種類(新規でDWORDを選択)
      REG_DWORD

    • ShowSecondsInSystemClock
    • 値のデータ
      1

2020年8月28日金曜日

powershellでログを記録する

powershellのバッファリングを増やす(1回)

mode con: lines=32766

バッファリングの設定を確認する

mode con:


powershellでログを取得する

Start-Transcript 出力ファイル -append

ログの取得を停止する

Stop-Transcript

2020年8月27日木曜日

Kali Linuxのセットアップ

Windows 10のWSL 2でKali Linuxを利用する(2004)の記事の続き。

Kali Linuxの公式サイトにドキュメントがありましたので、
Optional Steps手順にてセットアップをしていきたいと思います。
公式サイト:Win-KeX | Kali Linux Documentation

ツールのインストール

 kali-linux-defaultもあるようですが、largeにてインストールします。
# ツールのインストール
sudo apt install kali-linux-large

Windows Terminalのインストール

必須ではありませんが、Windows Terminalを使用することで、便利になりますのでMicrosoft StoreからWindows Terminalをインストールします。

続いて、下記画像の設定からショートカットを作成します。

設定を開いたら、以下を追加して完了。

{
"guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",
"hidden": false,
"icon": "file:///c:/users/<windows user>/pictures/icons/kali-menu.png",
"name": "Win-KeX",
"commandline": "wsl kex wtstart",
"startingDirectory" : "//wsl$/kali-linux/home/<kali user>"
},



以上でWindows TerminalのショートカットからWin-KeXを選ぶだけで、Kaliが立ち上がるようになりました。

2020年8月25日火曜日

WSL 2とVirtual Boxの共存

背景

元々VirtualBox上にWindowsやLinuxを構築していましたが、WSL 2でKali Linuxの利用が便利だと聞いたため、Windows 10のWSL 2でKali Linuxを利用する(2004)の記事にてWSL 2を有効化しました。

WSL 2の仮想化支援機能

WSL 2のHyper-Vハイパーバイザーが仮想化支援機能を使用するため、VirtualBoxは共存出来ないという背景があったようです。
現在はHyper-VハイパーバイザーはHypervisor Platform APIを設けて、Hyper-Vを介してCPU仮想化支援機能を使えるようになり、VirtualBoxも6.0.0からそれに対応したため、共存出来るようです。

共存を試した結果

WSL 2のKali Linuxは起動も楽で良い感じでしたが、元々利用していたVirtualBox上のWindowsが使い物にならないくらい遅くなりました。
(今まで起動に1分掛からないものが、10分以上経過しても操作出来ない状態)

解決案

解決案として、以下の2パターンが考えられます。

  1. WSL 2を無効にしVirtualBoxメインにする
  2. VirtualBoxに構築している仮想マシンをHyper-Vに移行する

1は今まで通りとなりますが、KeXが便利であることと、Hyper-Vも利用した事が無く使ってみたいため、2の方向で進めようと思います。

試行

Hyper-VにWindows10をインストールして動作を見たところ、そこそこ動いたので本格的に移行していこうと思います。

2020年8月23日日曜日

Windows 10のWSL 2でKali Linuxを利用する(2004)

今まで、Kali Linux等を構築する際は、Virtual Box上にOSのisoファイルでインストールしていました。
WSL 2を利用するとKali Linuxのインストールが楽だと聞いたことや、日経Linux 2020 7月号で特集を読んだこともあり、この機に構築しようと思います。


WSL2の導入

参考にしたのは以下のページ。
Windows 10 用 Windows Subsystem for Linux のインストール ガイド

powershellを管理者権限で起動して以下を実行します。
# WSLの有効化 
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
 # "仮想マシン プラットフォーム" のオプション コンポーネントを有効化
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 
# 再起動
Restart-Computer 
# WSL 2 を既定のバージョンとして設定
wsl --set-default-version 2


Kali Linuxの導入

Microsoft StoreからKali Linuxをインストールします。

インストールが完了したら起動します。

usernameとpasswordを求められるため、入力します。

別のpowershellを立ち上げ、インストールされたKali LinuxがWSL 2か確認します。
# 割り当てられているバージョンの確認
wsl --list --verbose
VERSIONが2となっていれば、WSL 2です。

Win-KeXの導入

Kali Linuxのバージョン 2020.3から導入された、Win-KeXを導入します。
# パッケージを最新
sudo apt update
sudo apt upgrade

# kali-win-kexインストール
sudo apt install kali-win-kex

# 起動
kex
Kali LinuxのGUI画面が表示されれば成功です。

ハマったポイント

wsl --set-default-version 2でエラー

WSL 2の導入中に以下のエラーが発生した。
wsl --set-default-version 2
エラー: 0x1bc
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

WSL 2のLinuxカーネルを更新しない時に発生するようなので、以下のページの「Linux カーネル更新プログラム パッケージをダウンロードする」から更新を実施しました。

WSL 2 Linux カーネルの更新


kexで起動すると黒い画面しか表示されない

GUI画面でLog Outしたら、以降黒い画面しか表示されなかった。
kex stopでプロセスを落とし、再度kexで起動することで解消した。


所感

聞いた通り、Virtual Boxで構築していた時に比べ、非常に楽で時間も掛かりませんでした。
ネットワーク周りがどう動いているのか把握出来ていませんが、ここは追々調べたいと思います。

他にもUbuntuやCentOS等を使用するので、WSL 2で導入したいと思いました。

2020年7月1日水曜日

Windows10でMicrosoftへのエラー報告を無効にする

Windows10でMicrosoftへのエラー報告を無効にする設定を忘れないようにメモ。


1. Windows キー + R キー > 「regedit」と入力して [OK]

2. レジストリ エディターが起動したら左側のツリーを以下のように展開
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows

3. Windows を右クリック > [新規] > [キー] > キー名を [Windows Error Reporting] にする

4. [Windows Error Reporting] を右クリック > [新規] > [DWORD (32 ビッド) 値] > 名前を [Disabled] にする

5. [Disabled] をダブルクリック > [値のデータ] 欄に [1] を入力して [OK]

6. レジストリ エディターを終了してパソコン再起動


注意事項
Homeでは無効に出来ません。