להתחבר לפורט TCP/UDP דרך VBS. ולא דרך TELNET - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

להתחבר לפורט TCP/UDP דרך VBS. ולא דרך TELNET


MaC_MaN

Recommended Posts

מישהו יכול אולי לתת לי כיוון של איך אני יכול להתחבר לPORT מסויים במחשב מרוחק ליראות רק עם הוא פתוח ולצאת?

וכמו שציינתי לא דרך TELNET כי הפורט הזה נותן STREAMING דרכו...

קישור לתוכן
שתף באתרים אחרים

אתה רוצה לבדוק אם מחשב מרוחק מאזין בפורט מסויים?

אם כן אז הדרך היחידה היא telnet. אתה פשוט צריך לכתוב קוד שיפתח טלנט מול אותו שרת בפורט המתאים (תראה בלינק הבא מה הם הפורטים הסטנדרטיים לכל שירות http://www.chebucto.ns.ca/~rakerman/port-table.html), ולראות שאתה יכול "לדבר" עם השרת.

בסופו של דבר גם המדיה-פלייר, כשאתה מתחבר לאיזה סטרימינג, פותח פורט מול שרת ומתחיל לדבר איתו.

אגב, אין כ"כ משמעות לtcp\udp אלו רק פרוטוקולים של תקשורת.

יש פה המון סקריפטים בvbscript לשטויות של תקשורת

http://3d2f.com/tags/telnet/vbscript/

קישור לתוכן
שתף באתרים אחרים

קודם כל תודה על העזרה...

אני מחפש רק איך להגיע לפורט ולצאת החוצה...

עכשיו התכנה ההיא מציפה את הטלנט...

אני יכול לעשות לו SENDKEYS ולצאת החוצה...

אבל אני מחפש משהו יותר שקוף...

משהו שרק הסקריפט עצמו יבצע עצמאית[br]פורסם בתאריך: 20.04.2009 בשעה 22:19:15


כך חשבתי על זה ואני יכול לעשות את זה....

הפיתרון הוא להתחבר לWMI

להריץ NETSTAT לחפש בפנים לאיזה פורטים הוא מאזין ולפלטר משם אותו...

הריי אני צריך לדעת האם הוא מאזין לו... לא יותר מזה... הFW בדרך לא חוסם אותו בטוח...

עכשיו השאלה היא האם אני יכול לעבוד עם StdOut בREMOTE COMPUTER לא דרך קריאת טקסט? (כמובן אחריי שיצרתי אובייקט של WMI)

אבל תודה על העזרה

קישור לתוכן
שתף באתרים אחרים

אתה רוצה עכשיו לשלוח שאילתות בWMI לשרת?

אתה יודע שגם פה צריך שהשרת בכלל יאפשר לך את זה, וכמעט ואין אדמינים של שרתים שיאפשרו דבר כזה (מישהו אמר חור באבטחה?...). ובכלל, מה אם השרת הוא לא מבוסס ווינדוס? אז אין לך בכלל WMI לתשאל.

אני לא יודע מה התוכנות ששלחתי עושות, כי לא באמת בדקתי. פשוט חיפשתי פשוט דוגמאות לtelnet עם vbscript.

העיניין הוא שהtelnet שממומש בתוך הווינדוס לא כזה מתאים לסקריפטים.

לדעתי מה ששווה לעשות זה שהסקריפט שלך יעשה את הtelnet בפורט המתאים לip המתאים, ואז תבדוק בפלט של השל הtelnet אם אתה לא מוצא את המחרוזת "cannot connect to..." (השגיאה שמקבלים במקרה שנשלח syn_sent ולא הוחזרה תשובה -> השרת לא מאזין או שיש חסימות תקשורת). אתה אתה מוצא את זה, אז הסקריפט נכשל, ואם אתה לא מוצא את זה, אז אתה יכול להחתחבר.

לדעתי יכול להיות הרבה יותר קל לכתוב קוד בc# שיפתח socket מול השרת בפורט המתאים, ולא להשתמש בvbscript.

קישור לתוכן
שתף באתרים אחרים

תיראה אני במקרה מכיר את השרת.

אני יודע שהWMI שלו פתוח,

בנוסף אני לא יודע C# אני יודע VBS לא סתם שאלתי לגביו.

אני רוצה סה"כ לדעת עם תוכנה מסויימת עושה את העבודה שלה ולא להכין סוג של פורט סקנר.

אבל תודה בכל מקרה הרעיון שלי עובד לי טוב :)

תודה על העזרה[br]פורסם בתאריך: 20.04.2009 בשעה 23:43:00


כך עשיתי וזה עובד יפה :)


' AUTHOR: Gawker,
'

Dim strHost, strService, strPort
strHost = "someHost" 'fill the host name to check
strService = "Service.exe"
strPort = "1024"

WScript.Echo strHost & " Is pingable: " & fncPing(strHost)
WScript.Echo strService & " Is running: " & fncProc(strHost,strService)
WScript.Echo strPort & " Is in Listening mode: " & fncConnect(strHost,strPort)

Function fncPing(strHost)
Dim cmdPing, strCommand
Set objShell = CreateObject("WScript.Shell")
strCommand = "cmd /c ping.exe -n 1 " & strHost
Set cmdPing = objShell.Exec(strCommand)
Do while cmdPing.StdOut.AtEndOfStream <> True
If (instr(cmdPing.StdOut.Readall,"Reply") <> 0) Then
'There is a ping from host
fncPing = "True"
Else
'There is no ping from host
fncPing = "False"
End If
Loop
End Function

Function fncProc(strHost, strService)
Dim strUsername, strPassword, boolReplay
boolReplay = False
strUsername = "GuruUser"
strPassword = "******"
Set objCon = CreateObject("WbemScripting.SWbemLocator") 'Create WmiLocator
Set objwmi = objCon.ConnectServer(strHost,"root\CIMV2",strUsername,strPassword) 'Connet to pc
Set colItems = objWMI.ExecQuery("Select * from Win32_Process",,48) 'Execuite SQL Query from wmi for process
For Each objItem in colItems 'Loop on all the process
If (LCase(objItem.Name) = LCase(strService)) Then 'Check if one of the objects is equal to the process name
boolReplay = True
fncProc = boolReplay 'return True/False
End If
Next
End Function

Function fncConnect(strHost,strPort)
On Error Resume Next
Dim objWMIService, objProcess
Dim strShell, objProgramm, objFso, objFile, strFileName
strFileName = "c:\temp\SomeHost.txt"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile(strFileName)
Set objWMIService = getobject("winmgmts://" & strHost & "/root/cimv2")
' Obtain the Win32_Process class of object.
Set objProcess = objWMIService.Get("Win32_Process")
Set objProgram = objProcess.Methods_("Create").InParameters.SpawnInstance_
objProgram.CommandLine =_
"cmd /c netstat -ano | find " & chr(34) & "LISTENING" & Chr(34) & "| find " & Chr(34) & ":" & strPort & Chr(34) & "> " & strFileName
'Execute the program now at the command line.
Set strShell = objWMIService.ExecMethod( _
"Win32_Process", "Create", objProgram)

WScript.Sleep 200
If objFso.FileExists(strFileName) = True Then
If objFile.Size <> 0 Then
fncConnect = True
objFso.DeleteFile strFileName
Else
fncConnect = False
End If
Else
WScript.Echo "Err"
End if
End Function

עכשיו שיניתי אצלי גם בפונקציה האחרונה שתקבל משתמש וסיסמא,

קישור לתוכן
שתף באתרים אחרים

למה כלכך ערבי? Winshock חשוף לחלוטין בVBS אתה פשוט יכול להתחבר לסוקט

Option Explicit

Dim oWinsock 'As OSWINSCK.Winsock
Dim sURL 'As String
Dim sPage 'As String
Dim sServer 'As String
Dim nPort 'As Long
Dim sBuffer 'As String
Dim sSource 'As String
Dim bClose 'As Boolean
Dim sProxy 'As String

'initialize variables
sURL = "": sPage = "": sServer = "": nPort = 80: sBuffer = ""
sSource = "": bClose = False
sProxy = "" 'enter HTTP proxy, if required

'prompt for URL
sURL = InputBox("Enter the URL", "OSWINSCK test", _
"[url]http://www.microsoft.com"[/url])

'parse URL
sServer = Trim(sURL)
If InStr(sServer, "://") > 0 Then _
sServer = Mid(sServer, InStr(sServer, "://") + 3)
If InStr(sServer, "/") > 1 Then
sPage = Mid(sServer, InStr(sServer, "/"))
sServer = Left(sServer, InStr(sServer, "/") - 1)
If InStr(sPage, "#") > 1 Then _
sPage = Left(sPage, InStr(sPage, "#") - 1)
Else
sPage = "/"
End If
If InStr(sServer, ":") > 1 Then
nPort = Mid(sServer, InStr(sServer, ":") + 1)
sServer = Left(sServer, InStr(sServer, ":") - 1)
End If

If sServer <> "" Then 'connect to the server
Set oWinsock = CreateObject("OSWINSCK.Winsock")
WScript.ConnectObject oWinsock, "oWinsock_"

If sProxy = "" Then
oWinsock.Connect CStr(sServer), CLng(nPort)
Else
sPage = "[url]http://"[/url] & sServer & sPage
oWinsock.Connect CStr(sProxy), 80
End If
Else
sSource "Invalid URL"
bClose = True
End If

Sub oWinsock_OnClose()
oWinsock.CloseWinsock
WScript.Echo sSource

bClose = True
Set oWinsock = Nothing
End Sub

Sub oWinsock_OnConnect()
oWinsock.SendData "GET " & sPage & " HTTP/1.0" & vbCrLf & vbCrLf
End Sub

Sub oWinsock_OnDataArrival(ByVal bytesTotal)
oWinsock.GetData sBuffer
sSource = sSource & sBuffer
End Sub

Sub oWinsock_OnError(ByVal Number, Description, _
ByVal Scode, ByVal Source, ByVal HelpFile, _
ByVal HelpContext, CancelDisplay)
WScript.Echo Number & ": " & Description
oWinsock.CloseWinsock
End Sub

While Not bClose
WScript.Sleep 1
Wend

זאת סתם דוגמא למשיכת קובץ HTML משרת, אבל אתה מבין שאין שום בעיה לבדוק אם הסוקט פתוח או לא, בלי להתחבר בWMI לשרת מרוחק ולעשות פארסינג לפלט מ-CMD... זה מזכיר לי סקריפטים שהייתי רואה בצבא, מגוחכים בערביות שלהם, לא קשורים לשום דבר, עובדים פרט למקרי קיצון וימי שלישי, וצריך היה לשבור למי שבחר לעבוד ככה את היידיים...

קישור לתוכן
שתף באתרים אחרים

קודם כל תודה.

שנית כל אני מכיר רק את הדרך הזאת...

אם הייתה מסביר מההתחלה על הקטע של WINSOCK בתוך VBS יש מצב שהייתי זורם עם זה...

אבל.

לא מעניין אותי הSTREAMING עצמו מעניין אותי אם ההוסט עונה, אם רץ לו סרביס מסויים, ואם הפורט פתוח.

זאתי דרך מעניינת לעשות אותה לא הכרתי את זה.

שנית כל היא תלויה בOCX מסויים שאין לי אבל בוא נומר סבבה שהוא יותקן.

וחוץ מזה אהבתי אולי אני יוכל לעשות עם זה דברים בעתיד :) COPY PAST :*)

דרך אגב רציתי לכתוב אותו לבד ולא שמישהו יוציא לי מגוגל :)

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...