本文目录导读:

一场与“哑巴设备”的无声较量,哎,真没那么简单!
兄弟们,姐妹们,今天咱们不聊那些烂大街的Windows域渗透,也不谈什么云原生K8s逃逸,咱来点硬核的,聊聊那些藏在工厂角落、PLC控制柜里,甚至实验室台面上的——小众工控系统权限提升。
哎,说到这儿,我先叹口气,为啥?因为这活儿,它压根就不是人干的!你想想,你面对的不是一台装着图形界面的服务器,而是一个可能只有俩按钮、一块破屏,甚至得用串口命令行敲命令的“哑巴铁疙瘩”,想提权?第一步,你得先跟它“对上话”才行,这本身就够让人抓狂的了,你说是不是?
为啥盯着“小众”不放?还不是被逼的!
大伙儿都知道,像西门子、罗克韦尔这种大厂,资料满天飞,漏洞库都被人翻烂了,你随便搜个CVE,利用脚本都打包好了,可现实是,我最近接的这单活儿,甲方车间里用的是一套上世纪90年代的某东欧品牌DCS系统,还是俄语注释的固件!你说气人不气人?这就是典型的“小众工控系统”。
为啥非要搞它?因为权限不够,啥都干不了啊!你只能以Guest或者最低级操作员身份登录那个工程站,想读历史趋势数据?没门儿!想改个PID参数?抱歉,按钮是灰的,更别说想看看底层逻辑代码了,那简直像隔着防弹玻璃看金库,急死个人!
这时候,权限提升就成了唯一的路,但这条路,坑多到你怀疑人生。
第一道坎儿:协议不通,你连“门”都摸不着
你别指望用Nmap扫一下就完事儿了,小众系统跑的往往不是标准的Modbus TCP或者Profinet,而是自家私有的、加密的(或者干脆不加密但格式奇葩的)协议,我记得有一次,我抓包抓了半天,发现数据帧里居然混着设备的中文拼音缩写和日期时间戳,我人都傻了!我当时心里就想:“哥们儿,你是设备,不是日记本啊!”
想提权,第一步得逆向协议,这可不是查文档能解决的,你得像个侦探一样,从固件里抠字符串,从串口日志里找线索,有的设备,恩,它甚至有个隐藏的调试后门,用特定组合键就能调出系统Shell,但这后门往往写得极其随意,比如密码是“123456”硬编码,或者干脆就是个空密码——你说这算不算一种“物理层面”的权限提升?哈哈,我那次是直接拿设备屁股后面贴的序列号后六位当密码试出来的,给我乐坏了,感觉像开盲盒中奖了!
第二道坎儿:就算进去了,怎么“提”?
好,你费尽千辛万苦,通过串口或者隐藏的Telnet挤进去了,你以为你拿到root了?做梦!你拿到的顶多是一个busybox的受限shell,里面命令少得可怜,wget、curl这种工具根本不存在,连个gcc编译器都没有,你拿什么去编译提权exp?
这时候,思路得换,既然不能“越权”,那咱就“偷梁换柱”,你发现这个系统有个定时任务,每隔五分钟会去某个共享目录拉取一个配置文件,而那个共享目录的写权限居然对我们这种低权限用户开放(因为配置失误),你敢信?
那我怎么办?我就在那配置文件里塞了个恶意的shell命令,比如把/bin/sh复制到/home/admin/下面,并且设置个SetUID位,等定时任务一跑,系统以高权限执行了那个文件,我的提权后门就落地了!哎哟喂,那一刻,我感觉自己就是那个木马屠城里的木马,那种心跳加速的感觉,比看大片还刺激!
为啥非要费这劲?运维的思维你不懂
有朋友可能会问:“你这么折腾,图啥?直接让甲方找原厂呗!” 嘿,醒醒!原厂早倒闭了,或者售后支持贵得离谱,这就是“小众”的代价——生死自理。
从甲方的角度看,他们就是花了上千万买的产线,不可能因为系统老就停线,他们需要的是一种无声的救赎,我提权上去,不是要搞破坏,而是要绕过那该死的操作员权限限制,去调整一个关键的温控参数,避免产品批量报废,这玩意儿,说穿了,就是跟一个老旧但是倔强的“哑巴设备”进行心理博弈,它越不让你动,你越得想方设法证明你有资格动。
搞完那一刻,我瘫在椅子上,看着屏幕上那原本灰色的“工程师模式”按钮变成可点击的亮蓝色,我差点没哭出来。这哪是权限提升啊,这分明是拿命在跟代码搏斗啊! 那种成就感,是在Windows上跑个whoami /priv看到SeDebugPrivilege完全没法比的。
最后几句掏心窝子的话
如果你也正踏入深水区,面对那些稀奇古怪的工业设备,我给你提个醒:别浮躁,别指望一把梭。 多看看设备上的铭牌,多翻翻(可能存在的)残缺不全的PDF手册,更重要的,把串口线、USB转RS485模块、逻辑分析仪带全了!
小众工控系统权限提升,拼的不是工具多先进,而是你对那套老旧逻辑的理解和耐心,当你终于拿到那个最高权限,看着屏幕上跳动的实时曲线时,你会觉得——哎,值了! 头发也肯定没了,哈哈!
行,今天就唠到这儿,我得去继续研究下一个“硬骨头”了,祝各位都能在工控的迷宫里找到那扇隐藏的门!加油!