1. 环境配置
1.1 环境准备
攻击机kali:192.168.7.129
靶机win xp sp3 CH:192.168.7.45
工业软件:KingView 6.53
OD(无插件原版)
1.2 软件安装
下载地址:http://www.icpdas-usa.com/documents/king/kingview6.53_EN.rar
软件介绍:https://www.icpdas-usa.com/documents/KingView_Quick_Start_Manual.pdf
下载后解压,选择Setup
安装 Kingview,一路默认即可
安装完成后选择Exit,退出即可(退出后会提示安装driver,选择安装就好)
安装完成后HistorySvr.exe
进程会自动运行,同时打开TCP 777
端口。
2. 漏洞复现
2.1 测试poc导入
由于Poc只包含Win_xp_sp1以及Win_xp_sp3_EN系统,而我们测试的系统为Win_xp_sp3_CH,因此需对Poc进行需求更改。
需要更改的地方有两处,先复制一行Targets
出来,Ret
地址可暂时随意填写(这里为了方便,直接选择了EN地址)
第二处为exploit
,我们需要复制出来一个Targets
指向的shellcode
。此处代码可考虑复制EN处,ABCD
为方便快速定位shellcode所随意填写的字符串,可更改。
最后将我们的poc按照msf命名规则命名后导入msf,然后reload_all
加载模块即可
加载模块不报错即可,报错可根据提示查看报错日志,定位错误。
2.2 shellcode定位
接下来就是我们shellcode位置的确定了,由于我们不知道具体shellcode位置,此处需要用到OD,来判断异常位置。这里我们采用原版OD(之所以不用吾爱上的是因为插件过多,会出现如下报错,貌似是因为插件的原因导致)
当然,我们使用OD之前也需要配置一下。这里采用的是英文原版OD,吾爱上也可以搞到。
打开后会直接报错,是因为路径导致的错误,不修改也只是没有办法保存调试历史,无伤大雅。
想要更改的话,修改Options -> Appearance -> Directories
下的路径即可
我们想要借助OD来判断shellcode位置,需要打开我们的实时调试,从而附加我们的异常进程。
Options -> Just-in-time-debugging
,打开Make OllyDbg...
即可
接下来就是借助msf来进行攻击了。
1 | use exploit/windows/scada/kingview_overflow_attack //选择攻击模块 |
此时OD捕获到了异常进程,断在了0x00384342
处
在内存中搜索字符串ABCD
,定位到地址为0x013004C0
1 | shellcode地址:0x013004C0 + 0x4 = 0x013004C4 |
1 | Ret地址:0x013004C0 - 0xC = 0x013004B4 |
2.3 正式poc构造
根据上一步得到的shellcode地址以及Ret地址来修改我们的Poc
2.4 msf反弹shell
修改完Poc后,将我们更改后的Poc重新导入msf,然后进行攻击(记得重新开启靶机的HistorySvr.exe
服务,开启这个服务后777端口也会自动开启)
msf反弹shell成功,并用getsystem成功提到root权限
发布时间: 2021-12-27
最后更新: 2023-04-03
本文标题: 工业Scada软件-KingView_6.35 RCE漏洞复现
本文链接: https://foxcookie.github.io/2021/12/27/工业Scada软件-KingView-6-35-RCE漏洞复现/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!