それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

セキュリティ

input[type=password]をinput[readonly]にする邪悪なインターネット・バンキング

とある銀行です。 パスワードをキーボードで入力できません パスワードを入力しようとしたら動きません。 ソースを見てみましょう input[type=password][readonly=readonly] リードオンリーです。読み込み専用です。 なんでこんな事になってるんでしょうか。…

setsuid で実行ユーザが固定できるってのはどこまで?シェルスクリプトはsuidできる?

setsuid で実行ユーザが固定できるってのはどこまで? シェルスクリプトってsuidできなかったよね。ということを確認してみる。 suidを試してみる。 まずは、suid を素直に試してみることにする。 実行可能なバイナリを準備する。 #include <pwd.h> #include <stdint.h> #incl</stdint.h></pwd.h>…

iframeを操作してDOMを制御。iframe制限を超えて金融機関の「お知らせ」を全チェックする

sbi証券のお知らせをためすぎた SBI証券のお知らせを、200件近く溜め込んでしまった。 SBI証券はログイン後にリダイレクトが走る リダイレクト画面でのログイン ログイン時に、もとのリクエストアドレスにリダイレクトされる たとえば、特定の株価を見て…

機密passwordを安全に保存する。コマンドで使う。保存する。keyringコマンド

開発用パスワード・キーの管理をしたい env.txt だとか .git/config とか .gitconfig とか、パスワードとAPIキーが散らばる。どこかに保存したい。 keyring コマンドで管理する。 linux には keyring コマンドがある。これを使うと機密な文字列をマスターパ…

OpenSSH8.8からSHA-1のRSA鍵は無効に

ssh しようとしたら、出来ない。 サーバーのホスト鍵ファイルが弾かれる。あれれと思って見直した。 Unable to negotiate with 192.168.4.1 port 22: no matching host key type found. Their offer: ssh-rsa RSA 鍵が無効化された 仕方ないので許可をするこ…

rbash で制限付きのシェルを作って安全を確保する

bash で何でもされるのが怖い?なら rbashはどうですか? rbash は bash の機能の一つで 「機能制限をされたbash」を提供するためのものです。 rbash とは、制限付きのシェル(RESTRICTED SHELL) の略です。 rbash の正体 bash -r rbash コマンドは /usr/bin/…

sslh で 443 ポートのUDP/TCP を振り分ける(openvpn/udpとwireguard/ udp を使う)

443 ポートを活用する 443 ポートで https / ssh / openvpn / wireguard を全部の待受ができたらいいなと思った。 フリーWiFiが443 / 53 /80 以外のポートを使わせてくれない事が非常に多い。公衆無線LANでポート監視やるのは流石にまずいと思うんだけど。実…

sslh で ssh / httpsを同時443で使い、しかも接続元IPを維持する

sslh で443 をポートを共有する sslh を使うと443 ポートを再利用することができる。 どんなときに使うのか。 公衆無線LANや公民館のLANなど。共用部分の共用インターネット接続でで、平然と443以外のポートを閉じてるWiFiがたくさん存在する。 社内LANと勘…

nginxで443ポートにssh/httpsを共有する

nginx で https と ssh をリッスンする nginx には $ssl_preread_protocol というStream設定が用意されている。これを使うとTLSプロトコルごとに、プロキシ先を変えることができる ただし443 はストリームが使うので、リッスン先をいい感じに帰る必要がある…

openssl コマンドで証明書・秘密鍵・証明書リクエストのペアの一致を調べる。

openssl コマンドで秘密鍵・証明書の公開鍵一致を調べる 秘密鍵と証明書(公開鍵)のペアの枚数が増えてきて、どれが有効な秘密鍵かわからなくなった。 SSL証明書・署名リクエスト・秘密鍵から、modulusを取り出し、ハッシュ値の一致を調べれば、keyとCertの…

curl コマンドでプロキシ設定をする。解除する

http プロキシで通信監視は、まだまだあります。 HTTPSが普及し尽くしたいまプロキシを入れるメリットはあまりないと思うのですが。 いまでも、念の為にプロキシを入れることは日常です。 apt / yum / dnf などでプロキシ設定しないとだめだったり、プロキシ…

macosでFileVault暗号化利用時の、リモート再起動不可とID/PWでのログインができない問題

macOSのfileVaultで暗号化しているとき、再起動が変わる。 macOSでFileVault(ディスクの暗号化)を設定しているとき、ログイン画面が変わる。 ログイン画面が変わるのは、「ログイン前に暗号化の解除」が入るため。 FileVaultが有効になっている例 暗号化の…

vaultwardenを起動して使う。( bitwarden互換サーバー)

Bitwarden互換サーバー vaultwarden 昔は、bitwarden_rs という名前だったらしい。 bitwardenのセルフホストのDockerはMSSQLだとかDotNetが含まれていて、とてもヘビィ級なセットで、バックアップも大変だったので、軽量だったらいいなと思ってた。 Rustで書…

adguard home のAPIを叩いて証明書設定を更新する-curl + jq

adguard home の証明書をAPI経由で書き換えたい。 adguard home のAPIを cURL で叩いたら、更新ができる。 cURL で adguard-home のOpenAPIを叩く Basic認証で、通せばいいので、そんなに難しくなく、簡単にAPIを叩くことができる。 adg_pass=___password___…

adguard home のAPIを叩いて設定を更新する-python

adguard home には APIがある。 python のpip が提供されている。 https://pypi.org/project/adguardhome/ 使ってみる(準備) プロジェクトとpython環境を作成する mkdir adg cd adg pyenv local 3.9.8 pyenv exec python -V pyenv exec pip install pip --…

gmail のSMTPサーバにログインして使う(xoauth)

gmail のSMTP・POP・IMAPに「パスワード」が使えなくなる。 Gmail のSMTPサーバーには、ID/PWだけでログインができた。 ただし、ID/PWをPC内部に平文で保存するために、安全とは言い難い状況が続いた。 といっても、アプリごとにストレージが分けられて、デ…

Google OAuth でユーザーからのコピペは非推奨になったけど、まだ使える。

Google OAuth でユーザーからコピペが非推奨になった 以前は、「デスクトップ・クライアント」「その他クライアント」を用いて OOB_URI = "urn:ietf:wg:oauth:2.0:oob" を指定すれば、ブラウザにアクセストークンが表示され、コピペで保存することができた。…

Google アカウントをOAuthして、アクセストークンを取得する

gmail を送信するために、OAuthで権限をもらう。 Gmail でSMTPを使うには、OAuth利用が必要になる。 less secure apps ( 安全性の低いアプリ) は非推奨になった。 git clone git@github.com:takuya/ruby-oauth-google-gmail.git bundle install bundle exec…

rclone crypt でクラウドストレージを暗号化する。

rclone crypt / rclone mount / rclone rcd --weg-gui でクラウドストレージを暗号化する。 rclone で暗号化 rclone で暗号化 はじめに rclone crypt による暗号化 rclone crypt を作る rclone crypt の準備 crypt の作成 暗号化して転送する。 元ファイルを…

ssh の HashKnownHosts に追加する方法を知り、StrictHostKeyCheckingをちゃんと使えるようになる。

ssh の HashKnownHosts に追加する方法 HashKnownHosts を有効にしていると、 .ssh/known_hotss がハッシュ化される。 これにより、どのサーバーと通信していたか、関係性の秘匿が可能になる。 hash を使う known hosts のために嫌がらせなんじゃないかと最…

ssh-agentをログイン時に起動する。

ssh-agentを使う 非暗号化ディスクにSSH鍵をパスフレーズ保護なしに保存するのは危険。 ストレージからSSHの秘密鍵を取られたら目も当てれない。 そして、known_hostsから接続先がわかってしまうと。もう最悪。 そのために、SSHを安全に扱うには、known_host…

Windowsで総当りログインの対策をする(ログオン失敗回数制限)

Windowsのユーザーもロックアウト機構を使う。 暗号化を仕掛けても、総当たりを喰らえば、あっという間にパスワードを割られてしまうので、対策をする。 ローカルアカウントを保護 総当りなんてできるのかと言われると、SSHとRDPとSMBやWMIあたりで、総当り…

Ubuntu に AdGuard Homeを導入してキッズへのフィルタリングを実現する。

Ubuntu に AdGuard Homeを導入する AdguardHomeを使えば、動画ばかり見て宿題をしないキッズたちをサクッとアクセス禁止にすることが出来るドエス機能が作れます。 ubuntu のインストール ubuntuは stableを使ってサクッとインストール sudo qemu-img create…

google chrome のセキュアDNS機能が追加されたので、キッズが使えないように考える

chrome のセキュアDNSを使わせない ブロックするIPv4は次の通りになる。 $ dig public.dns.iij.jp +short 103.2.57.6 103.2.57.5 $ dig +short dns.google 8.8.8.8 8.8.4.4 $ dig +short doh.opendns.com 146.112.41.2 $ dig +short security.cloudflare-dns…

UbuntuでWindowsのプロダクトキーを取得する。

概要 USBメモリのUbuntu でWindowsマシンをブートしてWindowsのプロダクトキー(DigitalProductId)を取り出すことが出来る。 次のコマンド sudo apt install chntpw chntpw -e /media/ubuntu/OS/Windows/System32/config/SOFTWARE ## chntpw で dpi \Microso…

dns で vpn を iodine でやる。 vpn over dns

dns で vpn を iodine 受け側 Linux は、apt でインストール sudo apt install iodine 抜ける側、ノートPCは brew でインストール brew install iodine サーバー側 idoned iodined をサーバー側で起動 ( -d の d を忘れるミスに注意) sudo iodined -f -P 7JO…

linuxのログインに総当り対策する。(ロックアウトによる対策)

シリアルコンソールでのログイン シリアルコンソールでのログインを有効にした。ttyS0を非常用のポートとして確立することができた。 総当りの懸念 物理的にサーバーを強奪・押収されたとき、シリアルコンソール接続のメンテナンス専用機の乗っ取りなどで、…

sshログインでPAMからのメッセージを表示する。

ssh でPAMからのメッセージを表示する。 たとえば、次のようPAMからのメッセージをSSHログイン時にユーザーに表示する。 takuya@~$ ssh takuya@192.168.1.115 Password: Password: The account is locked due to 3 failed logins. (10 minutes left to unloc…

opensslコマンドでファイル・文字列の暗号化と復号化。

Debian/Ubuntu の OpenSSLで暗号化と復号化 暗号化と復号化 echo -n "ひみつのもじれつ" | \ openssl enc -e -k "パスワード" -pbkdf2 -aes256 | \ openssl enc -d -k "パスワード" -pbkdf2 -aes256 暗号化 暗号化は次の感じですね。 echo 文字列 | openssl …

GNOMEログイン画面でユーザ一覧を消す

GNOMEのログインのユーザー名を消す。 ユーザー名一覧を消して、ユーザーを指定するようにする。 セキュリティ的な懸念からユーザ名は表示しないほうが絶対に良い。総当りの危険性が減るわけですし。 方法1 lightdm を使う。 sudo apt install lightdm まぁ…