從編程到入侵_第1頁
從編程到入侵_第2頁
從編程到入侵_第3頁
從編程到入侵_第4頁
從編程到入侵_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第第頁從編程到入侵從編程到入侵

發(fā)表于:2023-05-25來源::點擊數(shù):標簽:入侵編程大都是不是大家

大家是不是大都使用別人的工具來搞入侵呢,我也是,不過從學(xué)了編程以后,老是想自己寫點程序,然后用它來入侵,這里就是教你如何實現(xiàn)自己的的夢想。今天所要演示的是telnet的入侵,近來的sunos_telnet搞的風(fēng)風(fēng)火火.1.掃描一個IP段,所以要寫個IP掃描器2.T

大家是不是大都使用別人的工具來搞入侵呢,我也是,不過從學(xué)了(編程)以后,老是想自己寫點程序,然后用它來入侵,這里就是教你如何實現(xiàn)自己的的夢想。

今天所要演示的是telnet的入侵,近來的sunos_telnet搞的風(fēng)風(fēng)火火.

1.掃描一個IP段,所以要寫個IP掃描器

2.Telnetbannercheck,看telnet的反應(yīng),所以要寫個systemoscheckdepentoptelnet.

3.用sunos_telnet來測試,sunos_telnet.exe網(wǎng)上有下載.

第一步:

/*simpletcpportscan*/

/*只對一個IP的掃描*/

#includestdio.h

#includestdlib.h

#includestring.h

#includesys/socket.h

#includesys/types.h

#includenetinet/ip.h

#includenetinet/tcp.h

#includenetinet/in.h

#includearpa/inet.h

#includeunistd.h

#includenetdb.h

#defineSTART_PORT1

#defineSTOP_PORT1024

structsockaddr_inaddr;/*以structsockaddr_in結(jié)構(gòu)定義addr*/

structhostent*host;

structservent*reply;

intsock,i;

intstart_port;/*起始端口*/

intstop_port;/*結(jié)束端口*/

intusage(char*pro)/*幫助*/

{

printf("simpleTCPscanner\n");

printf("usage:%sRemote-hoststartportendport\n",pro);

exit(1);

}

intscan(intport)/*scan()掃描*/

{

if((sock=socket(AF_INET,SOCK_STREAM,0))0){/*建立socket描述符*/

printf("scanerrno-socket\n");

exit(1);

}

addr.sin_family=AF_INET;

addr.sin_port=htons(port);

addr.sin_addr=*(structin_addr*)host-h_addr;

if((connect(sock,(structsockaddr*)addr,sizeof(addr)))==0)/*

建立連接,判斷端口*/

return0;/*成功*/

else

return1;/*失敗*/

}

intmain(intargc,char*argv[])/*主程序*/

{

char*service;

if(argc!=4)

usage(argv[0]);

start_port=atoi(argv[2]);/*將argv[2]轉(zhuǎn)換成整數(shù)*/

stop_port=atoi(argv[3]);/*將argv[3]轉(zhuǎn)換成整數(shù)*/

if(strcmp(argv[2],"-")==0strcmp(argv[3],"-")==0){/*對比argv[2]argv[

3]和"-"符號*/

start_port=START_PORT;/*如果是"-"的話,起始端口等于1*/

stop_port=STOP_PORT;/*如果是"-"的話,結(jié)束端口等于1*/

}

if(start_portstop_port){/*如果起始端口大于結(jié)束端口*/

printf("startportcannotgreaterthanstopport.\n");

usage(argv[0]);

exit(1);

}

if((host=gethostbyname(argv[1]))==NULL){/*用gethostbyname()

來得到對方的信息*/

printf("can'tgethostinfo%s\n",argv[1]);

exit(1);

}

printf("Scanninghost%sfrom%dto%d\n",argv[1],

start_port,stop_port);

for(i=start_port;i=stop_port;i++)/*使用for語句對每個端口進行連接*/

{

if(scan(i)==0){

reply=getservbyport(htons(i),"tcp");/*用getservbyport得到端口信息*/

if(reply==NULL)/*無法得到端口信息*/

service="Uknown";

else

service=reply-s_name;/*reply-s_name是端口服務(wù)*/

printf("Port%5disopen.\tservice%s\n",i,service);

}

close(sock);

}

}

/*****************************************************************************/

看懂上面的代碼嗎?如果你看不懂的話,或編寫不成功,就用superscan吧,

superscan掃描結(jié)果:

*+3

|___23Telnet

|___

*+4

|___23Telnet

*+5

|___23Telnet

|___#..'

*+6

|___23Telnet

|___#..'

*+7

|___23Telnet

*+8

|___23Telnet

|___#..'

*+66

|___23Telnet

|___#..'

*+67

|___23Telnet

|___#..'

*+68

|___23Telnet

|___#..'

*+

|___23Telnet

|___

*+4

|___23Telnet

|___UserAclearcase/"target="_blank">ccessVerificationPassword:

*+71

|___23Telnet

|___#..'..$

*+72

|___23Telnet

|___#..'..$

是不是很討厭前面的*+和|___23Telnet|___#..'..$東西呢,那再寫個程序搞定它,

/*************************superscanclear.c************************/

#includestdio.h

main(intargc,char*argv[])

{

FILE*in;/*inputfile定義*/

FILE*out;/*outputfile定義*/

charbuf[1024];/*緩沖區(qū)*/

inti,j;

if(argc3)

{

printf("usage:%sinputfileoutputfile",argv[0]);

exit();

}

in=fopen(argv[1],"r");/*讀文件并差錯*/

if(in==NULL)

puts("Fileopenerror");

out=fopen(argv[2],"w");/*寫文件并查錯*/

if(out==NULL)

puts("Filewriteerror");

while(fgets(buf,21,in)!=NULL)/*輸入字串*/

{

for(i=0;i18;i++)

{

if(buf[i]=='*')/*字串替換*/

{

for(j=0;j17;j++)

{

buf[i+j]=buf[i+4+j];

}

buf[i+17]='\n';

fputs(buf,out);/*寫入*/

}

}

}

fclose(in);

fclose(out);

}

/**************************************************************************/

用tc來編輯,可達到最好效果.

使用:

c:\clearinputfile.txtoutputfile.txt

inputfile是superscan掃描結(jié)果文件

outputfile是處理后要生成的文件,生成后為IP文件

第2步

通過telnet的返回banner來確定對反的系統(tǒng)類型.比如

c:\telnet71

SunOS5.8

login:

從而判斷對反的系統(tǒng)類型。

/**************************************************************************/

#includestdio.h

#includestring.h

#includestdlib.h

#includesys/types.h

#includesys/socket.h

#includenetinet/in.h

#includenetdb.h

#definePORT23/*定義端口*/

#defineMAX1024/*buf的長度*/

FILE*output;/*定義outputfile*/

main(intargc,char*argv[])

{

FILE*input;/*定義inputfile*/

charscan_ip[1024];

if(argc4)

{

usage(argv[0]);

exit(1);

}

if(argc==4){

if((output=fopen(argv[2],"w"))==NULL){/*創(chuàng)建并寫入文件*/

printf("couldnotcreattheoutputfile\n");

exit(2);

}

fputs("\n",output);

if((input=fopen(argv[1],"r"))==NULL){/*讀文件*/

printf("couldnotreadtheinputfile\n");

exit(2);

}

}

while(fscanf(input,"%s",scan_ip)!=EOF)/*讀取IP*/

{

telnet_banner(scan_ip,argv[3]);/*telnet_banner()判斷系統(tǒng)類型*/

}

exit(1);

}

intusage(char*pro)/*幫助*/

{

printf("SystemOSdetectorV0.1\n");

printf("W\n");

printf("usage:%sinputfileoutputfileSystemOS\n",pro);

printf("SystemOS1.Sunos2.Redhat3.FreeBSD\n");

}

telnet_banner(char*ip,char*os)

{

structsockaddr_inaddr;

u_charbuf[MAX];

intsock,size,i;

if((sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==-1){

printf("socketfailt");

exit(1);

}

addr.sin_family=AF_INET;

addr.sin_port=htons(PORT);

addr.sin_addr.s_addr=inet_addr(ip);

if(connect(sock,(structsockaddr*)addr,sizeof(addr))==-1){

printf("connectfailt");

exit(1);

}

while(1){/*接收banner的循環(huán)*/

memset(buf,0,sizeof(buf));/*buf的內(nèi)容置為0*/

if((size=read(sock,buf,1))=0)/*從sock緩沖中讀出第一個字*/

break;/*等待接收完畢*/

if(*buf==(unsignedint)255){/*如何為空的話,在讀入2個字*/

read(sock,(buf+1),2);

if(*(buf+1)==(unsignedint)253!(u_char)*(buf+2))

;

elseif((u_char)*(buf+1)==(unsignedint)253){/*如果buf[1]的內(nèi)容為253的話,設(shè)置buf[1]為252,寫入sock緩沖*/

*(buf+1)=252;

write(sock,buf,3);

}

}else{

if(*buf!=0){

bzero(buf,sizeof(buf));

read(sock,buf,sizeof(buf));

close(sock);

if(*os==49)/*systemos為1*/

if(strstr(buf,"SunOS")!=0){

fprintf(output,"*scanhost%s",ip);

buf[12]=buf[14];

fprintf(output,"\tOS:%s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論