*=-###############################################-=* [*] [*] | Defunct Internet Protocol [DIP] | | optiklenz | | Legions Of the Underground | +---+*LoU*********************************LoU*+---+ ***************************************************************** The first few paragraphs of this text serve as an general outlook for people who have no prior knowledge of the tcp/ip protocols ----------------------------------------------------------------- Every host or computer on the internet is addressed by an IP number. No two IP numbers are equivalent. A perfect analogy would be the procedure of the postal service. Think of IP's as being houses each house needs an individual identifier that is contrary to the other. [90150^] - House 1 [90151^] - House 2 [90153^] - House 3 Each house has a different home address so that the post office Is able to find it and deliver mail accordingly. This goes alike for an IP number. Each IP number is divergent from the other which allows for data intended for a particular host to be transferred to it's destination with out error. The ip's network ID remains the same in all occurrences , but it's host ID changes. Example: 60.0.0.0 - Where 60 is the network ID All IP addresses are 32bits long, and are comprised of four 8bit segments known as octets The way this is addressed is using ones, and zeros. The human mind doesn't designate numbers as well as it does words this is the reason for domain naming. Could you imagine if people were identified by a numeric value rather than a name? It'd be pretty ridiculous. Picture yourself calling out to a friend "Hey 19682842434 ?" so for the same convenience of having a static name we have static IP's with a logical address (127.0.0.1) or a domain name (www.localhost.com) that interprets all the data for us. Quick overview on Process of IP Conversion. <*-------------------------------------*> 10000001 01100100 00001111 00000110 - IP <*-------------------------------------*> to <*-------------------------------------*> 129.100.15.6 <-- decimal conversion <*-------------------------------------*> to <*-------------------------------------*> PC <-- Host Name <*-------------------------------------*> Protocols convert to the physical address going from PC (Host Name) to 129.100.15.6 (decimal address). +-=============-+ * The Process * +-=============-+ Seeing that IP's are 32 bits in 4 8bit segments. If you take 32 (bits of the ip) and multiply it by 8(bits of each ip segment) you get 256 bits or a cluster of 1's, and 0's depending on how you are looking at it. =] The give an example of how we go from an IP in decimal form to a defunct ip. We'll use www.legions.org. Resolve the domain name. In this case we have 199.227.88.145: [segments referred to as SEG] ******************** 256| 3-2-1 method... ******************** 32(8) = 256 |_SEG1(199)*256^3 | SEG2(227)*256^2_+ | SEG3(88)*256_+ | SEG4(145)_+ | 145_+ -= 3353565329 (new identifier) Defunct IP: The reason I call the new identifier a defunct IP is because when it goes through the above process it is no longer decimal form. So I refer to it as a "dead ip" Security Analysis: If you take an IP in decimal form, and convert it to a defunct IP [DIP] services will still resolve the number as an identifier for that host but since it no longer has any decimals separating segments it is perceived as an Intranet host rather than its original standing as an IP. This brings some questions of security since Intranets tend to have very little security implementation. Since the given locator is no longer considered an IP it is no longer conditional to the same security restrictions imposed on a practical host identifier. For this reason If you were obstructed from accessing specific things from behind a proxy, using the new identifier the security measures otherwise implemented no longer apply. open: www.legions.org no connection do to proxy restrictions meaning: where as 199.227.88.145 would obtain no connection 3353565329 would process. Also if you are being blocked from certain sites because they might contain ActiveX, Java applets, or if you just use AOL whereby 90% of the internet is blocked out anyway the defunct ip method will allow you to view the site with out any complications. The reason some administrators block sites that contain java, and Active X is because scripts on certain sites may be a security hazard or malicious in the sense that they cause a DOS (denial of service) or do other things which would cause otherwise keep the system from executing what it's setup to do. -------------------------------------------------------- The code below was written to go with this article ------------------------------------------------------- /* * defunct.cpp - use: Enter logical IP number. Results: Defunct Address * Defunct IP Calculation Module- * Legions Of the Underground - http://www.legions.org * Code written to assist article * written on Defunct IP's, and Security Risk in Keen Veracity 6 * optiklenz@legions.org - optiklenz * This code may be alter'd as long as proper credit is givin */ #include #include #include int ClearCin(istream& isIn) // Clears istream object { streambuf* sbpThis; char szTempBuf[20]; int nCount, nRet = isIn.rdstate(); { isIn.clear(); // Clear error flags sbpThis = isIn.rdbuf(); // Get streambuf pointer nCount = sbpThis->in_avail(); // Number of characters in buffer while (nCount) // Extract them to szTempBuf { if (nCount > 20) { sbpThis->sgetn(szTempBuf, 20); nCount -= 20; } else { sbpThis->sgetn(szTempBuf, nCount); nCount = 0; } } } return nRet; } int main() { double result=0; double numb[4]; char text[15]; cout << "Input the address you wish to use/modify...\n> "; cin.getline (text, 16); ClearCin(cin); //Parse numbers for (int x = 0, y = 0; !(x>3); x++) { char stay[3]; if (x!=3) { for(int z =0;text[y]!='.';y++,z++) { stay[z] = text[y]; } numb[x] = atof(stay); } else { for(int z =0;text[y]!='\0';y++,z++) { stay[z] = text[y]; } numb[x] = atof(stay); } if (x!=3) y++; stay[0] = '\0'; stay[1] = '\0'; stay[2] = '\0'; } cout << numb[0] << " " << numb[1] << " " << numb[2] << " " << numb[3]; //run algorithim result = ((numb[0])*(16777216)); result += ((numb[1])*(65536)); result += ((numb[2])*(256)); result += (numb[3]); int dec=0, sign=0; cout << endl << ecvt(result, 10, &dec, &sign) << flush; return 0; }