用端口截聽實現隱藏嗅探與攻擊 |
發布時間: 2012/6/28 18:32:36 |
在WINDOWS的SOCKET服務器應用的編程中,如下的語句或許比比都是: s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); 這意味著什么?意味著可以進行如下的攻擊: 1。一個木馬綁定到一個已經合法存在的端口上進行端口的隱藏,他通過自己特定的包格式判斷是不是自己的包,如果是自己處理,如果不是通過127.0.0.1的地址交給真正的服務器應用進行處理。 2。一個木馬可以在低權限用戶上綁定高權限的服務應用的端口,進行該處理信息的嗅探,本來在一個主機上監聽一個SOCKET的通訊需要具備非常高的權限要求,但其實利用SOCKET重綁定,你可以輕易的監聽具備這種SOCKET編程漏洞的通訊,而無須采用什么掛接,鉤子或低層的驅動技術(這些都需要具備管理員權限才能達到) 3。針對一些的特殊應用,可以發起中間人攻擊,從低權限用戶上獲得信息或事實欺騙,如在guest權限下攔截telnet服務器的23端口,如果是采用NTLM加密認證,雖然你無法通過嗅探直接獲取密碼,但一旦有admin用戶通過你登陸以后,你的應用就完全可以發起中間人攻擊,扮演這個登陸的用戶通過SOCKET發送高權限的命令,到達入侵的目的。 4.對于構建的WEB服務器,入侵者只需要獲得低級的權限,就可以完全達到更改網頁目的,很簡單,扮演你的服務器給予連接請求以其他信息的應答,甚至是基于電子商務上的欺騙,獲取非法的數據。 其實,MS自己的很多服務的SOCKET編程都存在這樣的問題,telnet,ftp,http的服務實現全部都可以利用這種方法進行攻擊,在低權限用戶上實現對SYSTEM應用的截聽。包括W2K+SP3的IIS也都一樣,那么如果你已經可以以低權限用戶入侵或木馬植入的話,而且對方又開啟了這些服務的話,那就不妨一試。并且我估計還有很多第三方的服務也大多存在這個漏洞。 解決的方法很簡單,在編寫如上應用的時候,綁定前需要使用setsockopt指定SO_EXCLUSIVEADDRUSE要求獨占所有的端口地址,而不允許復用。這樣其他人就無法復用這個端口了。
本文出自:億恩科技【www.laynepeng.cn】 |