靶机介绍:
DC系列的靶机是一个专门构建的易受攻击的实验室,总共有九个!目的是获得渗透测试领域的经验。它的设计初学者是一个挑战,但是它的难易程度取决于您的技能和知识以及学习能力。要成功完成此挑战,您需要具备Linux技能,熟悉Linux命令行以及具有基本渗透测试工具的经验,例如可以在Kali Linux或Parrot Security OS上找到的工具。有多种获得根的方法,但是,我包括了一些标志,这些标志包含了初学者的线索。总共有五个Flag,但是最终目标是在root的主目录中找到并读取该标志。您甚至不需要成为root用户即可执行此操作,但是,您将需要root特权。根据您的技能水平,您可能可以跳过查找大多数这些标志并直接获得root资格。
渗透过程:
工具kali
打开DC -1 靶机后需要登陆,这里我们是不知道账号密码的,要通过其他方法找flag。
用netdicover 去探测局域网里的存活的ip
我的dc时用vmware开的,这里就是他了。
或者这里用namp探测
接下来对这个ip扫一通 nmap -A 192.168.5.44
整理一下:
端口:
1)22/ssh :可以尝试暴力破解
2)80/http: 有web端
中间件:apache 2.2.22
cms:drupal(php的cms)
3)111
目前的思路:
1)尝试ssh
2)尝试查找该cms的漏洞并利用
这里先尝试思路2,一般我都把爆破放在最后,感觉这是没有办法的选择
用msf搜一下
msfconsole
searche Drupal
尝试最新的那个进行攻击
成功了!!拿到会话!
输入shell计入session
接着要用python模拟一个终端
python -c 'import pty;pty.spawn("/bin/sh")'
接下来开始提权之路:
ls看一看目录
找到flag1.txt
翻译了一下,”每个好的cms都需要配置文件“,所以我们去找一找他的配置文件,这里去百度一下
在 /sites/default/ 里面的settings.php 拿到第二个flag
翻译过来大概就是,
暴力破解不是唯一的方式,你能用这个配置文件做什么?
这个文件里得到mysql的账号和密码,拿去登陆一下
接下来对查询表里的数据,这里想到去查查账号密码然后去网站后台登陆看一看
看到admin和加密过后的密码,这里得密码采用了drupal独特的加密方式,我想验证的时候也是吧,这里直接尝试改密
可参考这篇文章 :https://www.isfirst.net/drupal/drupal-reset-password
那么 只要我们用已知的加密后的字符串去替换然后去登陆就行了,这里就采用文章里的123456
update drupaldb.users set pass='$S$DRIG34Wb.GK3EKVBYBYN6rO.uyMkf1re4u8f/FjDRmGBRY30x3S4' where name='admin';
然后去登陆web端,找到flag3
提示用exec,但不知道有什么用,我们回到kali,去看看passwd目录
找到flag4,在home目录下,去康康
提示说,在根目录下也有flag,要我们用同样的方式去查看,所以接下来要提权去看/ root 下的flag
这里说一个知识点,当
是 $ 时候,表名普通用户,是#表明是root用户,根用户
这里用到find 提权 ----https://man.linuxde.net/find
------- find命令是在指定目录下查找文件,并返回查找到的子目录和全部文件。
有意思的是fand命令有一下这两个选项
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;// 如果执行指令是由root执行,那我们补就相当于拥有了root权限
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-true:将find指令的回传值皆设为True;
所以我们只要在目录下创建一个文件,然后再find,这样他返回就回ture再执行命令,或者直接再后面添加 -ture选项
注意这里我们去tmp目录下创建文件,因为tmp是存放临时文件,所有用户组都有权限,
接下来用find命令查看权限 find test -exec "whoami" ;
这个是root权限执行,所以用root创建一个终端
注意看,$变成了#,成功获得了root权限,接下来去拿flag
小结:
1)还是挺难的,虽然这是对新手,但是对我来说,提权真的是很新很新的知识,以前一直都是接触web端的漏洞,学到了很多。
2)还有,当有时候,还是尽量谷歌,不要百度,比如今天我寻找find命令选项和参数时,百度了很久没有找到满意的答案,结果谷歌第一项就看到了我想要的东西。