Hacking °ü·Ã °Ô½ÃÆÇ |
---|
2000/08/06(21:01) from 203.255.160.61 | |
ÀÛ¼ºÀÚ : °ÁÙ±â (jkkang65@hanmail.net) | Á¶È¸¼ö : 3185 , ÁÙ¼ö : 135 |
Æ÷Æ® ½ºÄµ |
---|
°£´ÜÇÏ°Ô È帧À» »ìÆ캸Á®... 1.üũÇÒ È£½ºÆ® ÁÖ¼Ò¸¦ Àμö·Î ¹Þ¾Ò´ÂÁö °Ë»ç 2.(1)¿¡¼ ¹ÞÀº Àμö·Î ÁÖ¼Ò¸¦ °¡Áö°í TCP¿¬°áÀ» ½Ãµµ 3.(2)ÀÇ ¿¬°áÀÇ ¼º°ø ¿©ºÎ üũ 4.(2) - (3)À» 1ºÎÅÍ 1023Æ÷Æ®±îÁö ¹Ýº¹ üũ Èì~ ´ëÃæ ÀÌ·±½ÄÀϲ¨ °°±º¿ä, ¿ä°É ¸¸µé±â À§ÇØ ÇÊ¿äÇÑ °ÍµéÀ» ÇÔ µÚÁ®º¸ÁÒ. µÚÀûµÚ Àû~ ¿ì¼± ÇÊ¿äÇÑ °Íµé ÁغñÇØ¾ß µË´Ï´Ù. ¿·¿¡´Ù°¡ kldp.org¿¡¼ ¹ÞÀº ºñÁ¦ÀÌ ¼ÒÄÏ ÇÁ·Î ±×·¡¹Ö ¹®¼¸¦ °¡Á®´Ù ³õ°í, ¶Ç ÇÑÂÊ¿¡´Â ¸ÕÁö ¸Ó¸¦ ¼³¸íÀ» Çϱâ Çؼ ¸»µµ ¾ÊµÇ´Â glibc¶óÀ̺귯¸® ¼³¸í¼¸¦ °¡Á®´Ù ³õ°í... ÀÌÁ¦ºÎÅÍ µÚÀû°Å·Á º¾´Ï´Ù. ±×·¨´õ´Ï¸¸ ¼ÒÄÏÀÎÁö ¸ÕÁö¸¦ ½á¼ Ç϶ó´Â ±¸¸¸¿ä. Èì~ Äܼ¾Æ®¿Í ¼ÒÄÏÀΰ¨? ÀÏ´Ü ½áº¸ ÀÚ~´Â ¸¶À½À¸·Î ÇÔ¼ö ¼±¾ðÀ» ÈÖ¸®¸¯~ Æ캾´Ï´Ù. ±×·¨´õ´Ï socket(), connect(), close()°¡ ³ª¿À³×¿ä. Èì.. À̰͸¸ ÇÏ¸é µÇ°Ú±º -_-+ Àý¶ó ½±±¸¸¸~ À̶ó°í ÇÏ¸é¼ Çѹø ¿ô¾îÁÖ°í ½ÃÀÛÇØ º¾½Ã´Ù. ÀÚ ±×·³ ÀÌ ÇÔ¼ö¸¦ ¾²·Á ¸é ¹«¾ùÀ» Àμö·Î ¹» ÁÖ¾î¾ß ÇÏ´ÂÁö ¸®ÅÏ°ªÀÌ ¹ºÁö ÀÏ´Ü º¸ÁÒ. int socket(int domain, int type, int protocol); int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); int close(int fd); Èì ´Ù¸¥°Ç ¸¹ÀÌµé º¸¸é ÀÚ·áÇüÀε¥ struct sockaddrÀ̶õ ³ÑÀÌ º¸ÀÌ´Â ±º¿ä. ¶Ç ÀÌ ³ÑÀº ¸Ó³Ä~ ÇÏ°í µÚÀûµÚÀû~ ¾Æ~ TCPIP ¿¬°áÀ» ÇÒ¶§ ÁÖ¼Ò¸¦ ³Ö¾îÁÖ´Â ÀÚ·áÇüÀ̶ó´Â ±º¿ä. -_-+ À¸¶ì~ ±×³É ¹®ÀÚ¿·Î ÁÖ¹È ¾ÊµÇ´Â °Å»þ? TCPIP Ä¿³ØÆ®¸¦ ÀüüÀ» »õ·Î ¸¸µé ´É·ÂÀÌ ¾ÊµÇ´Ï Ç϶ó´Â ´ë·Î ÇÕÁÒ. ±×·¡¼ ÀÌ°ÍÀú °Í ¼Ò½ºµéÀ» º¸´Ï sockaddrÀº ¼³Á¤ÇÏ´Â ¹ýÀÌ ´Ù ¶È°°±º¿ä. ±×³É ¹è³¢¸é µÇ³×~ ÇÏ°í ¹è²¸¼ connect()ÇÔ¼ö·Î ¿¬°áÇÏ°í, Èì~ ¶Ç ²÷¾îÁà¾ß µÈ´Ù´Â ±º¿ä. close()ÇÔ¼ö±î Áö... °á±¹ TCPIPÀÇ °£´ÜÇÑ ¿¬°áÀº ¼ÒÄÏ ¸¸µé±â -> ÁÖ¼Ò ±¸Á¶Ã¼ ¸¸µé±â -> connect () -> close()±îÁö Çϸé TCPIPÇÁ·Î±×·¡¹ÖÀº ³¡À̱º¿ä. ±×·³ Æ÷Æ®°¡ ¿¸°Áö ¾î¶»°Ô? ±×¾ß ´ç±Ù~ connect()ÇÔ¼ö ¼º°øÇϸé Æ÷Æ®°¡ ¿¸°°Å °í, ¾Æ´Ï¸é ´ÝÈù°Å°ÚÁÒ... Èì ´Ù µÇ °Í °°Àº ´À³¦ÀÌ ÆÅÆÅ ¿À³×¿ä. ±îÁþ ¹Ýº¹ÀÌ¾ß ¾Ï °Å³ª ¸¸µé¸é µÇ´Ï... ÀÚ~ ÄÚµù~ ÄÚµù~ ¹é³¯ ºÐ¼®ÇØ ºÁ¾ß Çѹø Â¥´Â °Í º¸´Ù ¸øÇÏ ´Ù. ¶ó´Â ½Å³äÀ¸·Î ¿ä±âÁ¶±â¼ ¹è²¸ º¾´Ï´Ù. /*Æ÷Æ® ½ºÄµ ¿¹Á¦ÀÔ´Ï´Ù. ÄÚµù, ÄÄÆÄÀÏ : ¸®´ª½º ÄÄÆÄÀÏ : cc -o portscan portscan.c */ #include <string.h> #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <netinet/in.h> #include <errno.h> int pscan(char *hostaddr, int cport, int socktype); int main(int argc, char *argv[]) { int cport; /* Æ÷Æ® ·çÇÁ¿ë º¯¼ö ÁÖ¼Ò ÀÔ·Â Àμö üũ... */ if (argc < 2) { printf("portscan [address]\n"); exit(1); } /* 1ºÎÅÍ 1023Æ÷Æ®±îÁö üũ ¹Ýº¹ÇÕ´Ï´Ù. ±âº»ÀûÀÎ ½Ã½ºÅÛ¿ë Æ÷Æ®´Â 1-1023¹ø±îÁö °í 1024-65536±îÁö´Â »ç¿ëÀÚ¿ëÀÔ´Ï´Ù. */ for (cport = 1;cport < 1024;cport++) { /* ¾Æ·¡ if¹®Àº ¿¬°á µÇ´Â °Í¸¸ Ãâ·ÂÇÏ°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù.*/ if (pscan(argv[1], cport, SOCK_STREAM) == 0) { printf("%5d Open\n", cport); } }return 0; } int pscan(char *hostaddr, int cport, int socktype) { int sockfd; struct hostent *he; /* ¾Æ·¡¸¦ sockaddr_inÀº ¿ø·¡ÀÇ sockaddrÀÌ µ¥ÀÌÅÍ ³Ö¾îÁֱⰡ Â¥Áõ³ª±â¿¡ ¶È°° Àº ³ðÀ» Çϳª ´õ ¸¸µç °Å¶ø´Ï´Ù. ÀÌ ³ðÀ» ¾²¸é µ¥ÀÌÅÍ ÁֱⰡ ÆíÇÔ.*/ struct sockaddr_in destaddr; int pok; if ((he = gethostbyname(hostaddr)) == NULL) { herror("gethostbyname"); /* ÀÌ°Ç ¿¡·¯ ¸Þ½ÃÁö Ãâ·ÂÀε¥ ÀÌ·±°Å ¾Ê½áµµ µË´Ï´Ù. ±×³É printf() ^^ */ return 0; } sockfd = socket(AF_INET, socktype, 0); destaddr.sin_family = AF_INET; destaddr.sin_addr = *((struct in_addr *)he->h_addr); destaddr.sin_port = htons(cport); bzero(&(destaddr.sin_zero), 8); pok = connect(sockfd, (struct sockaddr *)&destaddr, sizeof(struct sockaddr));close(sockfd); if (pok == -1) return -1; return 0; } ³È~ ÄÚµù ³¡À̱º¿ä. Çѹø ½»~ ±Ü¾î¼ ÄÄÆÄÀÏ Çغ¸°í ½ÇÇà½ÃÄÑ º¸ÁÒ. #./protscan 127.0.0.1... 4 Open 21 Open 23 Open 25 Open 80 Open 111 Open 515 Open ------------------------------------------------------------------------- Èì Àß ³ª¿À´Â ±º¿ä. ³²ÀÇ ÄÄÇ»Å͸¦ ÇԺηΠ½ºÄµÇÏÁö ¸¿½Ã´Ù. -_-+ ¹®Á¦°¡ Á» ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù. -_-+ ¸®´ª½º¿¡¼¸¸ Çغðŵç¿ä. ÄÄÆÄÀÏ ¾ÊµÇµµ Àü ¸ð ¸¨´Ï´Ù. ÀÌ°ÍÀº ¾Æ~ÁÖ~ ±âº» Æ÷Æ® ½ºÄµ ÇÏ´Â ¹ýÀÔ´Ï´Ù. ¶Ç ¿¡·¯¿¡ ´ëÇÑ ´ëºñ°¡ °ÅÀÇ ¾ø´Ù°í º¸½Ã¸é µË´Ï´Ù. Á¦°¡ ÇغÃÀ¸´Ï µÇ±â´Â µË´Ï´Ù. ¾ÊµÇ¸é ½Ã½ºÅÛÀ» Å¿ÇսôÙ. - _-+ (¾ÊµÇ¸é ¾î¾´ç°¡??) ´ÙÀ½¿¡ ½É½ÉÇÏ°Ô µÇ¾î °Á¸¦ ¾²°Ô µÈ´Ù¸é(?) ¶Ç ´Ù¸¥ ¸Ú Áø ½ºÄ³³Ê¿¡¼ Å×Å©´ÐÀ» ÈÉÃÄ´Ù ½º½»~ ºÙ¿©º¸ÁÒ. |