蓝队经常会去看日志和流量记录,从中发现可以的攻击攻击信息。
一般日志记录会存在三种情况:
1、对于大部分WEB访问日志,常见设备的都是HTTP报文格式进行保存的。只要进行简单的url解码即可看到大部分数据。
2、对于小部分的WEB交互日志,部分憨批设备会使用十六进制保存
3、对于TCP交互日志,设备基本也会使用十六进制保存。
对于2、3两种情况,我们可以考虑对HEX数据进行转码,运气好能够看到一些明文数据。
1、将hex数据直接简单处理后作为原始HEX数据写入bin文件
2、使用emeditor等支持多种编码的文本编辑器打开
3、如果没法解析,再使用不同的文件编码进行尝试。
4、否则,放弃解析。
#python2代码,Win下需要以ANSI格式保存,否则中文会乱码
# -*- coding:UTF-8 -*-
#!/usr/bin/python2
import time
#将dd转变为xdd
def str_hex_dd_2_sxdd(str_hex_dd):
str_hex_sxdd = ""
str_hex_sxdd = '\x' + str_hex_dd.strip().replace(" ",'\x')
str_hex_sxdd = str_hex_sxdd.strip()
if len(str_hex_sxdd) % 4 != 0:
str_hex_sxdd = str_hex_sxdd + '0' * ( len(str_hex_sxdd) % 4)
#print(len(str_hex_sxdd) )
#print(str_hex_sxdd)
return str_hex_sxdd
#转换xdd str 到byte数组
def hex_str_2_byte_list(str_hex_sxdd):
byte_shellcode = eval(""" bytearray(b'{}')""".format(str_hex_sxdd)) #type==bytearray
return byte_shellcode
#写入byte数组到bin文件
def byte_list_2_bin_file( byte_shellcode, result_bin_pre):
now_time = str(time.time()).split('.')[0]
with open(result_bin_pre+'_'+now_time+'.bin', "wb+") as fo:
fo.write(byte_shellcode)
print('write byte_list_2_bin_file end !!!')
import sys
while 1 :
shellcode = raw_input("请输入16进制字符串:n")
hex_sxdd_file = "hex-str-bdd-2-bin"
str_hex_sxdd = str_hex_dd_2_sxdd(shellcode)
byte_list = hex_str_2_byte_list(str_hex_sxdd)
#print(byte_list) #win cmd下无法进行输出
byte_list_2_bin_file( byte_list, hex_sxdd_file)
复制出日志二进制数据
打开已打包好的程序 hex-str-bdd-2-bin.exe并粘贴数据
将数据写入的bin文件,编辑模式直接打开输出的bin文件:
运气好的话能够直接解码成功
不能解码的话尝试使用不同的编码格式进行打开。对于大部分二进制数据,解码失败也是极为正常的,这时可尝试直接用HEX编辑模式打开。
日志数据:
63 65 70 74 69 6f 6e 3a 20 e6 89 a7 e8 a1 8c e6 95 b0 e6 8d ae e5 ba 93 e6 9f a5 e8 af a2 e5 87 ba e9 94 99 21 e6 9f a5 e8 af a2 e8 af ad e5 8f a5 ef bc 9a 53 45 4c 45 43 54 20 53 31 2e 2a 20 46 52 4f 4d 20 4b 48 5f 59 44 4b 48 20 53 31 20 57 48 45 52 45 20 53 31 2e 59 48 42 48 20 3d 20 3f 20 41 4e 44 20 53 31 2e 44 51 42 4d 20 3d 20 3f ef bc 8c e6 9f a5 e8 af a2 e5 8f 82 e6 95 b0 ef bc 9a 5b 30 33 30 38 30 30 30 31 38 38 35 30 37 33 35 37 2c 20 30
解码结果:
ception: 执行数据库查询出错!查询语句:SELECT S1.* FROM XX_XXXX S1 WHERE S1.XXXX = ? AND S1.XXXX = ?,查询参数:[030800018850XXXXX, 0
如果能够访问外网的情况下,可尝试使用在线的hex解码。
https://www.convertstring.com/zh_CN/EncodeDecode/HexDecode
当然,其肯定是不支持以多种编码格式打开的,遇到中文大概就是GG
END
本文始发于微信公众号(NOVASEC):HW蓝队-HEX日志数据解码
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论