• PowerShell尝试ssh登录


    上篇文章介绍了通过PowerShell尝试登录ftp,本文中将会向大家介绍如何通过PowerShell尝试Linux SSH登录。由于Linux登录大多是通过SSH的模式进行登录的,渗透测试时扫描到22端口监听有SSH,可以通过社工收集管理员相关信息编制字典,如果能有脚本可以基于字典对Linux进行用户名和密码的尝试,将会在渗透测试时起到很重要的作用。

    在PSNet程序集中继续进行扩展,在$env:PSSpace/PSNet/TCPOp/下创建Invoke-SSHLogin.ps1脚本用于在传入指定ssh地址、用户名和密码后返回是否登录成功。

    在$env:PSSpace/PSNet/下创建Lib目录用于存放在脚本中需要使用的第三方库,由于在本文中需要引用Renci.SshNet.dll用户可以从http://sshnet.codeplex.com/releases/view/72214中下载程序,解压后将文件放置在$env:PSSpace/PSNet/Lib中用于后续的调用。

    在$env:PSSpace/PSNet/PSNet.psm1添加对刚下载的程序集的引用,并添加对Invoke-SSHLogin.ps1脚本的引用,在PowerShell启动时同时加载并初始化函数。

    [void][reflection.assembly]::LoadFrom((Resolve-Path "$env:PSSpace/PSNet/Lib/Renci.SshNet.dll"))
    . $env:PSSpace/PSNet/TCPOp/Invoke-SSHLogin.ps1

    上述两条语句,第一条用于获取Dll文件的绝对位置,并将dll文件 引用到当前session中。

    接下来定义此函数中的相关参数:

    -Site参数用于指定要尝试密码的SSH主机域名或IP,此参数必须
    -User参数用于指定登录时使用的用户名,此参数必须
    -Pass参数用于指定登录时使用的密码,此参数必须

    此脚本文件加载后的调用方式如下:

    Invoke-SSHLogin -Site localhost -User fuhj -Pass P@ssWorD

    执行效果图如下:

    invoke-sshlogin 

    能看到例子中,选择了正确的主机名,用户名和密码后登录成功了,而输入错误的用户名和密码以及输出不存在监听的主机名时均报错了.为了保证服务器和用户名密码的安全,对于存在的主机已经通过处理抹去了主机名用户名和密码了.

    源代码如下:

            =====文件名:Invoke-SSHLogin.ps1=====
    Function Invoke-SSHLogin{
    Param(
          [parameter(Mandatory = $true)]
          [string]$Site = "localhost",
          [parameter(Mandatory = $true)]
          [string]$User = "Anonymous",
          [parameter(Mandatory = $true)]
          [string]$Pass = "hello@world",
          [int]$Port=22
    )
    
    Write-Host "Try to Login ssh..."
    
    # Do directory listing
    $SSHreq = New-Object Renci.SshNet.SshClient($Site,$Port,$User,$Pass)
    
    try
    {
        $SSHreq.Connect()
        if ($SSHreq.IsConnected) {
        $cmd = $SSHreq.RunCommand("ps aux")
        $output = $cmd.Result.Split("`n")
        $success = $true
        Write-Host "Login Succed" -BackgroundColor green -ForegroundColor yellow
        }
    $cmd.Dispose()
    $SSHreq.Disconnect()
    $SSHreq.Dispose()
    }
    catch
    {
       Write-Host "FAILED: $_"  -BackgroundColor red -ForegroundColor black
       $success = $false
    }
    }

    作者: 付海军
    出处:http://fuhj02.cnblogs.com
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接且保证内容完整!否则必究法律责任!
    个人网站: http://txj.shell.tor.hu/

  • 相关阅读:
    zTree 优秀的jquery树插件
    The underlying provider failed on open 问题解决
    HTML 5 <input> list 属性
    C#拖曳控件加载,bll报错问题
    把VS2010的智能代码提示和注解从英文变成中文
    progressBar的使用
    C++内存读写例子
    bash 管理小脚本
    KVM虚拟机配置笔记
    Ettercap 实施中间人攻击
  • 原文地址:https://www.cnblogs.com/fuhj02/p/2745701.html
Copyright © 2020-2023  润新知