Cryptcat (twofish) データを復号化するにはどうすればいいですか?

Cryptcat (twofish) データを復号化するにはどうすればいいですか?

Cryptcat ツールで暗号化されたパケットがいくつかあり、それを復号化したいと考えています。暗号化パスワードは持っています。cryptcat で netcat を使用しようとしましたが、netcat から cryptcat に接続して何かを送信しようとするたびに、接続が閉じてしまいます。

次のことを試しました:

cryptcat -vv -k p@ssword -l -p 1337 > decryptedfile

別の端末から:

cat encrypted | nc localhost 1337

Enter キーを押すと接続が閉じます。

答え1

cryptcat私の場合はうまくいきました。暗号化と復号化は、送信時に暗号化し、受信時に復号化するという原則に基づいてペアになっていることに注意してください。(暗号化されたファイルを復号化するために を使用することはできません。)

暗号化されたソース ファイルに妥当なデータ (つまり、長さがゼロでない) が含まれていることを確認し、tsharkまたは同等のチェックを使用して、データが実際にネットワーク経由で送信されていることを確認する必要があります。

まず、暗号化されたファイルを生成します

システム 1 でメッセージを送信する前に、システム 2 でリッスンを開始します。

システム2

nc -vv -l -p 1337 >message.enc

hex message.enc
   0000 14 fd 25 da c3 5e 36 81  b2 7b e7 b0 13 4b b5 8b  ..%..^6. .{...K..
   0010 cc 13 4c 60 bd 54 1e e2  5b 01 7f ac bc 93 27 6b  ..L`.T.. [.....'k
   0020 c3 a3 90 30 44 76 e1 61  f5 42 2d 04 f2 13 eb d4  ...0Dv.a .B-.....
   0030 9c d9 9c 75 95 10 b2 55  42 bf 0d cb cb           ...u...U B....

システム 1

date | cryptcat -vv -k p@ssword -w 1 system2 1337

暗号化されたファイルを再送信します

以前と同様に、メッセージを送信する前に受信機で聞き始めます。

システム 1

cryptcat -vv -k p@ssword -l -p 1337    # → Thu 25 Oct 15:07:24 BST 2018

システム2

nc -vv -w 1 system1 1337 <message.enc

代替案の推奨

一般的に言えば、の元の作者は、netcatこれを純粋にネットワーク ツールとして維持し、暗号化は外部ツールを使用して追加することを希望していると述べています。このアプローチを採用すると、mcrypt次のようなツール チェーンのペアを使用して構築できます。

generate_data | mcrypt -z | nc ...

... nc -l | mcrypt -d -z | produce_data

ncここでの利点は、スタンドアロンの復号化が可能であり、2 つのサーバー間で...を使用する必要がないことですcryptcat -l。また、メッセージの暗黙的な暗号化または復号化から転送の方向を切り離します。

関連情報