麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PowerShell > 正文

PowerShell小技巧之獲取TCP響應(yīng)(類Telnet)

2020-03-26 19:15:05
字體:
供稿:網(wǎng)友

通常情況下,為了檢測(cè)指定的TCP端口是否存活,我們都是通過telnet指定的端口看是否有響應(yīng)來確定,然而默認(rèn)情況下win8以后的系統(tǒng)默認(rèn)是不安裝telnet的。設(shè)想一下如果你黑進(jìn)了一個(gè)服務(wù)器,上面沒裝telnet,但是為了進(jìn)一步滲透進(jìn)內(nèi)網(wǎng),需要探測(cè)內(nèi)部服務(wù)器特定端口是否打開,同時(shí)你還不愿意安裝telnet,擔(dān)心引起管理員注意。那么好吧,在這個(gè)情況下你需要我的這個(gè)腳本。由于它是原生態(tài)的PowerShell語句完成,木有telnet你也照樣能檢測(cè)TCP端口的情況了。

下面首先上代碼,后面進(jìn)行講解:

 

復(fù)制代碼 代碼如下:

        =====文件名:Get-TCPResponse.ps1=====
Function Get-TCPResponse {
<# Author:fuhj(powershell#live.cn ,http://fuhaijun.com)
        .SYNOPSIS
            Tests TCP port of remote or local system and returns a response header
            if applicable
        .DESCRIPTION
            Tests TCP port of remote or local system and returns a response header
            if applicable
            If server has no default response, then Response property will be NULL
        .PARAMETER Computername
            Local or remote system to test connection
        .PARAMETER Port
            TCP Port to connect to
        .PARAMETER TCPTimeout
            Time until connection should abort
        .EXAMPLE
        Get-TCPResponse -Computername pop.126.com -Port 110

 

        Computername : pop.126.com
        Port         : 110
        IsOpen       : True
        Response     : +OK Welcome to coremail Mail Pop3 Server (126coms[75c606d72bf436dfbce6.....])

        Description
        -----------
        Checks port 110 of an mail server and displays header response.
    #>
    [OutputType('Net.TCPResponse')]
    [cmdletbinding()]
    Param (
        [parameter(ValueFromPipeline,ValueFromPipelineByPropertyName)]
        [Alias('__Server','IPAddress','IP','domain')]
        [string[]]$Computername = $env:Computername,
        [int[]]$Port = 25,
        [int]$TCPTimeout = 1000
    )
    Process {
        ForEach ($Computer in $Computername) {
            ForEach ($_port in $Port) {
                $stringBuilder = New-Object Text.StringBuilder
                $tcpClient = New-Object System.Net.Sockets.TCPClient
                $connect = $tcpClient.BeginConnect($Computer,$_port,$null,$null)
                $wait = $connect.AsyncWaitHandle.WaitOne($TCPtimeout,$false)
                If (-NOT $wait) {
                    $object = [pscustomobject] @{
                        Computername = $Computer
                        Port = $_Port
                        IsOpen = $False
                        Response = $Null
                    }
                } Else {
                    While ($True) {
                        #Let buffer
                        Start-Sleep -Milliseconds 1000
                        Write-Verbose "Bytes available: $($tcpClient.Available)"
                        If ([int64]$tcpClient.Available -gt 0) {
                            $stream = $TcpClient.GetStream()
                            $bindResponseBuffer = New-Object Byte[] -ArgumentList $tcpClient.Available
                            [Int]$response = $stream.Read($bindResponseBuffer, 0, $bindResponseBuffer.count)
                            $Null = $stringBuilder.Append(($bindResponseBuffer | ForEach {[char][int]$_}) -join '')
                        } Else {
                            Break
                        }
                    }
                    $object = [pscustomobject] @{
                        Computername = $Computer
                        Port = $_Port
                        IsOpen = $True
                        Response = $stringBuilder.Tostring()
                    }
                }
                $object.pstypenames.insert(0,'Net.TCPResponse')
                Write-Output $object
                If ($Stream) {
                    $stream.Close()
                    $stream.Dispose()
                }
                $tcpClient.Close()
                $tcpClient.Dispose()
            }
        }
    }
}

 

首先創(chuàng)建一個(gè)System.Net.Sockets.TCPClient對(duì)象,去連接指定的域名和端口,瞬間斷開的那是服務(wù)器沒開那個(gè)端口,直接被拒絕了,如果沒拒絕,那就等著服務(wù)器端給你響應(yīng),然后讀取字節(jié)流拼接起來進(jìn)行解析。
最后需要強(qiáng)調(diào)的是需要對(duì)打開的流和TCP連接進(jìn)行關(guān)閉,以便釋放資源
調(diào)用方法如下:

復(fù)制代碼 代碼如下:

Get-TCPResponse -Computername pop.126.com -Port 110
 

 

PowerShell,技巧,獲取TCP響應(yīng),類Telnet

再對(duì)比一下telnet的結(jié)果

PowerShell,技巧,獲取TCP響應(yīng),類Telnet

結(jié)果是一樣的,以后沒有telnet也難不住大家了,have fun!^_^

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 369看片你懂的小视频在线观看 | 国产成人精品午夜视频' | 美女被免费网站在线软件 | 欧美性生交zzzzzxxxxx | 在线观看免费视频麻豆 | gril hd| 欧美乱码精品一区 | 国产精品999在线观看 | 久久男人视频 | 91久久久久久 | 欧美特黄一级高清免费的香蕉 | 欧美在线黄色 | 91在线视频精品 | av免播放 | 亚洲天堂午夜 | 国产91极品| 国产精品一区二区免费在线观看 | 99日韩精品视频 | 色av综合在线 | 国产成人高清在线观看 | 欧美a在线观看 | 九九热视频免费观看 | 国产v综合v亚洲欧美久久 | chinese乱子伦xxxx国语对白 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 | fc2国产成人免费视频 | 99精品视频在线导航 | 免费的毛片 | 日韩欧美电影一区二区三区 | 最新一级毛片 | 成人免费av在线播放 | 羞羞视频免费网站含羞草 | 蜜桃网在线 | 久久久久久中文字幕 | 少妇一级淫片免费放4p | 97久色 | 欧美a黄| 羞羞色院91精品网站 | 国产精品99久久久久久宅女 | 国产一级免费片 | 国产免费一区二区三区在线能观看 |