home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / UTILITY / VIRUS / PCV4RPT.ZIP / FAUST.RPT < prev    next >
Encoding:
Text File  |  1991-05-28  |  10.4 KB  |  195 lines

  1.  
  2.              *********************************************
  3.              ***   Reports collected and collated by   ***
  4.              ***            PC-Virus Index             ***
  5.              ***      with full acknowledgements       ***
  6.              ***            to the authors             ***
  7.              *********************************************
  8.  
  9.  
  10.   Report from Jim Bates - The Virus Information Service - 19th January
  11.   1991
  12.  
  13.   === FAUST Virus (aka SPYER & CHAOS) ===
  14.  
  15.   This virus was reported by a user as at large in the UK during
  16.   January 1991.  It apparently arrived attached to software imported
  17.   from Hong Kong although there is a very slight possibility that
  18.   infection occurred after importation.
  19.  
  20.   FAUST is a resident, parasitic virus which appends to executable
  21.   files but does not infect COMMAND.COM.  The infection process may
  22.   possibly affect other file types if they are subject to the DOS LOAD
  23.   & EXECUTE function request.  There are two trigger routines, both of
  24.   which are date activated on the 13th of any month, as well as a
  25.   signature change during and after 25th December (any year).
  26.  
  27.   The primary trigger routine writes random garbage to a random
  28.   position on the disk and this virus must therefore be classified as
  29.   requiring immediate and total disinfection of any infected system if
  30.   there is a risk that the primary trigger has been executed.
  31.  
  32.  
  33.   OPERATION
  34.  
  35.   There are two distinct entry points to this virus, depending upon
  36.   whether the host file is a COM or EXE type.  The both entry points
  37.   begin by issuing an "are you there?"  call to DOS by placing a value
  38.   of 0E7H into the AH register and requesting an INT 21H.  If the
  39.   virus is resident, the interrupt request will return with a value of
  40.   7Bh in the AH register.  In this case, with COM files the original
  41.   three bytes at the beginning of the program are repaired and program
  42.   execution is returned to the start of the host program.  With EXE
  43.   files an immediate jump is implemented to the CS:IP setting
  44.   contained within the original program header.  If the virus is not
  45.   resident, the processing at both entry points will relocate the
  46.   virus code to offset zero of the code segment and then jump to the
  47.   virus code proper.
  48.  
  49.   Once into the virus code proper, processing continues as follows for
  50.   both types of infection:-
  51.  
  52.   A new stack is set up and a call is made to function 4AH of the DOS
  53.   INT 21H to allocate around 1700 bytes of memory.  No check is made
  54.   to see if the memory was allocated successfully.  A call is then
  55.   made to obtain the system date and this is tested to see if a) it is
  56.   earlier than 25th December, or b) it is the 13th of the month.  If
  57.   the date is 25th December or later, a signature used by the virus to
  58.   recognise it's own presence within a file is modified.  This
  59.   modification occurs each time the virus is installed and will result
  60.   in multiple infections of target files.  Once January is reached and
  61.   files have been infected with the latest signature version, they
  62.   will not be re-infected until the process is repeated at the next
  63.   25th December.  No other changes are made to the virus code and it
  64.   is not known why this particular process has been incorporated.  The
  65.   recognition string reported below will identify all versions of the
  66.   virus code since it does not include this signature.  If the date is
  67.   the 13th of the month, the virus installs three separate interrupt
  68.   handlers - for INT 09h (Keyboard services), INT 13H (Disk I/O
  69.   services) and INT 21H (DOS Functions).  A temporary INT 24H
  70.   (Critical Error) handler is also used within the INT 21H handler.
  71.   If the date is NOT the 13th of the month, the INT 09H and INT 13H
  72.   are NOT installed.  Since these are concerned with the trigger
  73.   routines this means that damage or interruption will not occur but
  74.   file infection (via the INT 21H interception routines) will still
  75.   take place.  The operation of each interrupt handler is as follows
  76.   :-
  77.  
  78.   INT 09H  (installed 13th only) This is a simple interception routine
  79.   which increments a counter within the virus code at every keystroke,
  80.   and then tests its value.  When the counter reaches 100 the video
  81.   mode is set to 80 * 25 text (mode 2) and a short message is
  82.   collected, decrypted and displayed before processing enters an
  83.   infinite loop and the machine "hangs".  The message is, "Chaos!!!
  84.   Another Masterpiece of Faust...".  This is where the identifying
  85.   name of "FAUST" has been extracted from.
  86.  
  87.   INT 13H (installed 13th only) This handler invokes the primary
  88.   trigger routine at every fifth disk access (ANY call to INT 13H)
  89.   request.  The counting process starts by incrementing a counter and
  90.   testing for a value of 5.  If the test fails processing continues
  91.   unmolested, otherwise the trigger routine is executed.  Counting
  92.   does NOT start at zero but will vary according to the current month
  93.   value recorded (and encoded) from the initial system date request.
  94.   Thus for the months of January through to July (inclusive) and
  95.   December, the initial count will start above 5 and will allow
  96.   between 247 and 256 disk accesses before triggering.  During August
  97.   to November (inclusive) only 2 to 5 accesses are counted before
  98.   triggering.  The trigger routine itself holds the original INT 13H
  99.   request and issues a Write instruction having first generated a
  100.   random track/sector address.  The instruction is to write 9 sectors
  101.   taken from the caller's buffer area and the write process is always
  102.   to head zero.  No change is made to the drive specifier provided by
  103.   the calling routine and this means that all local disks (fixed and
  104.   floppy) are at risk.
  105.  
  106.   INT 21H (installed every time) This handler provides the infection
  107.   routines and also the response to the "are you there?"  call issued
  108.   during initial execution.  Apart from this function, the only other
  109.   function intercepted is 4B00h (LOAD & EXECUTE).  When this request
  110.   is received, the virus first verifies that the amount of free space
  111.   on the disk will allow the addition of virus code.  Then the
  112.   extension portion of the target filename is checked in an unusual
  113.   way:  counting back from the end of the filename, if the second
  114.   letter is the same as the tenth letter (as in COMMAND.COM where the
  115.   O's match) then infection is aborted.  Then the file attributes are
  116.   collected, stored and reset to allow write permission.  Next, the
  117.   first and last letters of the three letter extension are checked
  118.   against each other.  If they are the same then the virus sets a flag
  119.   to indicate an EXE type file.  This method obviously causes problems
  120.   if a SYS file is processed with this function.  Target files are
  121.   checked for previous infection by examining the word at offset 41
  122.   decimal from the end of the file.  It is this word value which is
  123.   incremented by four at every installation during and after 25th
  124.   December.  Thus the infection check will fail and files will gain
  125.   multiple infections.  In our sample, the value of this word was
  126.   1234H which may indicate that this version had NOT "mutated" in this
  127.   way.
  128.  
  129.   The infection method is the (by now) fairly standard process of
  130.   appending virus code to the file and modifying the initial program
  131.   bytes (or header for EXE type files) to route processing through the
  132.   virus code.  The only major difference with this virus is that when
  133.   an EXE type file is first loaded, the virus is installed and before
  134.   being made resident (using DOS Function 31H), the original file is
  135.   loaded and executed using the DOS 4B00H function.  For EXE files
  136.   which require large amounts of memory, this will result in Out of
  137.   Memory errors at first execution.
  138.  
  139.   The general coding of this virus is extremely primitive and seems to
  140.   have been written by a newcomer to assembler programming.  The usual
  141.   infantile message persuades me to advise the programmer NOT to give
  142.   up his day job (presumably he is employed as a deranged vagrant).
  143.   Despite the Hong Kong connection reported above, the use of the word
  144.   "Chaos" in the message may indicate a connection with that odious
  145.   group known to propagate virus code from Germany and other places in
  146.   Europe.  Alternatively, it could simply be an attempt at plagiarism.
  147.   Interrupt handlers are installed using DOS functions 35H and 25H and
  148.   the whole code is made TSR with function 31H.  No encryption (apart
  149.   from the message) is used and the code is easy to detect and defend
  150.   against.  However, the nature of the primary trigger routine is such
  151.   as to make vigilance necessary since, like the Nomenklatura virus,
  152.   the very presence of the virus code may indicate corrupted data
  153.   which can not be quantified or repaired.
  154.  
  155.   Virus Information
  156.   The virus is called FAUST, it is a resident virus which infects
  157.   executable files via intercepted Load & Execute function calls.
  158.   Infective length is 1184 bytes and a reliable recognition string is
  159.   as follows :-
  160.  
  161.          B87A 0050 06B8 FD00 5026 C706 FD00 F3A4
  162.  
  163.   this will be found at offset 44H (68 decimal) from the start of the
  164.   virus code.  I do not normally recommend disinfection of parasitic
  165.   viruses, but if valuable code becomes infected, and no backups are
  166.   available, COM files can be repaired by replacing the first three
  167.   bytes of the file with the second three bytes within the virus code
  168.   (offsets 3, 4 and 5).  EXE type files are repairable since the virus
  169.   does not destructively overwrite any program code.  However, the
  170.   disinfection process is somewhat involved and not recommended
  171.   without accurate reference to a full disassembly of the virus code.
  172.  
  173.   VIS Classification - CEARXD1184A
  174.  
  175.   The information contained in this report is the direct result of
  176.   disassembling and analysing a specimen of the virus code.  I take
  177.   great pains to ensure the accuracy of these analyses but I cannot
  178.   accept responsibility for any loss or damage suffered as a result of
  179.   any errors or omissions.  If any errors of fact are noted, please
  180.   let me know at :-
  181.  
  182.     The Virus Information Service,
  183.     Treble Clef House,
  184.     64, Welford Road,
  185.     WIGSTON MAGNA,
  186.     Leicester  LE8 1SL
  187.  
  188.   or call +44 (0)533 883490
  189.  
  190.   Jim Bates
  191.  
  192.   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  193.   ++++++++++++++++++++++++++ end of reports ++++++++++++++++++++++++
  194.   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  195.