Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 166 (pdf).
Blíží se prázdniny a než se rozutečete k moři, je na čase se opět sejít na Virtuální Bastlírně - pravidelném setkání elektroniků, ajťáků, bastlířů a obecně nadšenců do techniky. Co si pro vás strahovští bastlíři připravili tentokrát? Určitě proberou blížící se Linux Days i další události. U softwaru se chvíli zdrží a poví si kupříkladu o tom, jak se zbavit Bambu Cloudu, ale nepřijít o možnost ovládat tiskárnu na dálku. Řeč dojde i na AI,
… více »Vývojáři postmarketOS vydali verzi 26.06 tohoto operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 2.55.0 distribuovaného systému správy verzí Git. Přispělo 100 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Craig Loewen na blogu Microsoftu oznámil veřejnou preview verzi WSL kontejnerů, tj. linuxových kontejnerů ve Windows Subsystem for Linux (WSL). Spouští se příkazem wslc.exe.
Byla vydána (𝕏, Bluesky) nová verze 2026.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 9 nových nástrojů v oficiálním oznámení na blogu.
Grafická aplikace Krokiet/Czkawka pro vyhledávání a odstraňovaní nepotřebných souborů (duplicitní soubory, prázdné složky, podobné obrázky, podobná videa, poškozené soubory a další) byla vydána ve verzi 12.0.0. Podrobný přehled novinek v příspěvku na Medium. Jedná se o poslední verzi frontendu Czkawka GTK nad Czkawka Core. Uživatelům se doporučuje migrovat na frontend Krokiet postavený nad frameworkem Slint. Představena byla aplikace Cedinia pro Android využívající Czkawka Core. Dostupná je jako APK pro ruční instalaci.
Po téměř třech letech od vydání verze 9 byla vydána nová verze 10 linuxové distribuce Mageia (Wikipedie). Přehled novinek v poznámkách k vydání.
Nourish (GitHub) je nový správce oken pro Linux. Tradiční plochy nahrazuje nekonečným plátnem a posouváním a přibližováním. Využívá vlastní kompozitor pro Wayland s názvem y5. Videoukázka.
Po 20 letech a 17 otevřených (open source) krátkých filmech Blender Studio oznámilo plán na svůj první celovečerní film. Cílem samozřejmě není jenom nový otevřený film, ale především vývoj a vylepšení otevřených nástrojů pro spolupráci napříč celým procesem a vytvoření otevřené příručky (playbook) pro filmovou produkci ve velkém měřítku s informacemi, které jsou obvykle dostupné pouze uvnitř komerčních studií, a pomoci tak nezávislým tvůrcům překonat technické a organizační bariéry.
Mám obývací pokoj oknem "prosvícen" wifi signálem jednoho místního providera. Koukal jsem se jak pokročila technologie louskání WEPu, a překvapeně zjistil že slabé inicializační vektory jsou minulostí, že aircrack-ng používá jiný, mnohem účinnější útok. Stačí nasbírat dost inicializačních vektorů, spustit na ně aircrack, a máte WEP heslo. Podrobných návodů je na netu dost. Jenže co s takovým heslem? Krást se nemá, a to ani internetová konektivita.
Spokojím se proto s pasivním monitorováním, a dekódováním šifrovaných packetů pomocí airdecap-ng. Po mírném opatchování umí fungovat i jako filtr, číst pcap file ze standardního vstupu, a posílat dekódované packety na standardní výstup. Na vstupu i výstupu může být tcpdump, nebo něco jiného. Asi jsem blízko antény která je na straně gatewaye, protože packety které vidím chodí vždy z internetu směrem k uživatelům. Samotný tcpdump či wireshark je docela nepraktický, proto jsem spáchal jednoduchý skript, který packety mění na něco použitelného, tj soubory. Co skript dělá:
- rekonstruuje TCP streamy, a zpracovává "HTTP 200 OK" odpovědi.
- prázdné packety a SYN/FIN flagy pro jednoduchost zcela ignoruje, spoléhá se na timeouty.
- connection: keep-alive, a transfer-encoding: chunked jsou podporovány.
- content-encoding: gzip produkuje .gz soubory, takže se snadno prohlížejí.
- soubory rozhazuje do adresářů podle cílové IP adresy, čísluje a pojmenovává podle zdrojové IP. Škoda že nejde zjisit původní URL, program proto použije alespoň předchozí CNAMEs k dané IP.
- příponu nastavuje podle content-type hlavičky.
A jak to vypadá? Normálně, co by kdo taky mohl čekat.. updaty antivirů, google, seznam, centrum, idos, dpmb, atlas.cz, O2, vodafone, motobazar, libimseti, baculky.cz, fotbal.sport.cz, youtube, super.cz...
$ cat decouder.py
#! /usr/bin/python
from struct import unpack
from string import join, split, index
import sys, re, os
cn = {}
ns = {}
def ip(a):
n = ns.get(a)
if not n: return join([str(ord(i)) for i in a], '.')
return cn.get(n) or n # prefer CNAMEs
def pcap(read):
if unpack('IH14xI', read(24)) != (0xA1B2C3D4, 2, 1):
print 'not an ethernet pcap file'
sys.exit(1)
flow = {}; flow_lim = 16
while 1:
try:
tm, l = unpack('I4xI4x', read(16))
pkt = read(l)
dm, sm, t, i, l, p, chk, s, d = unpack(
'!6s6sHBxH5xBH4s4s', pkt[:34])
except: break # eof
if t != 0x800 or i & 0xf0 != 0x40: continue # not ip
pkt = pkt[14 + 4*(i & 0xf) : 14 + l]
if p == 0x6: # tcp
sp, dp, seq, l, f, chk = unpack(
'!HHI4xBB2xH', pkt[:18])
pkt = pkt[4*(l >> 4):]
if not pkt: continue
if len(flow) > flow_lim: # collect garbage
flush(flow, tm - 180)
flow_lim = len(flow) * 2
data = flow.setdefault((s, d, sp, dp), [tm, '', seq])
if data[0] < tm - 180: # reusing old
tcp(s, d, data[1])
data[1] = ''
elif data[2] != seq: continue
data[0] = tm; data[1] += pkt
data[2] = (seq + len(pkt)) & 0xffffffff
if p == 0x11: # udp
sp, dp, l, chk = unpack('!HHHH', pkt[:8])
if sp == 53: dns(pkt[8:l])
flush(flow, 1e99)
def flush(flow, tm):
n = 0
l = flow.items()
l.sort(key = lambda x: x[1][0]) # in tm order
for k, data in l:
if data[0] >= tm: break
tcp(k[0], k[1], data[1])
del flow[k]; n += 1
def dns(pkt):
f, q, r = unpack('!2x3H4x', pkt[:12]); i = 12
if f & 0xfa0f != 0x8000: return
def name(i, pkt = pkt):
s = ''; si = None; c = 0
while 1:
n = ord(pkt[i]); i += 1
if n >= 0xc0:
c += 1
if not si: si = i + 1
elif c > 10: return # prevent dos
i = (n - 0xc0) << 8 | ord(pkt[i])
continue
if n == 0: return s[:-1], si or i
s += pkt[i:i + n] +'.'; i += n
for p in range(q): # skip queries
i = name(i)[1] + 4
for p in range(r): # response
s, i = name(i)
t, c, n = unpack('!HH4xH', pkt[i:i + 10])
if t == 1 and c == 1 and n == 4: # A
ns[pkt[i + 10:i + 14]] = s
if t == 5 and c == 1: # CNAME
cn[name(i + 10)[0]] = s
i += 10 + n
dirs = {}
def rx(regex, s, n = 1):
m = re.search(regex, s)
return m and m.group(n)
def tcp(s, d, doc):
while doc[:5] == 'HTTP/':
try: l, doc = split(doc, '\r\n', 1)
except: return
ok = split(l)[1]
ct = ce = sz = None
while 1: # mime cruft
try: l, doc = split(doc, '\r\n', 1)
except: return
if not l: break
ct = ct or rx('^Content-Type: (\S+/)?([^; ]+)', l, 2)
ce = ce or rx('^Content-Encoding: (\S+)', l)
sz = sz or rx('^Transfer-Encoding: (\S+)', l) \
or rx('^Content-Length: (\d+)', l)
if doc[:5] == 'HTTP/': continue # IIS/6.0 @#%$$&!!
if ct in ('x-javascript', 'javascript'): ct = 'js'
elif not ct: ct = 'unknown'
if ce == 'gzip': ct += '.gz'
if sz == 'chunked': # unchunk
out = ''
while 1:
try: l, doc = split(doc, '\r\n', 1); l = int(l, 16)
except: return
out += doc[:l]
doc = doc[l + 2:]
if l == 0: break
else:
try: sz = int(sz)
except: sz = len(doc)
if len(doc) < sz: return
out = doc[:sz]
doc = doc[sz:]
if ok != '200' or len(out) < 1024: continue
dir = 'HTTP-'+ ip(d)
n = dirs[dir] = dirs.get(dir, 0) + 1
if n == 1: os.mkdir(dir)
n = '%s/%04d-%s.%s' % (dir, n, ip(s), ct)
open(n, 'w').write(out)
print n, len(out)
pcap(sys.stdin.read)
Tiskni
Sdílej:
Takže BTW z prvního komentáře zůstává.
Ohledně předmětu mého komentáře. Pokud by četl obsah té komunikace (a to i kdyby byla nešifrovaná), tak to legální není.
Nikdo nesmí porušit listovní tajemství ani tajemství jiných písemností a záznamů, ať již uchovávaných v soukromí, nebo zasílaných poštou a nebo jiným způsobem, s výjimkou případů a způsobem, které stanoví zákon. Stejně se zaručuje tajemství zpráv podávaných telefonem, telegrafem nebo jiným podobným zařízením.
elektronická pošta je poštou a i písemnosti v elektronické podobě jsou písemnostmi (ve smyslu § 40 občanského zákoníku) a i pro ně platí obdobná pravidla jako pro ostatní písemnosti
Mně to s tím zářením připomíná, jakoby na sebe sousedi hulákali čínsky a já se pod pohrůžkou zákona nesměl naučit čínsky, natož je poslouchat.
S tou čínštinou je to špatný příklad. Mnohem přilehavější je ten s tou dopisní obálkou.Vzhledem k jisté podobnosti mezi šířením zvukových a rádiových vln a (ne)srozumitelnosti přenášené informace mi připadá lepší ten můj. Chápu, že podle zákona je to jinak. Tímto postojem rozhodně neříkám, že fandím odposlechům sousedů... jen se mi víc líbí, když to v Internetu/sítích funguje více jako svět za dávných dob (tj. žádná státní regulace/kontrola)
Ovšem oni na sebe asi nekřičí čínsky za účelem znemožnění odposlechu, ale protože jsou to dva Číňani.Špatný příklad. Já osobně ve škole používám španělštinu pro utajení obsahu konverzace s kamarádem
Mám na své okolí posílat policii, když mě odposlouchává?
Rozdíl je mezi vnikat někam a pasivně poslouchat. Rádiové vlny jsou plně pasivní odposlech. Navíc - proč oni smí a já ne: http://www.zive.cz/h/Bleskovky/AR.asp?ARI=133851 ?
Rozdíl je mezi vnikat někam a pasivně poslouchat. Rádiové vlny jsou plně pasivní odposlech.Pokud nelámete šifrovací klíče. A i kdyby komunikace byla nešifrovaná, vy při tom odposlechu moc pasivní nejste. Když narazíte na obsazený kanál, měl byste z něj uhnout, ne poslouchat. Když uslyšíte ve škole, že se někdo baví tajně španělsky, zvolíte s kamarádem taky jiný jazyk
Stejně, ať je to poslech aktivní nebo pasivní, zákonný či nezákonný, je to nemorální. Dál není co řešit.
Navíc - proč oni smí a já ne.Oni toho smí, co vy ne…
Jen si tak říkám, jestli je v provozu ta anténa na bezdrát (BreezeNet) na střeše služebny, na kterou koukám z okna
airodump-ng ukazuje RXQ 80-100%, bez jakékoliv antény, jen na běžnou PCMCIA kartu...