हैक करने से पहले की तैयारी हैकिंग
आपको किसी खास लैंगवेज तक अपने को सीमित नहीं करना चाहिए, मगर कुछ गाइडलाइन्स हैं। प्रोग्रामिंग लैंगवेज सीखने में समय लग सकता है, इसलिए आपको धीरज रखना होगा।  C तथा C++ वे लैंगवेजेज़ हैं जिनसे Linux और Windows बने थे। यह (assembly लैंगवेज के साथ) ऐसा कुछ सिखाता है जो कि हैकिंग के लिए बहुत महत्वपूर्ण है: मेमोरी कैसे काम करती है। Python तथा Ruby वे हाइ लेवल की शक्तिशाली स्क्रिप्टिंग लैंगवेजेज़ हैं जिनसे अनेक चीज़ें ऑटोमेट हो सकती हैं। Perl भी इस क्षेत्र में एक रीज़नेबल (reasonable) चॉइस हो सकती है, जबकि PHP इसलिए सीखने योग्य है क्योंकि अधिकांश वेब एप्लीकेशनों में PHP का इस्तेमाल होता है। Bash स्क्रिप्टिंग तो आवश्यक है। इसीके सहारे Unix/Linux सिस्टमों को आसानी से मैनीपुलेट किया जा सकता है – स्क्रिप्ट लिखना, जो आपके लिए अधिकांश काम करेंगे। Assembly लैंगवेज को तो जानना ही चाहिए। यह वह बेसिक लैंगवेज है जो आपका प्रोसेसर समझता है, और उसके अनेक वेरिएशन भी होते हैं। अगर आपको assembly नहीं पता होगी तब आप वास्तव में उस प्रोग्राम का लाभ नहीं उठा पाएंगे। टार्गेट के बारे में इन्फॉर्मेशन इकट्ठा करने के प्रोसेस को एन्यूमेरेशन (enumeration) कहते हैं। Window यूज़र्स के लिए Cygwin *nix को एमुलेट करने में मदद करेगा। Nmap खास तौर पर Windows के लिए WinPCap का इस्तेमाल करता है और इसे Cygwin की ज़रूरत नहीं पड़ती। वैसे रॉ सौकेट्स की कमी के कारण Nmap, Windows सिस्टम्स पर अच्छी तरह काम नहीं करता। आपको Linux या BSD में से किसी एक का इस्तेमाल करना चाहिए, क्योंकि वे दोनों अधिक फ़्लेक्सिबल (flexible) होते हैं। अधिकांश Linux डिस्ट्रिब्यूशन बहुत से प्री-इन्स्टाल्ड उपयोगी टूल्स के साथ आते हैं। इसके स्थान पर, Windows 10 Fall Creators Update और उसके बाद, किसी Windows Store से *nix टर्मिनल लीजिये। Windows Linux Subsystem के कारण Linux कमांड-लाइन्स को Windows के द्वारा एमुलेट किया जा सकता है। सुनिश्चित कर लीजिये कि आपने अपनी सुरक्षा के लिए सभी सामान्य तकनीकें समझ ली हैं। बेसिक्स से शुरू करिए: मगर यह सुनिश्चित कर लीजिये कि आपके पास टार्गेट पर आक्रमण करने का औथोराइज़ेशन (authorization) है: या तो अपने ही नेटवर्क पर अटैक करिए, लिखित अनुमति मांगिए, या वर्चुअल मशीनों से अपनी ही लैबोरेटरी बनाइये। किसी सिस्टम पर अटैक करना, चाहे उसका कंटेन्ट जो भी हो, अवैध है और आपको मुसीबत में डाल ही देगा। क्या आप रिमोट सिस्टम तक पहुँच सकते हैं? हालांकि, यह जानने के लिए कि आपका टार्गेट एक्टिव है या नहीं, आप पिंग यूटिलिटी का इस्तेमाल कर सकते हैं, मगर उसके नतीजे हमेशा विश्वसनीय नहीं होते – वह ICMP प्रोटोकॉल पर आधारित होता है, जिसे पैरानॉयड (paranoid) सिस्टम एडमिनिस्ट्रेटरों द्वारा आसानी से बंद किया जा सकता है। पोर्ट्स को स्कैन करिए और पोर्ट स्कैन के लिए pOf, या nmap का इस्तेमाल करिए। इससे आपको वो पोर्ट, वह OS, और यहाँ तक कि वह फ़ायरवाल या राउटर भी दिख जाएगा जो मशीन में खुला होगा, ताकि आप यह तय कर सकें कि क्या करना है। आप O switch के इस्तेमाल से nmap में OS डिटेक्शन एक्टिवेट कर सकते हैं। FTP (21) और HTTP (80) जैसे सामान्य पोर्ट अक्सर बहुत अच्छी तरह से प्रोटेकटेड होते हैं और संभवतः अभी उन्हें आघात पहुंचाने के तरीके पता नहीं चले हैं।  उन TCP और UDP पोर्ट्स को देखिये जिनको भूल गए हों, जैसे Telnet या अन्य UDP पोर्ट्स जिन्हें LAN गेमिंग के लिए खुला छोड़ा गया हो। ओपेन पोर्ट 22 आम तौर पर टार्गेट पर रन करने वाली SSH (secure shell) सर्विस होती है, जिसके साथ कभी कभी ब्रूट फ़ोर्स लगाया जा सकता है। पासवर्ड क्रैक करने के बहुत तरीके होते हैं, जिनमें ब्रूट फ़ोर्स भी शामिल है। किसी पास वर्ड पर ब्रूट फ़ोर्स लगाना वह कोशिश होती है जिसमें ब्रूट फ़ोर्स सॉफ्टवेयर की प्री-डिफ़ाइंड डिक्शनरी के सभी संभव पासवर्ड ट्राई करने की कोशिश की जाती है।  यूज़र्स को आम तौर पर कमज़ोर पासवर्ड इस्तेमाल करने से डिसकरेज (discourage) किया जाता है, इसलिए ब्रूट फ़ोर्स में बहुत समय लग सकता है। हालांकि, ब्रूट फ़ोर्स तकनीकों में महत्वपूर्ण सुधार हो चुके हैं। अधिकांश हैशिंग अलगोरिद्म कमज़ोर होते हैं, और आप इस कमजोरी का लाभ उठा कर क्रैकिंग स्पीड बहुत सुधार (जैसे कि MD5 अलगोरिद्म को ¼ कर सकते हैं, जिससे स्पीड बहुत बढ़ जाएगी) कर सकते हैं। नई तकनीकों में ग्राफ़िक कार्ड का इस्तेमाल अन्य प्रोसेसर की तरह किया जाता है – और यह हजारों गुना अधिक तेज़ होता है। पासवर्ड्स को सबसे जल्दी क्रैक करने के लिए आप रेनबो टेबल्स का इस्तेमाल कर सकते हैं। ध्यान रहे की पासवर्ड क्रैक करना अच्छी तकनीक केवल तभी होगा, जबकि आपको पासवर्ड का कुछ अंदाज़ा हो। रिमोट मशीन पर लॉगइन करने के लिए सभी संभव पासवर्डों का इस्तेमाल अच्छी बात नहीं होगी क्योंकि इंट्रूज़न डिटेक्शन सिस्टम (intrusion detection systems) द्वारा उसका पता जल्दी ही चल जाएगा, सिस्टम लॉग पॉल्यूट हो जाएँगे, और उसे पूरा होने में सालों लग सकते हैं। आप एक रूटेड टैबलेट भी ले सकते हैं, टीसीपी स्कैन इन्स्टाल कर सकते हैं और उसे सिक्योर साइट पर अपलोड करने के लिए सिग्नल पा सकते हैं। तब आईपी एड्रेस खुल जाएगा जिससे पासवर्ड आपकी प्रौक्सी पर दिखेगा। अक्सर पासवर्ड क्रैक करने की तुलना में कोई और रास्ता ढूँढना कहीं आसान तरीका होता है। प्रिविलेजेज़ प्राप्त करिए: अगर आपका लक्ष्य कोई *nix machine हो तब रूट प्रिविलेज प्राप्त करने का प्रयास करिए, या विंडोज़ सिस्टम के मामले में एडमिनिस्ट्रेटर प्रिविलेजेज़ प्राप्त करिए।  अधिकांश महत्वपूर्ण जानकारियाँ सुरक्षित होंगी और उन्हें पाने के लिए आपको एक निश्चित स्तर का औथेंटिकेशन चाहिए होगा। किसी कंप्यूटर की सभी फ़ाइलों को देखने के लिए आपको सुपर-यूज़र प्रिविलेजेज़ की आवश्यकता होगी – एक यूज़र अकाउंट जिसे वे सभी प्रिविलेज मिलते हैं जो Linux और BSD ऑप्रेटिंग सिस्टम में "root" यूज़र को मिलते हैं। राउटरों के लिए, डिफ़ौल्ट रूप में यह "admin" अकाउंट होता है (बशर्ते की इसे बदल न दिया गया हो); विंडोज़ के लिए, यह एडमिनिस्ट्रेटर अकाउंट होता है। किसी कनेक्शन की एक्सेस मिलने का यह अर्थ नहीं है कि आप कहीं भी एक्सेस कर सकते हैं। केवल कोई सुपर यूज़र, एडमिनिस्ट्रेटर अकाउंट या, रूट अकाउंट ही यह कर सकता है। अक्सर, सुपर-यूज़र स्टेटस पाने के लिए आपको ऐसी कोई ट्रिक इस्तेमाल करनी होती है, जैसे कि बफ़र ओवरफ़्लो, जिससे कि मेमोरी डंप होती है जिससे आप कोई कोड इंजेक्ट कर सकते हैं या अपने नॉर्मल औथोराइज़ेशन से ऊंचे स्तर का कोई टास्क परफॉर्म (perform) कर सकते हैं।  यूनिक्स जैसे सिस्टमों में यह तब होगा अगर बग किए गए सॉफ्टवेयर में setuid bit set होगा, ताकि प्रोग्राम अलग यूज़र (जैसे कि सुपर यूज़र) की तरह एक्ज़ीक्यूट हो। आपको यह करने की अनुमति तभी मिलेगी जब आप उनकी मशीन पर कोई इन्सिक्योर प्रोग्राम लिख सकें या पा सकें। जब आपको पूरा नियंत्रण मिल जाये, तब अच्छा यही होगा कि आप अगली बार आने के लिए रास्ता बना लें। यह एसएसएच सर्वर जैसी किसी महत्वपूर्ण सिस्टम सर्विस में backdooring करके किया जा सकता है। हालांकि अगले सिस्टम अपग्रेड में आपका बैकडोर हटाया भी जा सकता है। कोई अनुभवी हैकर, कंपाइलर को ही बैकडोर बना लेता है ताकि हर कंपाइल्ड सॉफ्टवेयर वापस आने का संभावित रास्ता बना रहे। एडमिनिस्ट्रेटर को पता मत चलने दीजिये कि उसका सिस्टम कंप्रोमाइज़ (compromise) हुआ है। वेबसाइट (यदि हो) मत बदलिए, और न ही ज़रूरत से ज़्यादा फाइलें बनाइए। कोई अतिरिक्त यूज़र्स भी मत बनाइये। जितनी जल्दी हो सके उतनी जल्दी कर डालिए। यदि आपने एसएसएचडी जैसे किसी सर्वर को पैच किया हो, तब यह सुनिश्चित करिए कि आपका सीक्रेट पासवर्ड हार्ड कोडेड हो। अगर कोई इस पासवर्ड से लॉग इन करने की कोशिश करेगा, सर्वर उनको अंदर तो आने देगा, मगर कोई महत्वपूर्ण जानकारी नहीं होगी।
कोई प्रोग्रामिंग लैंगवेज सीखिये: अपने टार्गेट को जानिए: कमांड्स के लिए *nix टर्मिनल का इस्तेमाल करें: पहले अपनी मशीन सिक्योर कर लीजिये: टार्गेट को टेस्ट करिए: ऑपरेटिंग सिस्टम पता लगाइए: सिस्टम में पाथ या ओपेन पोर्ट खोजिए: पासवर्ड या औथेंटिकेशन प्रोसेस को क्रैक करिए: सुपर यूज़र विभिन्न ट्रिक्स का इस्तेमाल करिए: एक पिछला दरवाज़ा बनाइये: अपने ट्रैक कवर कर लीजिये:
https://www.wikihow.com/Hack https://www.wikihow.com/Hack
Preparing Before You Hack Hacking