🐸Linux服务-SSH攻防

SSH是一种网络协议,用于计算机之间的加密登录。

#连接服务器
ssh root@123.123.123.123
 
#禁止询问过程
ssh -o StrictHostKeyChecking=no root@192.168.250.14
 
#远程执行命令
ssh root@192.168.250.14 "id"
 
#远程主机运行本地脚本
ssh root@192.168.250.14 /bin/bash < test.sh
 
#挂载远程目录
Centos7:yum install fuse-sshfs
Kali:apt install sshfs
sshfs 10.1.1.1:/data /mnt

配置文件

/etc/ssh/sshd_config

#首次登录不显示检查提示
StrictHostKeyChecking no
PermitRootLogin yes #ubuntu默认不允许root登录
PermitEmptyPasswords no #空密码连接
UseDNS yes #提高速度
GSSAPIAuthentication yes #提高速度,解决ssh登录缓慢的问题

常用选项

常用工具

密钥的登录

Pssh

基于python编写的自动化运维工具,但在2012 年 2 月 3已再不更新了。

安装:yum -y install pssh

场景:获得了内网10+台以上主机,但每一次都需要登录并执行whoami之后截图写报告;

plink

pscp非交互文件互传

pscp.exe是putty里面的一个工具,脱网的情况下利用这个工具上传其它工具。

X 协议转发

什么是X11-forwarding?

X11 中的 X 指的就是 X 协议;11 指的是采用 X 协议的第 11 个版本。

使用X Server开启图形化

隧道转发

什么是SSH隧道?

隧道是一种把网络协议封装进另外一种网络协议进行传输的技术,SSH隧道通常会绑定一个本地端口,所有发向这个端口的数据包,都会被加密并透明地传输到远端系统。

SSH隧道时所用到的一些选项具体用途说明

  • -C 压缩传输,加快传输速度

  • -f 在后台对用户名密码进行认证

  • -N 仅仅只用来转发,不用再弹回一个新的shell -n 后台运行

  • -q 安静模式,不要显示任何debug信息

  • -l 指定ssh登录名

  • -g 允许远程主机连接到本地用于转发的端口

  • -L 进行本地端口转发

  • -R 进行远程端口转发

  • -D 动态转发,即socks代理

  • -T 禁止分配伪终端

  • -p 指定远程ssh服务端口

本地端口转发

场景:边界Linux服务器,允许SSH登录访问,不想传任何代理工具的情况下使用SSH隧道代理。

问题:

  • 普通用户与root用户都可以吗?

    • 可以

  • SSH在这个过程中做了哪些事?

    • 加密、转发、解密、通讯

  • 缺点:每个服务都需要配置不同的端口转发

  • 优点:

    • 不用任何代理工具

    • 本地隧道是访问特定SSH客户机进行通信的过程,允许你连接到内网机器。

  • Cetnos7肉鸡:192.168.3.17 (外网)

  • 内网RDP:192.168.3.21 (内网)

  • Attack:192.168.3.20 (攻击者,外网)

Kali操作:

Kali操作:

远程端口转发

  • 缺点:

    • 每个服务都需要配置不同的端口转发

    • 容易被发现,通过ps、lsof等命令查看

    • 需要交互式终端

  • 问题:

    • 在肉鸡上连接外网VPS要给于普通权限用户,并且最好VPS是一次性使用,如vultr主机,用完就删。

    • 普通用户与root用户都可以吗?

      • 可以

    • 本地端口转发与远程的区别是?

      • 本地:我连接服务器,远程:服务器连接我

    • 如何在WebShell上不传任何工具,使用SSH隧道?

      • root权限,直接反弹shell,通过反弹的Shell来执行远程端口转发。

        • Apache权限,无法执行。

动态端口转发

Last updated

Was this helpful?