美文网首页
telnet网络延迟隐写数据

telnet网络延迟隐写数据

作者: _阿烨_ | 来源:发表于2017-11-05 19:40 被阅读0次

    参考链接

    键盘按键对应表
    http://blog.csdn.net/gatieme/article/details/21095013
    终端格式输出
    http://blog.csdn.net/robertbaker/article/details/8293432
    前面这两个是误导,接下来慢慢接近的文章
    https://hackaday.com/tag/ctf/
    https://www.anfractuosity.com/projects/timeshifter/
    https://github.com/anfractuosity/timeshifter
    最接近真相的链接
    https://0x90r00t.com/2016/11/09/hack-the-vote-2016-forensics-300-more-suspicious-traffic-write-up/
    该文章是图像为莫斯密码,而题目是提取数据后的二进制数据转acsii

    Paste_Image.png

    题目

    给出一个pcap包,用wireshark打开,追踪tcp流结果如图

    Paste_Image.png
    是黑客用telnet连接后,利用网络延迟的方法,留下了隐写的数据,
    一开始以为是vi编辑器的按键破译,后来主办方给了个提示
    https://en.wikipedia.org/wiki/Steganography Paste_Image.png
    找到相关链接
    https://0x90r00t.com/2016/11/09/hack-the-vote-2016-forensics-300-more-suspicious-traffic-write-up/
    该文章是wireshark描绘IO图像为莫斯密码,而这次题目要用wireshark提取数据后,关注时间的延迟,短延时为0,长延时为1,然后再将二进制数据转为acsii

    解题流程

    过滤telnet数据和黑客IP

    wireshark过滤器:telnet and ip.src_host==172.21.0.1

    设置显示间隔时间

    视图——时间显示格式——自上一个显示分组经过的秒数

    Paste_Image.png

    导出数据为txt文本,用于处理

    文件——导出分组解析结果——导出为纯文本——导出为1.txt

    Paste_Image.png

    linux终端命令处理

    cat 1.txt | grep 0.3|awk '{print $2}'>2.txt
    得到每个包之间响应的时间保存为2.txt,0.30延迟的为0,0.35延迟的为1

    Paste_Image.png

    python将时间处理为二进制数据

    010.py
    str = ''
    for line in open("2.txt"):
        if '0.35' in line:
            str +='1'
        if "0.30" in line:
            str += '0'
    print str
    
    Paste_Image.png Paste_Image.png

    观察二进制数据

    结合 f 是01100110, l 是01101100 , a 是01100001,定位关键有效段如下所示
    这里的关键是每8位二进制为一组,每组倒序后转为ascii码即为正确字符串

    因为fla的正确顺序是 01100110 01101100 01100001
    而关键段的前部分为 01100110 00110110 10000110

    这里的 f 的二进制是对称的,也正是 f 让我定位了关键段,要取8的倍数,所以后面很多0,只需要保留两个

    01100110001101101000011011100110110111100100110011000110011011000110110000001100101011001010110011001100111011001000110001101100101001100010110001001100101011001010011010011100001011001100110010101100100011000001110010100110010011000000110000011100110001100110110001100110000011001110110010000110101111100
    

    python脚本把倒序字符串恢复,并转为ascii

    bin2ascii.py
    #!coding:utf-8
    string='01100110001101101000011011100110110111100100110011000110011011000110110000001100101011001010110011001100111011001000110001101100101001100010110001001100101011001010011010011100001011001100110010101100100011000001110010100110010011000000110000011100110001100110110001100110000011001110110010000110101111100'
    l=[]
    result=''
    r=''
    i = 0
    for s in string:
        result += s 
        i +=1
        if i ==8:      #每8个字符组成字符串result后,以列表的形式按顺序保存
            i = 0
            l.append(result) 
            result =''
    for ll in l:
        ll=ll[::-1]       #每8位倒序反转,注意不是01反转
        r += chr(int(ll,2))  #二进制转为ascii
    print r
    
    Paste_Image.png Paste_Image.png

    相关文章

      网友评论

          本文标题:telnet网络延迟隐写数据

          本文链接:https://www.haomeiwen.com/subject/gdjhmxtx.html