четвъртък, 28 февруари 2008 г.

TUTORIALS

Hack FAQ


Как да разберем паролата на чужд dialup?
• Намерете някакава пролука в провайдора и вземете всичките пароли…
Ако user'ът има разширен С: (достъпен за четене/понякога и запис), то може да копирате от там *.pwl и user.dat от директорията Windows. В .pwl се съхраняват шифрираните пароли за връзка (разкодирайте ги най-добре с PWLTool), а в user.dat се съхраняват телефите за връзката и паролата за Outlook Express. За намерането на такава "разширена " машина може да използвате NetBios-скенер от типа NAT, Essential NetTools и др.
• Може да изпратите на usr'а и троян. Основно съществуват две категории - MAIL и RAT…
Mail Trojans - програма за троянски кон, която работи с e-mail. Изпраща ви информацията (файлове, пароли и др.) по e-mail с машина за троянци.
RAT - Remote Administration Tools (програма за отдалечено администриране), позволява напълно или частично да управлява отдалечената машина…
BackDoors също се отнася към RAT, както е ясно от името му - "задна врата" чрез него също може да се управлява машина…
• Понякога не е необходимо да изпращате на някого троянци, след като може да се намерят заразени с RAT машини. Затова се използват различни скенери за открити портове (например SuperScan, PortScan). Ето малък списък на портовете, използвани от RAT-троянци:
1243 - SubSeven 1.x
1492 - FTP99CMP
6670 - Deep Throat
7306 - NetMonitor
12346 - NetBus 1.x
20034 - NetBus Pro
21544 - GirlFriend
23456 - EvilFtp
27374 - SubSeven 2.x
31337 - Back Orifice
54320 - Back Orifice 2000
• Може да се постави KEYLogger (клавиатурен шпионин) на този, чийто пароли желаете.
• Възможно е паролата за Интернет на user'а да е същата, каквато е на някаква пощенска кутия, например mail.bg… Може да отидете на сайта и в раздела "Забравени пароли" случайно да откриете отговора на зададения въпрос! Ако не го знаете опитайте се с хитрина да го разберете от самия user. А може и да използвате програмата за избор на парола за POP3.
-За сега това е всичко необходимо
Защо някои PWL файлове се разшифроват моментално, а други много дълго… а някои въобще не искат?
• Ако user'ът от който сте взели PWL'а използва парола за Windows, то pwl се шифрира с допълнителен ключ, затова не можеш да го хакнеш така лесно, паролите трябва да се подбират… А не се разкодира бързо затова, защото там няма парола. Забелязал съм, че ако размерът на файла е 688 байта, то той е празен…
Казват, че трябва се кодира…
Ами, да. Вие как мислите… има купища всякакъв software за защита на информацията… Ето няколко примера:
• PGP - Pretty Good Privacy позволява да се се кодира всичко, наистина всички Public Keys - MD …. Използвайте PGPDisk! Създайте Отделен Диск и съхранявайте там данните, които трябва да кодирате и… това и всичко.
• FSecure FileCrypto - не знам колко надеждна е тя, но много (в това число и аз) хора я ползват и са доволни. Указвате директорията която трябва да се шифрова, указвате паролата и готово… файлът се разшифрира в реално време.
• BestCrypt - шифрира данни… Повече нищо не знав, не съм я ползвал
• PureNoise - програма за шифриране разговорите на IRC…
• TSM - криптира вашите ICQ съобщения.
Знам IP на жертвата, какво мога да направя с него?
• Да, много неща, например:
• Може да сканираш портовете му, за да откриеш нещо отворено… дари някоя парола или троян без парола
• Може да го заблудиш, но най добре с shell, при който каналът е с няколко Mb … Избери ping -t -l 50000 IP.AD.DR.ES ..
• Може да се използва някакви експлоити за неговата ОС
В общи линии знам какво е IP, Ftp, Smtp…, но не разбирам за какво са те?
• TCP/IP - Transmission Control Protocol/Internet Protocol (Протокол за управление на трансфера/Интернет протокол). В мрежа работеща на TCP/IP информацията се предава чрез IP пакети. Връзката с мрежата се идентифицира с 32-разлядни IP-адреси, които ние изразяваме във вид на десетични числа разделени с точки (например, 127.0.0.1).
TCP - Transmission Control Protocol (Протокол за управление на трансфера) е ориентиран към работа с връзките и предава данните във вид на байтов поток.
IP - Internet Protocol, протокол от ниско ниво, който управлява пакетите данни между отделните системи, свързани с помощта на малшрутизатири за формиране на Интернет или Интанет (маршрутизаторът е компютър, който предава пакети данни от една система в друга).
FTP- File Transfer Protocol (Протокол за предаване на файлове), позволява да се предават файлове от едни компютър на друг чрез използването на ТСР връзки.
• SMTP - Simple Mail Transfer Protocol (Обикновен протокол за транфер на пощата) определя формата на съобщенията, които SMTP-клиента, работещ на един компютър, може да използва за изпращане на email на SMTP-сървър, намиращ се на друг компютър.
Как да си сменя IP'то?
• Най-простия начин е чрез използване на PROXY или SOCKS съвръри…За ICQ, FTP, IRC е нужно SOCKS, те обикновено стоят на port 1080… Също за IRC може да се използва BNC (Bouncers), но да се намерят е трудно… А PROXY може да намерите на http://proxycheck.spylog.com
Как да получа информация за домйн или IP?
• Може да отидеш тук: whois.internic.net, тук: whois.ripe.net или тук: whois.ripn.net. А може просто да използваш програмата SmartWhois… А ако искаш да видиш в коя част на смета се намира сървъра, то тогава ти е нужна NeoTrace.
DOS, DDOS… Какво е това?
• Дискова операционна Система …Е, да… DOS - Denial Of Service (Отказ от обслужване). Ако някой server го flood'нат, възползвайки се от уязвимостта му и той престане да отговаря на запитвания, то това може да се нарече DOS-атака…
DDOS - Distributed Denial Of Servise, това е когато DOS-атаките на няколко машини са съсредоточени в една точка…Тогава атакувания server бързо пада … Има различни прогрма-червеи, които могат да заразят server'и и да ги доведат до състояние на DDOS-атаки, например Trinoo.
Чувал съм, че за да се защитя от различни атаки, трябва да използвам FireWalls. Какво е това?
• Да. FireWall'ите са software'ни и hardware'ни. Software'ен firewall - програма, която филтрира входящия/изходящия трафик и го проверява по свои правила (които могат да се изменят естествено), например е забранено да се използва NETBIOS по време на DIALUP-сесия. Значи FireWall'ът ще блокира всички пакети отнасящи се за NETBIOS. Надявам се ме разбрахте…
Препоръчителен Fire Wall за Win9xx/NT е Conseal PC FireWall. Има още много други, например ATGUARD, FireWall-1, F-Secure FireWall и други…Може да потърсите за други и сами.
Как да намеря пароли с NT server? Къде се намилат те?
• За съхранение на паролите в NT се използва SAM (Security Accounts Manager). SAM се съхранява в директориите %systemroot%\system32\config, но не може да получите достъп до SAM при заредена ОС. Има друг изход. Ако администраторът е създал резервен диск, копие на SAM трябва да има и тук - %systemroot%\repair\sam._ (например c:\winnt\repair\sam._). Тези копия по подразбиране са достъпни за четене от всеки. Използвайки utility samdump, както и програмата L0pht Crack може да извлечете комбинации с името на user'a/парола от копирания SAM.
А нещо за паролите в *nix-os?
• Файл с пароли - /etc/passwd. Структурата изглежда така:login:password:UID:GID:comments:home:shell Ако видите ред от типа root:*:0:0:root:/bin/bash, значи паролата е падчертана (т.к. вместо парола има "*"). Паролите за login'а се съхраняват в /etc/shadow, както и в /etc/master.passwd (ако е BSD), които не са достъпни за обикновения ползвател. Паролите шифровани с DES за десодиране често използват John The Ripper. Понакога съществуват файлове от типа /etc/shadow.old (или .bak), които са достъпни за четене, но само по някога
Искам да използвам някакъв експлоит! Но как? Намерих един, но той има разширение .с.
• Закачете го на Unix server и наберете gcc exploit.c -o e… А после пуснете това, което се е получило - ./exploit.
Може също да възникне и въпросът - "А от къде да взема shell?"… От тук: http://www.freeshells.net, http://www.hobbiton.org, http://www.cyberspace.org и въобще потърсете в търсачките за free shell… А ако имате валидна CCs, то може да си закупите пълноценна shell ))
Изследване преди Взлом


Всеки мрежов взлом изисква няколко подготвителни изследвания, които трябва да осществи хакерът преди да седне зад компютъра. Грамотният "взломаджия" е необходимо да има определен обем информация. За да се заемеш с хакерството трябва да имаш определени знания в областта на компютрите и телекомуникациите (на ниво идеи), но за реалния взлом е необходимо най-напред телефонен номер или някакъв друг път за получаване на достъп до вражеския компютър. И в двата случая е необходимо предварително изследване. Преди да седнете зад компютъра ще ви се наложи да изследвате възможните способи за взлом и да изберете подходящия. И накрая ще извършите изследване след като получите достъп до избраната система, за да извлечете колкото се може повече полза от предоставилата ви се възможност. Като за начало нека да обсъдим какво трябва да се прави преди да се заемем с военните действия.
Избор на цел
Под "прицелване" разбирам процес в хода, на който хакерът решава какво именно от съществуващото програмно обезпечение си заслужава да се опита да "пробие". Тази тема по ред причини за някого може да се окаже тривиална, но тя заслужава да се обсъди по-подрoбно.
Да предположим, че сте новак в това дело. Да допуснем, че сте получили - по пътя на някакви собствени изследвания или по волята на случайността - информация, която според вас може да ви помогне да проникнете в определена система. Например, чрез нелегални компютърни канали сте се сдобили с телефонен номер на голяма правителствена база данни със сведения за шпионаж. Може просто да наберете този номер, за да се убедите дали са верни сведенията ви. Но от друга страна по-добре е първо да изследвате "дивеча" и да проверите дали си струва изразходваното време и похарчените пари за телефонната сметка, а също дали е оправдан риска при взлома. Потърсете дадения номер в телефонния указател или чрез телефонни справки. Ако той е обществено достъпен, то той по-скоро въобще не е компютърна линия и може да забравите за него. Може да ви се струва безсмислено изгубеното време при изследването на номера. Вместо това просто бихте го набрали. Но не забравяйте: преди да пипнете "дивеча" трябва да се сдoбиете с колкото се може повече информация за него. Действително ако номерът принадрежи на свръхсекретна база данни, бъдете готови за евентуално проследяване на обаждането. Във всички случай вашето позвъняване ще предизвика подозрение.
Новакът жадува да извърши своя пръв голям взлом и да извърши необмислена постъпка. Може би все още нямате опит при изменението на данните на телефонната компания или звъненето от автомат или някакъв друг способ за замаскиране на обаждането ви. Новакът набира секретния номер след предварителни изследвания, вероятно пак глупаво рискувайки, но той все пак се е придвижил с няколко степени по-високо по професионалната хакерска стълбица, от колкото други хлапета, които звънят въобще без всякаква подготовка - това е непоправима глупост.
И така, когато целта е избрана не е задължително веднага да се хвърляте в действие. Може да се окаже по-добре да изчакате, за да придобиете достатъчно опит да осъществите всичко както трябва. Ако действате ръководени от своите знания и опитът се провали, шансът за повторен опит е равен на нула, тъй като администраторът на системата също няма да стои със скръстени ръце. Преди да се снабдите с акваланг за откриване на потънали на дъното съкровища трябва първо да се научите да се държите на повърхността на водата, иначе ще потънете и това ще бъде скучна и бездарно и жалко за самите вас.
"Прицелването" включва и изследване от друг род. А ако наистина в ръцете си държите ключ към секретна информация? Вероятно първо трябва да помислите за най-добрия начин за проникване в тази система. Например, ако дадената система се намира в Интернет, налага ви се да измислите начин за влизане в системата под чуждо име. Но имайте пред вид, че на вашия "дивеч" може да хвърли око и някой друг ловец. Така че възможност за подготовка с години нямате. Хакерството е такова занимание, че побеждава най-енергичният.
Само най-големият идиот извършва взлом влизайки в системата под собственото си име. Преди да се заемете с каквото и да било измислете начин за вход под чуждо име. Взломът над компютърни системи от по-висок вид се дели на две части: частен взлом и обществен. Има се пред вид, че първоначално се маскирате под някакво частно лице и след това търсите начин за маскиране на вашия ползвател като регистриран ползвател на взломяваната система. Може да пропилеете сили, средства и време в опити за проникване в система, която в резултат може да се окаже безполезна. Затова след като сте наясно с това какво точно искате да откриете, трябва първоначално да осъществите необходимите изследвания. Изяснете си дали точно това са ХОРАТА, които вие сте избрали за постигане на целите си. Потенциалните мишени често могат да се изчислят, четейки свободно публикуваните открити документи. Те разчитат на "етично използване" на системата и често дават възможност да се надзълне в раздели защитени от погледа на простосмъртните.
Например, не отдавна ми се отдаде възможност да прочета малък откъс от стар доклад по мерки за безопасност. Той беше по-скоро списък с мерки, които трябва да се предприемат за повишаване защитата на компютърната мрежа. За времето, когато прочетох този откас мерките бяха вече приети, но мисълта за това, че защита действително е необходима, отдавна е отлетяла от главата на автора на доклада и информацията се оказала общодостъпна. Ето какво гласи заинтригувалият ме участък от доклада:
Мрежа 19 трябва напълно да е изолирана от персоналните компютри и широкополюсната мрежа с помощта на шлюзове. Входа в терминалните сървъри подлежи на защита. Персоналните компютри трябва да се снабдят със дъответстващи програмни обезпечения за осъществяване на наблюдение на мрежата с цел откриване на неправилното и/или неетичното й използване.
Погледнете какво море от информация може да се измлече от дадения откъс. Имайки пред вид тези препоръки за усилване на защитата няма да е трудно да открием същото това програмно обезпечение, което изпълнява функциите на защита. Тогава ще видим какво могат да правят тези програми и какво не. Може да потърсим в тях грешки или слаби места и да ги използваме. В най.лошия случай винаги сме в състояние да измислим друг способ за преодоляването на тези програми - нали на раменете си имаме глава, а не котел, нали? Но най-голям интерес представлява (и има непосредствено отношение към разсъждениета ни за "прицелването") споменавенето на "мрежа 19". Каква е тази "мрежа 19"? Защо администрацията е искала тя да бъде по-далече от чуждите очи? Ако подобен откъс попадне у хакер, той несъмнено ще избере "мрежа19" за обект на взлома си.
Това е един пример за случайно открита информация, която с успех може да се използва. Но помнете - аз изчитах ВСИЧКИ общодостъпни документи заради ЕДНА ЕДИНСТВЕНА задача - исках да извърша взлом. Това, че информацията попадна в ръцете ми е чиста СЛУЧАЙНОСТ, но тъвсенето провеждах ЦЕЛЕНАСОЧЕНО. Ако вашата цел е определена секретна компютърна система, разгледайте всички сходни с нея достъпни системи преди да се заемете с това, което ви интересува. Малко товар в джоба няма да натежи. Такова преглеждане може да доведе до полезни изводи, като случая с мрежа 19. В най-лошия случай ще се запознаете с различните стране на системата - "дивеч". А какво трябва да търсите езследвайки достъпната система? По какъв начин става входа и изхода в нея, има ли пролуки и как системата реагира на тях, какъв е форматът на командите и какъв тип команди е подходящ за използване, що за компютър е и какво "желязо" се намира в него. Разбира се съществуват и още някои нещица, които ще търсите от рода на информация за интерфейса или колко време отнема изпълнението на тази или онази програма. Тези сведения ще потрябват по-късно, когато вече се заемете със взлома. Тогава няма да ви се иска, а и не е много удачно, да губите време, за да намерите нужната команда или нещо по-елементарно като изход от системата.
"Прицелването" може да се окаже не само скучно, но и раздразнително занимание. Защо трябва да се мъчим и да се занимаваме с такива глупости като събиране на предварителна информация? Да, прави сте! Съзсем не сте задължени да приемате тази предложения, за които говоря. Няма задължителни правила за това какво ще правите преди да се заемете с делото. Това е мое мнение, но този, който е решил да нарушава закона, трябва, в крайна сметка, да знае как се прави това.
И така, разработете основен план на действие. Уверете се, че избраната от вас цел е подходяца за дадения случай. Тогава ще знаете, че вашия лабиринт няма да се превърне в един безкраен лабиринт. Може да искате и да сте доволни от проникването в който и да е попаднал ви под ръка компютър с помощта на подръчни средства. Много хакери го правят отдавайки се на влечението и проникват в системи, които не крият в себе си нищо особено. Те получават удовлетворение от самия процес на взлом. Но къде-къде по-интересно е да проникнеш в система с някакво ниво на секретност. Затова е необходимо да се проявява съобразителност при избора на цел. Проникването в системата е само половината работа, когато се окажете вътре ще ви бъде доста по-интересно.

Събиране на информация

Преди да пристъпите към своето изследване трябва да изясните какъв род информация се стремите да получите. Съществуват три теми, за които е длъжен да има представа хакерът: телекомуникациите въоще, системите въобще и конкретните системи в часност. Трябва да имате определено ниво на знания за компютрите, модемите, телефонните мрежи и човешката натура.
Влезте в близката библиотека или се сдибийте по друг начин с необходимите ви книги. Трябват ви книги за компютри, книги за углавното право и книги за управление на бизнеса. Също могат да се открият "легални" книги за хакерство и компютърно престъпление. Също трябва да разглеждате и книги, свързани с телекомуникацията. Ако искате да получите понятие за различните ситуации, в които може да попаднете, значи са ви необходими книги за информационните служби, интерактивна база данни, компютърни престъпления, операционни системи, BBS и за всичко, което има отношение към действията произтичащи с компютри и модеми. Не забравяйте и за спрамочниците - там се съдържат много полезни материали. Хакерството преди всичко се учи чрез практика, но в техническата литература също може да се намери не малко добри примери и хитринки… Но не ме разбирайте погрешно. Не искам да кажа, че трябва да прочетете всяка съществуваща книга. Съвсем нямам пред вид, че всичкото това трябва да прочетете преди да започнете първите си хакерски опити. Просто искам да кажа, че често хората не могат да си представят колко богата информация могат да почелпят от напълно достъпни източници, като не прибягват до никакъв взлом. Четейки книгите ще узнаете как изглеждат компютърните системи отвътре. Ще се запознаете с различни необходими команди, формати на имена и пароли, които се използват в различните системи. Като допълнение често в такива книги може да намерите списък с достъпни номера - след като позвъните може да проверите различните системи или да получите информация за тях. Всички тези сведения ще ви помогнат и ще ви придвижат напред. Не са за подценяване компютърните вестници и списания, а също и богатата информация, която се съдържа в Интернет. Има хиляди начини да се абонирате за най-новото в областта на компютърната защита. Аз например, знам всичко относно най-новите постижения в програмните продукти за защита. Въоръжен с такива сведения мога да се промъквам навсякъде по свой заобиколен начин. Знам как точно как точно залавят хакерите и по какъв начин да избегна капаните.
С някои нестандартни методи на изследване ще ви запозная следващия път. Дано не сам ви досадил с многото си наставления. Ако съм успял да ви накарам да се замислите над думите ми е добре. Свършил съм си работата!

Останалото ще го постна в следващия пост-Знам че ще наруша правилата,но пълния текст беше прекалено дълъг и не можах да го постна целия
PS.Ако някой знае други такива неща да казва
freaker
Oct 4 2005, 04:30 PM
Реших да преместя темата в раздел чат,защото това тук не се отнася конкретно за вин,пък и мога да поствам постове един след друг-четох го това в правилата-и така ще споделя информацията която имам по-бързо с вас:
Кефете се пак"

[quote]ШПИОНИ


Винаги ме е интересувал въпросът за програмите-шпиони. Представете си, резидентен код, който изпълнява някакви действия на вашия компютър, а вие не можете да го откриете. Възмотително, ама не е ли възмотително? А да имам такава програма винаги ми се е искало.
В Internet тази тема много широко се обсъжда, обсъжда се и си мисля, че винаги ще е на днемен ред. Сред огромното количество мнения, съждения и прочие словесен боклук, ми попадна твърдението на един гуру, което гласи: "Вие не можете да скриете процеса от функцията NtQuerySystemInformation". Това прилича повече на смъртна присъда. Кристалната мечта от моето детство бе разбита сега и завинаги. Но: много се надявам, че за програмите шпиони не съм мечтал само аз. На вас, мои духовни събратя ви посвещавам тази статийка. Сериозните чичкомци (по народному им викат системни администратори), работата на които се заключава в задушаването на свободния и прост народ: виноват, простите user'и не трябва да четат това. Всички по-нататъшни разсъждения ще са за процесор i386 ОС Windows NT 4.0 (SP4 или SP6), тъй като от Unix не разбирам.
Ох!
Да не ви се причува!
Покайвам се!
Простете!
Позор за моята посивяваща глава
Е, сега след като най-интелектуалната част от аудиторията гръмко тръшна вратата, встъплението може да завърши и да преминем към работа.
Отначало нека да поговорим за това как и защо се използват програмите шпиони. Да предположим, че вие сте влезли в Интернет и сте започнали да си теглите някаква удивителна програма, картинка, документ или каквото и да е друго. А в последствие се указва, че "злобните" хакери са забожили в тази програма вирус или троянски кон. Като опитен и шкулован user, вие веднага стартирате Task Manager и ГО виждате. След което ГО убивате чрез бутона End Process. Накои особено злобни хакери се оптвот да ви пуснат драйвър, но за наше щастие затова са необходими права на администратор. Това е обичайно развитие на събитията. А сега да предположим, че в Task Manager вие не ГО виждате, какво да правим? Обикновените user'и могат да се помислят, че няма нищо и че във файла няма троянец. Но това не са нашите user'и. Нормалния параноидален user веднага ще предосети опасността и ще бъде прав. Искам да отбележа, че тук не става дума за класически вирус. Безусловно вирусите са прекрасно изобретение на човечеството, но те имат един сериозен недостатък. А именно, че той работи само ЕДИН път при стартиране на инфектираната програма. Изпълнявойки своя къс от кода, той е принуден да предаде управлението на програмата носител. Ако пък му се иска да стане резидент, то тогава ще му се наложи някъде да "живее", тоест се създава процес.
Възможно ли е това: да бъдеш резидент (това звучи гордо!) и да не "светиш" в Task Manager! Отговарям, НАПЪЛНО ВЪЗМОЖНО! Позвънете веднага и само за 49,99$ вашата мечта ще стане реалност: Хм, простете, едвам изказах този рекламен бацил (езика не може да ми се обърне и да го нарека с благородната дума "вирус").
Повече от това за какво ни е този микрософтски Task Manager или Spy++, всеки малосериозен програмист може да напише Task Manager. Затова трябва да се крие от всичко свързано с това проклето семейство до седмо коляно включително. В сърцето си всеки Task Manager се явява функция NtQuerySystemInformation. Останалото са просто обвивка, рамки и още малко глупости. Въпреки,че тази функция е недокументирана от компанията …, в Интернет за нея е написано пре достатъчно. Затова тук няма да вникваме в подробностите, а ще кажем, че цялата информация, която вие виждате на екрана предствалява тази и само тази функция. И уви, гупуто беше прав! Вие действително не може да скриете процеса от NtQuerySystemInformation (наистина не знам как може да сатне това), влакното (fiber), АРС и DPC процедури, функции за обработка на изключванията и прекъсванията. Възможни са и купища други неща, за които не днаем. (ако говорим съвсем сериозно, то не се изпълнява процес, а негови потоци, затова процесът не се явява резидентен). И така, към днешния ден аз знам следните начини за скриване на резидентния код:
• Зареждане на дрейвер. Това е толкова примитивно, че изобщо няма да го обсъждаме. Освен всичко NtQuerySystemInformation предоставя информация и за драйверите, въпреки, че Task Manager не прави това. Е, а и на всичко отгоре има и SoftIce!
• Създава се поток за дадения процес. Този способ подродно е описан от Джефри Рихтер в книгата "Windows за професионалисти". Също така има и информация и от Мат Питерек в Интернет. Този способ е доста по-интерес и оригинален, но в днешно време си се явява класика и да удивиш някого с него е почти невъзможно. Резидентния код да се открие в този случай е доста тежко. В Task Manager при един от процесите се явява допълнителен поток, но кой от нас по памет ще каже какви процеси би трябвало да протичат например при Explorer.exe? Пак чрез Task Manager може да видим списъкът на заредените библиотеки, но отново кой би могъл по памет да каже кои трябва да са заредените в Explorer.exe. Накрая съществува възможност за проследяване на времената на протичащите процеси. Е, тук вече ще има разлика. С две думи бъдете внимателни към потоците в резидентните процеси.
• Всевъзможния Rootkit. Това е зареждане на драйвър, който прехваща съобщения към NtQuerySystemInformation и предоставя свои данни. За съжаление подробности не мога да изложа тъй като и аз не моге да си представя как става това. Несостатъка е същия - необходими са права на администратор! А ако на машината ви се пусне един такъв драйвър това означава само едно - беда.
• Hooking - относително нов начин. Основава се на функцията SetWindowsHookEx. До колкото разбирам на нея се основават и шпионите за клавиатурата, мишката и всичко останало свързано с hook. В Интернет способа не е описан достатъчно, но и за това няма да отнемам хляба на неговите създатели. При този способ не се създава нов поток (ако някой от вас знае защо, то моля ви, обяснете ми…). Библиотеката от където се извиква функцията за обработка, се зарежда във ВСИЧКО съществуващо и отново се създават процеси. Затова пуснете своя процес и ако в него се появи библиотека, която не познавате, то е крайно време да разчистите машината.
• Превключване контекста на потока. В дадения случай резидентния код се изпълнява в контекста на някой вече започнал поток. Между другото самото система доста широко използва потоци на ползватели за собствени нужди. Както пише Хелен Кастър в книгата "Основи на Windows NT и NTFS" системата "похищава" поток и го използва за обработка на прекъсвания, извиквания на DPC и системни АРС функции. Тоест не малка част от операционната система представлява сама по себе си програма-невидимка.
При използването на дадения метод не се създава нито нов процес, нито нав поток. Зареждането на библиотеки в други процеси не се налага. По такъв начин единствения косвен признак за съществуването на външен резидентен код се явява увеличението на използванат памет. Но паметта е най-активно разходвания ресурс. Практически всички програми постоянно отделят и освобождават памет и да се определи какво количество заети килобайтове се явяват нармални за този или онзи процес е изключително трудно.
Разбира се има и недостатъци. Първо, резидентния код може да се изпълнява само когато системата предава управлението на поток-носитл. Но е възможно и ситуация, при която потокът има твърде нисък приоритет и заради стеснената многозадачност рядко ще получава управлението. Дори повече потокът може да премине в състояние на очакване и да остане в него неопределено дълго време. Ако бъде завършен, то завършва и резидентния код. Работата на резидентния код в решаваща степен зависи от потока носител.
Накратко алгоритъмът на предлагаемия метод се състои в следното:
• Необходимо е да се намери подходящ процес тоест такъв имащ посттоянно работещи потоци с приоритет на нормален или по-големи (>8). За да се избегнат трудностите с правата има смисъл да се използва user'ск процес. За намиране на такъв процес се използва естествено същата функция NtQuerySystemInformation.
• След като нужния процес е намерен и са определени идентификаторите на потоците му, зареждаме в пространството на дадения процес изпълняемия резидентин код. За да не прибягваме до асемблер това може да го направим във вид на библиотека, но това е въпрос на предпочитение. Процедурата на зарежданетне на беиблиотеката в зададения процес е подробно описана от Джефри Рихтер.
• Преустановяваме един от потоците на процеса, съхраняваме неговия в текущия стек, създаваме нов стек, изменяме контекста на потока така, че указателя на текущата команда (регистър Eip) да указва нашия резидентен код, преминаваме към новия стек, "пробуждаме" потока. Сега ако естествено нищо не сме пропуснали (хе-хе), то при получения поток ще се изпълнява нашия резидентен код. Естествено това не е всичко, тъй като в нашата задача не влиза да нарушаваме нормалното изпълнение на процеса (че ние хакери ли сме, или…?).
• След като резидентния код е свършил дейността си е необходимо да се премине към стария стек и да се вазстанови стария контекст. Сега потока (по моему) трябва да работи в нормален режим.
Това струва ми се е всичко. Много е просто, нали? Разбира се някои непринципни детайли бяха пропуснати…)))




Взлом на UNIX



Бъгове UID и други дупки в Unix
Как може да се взломи една Unix система използвайки бъга UID (user identificators) и всичко проиятно и отвратително свързано с него. Манипулацията на UID открива много възможности пред ползватилите на системата. Считам за необходимо да ви запозная със смисъла и процесите на изменение на UID програмата. Малка справка: когато бит UID прибавен към шел, при пускане твоят UID се изменя в UID на реалния собственик на програмата и изхождайки от това може да се възползваш от получения досъп непосредствено преди затваряне на процеса на работа.
Следствие: можеш да използваш каквито и да е команди, като се намираш ход UID на получения достъп. По такъв начин постоянно имаш достъп до системата, даже при условие, даже при условие, че се промени използваната парола за логин. Даже бих казал, че това е мнага па-удобно, от колкото да знаеш самия логин. Истината е проста - докато файлът съществува в системата съществуваш и ти като нейн user. При получаване на достъпа умна постъпка от твоя страна ще е копирането на шела в която и да е директория и възстановяването на UID и GID битове. По такъв начин при загуба на логина от твоя страна може да се стартира UID-шел от друг логин, в резултат на което получаваш преследван достъп. По-долу има нагледен пример. Изваждането на UID и GID се осъществява с помощта на програмата chmod. Ето и един нагледен пример, където за команда chmod се поставя притежаващия тази сила съществуващ файл. Също трябва да помните за копирането на /bin/sh.
chmod hacker / tmp/ sh
Малко ли е? Условието е голямо (наличието на програма за поправки, самият достъп към поправките на файла и др.) в някои може да се осъществи подкопиране, съхранявайки бита UID. Копирайте bin/sh:
$ ls -l rwsrwsrws root XXXX
chsh
$ cp /bin/sh chsh
$ chsh
#
Сега за стандартно изменение на UID в облегчен вариант. Възможно е неговото преобразуване при условие, че имаш Write Access на UID файла. Ако имаш такива права, то след неговото копиране, трябва да въведете следната команда:
cat / bin/ sh > [самият UID файл]
държа да отбележа, че UID си остава предишния! После пускаме изфабрикуваната програма , правим скрития UID шел и връщаме UID файла в изходно състояние от резервното копие- също няма да е лошо да намерите файлове root c SUID:
find / -user root -perm -hacker -print
Няколко думи за дупките. Всичко отново опира да твоята възможност корегиране и поправка. Ако модификацията ни е разрешена, то тогава напред - използваме .profile:
$ ed .profile [номер] ? a cp /bin/sh .runme chmod a+x .runme chmod a+s .runme
(control-d)
? w [показва новят размер] ? q
$
След канекта с този профил твоят ID се превръща в модифициращ профил. Всичко танцува. Не забравяйте euid или както е прието да го норичаме "ефективен" UID, отчитайки оверрайда на реалния ID.
# chmod a+s /bin/ls
# exit
$ls -l /usr/fred
...... и така нататък.
Ls ще помогне да се справиш с всяка директория. С rm - се отделя и т.н. Голяма дупка в Unix системата се явяват програми, които са често пречка и за самите админи за модификацията на UID. Като правило в тях отсъства функцията за поправка до UID<100 и съответно GID. Но и програмата не забранява да го направите. С цел за самосъхранение няма да се спускам в продробности, искам да си спя у дома, а не заедно с насилниците на деца и убийците
И така, що се отнася до ползвателския достъп. С него е още по-лесно. Ако някой се е дисканектнал от системата без предварително да я е предупредил за приключване работата на сесията (множество примери logoff), то неговия достъп остава в работно състояние и е много лесно с малко усилие направо да получиш достъп до системата. В дадената ситуация е възможно извикване към системата с присъединяване към висящия TTY. Редултатът е влизане в системана и получаване на логин на даден достъп. Този бъг в системата се използва от много методи на взлом. Главното е навреме да се излезне от системата ))
По-нататък искам да предложа на user'ите още един не много известен способ buffer overflow, който вече е успял да стане достатъчно популярен в тесния кръг на "тъмния свят". В стека на програмите се извежда място под масива. Ако ти раздуеш дадения масив и после записваш в него в рамките на неговите граници, то този стек умира в страшни гърчове, т.е. осъществяват се неблагоприятни действия и терминация на самия стек. В частност при напускането на модула произтича преход към длучаен адрес. За изменение на нормалния ход на изпълнение на програмата може да се използва препълване на стека в резултат, на което ще се яви изменение на адреса ва възврата на функцията. Значи не е лошо да се използва прогромо за изпълнение на каквито и да е нестандартни действия, като стартиране на шел spawn при наличие на необходимия код. Но се случва и така, че програмата не го съдържа, т.е. не съдържа кода на адресното пространство на инструкциите. В дадения случай трябва да се направи следното: да се постави кода за изпълнение в прпълващия се буфер, да измени адреса на прехода в точка вътре в буфера. Sell code - код който се изпълнява при стартирането на шел. Получаваш Root shell, ако програмата за стартиране на шел се инсталира като SUID. Разбра ли? Това е всичко! Танци до припадък
Сега ще се занимаем с търсене на програми с възможности за срив на стека. Кой ли нен ни е казвал, че С с нищо не може да провери границите на масивите данни, значи чакаме препълване ))
Буферното препълване произтича от записаната в него информация с размери по-големи от колкото могат да се поместят в самия буфер. Библиотеката С включва в себе си за предоставяне на функцията копиране, но няма възможност за проверка на границата [sprintf, strcat, strcpy: ()] (за благото на масите). Функциите проверяват за прпълване при обработка на приеманите редове - използват се редове със символи \ (). Функцията gets() чете редове със стандартно въвеждане, т.е. stdin в буфера до забрава, докато не види символа за край на файла EOF или символа за нов ред. Тя също няма възможност за проверка на буферното препълване. Същата участ чака функциите от клас sccanf() в условията на преминаването на малки редове при изпълняването им. Често използвана конструкция е цикълът на посимволно въвеждане от stdin или понякога файла от буфера , до тогава докато не бъде срещнат EOL, EOF (символи за край на ред или файл съответно) или друг разделител. Тук много често се използват функциите функции getc(), fgetc() и getchar(). И отново ако не се осъществи проверка за препълване -> ПреПъЛваНе на БуФеРа!
Дадените уязвими места в системата се откриват при използването на greg програми - това са програми значително облекчаващи само търсене. Unix като система на бъдещето е длъжен да знае всеки и най-вече нейните разпространители, тъй като в действителност съществуват свободно достъпни в net'а източници на freeware'ни ОС, имащи чисто комерчески характер. Внимателно, хора!
Взлом с използване на демони, окачени на портовете, е един от двата най-популярни вида взлом. Като правило много хора позволяват демони да съществуват в техните системи, поставени там от недоброжелатели.Започвайки със sendmail'а можем да намерим доста прилично количество фригидни демони за осъществяване на взлом. Идентификацията на демоните на портовете е просто необходима при взлом чрез telnet. За изясняване на версията на демоните е необходимо да се telnet'неш на съответния открит порт на хоста, предварително извикани с помощта на програмата nmap (rulez,мой ибор!). Затова трябва да се направи следното:
nmap -sS -O -o x.log x.com (х-името на домейна)
Ясно като бял ден, че има хора, които щателно следят своята система и действият в нея, но има и такива, които просто са занемарили всичко това и най-вече защитата. По такъв начин може да се досетите за отсъствие на необходимите корекции при дефолтовото инсталиране на системата и съответно съществуването на акаунти по подразбиране, които след смяната на няколко администратора просто не се изменят. Може това да ви звучи странно, но повярвайте ми, аз често се натъквам на уязвимост от подобен род. Огромно количество системи те пускат чрез логин по подразбиране root:root. Това съвсем ме "утрепа"!в някои дори са направени /etc/issue и issue.net на някакво извращение от рода на "Достъпът е резрешен само за момчетата от BackstreetBoys или N`Sync". Ако искате вярвайте, ако искате - , но към такъв "умник" аз някак си се tel'нетнах), а пропускат по guest:guest и същия този root. По-надолу съм предоставил някои обичайни идентификационни имена и пароли (принципът е Login:Password). Започвам с VAX/VMS:
SYSTEM:OPERATOR, SYSTEM:MANAGER, SYSTEM:SYSTEM, SYSTEM:SYSLIB, OPERATOR:OPERATOR, SYSTEST:UETP, SYSTEST:SYSTEST, SYSTEST:TEST, SYSMAINT:SYSMAINT, SYSMAINT:SERVICE, SYSMAINT:DIGITAL, FIELD:FIELD, FIELD:SERVICE, GUEST:GUEST
А също и най-елементарните акаунти (принципът е същия):
root:root, root:system, sys:sys, sys:system, daemon:daemon, uucp:uucp, tty:tty, test:test, unix:unix, unix:test, bin:bin, adm:adm, adm:admin, admin:adm, admin:admin, sysman:sysman, sysman:sys, sysman:system, sysadmin:sysadmin, sysadmin:sys, sysadmin:system, sysadmin:admin, sysadmin:adm, who:who, learn:learn, uuhost:uuhost, guest:guest, host:host, nuucp:nuucp, rje:rje, games:games, games:player, sysop:sysop, root:sysop, demo:demo
Виждаш как висчко е променливо в Unix? Тези акаунти ще ти помогнат още дълго. И както се казва: "If you wanna feel OK-> hack my UNIX everyday!". Статията не е инструкции за експлоатация, а служи за нагледен пример като демонстрация на администраторите за несъстоятелността на защитата на Unix системата





Взлом на HTML чат




Основата на интерфейса практически на всеки чат е съставен от динамически генерирани HTML-форми свързани помежду си посредством javascript. Във всички чатове името на ползватели и паролата (или някакъв идентификатор, който се генерира при входа от ползвателя) се съхраняват вътре във формата в качеството на скрит (hidden) елемент и могат да се изтеглят от там посредством скрипт. Да заставиш някой от посетителите на чата да изпълни своя javascript може само по пътя на получаване на пълен контрол над него - да кажете фраза от негово име или да издадете неговата парола.
За човек, знаещ основите на HTML и Javascript не е трудно да проникне в структурата на чат интерфейса, но виж да промъкнеш в тази структура троянски скрипт - ето това вече е проблем.
В най-простия случай, когато набираният от вас текст се показва в прозореца на чата "както си е" - без какъвто и да е контрол, вие просто въвеждате текста на вашия скрипт. Ако възникне проблем с ограничение дължината на реда, разделете скрипта на няколко кратки функции.
Но в повечето чатове все пак има проверка, която не позволява да се въвеждат "опасни" тагове в това число и
Този безобиден скрипт дава alert (сигнал) към посетителя, след което помества признание в любов към ЗАРАЗА от името на посетителя в общия прозорец на чата. Това стимулира останалите посетители да разгледат личната информация на ЗАРАЗА. Скриптът може да се усъвършенства, например да се изпраща в личната парола на посетителя, която се съхранява във вид на скрит елемент във всеки фрейм. Освен това може да се напише нещо от типа на вирус, който например да изменя името на ползвателя със ЗАРАЗА и да му поставя съответна парола. По такъв начин може да се зарази всеки участник от чата. За да се измени скрипта по такъв начин, че да се изпраща в личната парола на посетителя и да го превръща в ЗАРАЗА (при това всичките му съобщения ще излизат от името на ЗАРАЗА, но съобщенията за нея няма да може да вижда), трябва само да се допълнят пет реда на javascript (три на първото действие и два на второто).
Подобни дупки има в много чатове, където на посетителя му позволяват да избира цвят или размер на текста. Като правило въвежданото значение за цвета не се проверява. Направо или по пътя на модификация на страницата, като я съхраните на диска (в това число дори и ако цвета предлага да не се въвежда, а да се избере от приложените), може например, в качеството на цвят вместо любимия 'black' да се зададе '>). Ако се пишат кавички (COLOR="black"), то задачата малко се усложнява - трябва все пак да ги неутрализирате, например '">