由xml加密文件引起的渗透

在漏洞挖掘过程中,由x引起通过目录泄漏漏洞发现某网站存在公民个人隐私泄露,加密后续发现该网站提供了客户端和服务器端程序,文件将其下载到本地并进行安装,由x引起通过研究发现其客户端和服务器端都有一个加密的加密config.xml文件,该xml文件包含了FTPIP、文件USERNAME、由x引起PWD等信息,加密这意味着客户端或者服务器端必然会跟外界发生联系,文件进行更新或者读取数据库等操作,由x引起于是加密便有了本次的渗透。
1.1发现加密config.xml
安装XXX客户端和服务器端程序,文件在其程序安装目录发现有加密的由x引起config.xml文件,如图1所示,加密本人比较好奇,文件从来没有见过这种加密方式,于是开始了解密之路。

图1加密xml文件
其代码如下:
复制<ROOT> <FTPIP VALUE="oaIR9zhtlTqQ3UxD7MVe08l3/oFvDp1ulMwo2GSY44I=" /> <USERNAME VALUE="WjtHFu7uCp12XLCGYRcBnw==" /> <PWD VALUE="KZ6N2RwmqU3kLlvkPWZZKA==" /> <IPAddRESS VALUE="NzUif+K/r+z/I2isT+cx4U17mjANwri2GEtZeVgc/I9N2vVoEwTR8cKL9h5DTdCiQSJ0RU/zy4WQqKb1QgVtuQ==" /> <LASTIPADDRESS VALUE="net.tcp://42.***.***.140:54321/WCFService" /> <GETIPADDRESS VALUE="3ddmo1CJhGkfJ8fo1ljZPUcbNnD0W699Jm+1tbkyWyEXaVCTiyzQCA==" /> <SERVERLOCALADDRESS VALUE="" /> <UPDATESERVER VALUE="iWUfW9BA9VTPSPOa+sWiHqt9yoI6bFLkm0vAOw50ybg=" /> <DATACOMPRESSION VALUE="0" /> <VER VALUE="32" /> <XMLTYPE VALUE="CLIENT" /> </ROOT>1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.通过对代码进行读取,发现仅仅对xml中的值进行了加密,这种xml加密的文件,曾经在web.config中见过,仅仅对数据库连接字符串进行加密。
1.2使用Hash-Algorithm-Identifier进行哈希识别
git获取源代码:
复制git clone https://github.com/AnimeshShaw/Hash-Algorithm-Identifier.git cd /Hash-Algorithm-Identifier/hashidentifier chmod +x HashIdentifier.py ./HashIdentifier.py1.2.3.4.5.输入值:
复制WjtHFu7uCp12XLCGYRcBnw==1.程序无法识别该算法,如图2所示。

图2不能识别算法
尝试通过base64解密后显示为乱码,明显该加密值不是base64加密,站群服务器后续还找了一些加密的工具进行解密,但无法解开密码。
1.3分析服务端程序
在服务端程序安装目录发现其运行有mysql数据库,运行端口为3303,通过查看mysql下的user.MYD获取其root账号密码为:3C71F7A211581537008603DBC9012B7991DD4830,解密后为ukicreator,通过sql front进行连接并查看数据库,如图3所示,查看了所有的表,未发现敏感配置信息。

图3查看服务端数据库
1.4在线寻找破解config.xml
通过查找资料获取des等在线加解密站点http://tool.chacuo.net/cryptdes,但这些解密需要有一个key才行,无法通过在线网站直接解密,如图4所示。

图4在线des解密失败
1.5使用cain嗅探获取口令
(1)安装并设置cain工具
安装cain工具,最新版本为v4.9.56,下载地址http://www.oxid.it/downloads/ca_setup.exe,安装完毕后,设置监听地址,如图5所示,单击Configure,在其窗口中选择IP地址进行监听,然后再单击“网卡”和“核弹”标志图片开始嗅探。

图5设置监听
(2)运行客户端程序和服务器程序
运行XXX客户端和服务端程序,如图所示,成功获取其ftp密码。

图6获取服务器口令
(3)登录服务器
通过嗅探获取的口令来看,感觉这个口令可能是远程终端的香港云服务器口令,也即系统管理员口令。使用嗅探获取的IP地址、账号和口令进行登录尝试,如图7所示,成功登录服务器。

图7成功登录服务器
(4)获取root口令和密码
在服务器D盘下,成功获取数据库配置文件config.php,如图8所示,获取数据库端口为3333,root用户的密码为“udpcreator@!UKI12”,口令很强悍!

图8获取数据库账号和口令
(5)获取FlashFXP账号和密码
在系统中还发现安装了FlashFXP程序,运行该程序后,通过“选项”-“参数选择”-“选项”,在安全性中勾选“选择密码字段时显示密码”,如图9所示,确认后配置生效。

图9修改FlashFXP配置文件
打开站点管理器,在快速连接中可以发现存在一个Ftp地址,打开后,将鼠标移动到密码处直接获取其密码“ukicreator86UKI”,如图10所示,该密码看起来像服务器管理密码。

图10获取ftp密码
(6)获取ftp信息泄露
直接ftp连接,如图11所示,可以直接查看其默认配置的文件,有些文件可以直接下载和查看,说明存在ftp信息泄露。

图11ftp密码信息泄露
1.6xml解密程序
后面朋友给了一段解密config.xml的免费源码下载程序代码:
复制Imports System.IO Imports System.Xml.Serialization Public Class Form1 加密存储 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sp As New SystemParemeters() sp.UserName = "sa" sp.Password = "abcd" sp.ServerName = "." sp.TimeOut = 50 Dim xmlSerializer As New XmlSerializer(GetType(SystemParemeters)) Dim ms As New MemoryStream Dim writer As TextWriter = New StreamWriter(ms) Try xmlSerializer.Serialize(writer, sp) Finally writer.Close() End Try Dim code As Byte() = ms.ToArray() For index = 0 To UBound(code) code(index) = code(index) Xor 17 Next File.WriteAllBytes("config.xml", code) End Sub 解密读取 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim xmlSerializer As New XmlSerializer(GetType(SystemParemeters)) Dim code As Byte() = File.ReadAllBytes("config.xml") For index = 0 To UBound(code) code(index) = code(index) Xor 17 Next Dim ms As New MemoryStream(code) Dim items As SystemParemeters Try items = DirectCast(xmlSerializer.Deserialize(ms), SystemParemeters) Finally ms.Close() End Try End Sub End Class Public Structure SystemParemeters Public ServerName As String Public UserName As String Public Password As String Public TimeOut As Integer End Structure1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.本文地址:http://www.bzve.cn/html/396a2299581.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。