2020年を振り返って。
日々、情報収集した内容や勉強した内容をブログや技術メモとして、
継続的にまとめようと思いつつ、なかなか継続的にこなす事が出来ませんでした。
最終日くらい何か書きたいので、今年役立った資料を3つ紹介したいと思います。
PowerShellでページにアクセスしてからPOSTする方法。
セッション用のCookie等があるサイトでは、CookieをPOSTリクエストに含める必要があります。
Invoke-WebRequest 'https://0dsec.blogspot.com/' -SessionVariable 'Session'
Invoke-WebRequest 'https://0dsec.blogspot.com/' -Method 'POST' -body 'key=value' -WebSession $Session
参考:Invoke-WebRequestのExample 2: Use a stateful web service
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を使用する方が良さそうですね。
画像のように、秒を表示する方法手順は以下の通り。
※レジストリを変更するため、内容を理解出来る方以外は実施しないでください。
mode con: lines=32766
mode con:
Start-Transcript 出力ファイル -append
Stop-Transcript
Windows 10のWSL 2でKali Linuxを利用する(2004)の記事の続き。
Kali Linuxの公式サイトにドキュメントがありましたので、
Optional Steps手順にてセットアップをしていきたいと思います。
公式サイト:Win-KeX | Kali Linux Documentation
# ツールのインストール
sudo apt install kali-linux-large
必須ではありませんが、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>"
},
元々VirtualBox上にWindowsやLinuxを構築していましたが、WSL 2でKali Linuxの利用が便利だと聞いたため、Windows 10のWSL 2でKali Linuxを利用する(2004)の記事にて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パターンが考えられます。
今まで、Kali Linux等を構築する際は、Virtual Box上にOSのisoファイルでインストールしていました。
WSL 2を利用するとKali Linuxのインストールが楽だと聞いたことや、日経Linux 2020 7月号で特集を読んだこともあり、この機に構築しようと思います。
参考にしたのは以下のページ。
Windows 10 用 Windows Subsystem for Linux のインストール ガイド
# 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
VERSIONが2となっていれば、WSL 2です。# 割り当てられているバージョンの確認wsl --list --verbose
# パッケージを最新sudo apt updatesudo apt upgrade# kali-win-kexインストールsudo apt install kali-win-kex# 起動kex
wsl --set-default-version 2エラー: 0x1bcWSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
WSL 2のLinuxカーネルを更新しない時に発生するようなので、以下のページの「Linux カーネル更新プログラム パッケージをダウンロードする」から更新を実施しました。
GUI画面でLog Outしたら、以降黒い画面しか表示されなかった。
kex stopでプロセスを落とし、再度kexで起動することで解消した。