最近一直都在搞tcp/ip網路通訊的程式設計。老師讓寫個穿越防火牆的程式,剛拿到的時候真的是一點頭緒都沒有。甭說穿越防火牆了,就是普通的tcp/ip通訊程式,大學的時候也寫的很少。不過沒辦法,畢竟是boss,boss就是上帝,要不惜一切代價滿足他的各種需求,即使某些需求是abnormal的。所以便充分利用網際網路資源研究了一番,然後整了近半個月的**。
不過也正是如此,才可以被黑客利用。搞過tcp和udp程式設計的人都知道,只要有繫結操作,也就是有bind函式的使用,防火牆肯定會彈的。因為它意味著未來將有資料從你繫結的埠進來。對於tcp來說,繫結的目的是為了監聽連線,也就是客戶端發過來的連線請求;對於udp來說,繫結的目的是為了在特定的埠接收訊息,也就是實現端到端通訊。總之都會有資料「進來」。防火牆的基本功能就是「防入侵」,當然得彈了。所以穿越防火牆的關鍵之一就在於把這個bind函式pass掉。
當然,還有另外乙個關鍵點,就是防火牆「不管出」的特點。還是說tcp的程式,當發起連線的時候,客戶端的防火牆是不會彈的,因為資料是「出去」的而不是「進來」的,這樣客戶端在發起連線的時候就等於在自己機器上打了乙個「洞」,這個「洞」就是發起連線的時候由系統分配的乙個埠號。以後從這個埠號發進來的資料,防火牆都不會彈。
跳過bind函式,「打洞」,有了這兩條,穿越防火牆就可以實現了。簡單點說,就是把黑客的機器當伺服器用,把要攻擊的機器當客戶端用就行了。首先種植後台程式到待攻擊的機器上,讓它隨系統啟動的時候啟動,並隱藏在系統程序中,啟動後就主動向黑客的機器發起連線(當然,黑客的機器的防火牆肯定會彈了,但是這對於黑客來說就無所謂了,因為是自己定義的程式的連線埠號,是自己寫的程式在連線);連線成功後,「打洞」就成功了,之後黑客就可以利用這個「洞」來對被攻擊的機器「為所欲為」了。tcp的如此,udp同樣可以實現,只要讓待攻擊的機器的程式先向黑客的機器發乙個udp資料報就可以了,之後同樣可以利用這個「洞」來「為所欲為」。
所以,所謂的穿越防火牆,一言以蔽之,利用防火牆「只管進不管出」的特點,把黑客的機器當server用。
結果呢,這個東西硬是被那些所謂的「專家」整成了什麼tcp「反向連線技術」,搞的神秘兮兮的,服了。看來現在真的是什麼研究成果,不管大小,都可以整乙個專有技術名詞,然後寫一堆背景,搞一堆比較,畫一堆圖,最後再「躲躲藏藏遮遮掩掩」地把搞出來的這點「可憐」的「技術」公之於眾,以顯示自己是「專家」。之後就可以躺在這個「技術」上面吃飯了。
不過也沒辦法,他們要不這麼搞,**量就上不去了嘛;**上不去,呵呵,有他們熬的了。
所以整個中國學術才搞成這個樣子。
哎,不說了,本來準備說點程式設計心得,居然開始罵學術了,以後得更低調點說話....
!@#$^&*()_+{}|:"<>?
over~~~~~
如何穿越防火牆NAT
如何穿越防火牆nat,首先需要計算機節點可以自動判斷自己的nat狀態,計算機節點內部內建了 判斷邏輯,在外部需要一台stun的伺服器,通過傳送請求後可以計算機節點自己所在nat的情況.在處理full cone nat時由於ip位址和通訊埠都不做限制可以說它在通訊層面的級別和公網節 點是一致的.穿越這...
ORACLE如何穿越防火牆
應用程式如果要穿越防火牆,一般來說只需要將相應的埠在防火牆上開通,或者將伺服器的ip對映到防火牆的外口即可。但是oracle的埠有點特殊,程式訪問oracle的埠是1521 預設 但是這個埠只是oracle的偵聽器用 network listener listener 只起乙個中介作用,當客戶連線它...
Oracle服務穿越防火牆
環境 資料庫伺服器在vpn網內,作業系統為w2k3 server sp2,vpn使用了防火牆,資料庫為oracle10g,專用伺服器模式。問題 在vpn外不能連線oracle,伺服器上的防火牆已經關閉,vpn防火牆開啟了1521監聽埠。原因 只是負責監聽請求,預設使用1521埠。客戶端請求連線通過 ...