DC-9

靶机:192.168.56.109

攻击机:kali 192.168.56.1

关键字:sql注入、本地包含、敲门服务、hydra爆破ssh、sudoers文件、openssl

目录

探索靶机

SQL注入漏洞

文件包含漏洞

使用hydra爆破ssh

提权

方法1 修改sudouers文件

方法2 写入passed文件

获取flag


探索靶机

nmap -T4 -A -v -p- 192.168.56.109

这次不用默认扫描了,全面扫描一次好像也花不了多少时间。

查看网页

SQL注入漏洞

尝试搜索功能有没有漏洞

正常输入tom

注入tom' tom" 结果都如下

注入tom'# tom"#

判读为单引号注入,可以直接交给sqlmap了

查看有哪些数据库

sqlmap -u "http://192.168.56.109/results.php" --data "search=1" --batch --dbs --current-db

有两个保存网站用户数据的数据库,都可以看看

先看staff数据库

sqlmap -u "http://192.168.56.109/results.php" --data "search=1" --batch -D Staff --tables

sqlmap -u "http://192.168.56.109/results.php" --data "search=1" --batch -v 3 --level 3 -D Staff -T StaffDetails --columns

sqlmap -u "http://192.168.56.109/results.php" --data "search=1" --batch -v 3 --level 3 -D Staff -T Users --columns

sqlmap -u "http://192.168.56.109/results.php" --data "search=1" --batch -v 3 --level 3 -D Staff -T Users --dump

admin | 856f5de590ef37314e7c3bdf6f8a66dc

这里就获取到了一个类似管理员的帐号,关联下网站,似乎可以登录manage页面

这里的密码是通过MD5加密,sqlmap本来要用字典解密密码,没解出来

通过在线MD5解密,获取密码transorbital1

把users数据库中的数据爆出来看下是否可以利用,方法同上了

这里一下出来很多用户,感觉会很有用

向尝试下登录manage页面,发现只有admin可以登录上去

文件包含漏洞

登录上去之后,就多了一个功能,但似乎没什么用

不过仔细观察可以发现manage.php页面和addrecord.php页面都有File does not exist字样。尝试以下文件包含漏洞。

这里使用file参数测试就当运气好吧,直接猜对了。按前面有一章我们使用文件包含漏洞是使用网站存在的php文件来测试这个接受文件的参数,file就是这个网页的接受文件的参数。但这里使用存在的文件似乎并不起作用,如index.php登录,包含进来都是显示File does not exist。这种情况下可以使用以下文件来批量测试。这些字典文件可以在网上找到。

我这里是手动测试,先测试绝对路径

然后测试相对路径

发现确实存在文件包含漏洞

后面实验做完后去靶机看了下源代码,文件包含的代码如下

在目录中并不存在contact-info.php文件和directory目录。这里突然又多了疑惑,不存在directory是怎么绕过这个目录查看本地文件的呢?不知道有大佬可以指点一下不。

在本地测试表示文件名不能不存在呀。

接着做,用字典爆破linux敏感目录,我的字典不行,没有爆出来。正确结果应该会爆出来/etc/knockd.conf文件

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

192.168.56.109/manage.php?file=../../../../etc/knockd.conf

按有些教程使用nmap去敲门,我敲了半天没有结果。最后安装了knockd服务,使用knockd来敲门。

然后探测22房间,发现开门了

使用hydra爆破ssh

我们前面通过暴库拿到很多用户名密码,通过hydra可以尝试爆破一下ssh

hydra -L user.txt -P pass.txt -t 10 -v ssh://192.168.56.109

得到3个用户

login: chandlerb password: UrAG0D!
login: joeyt password: Passw0rd
login: janitor password: Ilovepeepee

依次登录,会发现这3个用户都没有SUID提权的机会。在janitor用户下可以发现一个有用的隐藏文件

里面也保存着一部分密码,拿出来放到pass.txt继续爆破,会又找到一个用户

login: fredf password: B4-Tru3-001

提权

登录这个fredf用户,枚举sudo命令,发现可以无密码使用root权限执行指定目录下的test文件

切换到目录,查看这个文件发现有些乱码情况,大致看的出是python文件

执行下这个文件,发现test.py报错,使用find命令查找一下test.py在哪。这里2>/dev/null表示不显示错误。

找到python文件后去看看文件内容

当Python传入的参数是三个的时候,可以把第二个的读出,并写入到第三个的尾端,而第一个参数就是test.py。

这里应该是不能修改test.py文件的,因为test文件才具有root权限,test应该就是python文件已经编译好的模块,即使修改python文件也没有用了。

那我们就想办法利用这个test文件了。test文件可以让我们做到用root权限去写入内容到文件。

这里有两个方法,一是添加一个超级用户到passwd文件。二是添加权限内容到sudoers文件。

方法1 修改sudouers文件

让fredf用户可以通过sudo执行所有权限

echo "fredf ALL=(ALL:ALL) ALL" > /tmp/3.txt

切换到root用户

参考:sudoers的深入介绍

方法2 写入passed文件

尝试写入空密码不行

使用openssl制作一个md5加密的密码

这里echo 输入时一定不能用双引号,和$结合会把一些字符认为是变量导致没法写入,我就试了半天没有成功

切换到新加的用户上

获取flag

总结:黑客通过网页的sql注入漏洞爆出了网站的管理员帐号,和大批服务器用户。通过本地包含漏洞找到了网站的Knockd服务的配置文件,敲门后可以连接ssh端口。通过hydra和收集的用户信息爆破了可以登录的帐号密码。在这些帐号密码中,找到了一个权限设计不严谨的脚本。通过这个脚本最终获取了服务器的root权限。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值