home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carsten's PPE Collection
/
Carstens_PPE_Collection_2007.zip
/
T
/
THTLG211.ZIP
/
HTPASS.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-01-25
|
6KB
|
300 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 1.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
String TSTRING001(5)
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String TSTRING011(10)
;------------------------------------------------------------------------------
GetUser
FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
FGet 1, INTEGER003
FGet 1, STRING003
FGet 1, STRING004
FGet 1, STRING009
FGet 1, STRING007
FGet 1, INTEGER004
For STRING010 = 1 To INTEGER004
FGet 1, TSTRING011(STRING010)
Next
FClose 1
:LABEL001
If (AnsiOn()) Goto LABEL002
Print "29H"
Goto LABEL003
:LABEL002
AnsiPos 29, 11
:LABEL003
InputStr "_", TSTRING001(INTEGER001), 0, 12, Mask_Pwd(), 1
TSTRING001(INTEGER001) = Upper(TSTRING001(INTEGER001))
If (TSTRING001(INTEGER001) == U_Pwd) Then
Cls
KbdStuff TSTRING001(INTEGER001) + Chr(13)
Stop
Endif
WrUNet PcbNode(), "U", U_Name(), U_City, "hacking accounts", ""
Log " Password Failure (" + TSTRING001(INTEGER001) + ")", 1
Inc INTEGER001
For INTEGER002 = 1 To INTEGER001
Beep
Next
If (AnsiOn()) Goto LABEL004
Print "20H"
Goto LABEL005
:LABEL004
AnsiPos 20, 16
:LABEL005
PrintLn "@X08∞ @X0CWrong PassWord @X0F@FIRST@@X08 ∞ @X0CTRIES LEFT : @X0F", INTEGER003 - INTEGER001
If (INTEGER001 < INTEGER003) Goto LABEL001
If (ReadLine(PCBDat(), 196) == -1) Then
If (AnsiOn()) Goto LABEL006
Print "20H" + " "
Print "20H"
InputStr "Send a Comment to the Sysop", STRING005, 1, "", "YyNy", 4 + 8
If (STRING005 == NoChar()) Goto LABEL013
Goto LABEL007
:LABEL006
AnsiPos 20, 16
Print Space(42)
AnsiPos 20, 16
InputStr STRING009, STRING005, 1, "", "YyNy", 4 + 8
If (STRING005 == NoChar()) Goto LABEL013
:LABEL007
DefColor
Cls
If (INTEGER004 == 1) Then
KbdStuff "1" + Chr(13)
Goto LABEL008
Endif
DispFile PPEPath() + "sysops.dsp", 0
PrintLn " @X08 D@X07e@X0Ffault will Be (@X071@X08)"
For STRING010 = 1 To INTEGER004
PrintLn "@X0F" + STRING010 + "@X08. @X0F" + TSTRING011(STRING010)
Next
:LABEL008
STRING006 = 1
Input "@X0F[@X0C@SYSTIME@@X0F] @X0EMATRIX Mail Command? _", STRING006
If ((STRING006 < 1) || (STRING006 > INTEGER004)) Goto LABEL007
If ((STRING006 < 1) || (STRING006 > INTEGER004)) Goto LABEL008
Cls
INTEGER006 = ReadLine(PCBDat(), 109)
DispFile PPEPath() + "message.dsp", 0
If (AnsiOn()) Goto LABEL009
Print "H"
PrintLn "@X04To : " + "@X0E " + "[" + TSTRING011(STRING006) + "]"
Print "2H"
PrintLn "@X0F" + INTEGER006
Print "H"
Print "@X03From : " + "@X0E" + "[" + U_Name() + "]"
Print "2H"
Print " @X04Subject : " + STRING007
FClose 1
Goto LABEL010
:LABEL009
AnsiPos 3, 2
PrintLn "@X04To : " + "@X0E " + "[" + TSTRING011(STRING006) + "]"
AnsiPos 32, 2
PrintLn "@X0F" + INTEGER006
AnsiPos 3, 3
Print "@X03From : " + "@X0E" + "[" + U_Name() + "]"
AnsiPos 32, 3
Print " @X04Subject : " + STRING007
FClose 1
:LABEL010
STRING007 = StripAtx(STRING007)
FAppend 1, PPEPath() + PPEName() + String(PcbNode()) + ".mal", 1, 0
BOOLEAN001 = 0
If (AnsiOn()) Goto LABEL011
INTEGER005 = 8
Print "H"
Goto LABEL012
:LABEL011
INTEGER005 = GetY() + 3
AnsiPos 1, INTEGER005
:LABEL012
If (BOOLEAN001) Goto LABEL013
STRING008 = ""
InputStr "_", STRING008, "", 78, Mask_Ascii(), 512 + 256
Inc INTEGER005
If (Upper(STRING008) == "/A") Then
BOOLEAN001 = 1
FClose 1
Endif
If (Upper(STRING008) == "/S") Then
BOOLEAN001 = 1
PrintLn "Sending Message to " + TSTRING011(STRING006)
FClose 1
Message "", TSTRING011(STRING006), U_Name(), STRING007, "R", 0, 0, 0, PPEPath() + PPEName() + String(PcbNode()) + ".mal"
Endif
FPutLn 1, STRING008
Goto LABEL012
Endif
:LABEL013
Log " Access Denied - Excessive Password Failures!", 1
Cls
AnsiPos 22, 10
PrintLn "@X0CToo Many PassWord FAILURES !!!!"
AnsiPos 22, 11
PrintLn "@X0CThe Sysop will be NOTIFIED !! "
STRING002 = PPEPath() + "HackMsg" + String(PcbNode())
FCreate 3, STRING002, 1, 2
FPutLn 3, "@X07On @X0C (@X0F" + String(Date()) + "@X0C) @X07At@X0C (@X0F" + String(Time()) + "@X0C)@X07 'somebody' had an excessive number of"
FPutLn 3, "password failures when he tried to logon with YOUR name !!"
FPutLn 3, ""
FPutLn 3, "These are the passwords that he tried to get access with : "
For INTEGER002 = 0 To INTEGER003 - 1
FPutLn 3, "@X0F" + TSTRING001(INTEGER002)
Next
FPutLn 3, "@X07Please take GOOD care of your password on this board, we recommend"
FPutLn 3, "you change it frequently and use UNIQUE passwords on every board !"
FPutLn 3, ""
FPutLn 3, "═════════════════════════════════════════════════════════════[ THT '94 ]══"
FClose 3
Message CurConf(), U_Name(), "SYSOP", "@BEEP@(HACK-REPORT)", "R", 0, 0, 0, STRING002
STRING002 = PPEPath() + "HackMsg" + String(PcbNode())
FCreate 3, STRING002, 1, 2
FPutLn 3, "@X07On @X0C (@X0F" + String(Date()) + "@X0C) @X07At@X0C (@X0F" + String(Time()) + "@X0C)@X07 'somebody' had an excessive number of"
FPutLn 3, "password failures when he tried to logon AS @X0F" + U_Name() + "@X07"
FPutLn 3, ""
FPutLn 3, STRING003
FPutLn 3, STRING004
FClose 3
Message CurConf(), "SYSOP", "Ht-Logon", "@BEEP@(HACK-REPORT)", "R", 0, 0, 0, STRING002
Delete STRING002
Hangup
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 4 Cls
; 31 Goto
; 20 Let
; 14 Print
; 10 PrintLn
; 20 If
; 2 DispFile
; 1 Input
; 2 FCreate
; 1 FOpen
; 1 FAppend
; 7 FClose
; 7 FGet
; 15 FPutLn
; 1 Hangup
; 1 GetUser
; 1 DefColor
; 1 Delete
; 2 Log
; 4 InputStr
; 2 Inc
; 1 Stop
; 1 Beep
; 2 KbdStuff
; 1 WrUNet
; 11 AnsiPos
; 3 Message
;
;
; ■ Functions used :
;
; 1 -
; 62 +
; 3 -
; 7 ==
; 7 <
; 4 <=
; 2 >
; 8 >=
; 15 !
; 8 &&
; 6 ||
; 3 Upper()
; 1 Space()
; 2 Chr()
; 2 Date()
; 2 Time()
; 6 U_Name()
; 2 NoChar()
; 1 StripAtx()
; 8 String()
; 1 Mask_Pwd()
; 1 Mask_Ascii()
; 2 CurConf()
; 2 PCBDat()
; 7 PPEPath()
; 5 PcbNode()
; 2 ReadLine()
; 5 AnsiOn()
; 1 GetY()
; 3 PPEName()
;
;------------------------------------------------------------------------------
;
; Analysis flags : BdH
;
; B - Brute hangup ■ 1
; Program hangup without notification. This may be a good way to
; disconnect a user, but if used randomly, may be very nasty
; ■ Search for : HANGUP, DTROFF
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 4 For/Next
; 0 While/EndWhile
; 5 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------