靶场简介:
dc-2和dc-1一样,五个flag,通过渗透取得,也是对新手设置,强力推荐vulnhub里的靶机,还是挺好玩的。
下载地址:https://www.vulnhub.com/entry/dc-2,311/
最好下载磁力连接,而后用百度网盘或者pandownload来下载
渗透过程:
有了上次的dc-1的经验,dc-2坐起来感觉轻松的许多,但是还是学到了很多新东西。打开虚拟机还是老样子,就是这个叫你登陆的页面。
那我也老样子吧,先去kali梭哈一波,会用的扫描全部用了再说,先拿到ip。
接下来上nmap
现在有这些信息:
ip:192.168.5.12
端口:80 #其实还开了一个端口,后面细说
cms:wordpress 4.7.10
中间件:apache 2.4.10
操作系统:linux
这里先去访问一下他的web端,看看什么样子。但是访问web端的时候发现他会自动跳转到 http://dc-2/
跳转到这个域名没解析啊,这个简单,去改一下hosts,记得bugku的web题里面有一道这种情况的。
访问过后拿到第一个flag,翻译过来的意思大概就是’你通常的字典可能不管用,所以你需要cewl;更多的密码肯定是更好,但是有时不一定会成功,登陆去下看一个flag,如果你不能找到,登陆另一个‘ ,这里提示我们要去登陆后台,而且要用到cewl工具。
先说cewl工具,cewl工具是一个密码生成工具,它会爬取网站生成字典,具体介绍看这篇文章,这里要去后台登陆,这里我们先去扫一下目录吧。这里用dirb扫一下:
好像默认的登陆地址就是这里。
ok,接下来我们就准备爆破吧,但是根据提示,我们要用cewl去爬取web端然后生成字典,但是用户名呢?这里再推荐一个工具,wpscan,专为wordpress搞的工具,可以扫插件,主题和相应的插件主题漏洞等,还可以枚举用户名,具体看这里
这里取枚举用户名,命令 wpscan --url "http://dc-2/" --enumerate u
结果:
admin,jerry,tom
接下来我们就用cewl去跑一个字典 cewl http://dc-2/ -w /root/1.dic
然后我们就用wpscan来爆破,这里当然也可以用hydra,还可以用burp的一个插件:Turbo Intruder,这个插件爆破是真的快。
这里还有一个问题,但你看了上面推那个文章时候,会发现他那里用密码字典是 --wordlist,但是我在我的kali是的命令是这个
可能是版本不同,这个不影响,爆破命令 -wpscan --url "http://dc-2/" -P /root/1.dic -U user.txt
拿到两个密码,admin的没有跑出来
这里拿去登陆一下,发现了flag2
找到flag2,翻译大概就是:‘如果你不能通过走接近攻击wordpress,这里有其他的一条路’,这个flag的其实应该是叫我们换个思路吧,我不知道提示是想叫我们干什么,接下来我用wpscan扫插件和扫主题,并且去网上搜了这个版本的漏洞都没有攻击成功,又跑去看wp发现居然还开放一个端口,而且是ssh服务!瞬间泪如雨下啊,都怪搜集信息的时候没收集全,就想着跟这flag走去了。
又跑去拿nmap扫一下:
发现上面显示服务不是ssh,但是肯定是ssh,这里我们再用nmap去探测一下版本,用-sV选项
现在对了,我们接下来用tom去登陆
成功的路,接下来又开始我们的提权之路,每次这都是我学习新知识的地方哈哈哈、
这里拿到shell后先ls,发现flag三,但是使用cat的时候发现奇怪的事情,
命令没找到!被限制了,关于rbash的知识,我偷了个懒,顺着别人的wp去找的文章,这里推荐写的很好的两篇
1)Linux Restricted Shell绕过技巧总结
2)Restricted Linux Shell Escaping Techniques
看完了又学到了新的招数,这里做一个小小的总结,也不是总结,就是从两位大佬那里照搬过来,他们tql
绕过方法
----收集环境信息
①检测可用的命令:两次TAB键或者列出文件和目录
②查看命令可否用root执行 sudo -l
③检查操作符 >,>>,<,|
④检查shell echo $SHELL
----常见绕过方法
①编辑器绕过,例如vi,ed,ne等
vi--- 方法vi进入编辑器命令模式
- :!/bin/bash
- :set shell=/bin/sh
:shell // 注意 ,这个要敲两次回车
ed--- ed进入编辑,接下来输入 !'/bin/sh/'
②less 和more命令 (相同效果)
less 和 more阅读页面时候,也会进入命令模式,键入q则会直接退出,如果键入 !'sh' 则会进入一个shell
less .bashrc(配置文件名) //这里后面读取任何文件应该都可以,尝试过1.txt 在里面键入命令一样成功
③man命令和pinfo命令
man --- 当你用man+命令的时候 例如 man ls 则会进入ls的手册,进入手册过后,和less/more一样的原理
此时也进入了相当于命令模式,按q则会直接退出,键入 !'sh'则会进入shell
④利用编程语言进入语言进入
awk -- awk 'BEGIN {system("/bin/sh")}'
python -- python -c 'import pty;pty.spawn("/bin/sh")'
perl -e 'system("sh -i")'; //执行不了命令,但是可以进入新的shell
⑤
--- 如果 / 被允许,我们可以直接运行 /bin/bash or /bin/sh
--- 如果 cp被允许,拷贝命令过来
cp /bin/bash kbash ./bash
cp /bin/sh ksh ./ksh
这里用vi编辑器就可以绕过:
忽略掉shell.txt 这里你想编辑什么都可以,vi过后会自动创建
成功进入,但是cat还是不行,但是我们明明是从-rbash 变到/bin/sh了啊?这是为什么?
是因为我们的变量还没有改,进去了过后还要导入变量,用export -p 查看
看看正常的
然后尝试更改,然后用 export -p 就会发现更改成功,并成功查看 flag3,如果单纯想查看flag3直接vi flag3也行
flag3提示我们要去找jerry,这里切换用户 su jerry 输入开始得密码,进去过后切换到jeryy的目录,然后查看到flag4
没什么好说的,flag再根目录里,现在我们要做的就是提权,把$ 编程#
sudo -l查看可用的命令
发现git命令是可用root身份使用的
这里直接去搜git提权,
按照它这个搞一下就成功了
至于这个的原理今天暂时不想肝了眼睛舒服,然后切换到root目录下找到最终的flag
总结:
1)这次学到了 rbash和rbash常见的绕过方法
2)假装暂时学会了git提权
3)wpscan和burp那个插件时真的顶,推荐大家可以去找来用一下
4)这两天一边学习,一边学技术真的难搞,很多时候真的不想学习想直接放开来学喜欢的东西,但是总是放不下,不想挂科,还有这两天都搞靶机了,没有去搞CTF,明后天准备搞搞实战,然后再搞搞靶机再去搞CTF吧,反正高校联赛我去也是菜,还没人组队!希望自己快点强大尽快加个组织吧!!!老天可怜我 yyan