【DC-9靶场渗透】

文章目录

前言

一、确定靶机地址

二、信息收集

三、寻找漏洞

四、进一步漏洞挖掘

五、关键文件

六、ssh爆破

七、提权

总结


前言

马上过年了,年前再做一下DC靶场最后一个靶机。


一、确定靶机地址

1、可使用arp-scan命令

靶机地址为:172.16.100.109

二、信息收集

1、nmap探测开放端口及服务

开放了80端口,22端口为filtered状态,可能有防火墙也可能关闭。

2、访问http服务

三、寻找漏洞

此页面有许多用户名,和地址栏显示.php说明这个网页大概率是用PHP编写

注意到这里有个search.php,并且有个搜索框,可能是POST提交方式,抓一下包,看看能不嫩sql注入

可以看到参数search很可能存在sql注入,直接用sqlmap扫描

sqlmap -r search -p search --batch --dbs
sqlmap -r search -p search --batch -D "users" -T "UserDetails" -C "id,username,password" --dump

最后查看到users表中的数据

我们可以将文件内容分割 出来,形成用户名和密码字典。

同时查看另一个数据库Staff

同样在users表中发现了数据,是admin的账户和密码hash值,用MD5破解一下

得到账户密码:admin/transorbital1

但是尝试ssh登录失败。

四、进一步漏洞挖掘

使用admin账户登录页面,但是提示页面不存在,猜测是否有文件包含漏洞

尝试使用fuzz模糊测试,测试参数找到/etc/passwd文件,此处需要网站的cookie,登录网站抓包即可获取

wfuzz -b 'PHPSESSID=nfhibu50l40lmh7g4p989k5u0s' -w /usr/share/wfuzz/wordlist/general/common.txt --hw 100  http://172.16.100.112/manage.php?FUZZ=../../../../etc/passwd

可以看到参数为file,尝试访问一下

五、关键文件

关于knockd服务

但是最关键的文件在本地文件并不常见,那就是/etc/knockd.conf文件,这个文件是配置好端口敲门服务后产生的,关于端口敲门,有如下说明:

如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)。将服务器隐藏起来、不让黑客看见的一种方法是使用knockd。knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。

端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

换句话说,如果知道自定义的端口,逐个进行敲门,这样我们就能够开启SSH端口,从而进行连接,所以利用文件包含漏洞来查看knock.conf文件配置,得到自定义端口。

输入/proc/sched_debug查看靶机的任务调用情况,发现开启了knockd服务

输入/etc/knockd.conf,得到敲门端口的顺序

nmap -p 7469 172.16.100.112
nmap -p 8475 172.16.100.112
nmap -p 9842 172.16.100.112

再探测一下端口

这里尝试几次不行可以重启靶机,前后IP有变化不用在意

六、ssh爆破

前面我们利用搜集的信息已经形成了用户名和密码字典,使用hydra工具进行登陆测试

hydra -L users -P password 172.16.100.113 ssh

发现有三个用户可以ssh登录

后续我们可以都登陆一下,查看各自账户里的文件信息

最终对比发现,janitor用户有一个密码.txt 

我们将密码内容复制到之前的密码本中,再次进行爆破尝试

发现一个新用户可以ssh登录

使用新用户进行登录

七、提权

查看sudo可以执行的命令,发现可以不用密码执行一个test文件

运行这个文件提示使用python test.py带参数执行

找一下这个文件

进入文件查看内容,分析代码可知这个文件的功能是读取文件1的内容然后写入到文件2

这里提供两种提权方法:

方法一:写一个授权文件,fredf用户可以在all地方以root不需密码执行all命令

方法二:使用Openssl构造加密密码,构造新用户admin为root权限

方法一:

echo "fredf ALL=(root) NOPASSWD:ALL" >> /tmp/sudo.txt
sudo /opt/devstuff/dist/test/test  /tmp/sudo.txt /etc/sudoers

尝试切换到root

提权成功

方法二:

利用openssl创建密码,创建后参照/etc/passwd中格式写入文本中

openssl passwd -1 -salt admin 123456 
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd

执行

sudo  /opt/devstuff/dist/test/test /tmp/passwd /etc/passwd
cat /etc/passwd

su命令切换用户

提权成功。


总结

这次打靶机过程中主要难点是端口为filtered状态时,不知道有knockd服务。需要得知到knockd服务的知识,查找路径,利用knockd连接到ssh。

knockd 服务 默认路径:/etc/knockd.conf ,后续可以了解一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一纸-荒芜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值