• XSS.stack #1 – первый литературный журнал от юзеров форума

Parse AdFind results

Guest

Премиум
Пользователь
Регистрация
31.01.2023
Сообщения
250
Решения
1
Реакции
232
Гарант сделки
1
Screenshot_1.png

Visual basic script to parse AdFind results on windows.
Код:
Option Explicit

Dim OUTPATH, F1INPATH, F2INPATH, F2OUTPATH
OUTPATH = "sorted"
F1INPATH = "ad_computers.txt"
F2INPATH = "ad_users.txt"
F2OUTPATH = "ad_users_result.txt"

If Not FolderExists(OUTPATH) Then
    CreateFolder OUTPATH
End If

Call ParseComputers(F1INPATH, OUTPATH)

Call ParseUsers(F2INPATH, OUTPATH, F2OUTPATH)

Sub ParseComputers(F1INPATH, OUTPATH)
    Dim fso, inputFile, line, OSPATH, tmp
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    If Not fso.FileExists(F1INPATH) Then
        WScript.Echo "Error: File " & F1INPATH & " does not exist."
        Exit Sub
    End If

    Set inputFile = fso.OpenTextFile(F1INPATH, 1)

    Do Until inputFile.AtEndOfStream
        line = inputFile.ReadLine
        If Left(line, 17) = ">operatingSystem:" Then
            OSPATH = Mid(line, 18)
        End If

        If Left(line, 13) = ">dNSHostName:" Then
            If Left(OSPATH, 14) = "Windows Server" Then
                WriteToFile OUTPATH & "\SERVERS.txt", Mid(line, 14)
                tmp = Split(OSPATH, " ")
                WriteToFile OUTPATH & "\" & Join(TempArray(tmp, 3), " ") & ".txt", Mid(line, 14)
            Else
                WriteToFile OUTPATH & "\WORKERS.txt", Mid(line, 14)
                tmp = Split(OSPATH, " ")
                WriteToFile OUTPATH & "\" & Join(TempArray(tmp, 2), " ") & ".txt", Mid(line, 14)
            End If
        End If
    Loop

    inputFile.Close
End Sub

Sub ParseUsers(F2INPATH, OUTPATH, F2OUTPATH)
    Dim fso, inputFile, line, DECR, ACCNAME
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    If Not fso.FileExists(F2INPATH) Then
        WScript.Echo "Error: File " & F2INPATH & " does not exist."
        Exit Sub
    End If

    Set inputFile = fso.OpenTextFile(F2INPATH, 1)

    Do Until inputFile.AtEndOfStream
        line = inputFile.ReadLine
        If Left(line, 13) = ">description:" Then
            DECR = Mid(line, 14)
            DECR = TrimDescription(DECR)
        End If

        If Left(line, 16) = ">sAMAccountName:" Then
            ACCNAME = Mid(line, 17)
            ACCNAME = TrimDescription(ACCNAME)
            WriteToFile OUTPATH & "\" & F2OUTPATH, ACCNAME & ":" & DECR
        End If
    Loop

    inputFile.Close
End Sub

Sub WriteToFile(FilePath, content)
    Dim fso, file
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    If Not fso.FileExists(FilePath) Then
        Set file = fso.CreateTextFile(FilePath, True)
    Else
        Set file = fso.OpenTextFile(FilePath, 8, True)
    End If
    
    file.WriteLine content
    file.Close
End Sub

Function FolderExists(FolderPath)
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    FolderExists = fso.FolderExists(FolderPath)
End Function

Sub CreateFolder(FolderPath)
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateFolder FolderPath
End Sub

Function TrimDescription(str)
    TrimDescription = Trim(str)
    If Right(TrimDescription, 1) = Chr(13) Then
        TrimDescription = Left(TrimDescription, Len(TrimDescription) - 1)
    End If
End Function

Function TempArray(arr, count)
    Dim temp(), i
    ReDim temp(count - 1)
    For i = 0 To count - 1
        temp(i) = arr(i)
    Next
    TempArray = temp
End Function
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх