
vulnhub-DC9靶场复盘
端口扫描/信息收集
先nmap扫描本机 发现靶机的地址 (这里虚拟机的网络都要用桥接模式,扫描本机网段)
靶机一般是最后数字大的 192.168.240.171
接着扫描靶机 发现有两个端口 22 和 80 22还是被防火墙过滤的
用dirsearch -u [ip] 扫描目录 –> 最后什么都没有扫到
web探测
发现有一个登录界面 用户名是admin 用bp爆破无法得到正确的密码
并且search有一个输入框
这个搜索框是一个post请求 在这里可以使用sqlmap进行sql注入
在这里我们使用-u 和 –data “search=1” 这里是post类型注入 自动画操作再加上–batch
查询之后 在上一条指令后面加上–dbs就可以查到数据库
一步一步扫描 刚才是数据库 现在就是指定数据库 查表 后面就是查列
-D users –tables - T *** –columns
现在要查询用户名和密码字段 用-C “username,password” –dump
找到一系列用户名和密码
然后我们定位到csv文件里 用awk 做一个分割 分别存进user.txt pass.txt
现在这里没有类似admin之类的用户 我们现在去另外一个数据库里继续查询
然后可以发现一个admin用户 将md5放在网站中破解
得到密码之后 可以登录网站的manager界面 在添加记录这里尝试添加’ # 看看有没有报错
发现在邮箱这边确实会出现报错
同时还可以看到不存在 –> 文件包含漏洞
下一步就要用web登录到服务器
我们在url这里输入?file= ../../etc/passwd 一直尝试相对路径
接着用bp来获取他的真实路径 在bp浏览器中登录管理员账户
在bp包中把file=后面加上$ 然后在payload里面加上相对路径
根据返回的长度就可以得到真实路径
然后我们到真实的路径下面 因为知道有ssh服务 所以可以查看ssh配置文件 发现不允许root登录 listen也没有配置
因为之前我们知道22端口被防火墙过滤了 我们猜测有knockd服务 在/proc/sched_debug 里面可以看到所以配置的服务
把这些信息都放到kali a.txt 用正则表达式过滤 cat a.txt | egrep ‘[a-zA-z]+’ 这样子可以搜索服务 -o输出匹配内容 在sort排序 (还可以uniq去重) 发现有knockd这个服务
然后访问etc/knockd.conf
可以看到knock服务的访问顺序是 9842 8475 7469 然后用nc或者kali自带的knock(注意没有d来访问
然后我们就发现这个22端口现在已经开放了
现在用刚才的user 和 pass文件 用hydra爆破
hydra -L user.txt -P pass.txt ssh://192.168.240.171
提权
然后拿到一些普通用户 我们进去看看有什么文件
登录之后没有发现什么任何文件
我们要输入sudo -l 查看是否有什么文件夹有root权限 发现这个用户什么都没有
登录到最后一个账户里面发现有一个新的文件 里面有新的密码
把这些密码放到pass.txt 中 再用hydra 跑一遍
登入到新的用户
输入root -l 之后发现有一个root组的文件
这个脚本接受两个参数 读第一个文件的内容 然后添加到第二个文件里
我们现在就加到etc/sudoers 添加权限 现在就新建一个文件夹 然后添加root的权限(ALL=(ALL:ALL) ALL)
这里我们要在主文件夹下面写这个文件 因为刚才test脚本在的地方是有root权限的
然后用刚才的脚本把a.txt 写入 etc/sudoers
输入sudo su -
解决!!
1 | codeblock |