hacktricks/cryptography/crypto-ctfs-tricks.md
2024-02-11 01:46:25 +00:00

15 KiB

Sztuczki do rozwiązywania zadań z szyfrowania w Crypto CTFs

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Bazy danych online z haszami

Magiczne narzędzia do automatycznego rozwiązywania

Kodery

Większość zakodowanych danych można odkodować za pomocą tych 2 zasobów:

Automatyczne rozwiązywanie podstawień

Szyfr Cezara - Automatyczne rozwiązywanie ROTx

Szyfr Atbash

Automatyczne rozwiązywanie kodowań bazowych

Sprawdź wszystkie te bazy za pomocą: https://github.com/dhondta/python-codext

  • Ascii85
  • BQ%]q@psCd@rH0l
  • Base26 [A-Z]
  • BQEKGAHRJKHQMVZGKUXNT
  • Base32 [A-Z2-7=]
  • NBXWYYLDMFZGCY3PNRQQ====
  • Zbase32 [ybndrfg8ejkmcpqxot1uwisza345h769]
  • pbzsaamdcf3gna5xptoo====
  • Base32 Geohash [0-9b-hjkmnp-z]
  • e1rqssc3d5t62svgejhh====
  • Base32 Crockford [0-9A-HJKMNP-TV-Z]
  • D1QPRRB3C5S62RVFDHGG====
  • Base32 Extended Hexadecimal [0-9A-V]
  • D1NMOOB3C5P62ORFDHGG====
  • Base45 [0-9A-Z $%*+-./:]
  • 59DPVDGPCVKEUPCPVD
  • Base58 (bitcoin) [1-9A-HJ-NP-Za-km-z]
  • 2yJiRg5BF9gmsU6AC
  • Base58 (flickr) [1-9a-km-zA-HJ-NP-Z]
  • 2YiHqF5bf9FLSt6ac
  • Base58 (ripple) [rpshnaf39wBUDNEGHJKLM4PQ-T7V-Z2b-eCg65jkm8oFqi1tuvAxyz]
  • pyJ5RgnBE9gm17awU
  • Base62 [0-9A-Za-z]
  • g2AextRZpBKRBzQ9
  • Base64 [A-Za-z0-9+/=]
  • aG9sYWNhcmFjb2xh
  • Base67 [A-Za-z0-9-.!~_]
  • NI9JKX0cSUdqhr!p
  • Base85 (Ascii85) [!"#$%&'()*+,-./0-9:;<=>?@A-Z[\]^_`a-u]
  • BQ%]q@psCd@rH0l
  • Base85 (Adobe) [!"#$%&'()*+,-./0-9:;<=>?@A-Z[\]^_`a-u]
  • <~BQ%]q@psCd@rH0l~>
  • Base85 (IPv6 or RFC1924) [0-9A-Za-z!#$%&()*+-;<=>?@^`{|}~_]
  • Xm4yV_|Y(V{dF>`
  • Base85 (xbtoa) [!"#$%&'()*+,-./0-9:;<=>?@A-Z[\]^_`a-u]
  • xbtoa Begin\nBQ%]q@psCd@rH0l\nxbtoa End N 12 c E 1a S 4e6 R 6991d
  • Base85 (XML) [0-9A-Za-y!#$()*+,-./:;=?@^`{|}~z_]
  • Xm4y|V{~Y+V}dF?
  • Base91 [A-Za-z0-9!#$%&()*+,./:;<=>?@[]^_`{|}~"]
  • DmPsv8J7qrlKEoY7
  • MEGAN35 [3G-Ub=c-pW-Z/12+406-9Vaq-zA-F5]
  • kLD8iwKsigSalLJ5
  • ZONG22 [ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2]
  • ayRiIo1gpO+uUc7g
  • ESAB46 []
  • 3sHcL2NR8WrT7mhR
  • MEGAN45 []
  • kLD8igSXm2KZlwrX
  • TIGO3FX []
  • 7AP9mIzdmltYmIP9mWXX
  • TRIPO5 []
  • UE9vSbnBW6psVzxB
  • FERON74 []
  • PbGkNudxCzaKBm0x
  • GILA7 []
  • D+nkv8C1qIKMErY1
  • Citrix CTX1 []
  • MNGIKCAHMOGLKPAKMMGJKNAINPHKLOBLNNHILCBHNOHLLPBK

http://k4.cba.pl/dw/crypo/tools/eng_atom128c.html - 404 Dead: https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng_hackerize.html

HackerizeXS [╫Λ↻├☰┏]

╫☐↑Λ↻Λ┏Λ↻☐↑Λ

Morse

.... --- .-.. -.-. .- .-. .- -.-. --- .-.. .-

UUencoder

begin 644 webutils_pl
M2$],04A/3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/3$%(
M3TQ!2$],04A/3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/
F3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/3$$`
`
end

XXEncoder

XXEncoder jest narzędziem do kodowania i dekodowania danych w formacie XXEncoded. Jest to popularna metoda kodowania, która konwertuje dane binarne na tekst, aby można je było bezpiecznie przesyłać lub przechowywać. XXEncoder używa zestawu 64 znaków, które reprezentują różne wartości binarne.

Aby skorzystać z XXEncoder, wystarczy wprowadzić dane, które chcesz zakodować lub zdekodować, a następnie kliknąć przycisk "Encode" lub "Decode". Wynik zostanie wyświetlony w polu tekstowym.

XXEncoder jest przydatnym narzędziem podczas rozwiązywania zadań związanych z kodowaniem w CTF-ach (Capture The Flag). Może być również używany do analizy i manipulacji danych kodowanych w formacie XXEncoded.

begin 644 webutils_pl
hG2xAEIVDH236Hol-G2xAEIVDH236Hol-G2xAEIVDH236Hol-G2xAEIVDH236
5Hol-G2xAEE++
end

YEncoder

YEncoder to prosty algorytm kodowania, który jest często stosowany w CTF-ach (Capture The Flag) i innych zabezpieczeniowych konkursach. Algorytm ten jest podobny do Base64, ale ma kilka różnic.

Sposób działania

YEncoder koduje dane w postaci sekwencji znaków ASCII. Każdy znak jest reprezentowany przez 8 bitów. Algorytm działa w następujący sposób:

  1. Podziel dane na bloki po 3 bajty.
  2. Dla każdego bloku, podziel go na 4 grupy po 6 bitów.
  3. Przekonwertuj każdą grupę 6-bitową na wartość dziesiętną.
  4. Przekonwertuj wartość dziesiętną na odpowiadający jej znak ASCII.
  5. Połącz wszystkie znaki ASCII w jedną sekwencję.

Przykład

Załóżmy, że mamy dane wejściowe "Hello". Pierwszym krokiem jest przekształcenie tych danych na postać binarną:

H -> 01001000
e -> 01100101
l -> 01101100
l -> 01101100
o -> 01101111

Następnie, dane są podzielone na bloki po 3 bajty:

01001000 01100101 01101100
01101100 01101111

Każdy blok jest podzielony na grupy po 6 bitów:

010010 000110 010101 101100
011011 000110 111101

Każda grupa 6-bitowa jest przekonwertowana na wartość dziesiętną:

18 6 21 44
27 6 61

Wartości dziesiętne są przekonwertowane na odpowiadające im znaki ASCII:

R G V ,
W G 9

Ostatecznie, wszystkie znaki ASCII są połączone w jedną sekwencję:

RGV,WG9

Dekodowanie

Dekodowanie danych zakodowanych za pomocą YEncoder odbywa się w odwrotny sposób. Każdy znak ASCII jest przekonwertowany na odpowiadającą mu wartość dziesiętną, a następnie na grupę 6-bitową. Grupy 6-bitowe są łączone w bloki po 3 bajty, a ostatecznie otrzymuje się oryginalne dane.

Narzędzia online

Można znaleźć wiele narzędzi online do kodowania i dekodowania danych za pomocą YEncoder. Wystarczy wprowadzić dane wejściowe i narzędzie automatycznie przeprowadzi operację kodowania lub dekodowania.

=ybegin line=128 size=28 name=webutils_pl
ryvkryvkryvkryvkryvkryvkryvk
=yend size=28 crc32=35834c86

BinHex

(This file must be converted with BinHex 4.0)
:#hGPBR9dD@acAh"X!$mr2cmr2cmr!!!!!!!8!!!!!-ka5%p-38K26%&)6da"5%p
-38K26%'d9J!!:

ASCII85

ASCII85 to kodowanie znaków, które konwertuje dane binarne na tekst ASCII. Jest podobne do kodowania Base64, ale bardziej efektywne w zakresie przesyłania danych binarnych. W ASCII85 każde 4 bajty danych binarnych są zamieniane na 5 znaków ASCII.

Przykład:

Dane binarne: 01100001 01100010 01100011 01100100
ASCII85: 6&DL

ASCII85 jest często używane w zabezpieczeniach, kompresji danych i w niektórych formatach plików, takich jak PDF.

<~85DoF85DoF85DoF85DoF85DoF85DoF~>

Klawiatura Dvoraka

drnajapajrna

A1Z26

Litery na ich wartość numeryczną

8 15 12 1 3 1 18 1 3 15 12 1

Szyfr afiniczny - kodowanie

Litera na numer (ax+b)%26 (a i b to klucze, a x to litera) i wynik z powrotem na literę

krodfdudfrod

Kod SMS

Multitap zamienia literę na powtarzające się cyfry zdefiniowane przez odpowiadający kod klawisza na klawiaturze telefonu komórkowego (Ten tryb jest używany podczas pisania SMS-ów).
Na przykład: 2=A, 22=B, 222=C, 3=D...
Możesz zidentyfikować ten kod, ponieważ zobaczysz** wiele powtarzających się liczb**.

Możesz odkodować ten kod na stronie: https://www.dcode.fr/multitap-abc-cipher

Kod Bacona

Zamień każdą literę na 4 litery A lub B (lub 1 i 0)

00111 01101 01010 00000 00010 00000 10000 00000 00010 01101 01010 00000
AABBB ABBAB ABABA AAAAA AAABA AAAAA BAAAA AAAAA AAABA ABBAB ABABA AAAAA

Runy

Kompresja

Raw Deflate i Raw Inflate (można znaleźć oba w Cyberchef) mogą kompresować i dekompresować dane bez nagłówków.

Proste szyfrowanie

XOR - Automatyczne rozwiązanie

Bifid

Wymagane jest hasło

fgaargaamnlunesuneoa

Vigenere

Wymagane jest hasło kluczowe.

wodsyoidrods

Silne szyfrowanie

Fernet

2 ciągi base64 (token i klucz)

Token:
gAAAAABWC9P7-9RsxTz_dwxh9-O2VUB7Ih8UCQL1_Zk4suxnkCvb26Ie4i8HSUJ4caHZuiNtjLl3qfmCv_fS3_VpjL7HxCz7_Q==

Key:
-s6eI5hyNh8liH7Gq0urPC-vzPgNnxauKvRO4g03oYI=

Podział tajemnicy Samira

Tajemnica jest dzielona na X części, a do jej odzyskania potrzebne jest Y części (Y <=X).

8019f8fa5879aa3e07858d08308dc1a8b45
80223035713295bddf0b0bd1b10a5340b89
803bc8cf294b3f83d88e86d9818792e80cd

http://christian.gen.co/secrets/

Brute-force OpenSSL

Narzędzia

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: