iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
0
自我挑戰組

通過Node.js了解後端運作原理!系列 第 6

Day6. 後門程式實作(上)

大家可能都中過電腦病毒,被駭客奪取了帳號密碼資訊甚至是被遠端操控了電腦,那究竟其中有做到哪些事呢?
我們這邊就來寫一個簡單的後門程式來了解。

概念、流程

這個後門程式將分為伺服器端跟客戶端兩個部份。

伺服器端需要安插一個後門程式,讓我們可以讓目標電腦能接受外來的連線請求,進而接收並執行我們所希望的命令程式,程式執行完成後再將結果回傳給客護端。
執行流程大致如下:

  1. 建立伺服器,監聽某個指定port
  2. 等待客戶端的連線要求
  3. 取得連線要求並接受命令程式
  4. 執行命令程式
  5. 將執行結果回傳給客戶端

客戶端則是要可以將我們輸入的命令及參數傳送至伺服器端,然後在等待伺服器那邊把執行結果回傳。
執行流程大致如下:
1.取得伺服器位置並建立連線
2.將命令發送
3.等待致行結果回傳
4.將結果印出

實作part1

本來開發網頁程式會需要了解Socket相關技術,但是在node.js中,Socket被包裝成簡單的API並與事件引擎結合了,因此相對容易控制。

另外我們要使用的是自訂的通訊協定搭配net模組來建立網路連線。

var net = require('net');

//建立伺服器
var server = net.createServer(function(socket) {
	console.log('新連線已被建立!');
});
//監聽 12345 port
server.listen(12345, '127.0.0.1');

//建立socket連線
var client = new net.Socket();

//連線到127.0.0.1的12345 port
client.connect(12345, '127.0.0.1', function() {
	//已與伺服器建立連線
	console.log('已連線!');
});

當連線成功建立後,兩端都會收到一個Socket,明天我們會繼續利用這個Socket來做一些事情。


上一篇
Day5. NPM介紹
下一篇
Day7. 後門程式實作( 下)
系列文
通過Node.js了解後端運作原理!30

尚未有邦友留言

立即登入留言