[TIP] Puertos, Tareas, Servicios - Viendo un poco lo que pasa con el TCP

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 19985

    [TIP] Puertos, Tareas, Servicios - Viendo un poco lo que pasa con el TCP

    Muchas veces se necesita saber paa investigar que está pasando o que tenemos instalado, o incluso para descubrir un potencial bicho, que puertos están abiertos en nuestro sistema, que tarea lo ha hecho, y si es un servicio, cual es realmente el serivico y no el nombre del lanzador genérico (svchost.exe).

    He creado este .cmd, copiáis el texto inferior a un archivo, por ejemplo psvc.cmd, lo ejecutáis en consola de comando y veis que es lo que sale

    Lo considero muy útil siempre para una "investigación"

    Código:
    @echo off
    setlocal enabledelayedexpansion
    
    if not exist "%temp%" md "%temp%" 2>&1
    del "%temp%\puertos.tmp" >nul 2>&1
    tasklist /svc> "%temp%\tareas.tmp"
    del "%temp%\tareas1.tmp" >nul 2>&1
    
    for /f "usebackq skip=4 tokens=* delims=" %%m in ("%temp%\tareas.tmp") do (
      set kl=%%m
      if "!kl:~32,1!" EQU " " (
           set kl=!kl:~,31!:!kl:~33,1!:!kl:~34!
          ) ELSE (  
              if "!kl:~31,1!" EQU " " (
                  set kl=!kl:~,30!:!kl:~32,2!:!kl:~34!
               ) ELSE (
                       if "!kl:~30,1!" EQU " " (
                          set kl=!kl:~,29!:!kl:~31,3!:!kl:~34!
                       ) ELSE (
                               if "!kl:~29,1!" EQU " " (
                                  set kl=!kl:~,28!:!kl:~30,4!:!kl:~34!
                               ) ELSE (
                                       if "!kl:~28,1!" EQU " " set kl=!kl:~,27!:!kl:~29,5!:!kl:~34!
                                       )
            )))
    echo !kl! >> "%temp%\tareas1.tmp"              
    
    )
    
    set dl=:                          =
    
    for /f "usebackq skip=4 tokens=1,2,3,4,5,6,7 delims=: " %%f in (`netstat -naop TCP ^& netstat -naop UDP ^| find "LISTENING"`) do if "%%h" NEQ "]" if "%%l" NEQ "0" (
        set sv=
        set sz1=%%h%dl% & set sz3=%%l%dl%
        for /f "tokens=1,2 delims=:" %%s in ("!sz1:~,6!") do set sz1= %%t%%s
        for /f "usebackq tokens=1,2,3 delims=:" %%m in ("%temp%\tareas1.tmp") do if %%l == %%n (
            set sz2=%%m%dl%
            set sv1=%%o
            if "!sv1:~,4!" NEQ " N/A" if "!sv1:~,4!" NEQ " N/D" set sv=%%o
        )
        for /f "tokens=1,2 delims=:" %%s in ("!sz2:~,26!") do (set sz2=%%s%%t & set sz2=!sz2:~,25!)
        for /f "tokens=1,2 delims=:" %%s in ("!sz3:~,6!") do echo !sz1! !sz2! %%t%%s  %%f !sv! >>"%temp%\puertos.tmp"
    )
    
    echo.
    echo Puertos en escucha en el sistema
    echo.
    echo Puerto        Programa            PID   Pro        Servicio
    echo ------ ------------------------- -----  ---  --------------------
    
    set iant=
    for /f "tokens=* delims=" %%i in ('SORT "%temp%\puertos.tmp"') do if %%i NEQ !iant! echo %%i & set iant=%%i
    
    echo.
    del "%temp%\puertos.tmp" >nul 2>&1
    del "%temp%\tareas.tmp" >nul 2>&1
    del "%temp%\tareas1.tmp" >nul 2>&1
    
    endlocal
    
    REM pause
    goto :EOF
  • noSign
    Super Moderator
    • Dec
    • 4186

    #2
    psvc.cmd > C:\log\psvc.txt

    Es mas cuco y tabulado que usando a pelo netstat

    Comentario

    • Jovilla
      Senior Member
      • Dec
      • 521

      #3
      ¿Cómo lo ves...?
      Archivos Adjuntos

      Comentario

      • jmtella
        Administrator
        • Nov
        • 19985

        #4
        Originalmente publicado por noSign Ver Mensaje
        psvc.cmd > C:\log\psvc.txt

        Es mas cuco y tabulado que usando a pelo netstat
        Añadele en la tercera línea:

        Código:
        if not exist "%temp%" md "%temp%"
        Ya que en los server 2019 hace una historia rara con la carpeta temp desde terminal services…

        Edito: se lo he añadido al script del primer mensaje..

        Comentario

        • noSign
          Super Moderator
          • Dec
          • 4186

          #5
          Originalmente publicado por Jovilla Ver Mensaje
          ¿Cómo lo ves...?
          No viene mal que hagas un netstat -b a quien se conecta WpnService
          61667 svchost.exe 3048 TCP WpnService

          En mi caso a Microsoft Dublin
          TCP 192.168.1.17:2192 40.67.251.134:https ESTABLISHED WpnService


          Comentario

          • jmtella
            Administrator
            • Nov
            • 19985

            #6
            Originalmente publicado por noSign Ver Mensaje

            No viene mal que hagas un netstat -b a quien se conecta WpnService
            61667 svchost.exe 3048 TCP WpnService

            En mi caso a Microsoft Dublin
            TCP 192.168.1.17:2192 40.67.251.134:https ESTABLISHED WpnService

            tcpvcon y como parámetro el PID que te haya devuelto el script que he puesto, es mucho mas rápido que un netstat .b para ver quien es el remoto al cual está conectado.

            tcpvcon es uno de los comandos de SysInternals...

            Comentario

            • Jovilla
              Senior Member
              • Dec
              • 521

              #7
              Efectivamente conecta con 40.67.252.206 que corresponde a Microsoft Irlanda
              Archivos Adjuntos

              Comentario

              Trabajando...
              X