灰鴿子c源碼
❶ 灰鴿子的發展史
自2001年,灰鴿子誕生之日起,就被反病毒專業人士判定為最具危險性的後門程序,並引發了安全領域的高度關注。2004年、2005年、2006年,灰鴿子木馬連續三年被國內各大殺毒廠商評選為年度十大病毒,灰鴿子也因此聲名大噪,逐步成為媒體以及網民關注的焦點。人們在震驚於灰鴿子給廣大電腦用戶帶來的危害的同時,不禁要問,灰鴿子是如何從一個模仿其他病毒開始,發展成為國內極具影響的十大病毒、甚至毒王的呢? 灰鴿子自2001年出現至今,主要經歷了模仿期、飛速發展期以及全民黑客時代三大階段。 灰鴿子2011出現變種。 體積僅70kb隱蔽性更強
服務端加殼之後僅有70kb,比葛軍的灰鴿子小了近10倍。國家多線程上線分組。可視化遠程開戶。可以躲過主流管理員的檢測方式。隱蔽性強。
模仿期(2001年-2003年) 2001年,國內互聯網逐步走向普及,網路病毒也伴隨著互聯網的發展日益取代傳統意義上的病毒,而到了2002年,以「電子郵件」、「網路下載和瀏覽」等方式傳播的病毒開始大量涌現,互聯網安全成為大眾關注的焦點。 與此同時,隨著網路的普及,人們已經可以足不出戶的工作和學習,SOHO越來越受到人們的青睞。有了網路我們可以在城市的一邊使用計算機控制另外一邊的計算機,從而不用我們花費大量精力親自到機房操作伺服器,遠程式控制制管理軟體也由此誕生。 2002年,遠程式控制制軟體已經步入了成熟階段,是網管人員必備的工具。但同時一些帶有惡意行為的遠程式控制制軟體(後門)也在互聯網中流傳,其中國內最為著名的就是「冰河」木馬後門。「冰河」在當時被泛濫的用於控制各種網路伺服器,在黑客成功攻陷一個伺服器後,都會被安裝上「冰河」的服務端,2002年的中國10大病毒中,位列第三位。 而灰鴿子最早出現的時候就是在模仿「冰河」。「灰鴿子」是2001年出現的,採用Delphi編寫,最早並未以成品方式發布,更多的是以技術研究的姿態,採用了源碼共享的方式出現在互聯網,至今仍可搜索到「灰鴿子」早期版本的源碼。「灰鴿子」在出現的時候使用了當時討論最多的「反彈埠」連接方式,用以躲避大多數個人網路防火牆的攔截。「灰鴿子」在當時的名氣不及「冰河」,因此只出現了少量的感染,但其開放源碼的方式也讓「灰鴿子」逐漸增大了傳播量。 灰鴿子出現後以源碼開放,所以出現多種不同的版本,由於服務端都以隱藏方式啟動,就奠定了其惡意後門木馬的地位,當時,以金山毒霸為首的大部分安全廠商將對用戶上報和監測到的「灰鴿子」服務端都認定為「黑客程序」,並堅決查殺,在一定程度上遏制了灰鴿子的發展速度。 飛速發展期(2004年-2005年) 從2004年至2005年,中國互聯網化進程飛速發展,大量的商業動作實現了互聯網化,電子商務成為普通網民進行消費的選擇之一,網路游戲在中國大地全面開花。在這樣的年代下,計算機病毒也逐步轉向了以經濟利益為中心的方向發展。大量通過IM(即時通訊軟體)傳播的木馬/黑客/病毒,它們不擇手段的從用戶系統中盜取網銀帳號、網游帳號及密碼。這些病毒給中國互聯網提出了新的考驗——用戶的網路虛擬資產正在受到威脅。 也就在2004和2005這兩年之間,灰鴿子逐步進入了成熟的狀態,由於源碼的釋放,大量變種在互聯網中衍生。2004年灰鴿子總共發現了1000多變種,而在2005年,這個數字迅速上升到了3000多。「灰鴿子」最大的危害在於替伏在用戶系統中,由於其使用的「反彈埠」原理,一些在區域網(企業網)中的用戶也受到了「灰鴿子」的侵害,使得受害用戶數大大提高,2004年的感染統計表現為103483人,而到2005年數字攀升到890321人。「灰鴿子」本身所具備的鍵盤記錄、屏幕捕捉、文件上傳下載和運行、攝像頭控制等功能,將使用戶沒任何隱私可言,更可怕的是服務端高度隱藏自己,是受害者無從得知感染此病毒。 2005年,金山毒霸針對病毒泛濫,特別是像「灰鴿子」這樣一類惡性木馬,採取了嚴打的措施,提高病毒庫升級周期,加強應急處理流程,而在技術上積極研究對策,最大限度的減少「灰鴿子」給用戶帶來的危害。 全民黑客時代(2006年-2007年) 2006年,電腦病毒呈爆炸式增長,360雲安全中心共截獲新增病毒樣本總計681428種,其中木馬病毒新增數占總病毒新增數的73%,高達175313種;隨著計算機技術的普及,由於製作工具的泛濫,病毒變種增多病毒的製作也逐漸呈現商業化的運作。某些製作者小組甚至可以根據使用者的要求為其提供針對特定目標的專門版本。病毒程序的模塊化使得病毒製作的門檻降低,很多具備一定計算機知識的用戶可以根據自己的需要對其自行組合。因此2006年病毒的變種迅速增加,以典型的「灰鴿子」木馬為例,高峰時期幾乎每天增加10餘個不同變種,迄今為止共出現了6萬余種變種,並連續三年榮登國內10大病毒排行榜。而且這類木馬往往通過自我升級功能頻繁的進行更新以對抗反病毒軟體。 2007年2月23日,灰鴿子2007 beta2版本發布。該版本的隱形性更強,可以任意插入常見的程序,比如QQ,下載工具等等,程序性能也得到提升,可以同時監視多個目標主機,並對遠程監視的計算機進行如下操作:編輯注冊表;上傳下載文件;查看系統信息、進程、服務;查看操作窗口、記錄鍵盤、修改共享、開啟代理伺服器、命令行操作、監視遠程屏幕、操控遠程語音視頻設備、關閉、重啟機器等。而由於灰鴿子採取了直接進程注入方式,利用HOOK API的方式實現病毒文件及病毒進程的隱藏,所有盜取用戶信息的操作,遠程計算機的操作人員可能毫不知情。 發展到今天,灰鴿子已經不僅僅是一個病毒如此簡單,其背後已經形成了一條黑色的產業鏈條,任何一個網路菜鳥都可以通過購買灰鴿子病毒、拜灰鴿子高手為師而成為黑客,可以說,灰鴿子病毒演變到今天,已經催生了全民黑客時代的到來。 普通網民很難了解到在他們的生活之外竟然有一個如此完整的製造、販賣病毒的「生態圈」。瀏覽各大網路論壇,購買、出售灰鴿子木馬的人比比皆是,而購買灰鴿子教程、批量出售被灰鴿子控制的「肉雞」、企圖利用灰鴿子進行不法勾當的人更是數不勝數。尤其是伴隨著灰鴿子2007的推出,這種不正之風正在互聯網迅速蔓延,灰鴿子的猖獗已經到了不得不管的地步!
❷ 灰鴿子 作者是誰 製作者受到制裁了嗎
作者是葛軍,最初灰鴿子是綠色軟體,後來被很多人濫用,最終被定義為黑客軟體。其實遠控軟體用在好的地方上是很不錯的軟體,但是如果被濫用也是一個大殺傷力的武器。作者為什麼要被受到制裁? 他只是開發了一個工具。
❸ 易語言怎麼編寫遠程式控制制啊像灰鴿子的那種!最好有源代碼!
gh0st遠控軟體採用驅動級RESSDT過主動,svchost參數啟動,替換系統服務的方式工作的,工作方式較為先進,美中不足的部分是沒有進行驅動級或用戶級隱藏,當然這部分可以添加進去。編碼利用了VC的編程環境。
一、環境配置
編譯環境一定要配置好:DDK+SDK+VC6,DDK用來編譯sys文件的,SDK+VC6是用來編譯工程的,配置部分比較簡單,網上有很多資料,這里不再詳述,有興趣的朋友也可以查看DDK和SDK的相關幫助。
二、特徵碼定位簡述
殺毒軟體查殺木馬的原理基本是根據特徵查殺的,被查殺的部分我們稱之為特徵碼,所以我們可以利用特徵碼定位工具MyCLL定位出病毒的特徵碼位置,定位工具原理是將被掃描木馬分塊,利用分段填充的方式,匹配殺軟的特徵值,找到殺軟查殺病毒的位置。
定位出特徵碼,如何反向找到源碼中的對應位置呢?請看下面分析,
三、二進制文件與源碼定位之map文件利用
map文件是二進制和源碼之間對應的一個映射文件。
我們假設根據第三步我們定位出了病毒的特徵碼:
病毒名稱 特徵碼位置 內存地址
svchost.dll 000038AA_00000002 100044AA
svchost.dll 00005F98_00000002
第一步設置VC編譯環境生成Map文件。
在 VC 中,點擊菜單「Project -> Settings」選項頁(或按下 Alt+F7),選擇 C/C++ 選項卡,並在最下面的 Project Options 裡面輸入:/Zd ,然後要點擊 Link 選項卡,選中「Generate mapfile」復選框,並在最下面的 Project Options 裡面輸入:/mapinfo:lines,表示生成 MAP 文件時,加入行信息。設置完成。
第二步編譯VC工程,設置活動工程編譯即可,這個不用說明。這個步驟完成後,在release(或debug)目錄,多了一個.map文件(比如svchost.map)。
第三步打開map文件(用UE或文本編輯器打開都行),形式如下:
(begin)
Timestamp is 488fcef2 (Wed Jul 30 10:16:18 2008)
Preferred load address is 10000000
---------------------------------------------------------------------------1----(為方便說明,wrw添加)
Start Length Name Class
0001:00000000 00010a50H .text CODE
0001:00010a50 00000485H .text$x CODE
0002:00000000 000004c8H .idata$5 DATA
......
0003:00000010 00000004H .CRT$XIZ DATA
0003:00000020 00001a50H .data DATA
0003:00001a70 00000688H .bss DATA
0004:00000000 000000a8H .rsrc$01 DATA
0004:000000b0 00000cf0H .rsrc$02 DATA
----------------------------------------------------------------------------2---(為方便說明,wrw添加)
Address Publics by Value Rva+Base Lib:Object
0001:00000000 ??0CAudio@@QAE@XZ 10001000 f Audio.obj
0001:000000d0 ??_GCAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000d0 ??_ECAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000f0 ??1CAudio@@UAE@XZ 100010f0 f Audio.obj
0001:000001e0 ?getRecordBuffer@CAudio@@QAEPAEPAK@Z 100011e0 f Audio.obj
0001:00000240 ?playBuffer@CAudio@@QAE_NPAEK@Z 10001240 f Audio.obj
0001:000002c0 ?InitializeWaveIn@CAudio@@AAE_NXZ 100012c0 f Audio.obj
......
0001:00003310 ?SendToken@CFileManager@@AAEHE@Z 10004310 f FileManager.obj
0001:00003320 ?UploadToRemote@CFileManager@@AAE_NPAE@Z 10004320 f FileManager.obj
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
0001:00003670 ?StopTransfer@CFileManager@@AAEXXZ 10004670 f FileManager.obj
0001:00003730 ?CreateLocalRecvFile@CFileManager@@AAEXPAE@Z 10004730 f FileManager.obj
......
----------------------------------------------------------------------------3---(為方便說明,wrw添加)
Line numbers for .\Release\FileManager.obj(E:\vtmp\gh0st3src\Server\svchost\common\FileManager.cpp) segment .text
17 0001:00002630 20 0001:0000267f 21 0001:00002698 24 0001:000026d0
25 0001:000026f8 26 0001:0000273c 29 0001:000027d0 33 0001:000027ee
77 0001:000027f8 36 0001:000027fb 37 0001:00002803 77 0001:0000280d
......
532 0001:0000340f 534 0001:00003414 537 0001:00003428 540 0001:00003440
546 0001:0000345d 547 0001:00003487 548 0001:00003490 549 0001:00003492
551 0001:0000349e 552 0001:000034b8 553 0001:000034cb 554 0001:000034d4
558 0001:000034de 560 0001:000034e9 563 0001:000034ee 564 0001:00003506
......
(end)
我們看下,定位svchost.dll 的第一個特徵碼內存地址為:100044AA,在第2塊中,我們可以找到RVA+BASE與之很接近的是
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
這樣我們可以定位到FileManager.cpp中的FixedUploadList函數,是不是范圍縮小了?
下面我們再縮小代碼行
利用這個公式:特徵碼行偏移 = 特徵碼地址(Crash Address)- 基地址(ImageBase Address)- 0x1000
看起來好像很難,其實很簡單,我們將100044AA去掉內存基址10000000,再減1000,因為PE很多從1000開始,可以得到代碼偏移地址為34AA。到第3塊中找對應的代碼行。
偏移地址34AA在(551 0001:0000349e 552 0001:000034b8 )中間,也就是551行和552行中間,我們到源程序中查找第551行:
wsprintf(lpszFilter, "%s%s*.*", lpPathName, lpszSlash);
這樣就定位出源代碼了,要怎麼修改就怎麼修改它就可以了。
四、實戰免殺
A、卡巴免殺
首次編譯後,先做卡巴的免殺。卡巴殺sys文件和dll,當然也就殺包裝它們的install.exe,最後卡巴還殺生成的sever,我這里說殺生成好的server不是和前面的特徵碼重疊的地方,而是殺配置信息。
第一步、sys免殺
sys重新編譯後,增加了輸入表的函數,同時系統不同,造成很多地方不同於原特徵,順利通過卡巴、金山、小紅傘等殺軟。
第二步、svchost.dll免殺
特徵碼定位MultiByteToWideChar和"gh0st update"兩個位置。這里是通過第3步map文件得出的。
卡巴怕加花指令, 這個函數MultiByteToWideChar的調用上,可以在這個函數前面隨便加幾句無效語句就可以通過卡巴殺軟。
字元串調用"gh0st update" ,這個是用於更新用的 ,如果不要在線更新,直接把這個語句所在代碼塊刪除;嘿嘿,其實搜索工程替換這個字元串為其他的字元串就可以了^_^,這個方法同時可以過金山殺軟。
第三步、server免殺
卡巴定位在最後的配置信息,採取跳轉顯然是不行的,採用加花的辦法,在寫入AAAAAA配置信息之前,隨便寫些東西,就可以做server免殺。
卡巴免殺完成!
B、Avast免殺
最新的avast殺軟再查殺1下,殺install.exe和svchost.dll(也就是殺生成的文件和其中的資源文件),接著做它的源碼免殺。
定位在特徵字元串%02d/%02d/%02d和「SYSTEM\CurrentControlSet\Services\%s」兩個地方。
解決方案:
1、svchost.dll的特徵碼定位在鍵盤記錄KeyboardManager.cpp文件中的SaveInfo(char *lpBuffer)函數。特徵字元串%02d/%02d/%02d,也就是我們看到鍵盤記錄的日期,修改之,修改的方法很多,將其改為[%d/%d/%d %d:%d:%d] ,編譯即可通過avast殺軟。
2、install的特徵碼定位在「SYSTEM\CurrentControlSet\Services\%s」,對應文件是install.cpp里的InstallService函數,修改大小寫,編譯即可通過免殺。
五、添加垃圾代碼的小方法
垃圾代碼要移動特徵碼所在的位置,不要跑到堆棧中了,這樣的代碼沒有用。可以採取添加for循環,做計數,簡單統計,採用局部變數,不改變後面的邏輯為宜。
添加輸出表的方法:
有殺輸出表的,可以在生成的svchost.dll上添加空函數 ,但是每次編譯都要修改1次資源 ,其實我們在源碼上添加如下語句:
extern "C" __declspec(dllexport) bool JustTempFun();//聲明
……
extern "C" __declspec(dllexport) bool JustTempFun() //實現
{
return false;
}
編譯後,輸出表就被改變了,有的殺軟就可做到代碼免殺。
六、gh0st自動生成6to4ex.dll的修改
看到好多站友提問自動生成6to4ex.dll的問題,有熱心站友也提出了自己的見解 ,我感覺有些人提出的解決方案不完全正確,有可能造成剛入手人誤解,我根據自己的理解說明1下。
gh0st服務端是通svchost -netsvcs啟動的,所以程序要利用netsvcs 服務,服務端也就是根據netsvcs生成的,故不能說服務端生成是隨機的,相對於大多數系統來講,基本是固定的,下面看分析。
查看install.cpp裡面的InstallService()方法,首先遍歷HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Svchost中的服務項,查找到一個服務後,程序採取替換服務的方法,將原服務刪除,然後生成對應服務項+ ex.dll的文件替換原服務,6to4服務一般排在第一位,6to4服務是一種自動構造隧道的方式,作用在於只需要一個全球惟一的IPv4地址便可使得整個站點獲得IPv6 的連接,這個服務對一般人來講,基本閑置,所以我們的程序就把6to4服務給替換掉,同時在windows\system32\目錄下生成 6to4ex.dll,以後啟動就是6to4ex了,如果把這個服務跳過去,就依次向下生成Ias、Iprip等服務啦,如果netsvcs項沒有可以替換的服務,則程序將自己添加1個服務,名稱就是由 AddsvchostService()方法產生的netsvcs_0x%d。
這樣說不知道關心服務名稱的明白了不?
這個不能說是技術問題,但是小技巧問題可以從這里產生,我不知道其他人的360是怎麼過的,但是我覺得可以提示1下的是,如果是360默認系統安全的服務,它肯定不會報不安全,替換閑置的系統安全的服務則通過360的效果要好的多
本文來自: 華夏黑客同盟論壇 本文詳細地址:http://bbs.77169.com/read.php?tid=255676
❹ 遠程式控制制Delphi源代碼
http://www.2ccc.com/search.asp?KeyWord=%BB%D2%B8%EB%D7%D3
灰鴿子VIP1.2的源代碼
灰鴿子是一個遠程式控制制類軟體,主要功能有:
1.文件管理:模枋 Windows 資源管理器,可以對文件進行:復制、粘貼、刪除,重命名、遠程運行等,可以上傳下載文件或文件夾,操作簡單易用。
2.遠程式控制制命令:查看遠程系統信息、剪切板查看、進程管理、窗口管理、外設控制、服務管理、共享管理、代理服務、MS-Dos模擬、其它控制!
3.捕獲屏幕:不但可以連繼的捕獲遠程電腦屏幕,還能把本地的滑鼠及鍵盤傳動作送到遠程實現實時控制功能!
4.注冊表模擬器:遠程注冊表操作就像操作本地注冊表一樣方便!
5.遠程通訊:除普通的文字聊天以外,還有語音聊天的功能(雙方ADSL上網情況下語音良好)!
6.代理服務:可以讓服務端開放Socks5代理伺服器功能,還可以讓服務端開放FTP功能!
7.命令廣播:可以對自動上線主機進行命令播,如關機、重啟、打開網頁等,點一個按鈕就可以讓N台機器同時關機或其它操作!