WSL2
Table of Contents
msfconsole
FreeBSDは4月、7月のように年に4回、pkgが更新される。新しいパッケージに なって、前回失敗してたアプリが動作する様になった。
sakae@slfb:~ $ msfdb init & msfconsole [!] You need to have postgres installed or specify a database with --connection-string Metasploit tip: Network adapter names can be used for IP options set LHOST eth0 ____________ [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| $a, |%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| $S`?a, |%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%__%%%%%%%%%%| `?a, |%%%%%%%%__%%%%%%%%%__%%__ %%%%] [% .--------..-----.| |_ .---.-.| .,a$%|.-----.| |.-----.|__|| |_ %%] [% | || -__|| _|| _ || ,,aS$""` || _ || || _ || || _|%%] [% |__|__|__||_____||____||___._||%$P"` || __||__||_____||__||____|%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| `"a, ||__|%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|____`"a,$$__|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% `"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] =[ metasploit v6.4.7-dev ] + -- --=[ 2418 exploits - 1244 auxiliary - 423 post ] + -- --=[ 1465 payloads - 47 encoders - 11 nops ] + -- --=[ 9 evasion ] Metasploit Documentation: https://docs.metasploit.com/ msf6 >
sakae@slfb:~ $ ps awxl UID PID PPID C PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND : 1001 8719 1026 0 31 0 205636 154084 ttyin I+ 2 0:49.88 ruby /usr/local/bin/msfconsole (ruby32)
コテコテのrubyで出来ています。railsも一枚噛んでいるようです(メモリーを 沢山使うのがrailsの特徴です)。まあ postgressとかを使うなら、当然なのかな。
msf6 > search type:exploit php Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 exploit/windows/ftp/32bitftp_list_reply 2010-10-12 good No 32bit FTP Client Stack Buffer Overflow 1 exploit/windows/ftp/aasync_list_reply 2010-10-12 good No AASync v2.2.1.0 (Win32) Stack Buffer Overflow (LIST) 2 exploit/aix/rpc_cmsd_opcode21 :
どんな欠点を突けるか、リストアップしてみた。山程有るぞ。
qemu
前回、愚問をやった。2つのqemuで、同一portをフォワードするのは、許され ない。
/qemu/net/slirp.c
static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp) { : #if SLIRP_CHECK_VERSION(4, 5, 0) err = slirp_add_hostxfwd(s->slirp, (struct sockaddr *) &host_addr, sizeof(host_addr), (struct sockaddr *) &guest_addr, sizeof(guest_addr), is_udp ? SLIRP_HOSTFWD_UDP : 0); #else err = slirp_add_hostfwd(s->slirp, is_udp, host_addr.sin_addr, host_port, guest_addr.sin_addr, guest_port); #endif if (err < 0) { error_setg(errp, "Could not set up host forwarding rule '%s'", redir_str); return -1; }
slirp_add_hostfwd
は、どこに定義されているのだろう? 山のようにライ
ブラリィーを抱えているからなあ。探すのは面倒。
ob$ nm qemu-system-i386 | grep slirp_add_hostfwd U slirp_add_hostfwd
まあいいか、深入りは、佳子ちゃん。いや、自分でヒントを出してるじゃん。
ob$ ldd qemu-system-i386 | cut -b40- | grep local >/tmp/SLIST ob$ for f in `cat /tmp/SLIST` > do > echo $f > nm $f | grep slirp_add_hostfwd > done /usr/local/lib/libcapstone.so.3.0 : /usr/local/lib/libslirp.so.0.1 00011830 T slirp_add_hostfwd
何の事は無い。同名のライブラリィーになってるじゃん。
ならば、2022と3322とかだと大丈夫? forwarding先はsshの22なんだけど。。 NATの中ってか、全く別マシンなので問題無しなんだな(いわゆる、port already in useは発生しない。だって、これを検出するのは、ホストOSですか ら)。
で、こんな戯れをやってたら、qemuのNATを止めてホスト側のネットワークに ゲストを参加させるには、どうしたら良いのって疑問が出てきた。ぐぐると、 答一発であった(但し、リナの雑音が、相変わらず、すさまじい)。
FreeBSD 上で Qemu を母艦と同じネットワークに置く
host$ kldload if_bridge host$ sysctl net.link.tap.user_open=1 host$ ifconfig tap0 create host$ ifconfig tap0 up host$ chown sakae:sakae /dev/tap0 host$ ifconfig bridge create bridge0 host$ ifconfig bridge0 addm em0 addm tap0 up
bridgeはもっと分かり易いhubとかにしようとしたら駄目だった。あくまで、 橋と名乗りたいわけね。
qemu-system-x86_64 -m 256 -nographic -no-fd-bootchk \ -net nic -net tap,ifname=tap0 \ -hda disk
これでゲスト側は、dhclientでホスト側のdhcpdにリレーしてくれた。
母艦がLinuxだと、 QEMU Tips こういう事をやるのかな。ゴチャゴチャだなあ。
OpenBSDが母艦なら、tap0は既に用意されてる。
ob$ ls -l /dev/tap0 crw------- 1 root wheel 94, 0 Apr 13 06:26 /dev/tap0 ob$ doas chmod 660 /dev/tap0 ob$ ls -l /dev/tap0 crw-rw---- 1 root wheel 94, 0 Apr 13 06:26 /dev/tap0
doas ifconfig tap0 up doas ifconfig bridge0 add tap0 add iwn0 up
ob$ cat tap-boot.sh doas sh -c "doas -u $USER qemu-system-i386 -nographic -net nic \ -net tap,fd=3 -no-fd-bootchk -hda disk 3<>/dev/tap0"
これで良いはずなんだけど、IPが取得できないなあ。
forwading
この際だから、qemuのフォワーディングを見ておく。
qemu-system-i386 -m 96 -nographic -no-fd-bootchk -s \ -net nic -net user,hostfwd=tcp::2022-:22 \ -hda disk
こんな起動スクリプトでゲストを起動してる。母艦側からゲストに接続するに は、 ob$ ssh -p2022 localhost とする。
qemu$ netstat -f inet Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address TCP-State tcp 0 36 10.0.2.15.ssh 10.0.2.2.9698 ESTABLISHED
ゲスト側での結果。ssh(22)のポートに、ホスト側から9698ポートで接続して きた。10.0.2.2は、ゲスト側ってかqemu-system-i386が用意したデフォルト・ ゲートウェイになる。
ob$ netstat -f inet Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address TCP-State tcp 0 0 localhost.9698 localhost.2022 ESTABLISHED tcp 0 0 localhost.2022 localhost.9698 ESTABLISHED
こちらは、母艦側。2022ポートが対向する9698に接続されて、ゲストと疎通が できるんだな。9698は接続の度に異なる。こやつは、qemuが勝手に用意したも のだ。この9698が仲介役となって、母艦側の2022とゲスト側の22を結びつける んだな。
WSL2
これまた、前回の話になるけど、real speedって事で、ファイルへの書き込み スピードをチェックした。Debian/wsl2が断トツに速い。Windows10とDebianが、 それぞれのcpuで動作するからだ。ならば、qemuを入れてみるか。
その前に、対比としてOpenBSD(32Bit)/VMWareを入れてみようとしたんだけど、 インストール中のファイル展開に膨大な時間がかかってしまった。これはもう、 比較をするまでもなく、性能が悪い事を自ら晒しているな。
sakae@atom:~$ sudo apt install qemu-system-x86 : ovmf pocketsphinx-en-us qemu-block-extra qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86 qemu-utils seabios va-driver-all vdpau-driver-all 0 upgraded, 200 newly installed, 0 to remove and 0 not upgraded. Need to get 193 MB of archives. After this operation, 651 MB of additional disk space will be used.
やはり、付属品を多数従えてやってきた。
qemu-kvmが利用可能かと調べてみたが、サポートされてなかった。石が古いの で駄目なのか。
Windows Subsystem for Linuxガイド 第26回 WSLで仮想環境を使う - 後編
Windows 10の最新ビルドを用い、WSL2で仮想マシン環境を使う
WSL での詳細設定の構成 これを見ると、Windows 11 からか。– nestedVirtualization
ob$ dd if=/dev/zero of=zz bs=1M count=1000 1000+0 records in 1000+0 records out 1048576000 bytes transferred in 27.188 secs (38566804 bytes/sec)
これ、OpenBSD(32Bit)の結果。前回は、FreeBSD/VMWareでOpenBSDした時、34 秒だったから、若干は速いのか。
なお、上記MSのURLで紹介されてた設定を施してみた。
sakae@atom:/mnt/c/Users/sakae$ cat .wslconfig [wsl2] memory=3G [experimental] autoMemoryReclaim=gradual
メモリーのリミットは3Gまでね。キャッシュは適当なタイミングで開放してねっ て設定。だってデフォでWindowsは3Gも使っているから。firefoxとかのブラウ ザー系が使うエリアの確保の為だ。
sakae@atom:~$ cat /etc/wsl.conf [network] generateResolvConf = false #[boot] #systemd=true
systemdを試しに有効にしてみたら、余計なダエモン君が活動を始めてしまっ たので、使うのを止めた。古風なLinuxであります。
sshd
そんな訳なんで、sshdを起動/停止するスクリプトを作成してみた。最初は、 スクリプトじゃなくて、aliasだけで済むだろうと思っていたんだけど、正体 不明なエラーが発生したので、スクリプトを一本作成した。
sshdが起動したままWSLを終了しても、ダエモンになってて、ずっと動作した ままになる。んで、ついでに停止機能もつけた。 このスクリプトをsudoで起動する様にaliasに登録しておけばよい。
sakae@atom:~$ cat .runSSHD #! /bin/sh # Usage: sshd [stop] # alias sshd='sudo /path/to/.runSSHD' if [ x$1 = x"stop" ] then if [ -r /run/sshd.pid ] then kill `cat /run/sshd.pid` fi exit fi if [ ! -d /run/sshd ] then mkdir /run/sshd fi /usr/sbin/sshd
使用方法は、こんな感じ。
sakae@atom:~$ sshd [sudo] password for sakae: sakae@atom:~$ ps awx | grep sshd 27 ? Ss 0:00 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups 29 pts/2 S+ 0:00 grep sshd sakae@atom:~$ sshd stop sakae@atom:~$ ps awx | grep sshd 35 pts/2 S+ 0:00 grep sshd
飯、風呂、寝る みたいに昭和の親父のような朴訥なインターフェースだなあ。 最近のコマンドはスイッチが長すぎて嫌いだ。コマンドの対称性から言ったら、 sshd startとするのが正しいんだろうけど、そんなの無駄。sshdを起動すると 意思が有るなら、sshdだけで十分(stop以外は、わざと無視するのがオイラー 流)です。
many linx
C:\Users\sakae>wsl.exe -l -o インストールできる有効なディストリビューションの一覧を次に示します。 'wsl.exe --install <Distro>' を使用してインストールします。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS Ubuntu-24.04 Ubuntu 24.04 LTS OracleLinux_7_9 Oracle Linux 7.9 OracleLinux_8_7 Oracle Linux 8.7 OracleLinux_9_1 Oracle Linux 9.1 openSUSE-Leap-15.5 openSUSE Leap 15.5 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5 openSUSE-Tumbleweed openSUSE Tumbleweed
なんと、あのkaliがインストール出来るのか。ローリングって事は、五月雨で 更新されてるんだな。
Windows10は、インテル入ってるなんだけど、Debian/WSL2には、 kvm_intel
が入っていない。これは、ひょっとしてパッケージングのミスかと思って、
Ubuntuを入れてみた。22.04がやってきたぞ。なめられたものである。それは
そうと、相変わらず、インテルはやってこない。もう石が古すぎるって結論だ
な。
Perplexity
AI検索エンジン「Perplexity」でネット検索はどう変わるのか
Perplexity <– Entry Here
Q: 炎天下の車内を効率よく冷やす、カークーラーの使用方法を教えてくださ い
A: 炎天下の車内を効率よく冷やすためのカークーラーの使用方法について、以下の手順を実践することをおすすめします:
- 乗車前に車内の熱気を逃がす:
ドアを3〜5回あおぐように開閉し、対角線上のドアの窓を全開にして空気の通り道を作ります。これにより車内温度を5〜8°C程度下げることができます[2]。
- エアコンの設定を最強にする:
乗車後すぐに、エアコンを最も低い温度設定にし、風量を最大にします[2]。
- 外気導入から内気循環へ切り替える:
最初の5分ほどは外気導入にして車内の暑い空気を入れ替え、その後内気循環に切り替えます。これにより、すでに冷えた空気を効率的に循環させることができます[2]。
- 走行中の窓開け:
走り始めのうちは、運転席の窓と左後ろの窓を開けて空気の通り道を作ります。これにより効率よく車内の空気を入れ替えることができます[4]。
- エアコンコンデンサーに水をかける:
可能であれば、エアコンコンデンサー(通常フロントグリルの裏にあります)に水をかけることで、冷却効率を上げることができます。これにより、エアコンの効き始めを3〜4分程度に短縮できる場合があります[4]。
- 車体全体の温度を下げる:
エアコンコンデンサーに水をかけるついでに、車体全体にも水をかけることで、車内の温度をさらに下げることができます[4]。
これらの方法を組み合わせることで、炎天下で50°Cを超えることもある車内温度を、より効率的に快適な温度まで下げることができます[1][2]。また、エアコンを効率よく使用することで燃費の改善にもつながります[1]。
Citations: [1] https://www.youtube.com/watch?v=Obfa2fVw47E [2] https://221616.com/norico/car-air-conditioner/ [3] https://mykobac.jp/news/20240517-1213/ [4] https://www.tax-kyowa.com/syuri_157.html [5] https://www.goo-net.com/magazine/carmaintenance/repair/213419/
エッジのごとく、回答の根拠が出てくるのが◯。
同じ質問をChatGPTにしてみる。
A: 炎天下の車内を効率よく冷やすために、カークーラーの使用方法を以下のステップで説明します。
### 1. 車の換気 まず、車内の熱気を逃がすために、全ての窓を開けて車を走らせます。これにより、車内の高温の空気が排出され、新鮮な空気が入ります。1〜2分程度走行するか、扇風機を利用して空気を循環させるのも効果的です。
### 2. エンジンの始動とエアコンの起動 エンジンを始動し、エアコン(カークーラー)を最大出力に設定します。温度設定を最低温度にし、ファンスピードを最大に設定します。この時、窓はまだ開けたままにしておきます。
### 3. 内気循環モードに切り替え 窓を閉め、エアコンのモードを「内気循環」に切り替えます。これにより、車内の冷えた空気を再循環させ、効率的に車内を冷やすことができます。
### 4. 温度とファンスピードの調整 車内が冷え始めたら、温度設定とファンスピードを適切なレベルに調整します。内気循環モードのままにしておくと、エアコンの効率が上がります。
### 5. 遮光対策 車内の温度上昇を防ぐために、サンシェードやカーテンを利用して直射日光を遮ることも効果的です。
### 6. 駐車場所の選択 駐車する際は、可能な限り日陰や地下駐車場を選びます。直射日光を避けることで、車内温度の上昇を防げます。
これらのステップを踏むことで、炎天下でも効率よく車内を冷やすことができます。