渗透DC-9
2022年4月4日星期一和4月5日星期二
参考资料:
https://www.bilibili.com/video/BV1Tu411X7qV?share_source=copy_web
https://blog.csdn.net/JSH_CDX/article/details/105257482
https://zhuanlan.zhihu.com/p/336468138
https://blog.csdn.net/crisprx/article/details/103985898
目标:
根据http://www.vulnhub.com中的靶机描述,目标是获取root权限和获取一个旗子。
环境:
在VMware的桥接模式下的一台kali和DC9,kali的浏览器是火狐,在进行到中间部分由于物理
环境变化,VMware换了nat模式,所以改变了IP,但是没什么影响。
过程:
IP确定
扫描目标所在的网段,发现很多Ip:
这里再虚拟机的网络适配器高级设置中查看目标的mac地址确定IP。
一个一个看太麻烦,所以把扫描结果写入一个文件。
然后vim打开这个文件,输入 /关键字 搜索,可知目标地址是172。
端口扫描
对172详细扫描,发现这是一台Debian的Linux,开启了ssh远程登录和http web服务
ssh的状态是filtered。
进入web网页
尝试进入目标的web网页。
此网页面有许多用户,和地址栏显示,php说明这个网页大概率是用php编写。
有个搜索页面,在这个页面中点击搜索发现地址栏没有参数传递,推测表单提交方式是post。
拦截请求
一般来说,搜索,登录、查询之类的地方容易存在sql注入漏洞,测试这个搜索栏:
输入内容点击搜索,然后使用burp suite拦截请求。
在开始菜单,web应用中找到burpsuite:
暂时关闭代理-拦截中的拦截功能:
把代理-选项的监听地址改为kali接口的地址:
然后进入网页执行搜索操作,
然后在代理-http历史中查看,啥也没有(本来应该有监听到请求记录)。
换个方式,进入目标网页,然后进入web开发者模式,点击network,然后在目标网页的搜索栏中输入1搜索
开发者工具中出现结果,翻阅查看信息,发现result.php的Request中出现关键信息search=1。
枚举数据库
在终端输入以下命令枚举数据库。
枚举到数据库类型是MySQL和发现3个数据库,information_schema是数据库系统自
带的数据库所以重点查看Staff和users。
先枚举users的数据表:
只有一张表:
脱库(枚举这张表的数据):
有用信息是username和password字段:
提取关键信息:
显示数据已保存到/root/.local/share/sqlmap/output/192.168.43.131/dump/users/UserDetails.csv
查看文件内容:
这个文件的路径太长,复制一份到/opt。
用cat命令分割数据,以,为分隔符,截取第2列
成功分割,用重定向生成username字典
再生成password字典
枚举Staff的数据表
发现两个数据表
根据表名分析,StaffDetails是员工信息,Users是用户信息,所以枚举Users的字段。
分析这是一个存储用户名和密码的表
枚举Users
枚举到数据库内容是admin和密码
脱库(枚举此表中的数据),枚举过程中选y,sqlmap会调用自带工具枚举密码
得到用户名和密码
尝试ssh登录,被拒绝。
漏洞挖掘
在目标网页上用admin登录,显示文件不存在,猜测有文件包含漏洞
尝试手动给这个路径传参,测试出至少需要4个../就可获取到passwd文件(从这开始换了物理环境
所以桥接模式改为nat模式,所以换了IP,没啥影响)。
关于knockd服务
但是最关键的文件在本地文件并不常见,那就是/etc/knockd.conf文件这个文件是配置好端
口敲门服务后产生的,关于端口敲门,有如下说明:
如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)
将服务器隐藏起来、不让黑客看见的一种方法是使用knockd。knockd是一种端口试探服务器工具。它侦听以太网或
其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口
发送TCP或数据包来启动端口命中。
端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务使用自定义的一系
列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来关门
将端口关闭,不对外监听。进一步提升了服务和系统的安全性。
换句话说,如果知道自定义的端口,逐个进行敲门这样我们就能够开启SSH端口从而进行连接
所以利用LFI来查看knock.conf文件配置,得到自定义端口。
输入/proc/sched_debug查看靶机的任务调用情况
发现开启了knockd服务。
输入/etc/knockd.conf,得到敲门端口的顺序。
开启ssh端口
依次敲击这3个端口(手速要快)
也可用下面这条语句替换上面三条
查看目标的ssh端口,已是开放状态。
爆破ssh
使用hydra用获取的username和password进行爆破
发现3组可用账户
分别登录3个用户。
查找内容
分别查看3个用户的家目录下的内容
发现janitou用户多了一个隐藏文件,查看这个文件
显示是一个目录,进入这个目录,查看内容,只有一个文件
查看文件内容,根据文件名推测这应该是密码
退出ssh,用scp把文件复制到本地
把文件内容追加入刚刚创建的password字典里,然后查看内容,确认一下,有空回车,但是应该不影响。
继续ssh爆破
发现一个新用户
用新用户ssh登录。
提权操作
查看sudo可以执行的命令,发现可以不用密码执行一个test文件。
运行这个文件提示使用python test.py带参数执行。
用find查找这个文件
进入文件查看内容,分析代码可知这个文件的功能是读取文件1的内容然后写入到文件2、、
获取root
写一个授权文件:fredf用户可以在all地方以root不需密码执行all命令。
被拒绝,换一个目录,写入成功。
执行有root权限的test,把刚刚写的授权文件写入/tec/sudoers。
尝试切换到root
切换成功
查看root家目录
打开这个文件
Nice work!! |