home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / os / vms / 22152 < prev    next >
Encoding:
Text File  |  1993-01-28  |  4.1 KB  |  217 lines

  1. Newsgroups: comp.os.vms
  2. Path: sparky!uunet!europa.eng.gtefsd.com!paladin.american.edu!howland.reston.ans.net!usc!rpi!sarah!gemini!SW4847
  3. From: sw4847@gemini
  4. Subject: Fake mail
  5. Message-ID: <1993Jan28.062534.5087@sarah.albany.edu>
  6. Sender: news@sarah.albany.edu (News Administrator)
  7. Reply-To: sw4847@gemini
  8. Organization: University of Albany, SUNY
  9. Date: Thu, 28 Jan 93 06:25:34 GMT
  10. Lines: 205
  11.  
  12. Can fake mail from telneting to port 25 or from the program below be traced?
  13. How does the program below send the mail message?
  14.  
  15. 1  %TITLE 'MAIL SUBROUTINE'
  16.  
  17.    SUB MAILT( STRING NODE, &
  18.        STRING FROM_NAME, &
  19.        STRING TO_LIST(), &
  20.        STRING TO_SHOW, &
  21.        STRING SUBJECT, &
  22.        STRING TEXT() )
  23.  
  24.    OPTION TYPE = INTEGER
  25.  
  26.    DECLARE INTEGER FUNCTION &
  27.      PUT_MSG
  28.  
  29.    DECLARE STRING FUNCTION &
  30.      GET_MSG, &
  31.      GET_INPUT
  32.  
  33.    DECLARE INTEGER CONSTANT &
  34.      TRUE = -1, &
  35.      FALSE = 0
  36.    Net_Link_Open = FALSE
  37.  
  38.    input 'Please enter a node name (default = {anything}) ';node_name$
  39.    if node_name$ = "" then 
  40.       node_name$ = "{anything}"
  41.    end if
  42.    ON ERROR GOTO Mail_Net_Error
  43.    MAIL_CHANNEL = 12
  44.    OPEN NODE_NAME$ + '::"27="' AS FILE MAIL_CHANNEL
  45.  
  46.    Net_Link_Open = TRUE
  47.  
  48.    input 'Please enter from_name ';from_name$
  49.    STS = PUT_MSG( FROM_NAME$ )
  50.    IF STS <> 0 THEN
  51.      GOTO ERROR_DONE
  52.    END IF
  53.    RECEIVERS = 0
  54.    TO_COUNT = 1
  55.  
  56. Mail_Recipients:
  57.    print ''
  58.    print 'You are allowed to sent to more than one person '
  59.    input 'Please enter id actually sent to, <cr> to exit ';to_list$
  60.    if to_list$ = "" then 
  61.       goto end_of_line
  62.    end if
  63.    STS = PUT_MSG( EDIT$( TO_LIST$ , 32 ) )
  64.    IF STS <> 0 THEN
  65.      GOTO Error_Done
  66.    END IF
  67.    GOSUB Errchk
  68.    IF LINK_ERR <> 0 THEN
  69.      GOTO Error_Done
  70.    END IF
  71.  
  72.    IF ( ERRSTS AND 1 ) = 0 THEN
  73.      GOTO Error_Done
  74.    END IF
  75.  
  76.    TO_COUNT = TO_COUNT + 1
  77.    GOTO Mail_Recipients
  78.  
  79. END_OF_LINE:
  80.    STS = PUT_MSG( CHR$(0) )
  81.    IF STS <> 0 THEN
  82.      GOTO Error_Done
  83.    END IF
  84.    IF RECEIVERS = 0 THEN
  85.      GOTO Mail_Done
  86.    END IF
  87.  
  88.    print ''
  89.    input 'Please enter the to address that is shown ';to_show$
  90.    STS = PUT_MSG( TO_SHOW$ )
  91.    IF STS <> 0 THEN
  92.      GOTO Error_Done
  93.    END IF
  94.  
  95.    print ''
  96.    input 'Please type in the subject ';subject$
  97.    STS = PUT_MSG( SUBJECT$ )
  98.    IF STS <> 0 THEN
  99.      GOTO Error_Done
  100.    END IF
  101.  
  102.    print ''
  103.    print 'Please type in your message, type return on a blank line to finish '
  104.    loopx:
  105.    input text$ 
  106.    if text$ = "" then 
  107.     goto cont
  108.    end if
  109.      STS = PUT_MSG( TEXT$ )
  110.      IF STS <> 0 THEN
  111.        GOTO Error_Done
  112.      END IF
  113.    goto loopx
  114.    cont:
  115.    STS = PUT_MSG( CHR$(0) )
  116.    IF STS <> 0 THEN
  117.      GOTO Error_Done
  118.    END IF
  119.    SAVE_COUNT = RECEIVERS
  120.    INDEX = 0
  121.  
  122. Delivery_Check:
  123.    GOSUB Errchk
  124.    IF LINK_ERR <> 0 THEN
  125.      GOTO Error_Done
  126.    END IF
  127.    INDEX = INDEX + 1
  128.    IF INDEX <> SAVE_COUNT THEN
  129.      GOTO Delivery_Check
  130.    END IF
  131.    GOTO Mail_Done
  132.  
  133. Errchk:
  134.    MAIL_STS = ASCII( GET_MSG )
  135.    IF LINK_ERR <> 0 THEN
  136.      ERRSTS = LINK_ERR
  137.      RETURN
  138.    END IF
  139.    IF ( MAIL_STS AND 1 ) = 1 THEN
  140.      Receivers = Receivers + 1
  141.      ERRSTS = MAIL_STS
  142.      RETURN
  143.    END IF
  144.  
  145. Errmsg:
  146.    MAIL_ERR$ = GET_MSG
  147.    IF LINK_ERR <> 0 THEN
  148.      ERRSTS = LINK_ERR
  149.      RETURN
  150.    END IF
  151.    IF LEN( MAIL_ERR$ ) <> 1 THEN
  152.      PRINT MAIL_ERR$
  153.      GOTO Errmsg
  154.    END IF
  155.    IF ASCII( MAIL_ERR$ ) = 0 THEN
  156.      RETURN
  157.    ELSE
  158.      GOTO Errmsg
  159.    END IF
  160.  
  161.    DEF INTEGER PUT_MSG( STRING M )
  162.    ON ERROR GOTO 1550
  163.    MLEN = LEN( M )
  164.    MOVE TO # MAIL_CHANNEL , M = MLEN
  165.    PUT # MAIL_CHANNEL, COUNT MLEN
  166.    PUT_MSG = 0
  167.    EXIT DEF
  168.  
  169. 1550 RESUME 1555
  170.  
  171. 1555 PUT_MSG = ERR
  172.      END DEF
  173.  
  174.    DEF STRING GET_INPUT( INTEGER C )
  175.    EOF = FALSE
  176.    ON ERROR GOTO 1650
  177.    GET # C
  178.    R = RECOUNT
  179.    MOVE FROM #C , TEMP$ = R
  180.    GET_INPUT = TEMP$
  181.    EXIT DEF
  182.  
  183. 1650 RESUME 1655
  184.  
  185. 1655 EOF = TRUE
  186.      END DEF
  187.  
  188.    DEF STRING GET_MSG
  189.    ON ERROR GOTO 1750
  190.    GET # MAIL_CHANNEL
  191.    R = RECOUNT
  192.    MOVE FROM # MAIL_CHANNEL , TEMP$ = R
  193.    GET_MSG = TEMP$
  194.    LINK_ERR = 0
  195.    EXIT DEF
  196.  
  197. 1750 RESUME
  198.  
  199. 1755 LINK_ERR = ERR
  200.      END DEF
  201.  
  202. Mail_Net_Error:
  203.   RESUME 1900
  204.  
  205. 1900 PRINT "%Network communications error."
  206.  
  207. Error_Done:
  208.  
  209. Mail_Done:
  210.    IF Net_Link_Open THEN
  211.      CLOSE MAIL_CHANNEL
  212.    END IF
  213.  
  214.    END SUB
  215.  
  216.                                 Scott Weinstein
  217.