靶场整体 5 个 flag
开局进入网站存在第一个 flage
现在的打法是 Nday
目录爆破 端口扫描
Nday
打法比较吃知识面 你不联网的话很难发现历史漏洞除非有直接梭哈的工具,这里只是发现了这里是博客系统 Wordpress
, 首先尝试目录爆破看看有没有后台或者其他铭感路径信息
1 | dirb http://192.168.111.138 # 基本扫描 |
时间充裕的话每个都要去看一下重点 200
状态码
http://192.168.111.138/wp-admin/ 爆破出后台地址,那么就肯定要拿字典爆破后台,这里原题是可以用针对这个博客系统工具扫描出存在的用户和可疑密码 flag1
提示了,不知道话只能找本地的字典去爆破完成
利用 kali
工具 WPScan
是针对这个系统制作的工具,利用它可以枚举此系统存在的出用户名
1 | wpscan --url http://dc-2 -e u #-e:枚举;u:用户 不能用IP只能用网址 |
密码用 cewl
工具生成
1 | cewl http://dc-2/ -w dict.txt # 密码保存在这里 |
利用 BP
选择密码字典进行爆破 302
状态码用户名两个账户密码
1 | Username: jerry, Password: adipiscing |
登录后台得到第二个 flag
也提示我们不能利用后台做完剩下的只能寻找其他方式
nmap
扫描端口看看开放哪些服务 开放了远程登录 ssh
那么可以尝试利用上面得到的账户密码登录或者是用九头蛇选择字典再进行爆破
1 | nmap -p- -A 192.168.111.138 # -p-全端口 -A 综合扫描 |
九头蛇爆破的方式选择对应的账户字典和密码字典路径设定服务和端口就可以爆破
1 | hydra -L user.txt -P pass.txt 192.168.111.138 ssh -s 7744 |
题解是拿上面得到的登录。我逐个尝试利用了 tom
账户登录到了对方机器
1 | ssh tom@192.168.111.138 -p 7744 # 默认端口不是22所以要重新选择 |
看到有第三个答案但是权限不足查看不了, rbash
受限制的环境 只能执行某些指定命令 所以要逃离这个模式切换为 bash
会话;之前学习的 bash
反弹也是反弹这个会话
【渗透测试】--- rbash 逃逸方法简述 - CSDN 博客 文章浏览阅读 4.6k 次,点赞 11 次,收藏 65 次。一、rbash 简述 1. 什么是 rbash 它与一般 shell 的区别在于会限制一些行为,让一些命令无法执行 2. 如何设置一个 rbashcp /bin/bash/bin/rbash # 复制一个 bash,重命名为 rbashuseradd -s /bin/rbash test # 设置用户 test 登陆的 shell 为 rbashmkdir -p /home/tes https://blog.csdn.net/qq_43168364/article/details/111830233
尝试逃逸到正常的 bash
环境 下面文章也是这个靶场题解里面有逃逸的过程,思路是先看在 rbash
环境下还有哪些命令是可用的,在可用命令的基础上思路逃逸,发现 vi 命令可用那么写入 bash 会话就能成功逃逸
cat
看到第三个答案
DC-2 靶场搭建及渗透实战详细过程(DC 靶场系列)-CSDN 博客 文章浏览阅读 7.4k 次,点赞 26 次,收藏 68 次。DC-2 靶场渗透实战过程_dc-2 靶场 https://blog.csdn.net/l2872253606/article/details/125530924
第三个答案提示了要切换到另外一个 jerry
用户 切换后全局找带有 flag
文件名的文件,找到了 flag4
直接 cat
得到第四个答案,然后提示需要 GIT
提权,但是前期可用先尝试 SUID
提权
1 | su jerry |
简谈 SUID 提权 - FreeBuf 网络安全行业门户 SUID 提权 0x01 什么是 SUID SUID (Set UID) 是 Linux 中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有 SUID 权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是 SUID 权限的设置只针对二进制可执行文件,对于非可执行文件设置 SUID 没有任何意义. 在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. https://www.freebuf.com/articles/web/272617.html
提权步骤在前面文章最后提权完成在 jerry
基础上提权到了 root
权限用户全局搜索文件查看就得到了第五个 flag
1 | find / -name *flag* |