【HackTheBox】dancing(SMB)

先说个踩坑
openvpn 文件名.ovpn
用这个命令打开vpn
结果是
在这里插入图片描述
打不开,直接退出来了
在这里插入图片描述
要不然就是死循环,一直等

就这样弄了一个小时左右,一直试

最后,是tcp换成udp,解决了
在这里插入图片描述

1、SMB是什么意思?
在这里插入图片描述
Server Message Block – SMB,是一种文件共享协议。当文件原件在你的A电脑上,而你想在局域网下用你的手机、iPad或是另一台电脑来访问A电脑上的该文件时,你可能需要用到SMB共享。

Server Message Block

2、SMB使用什么端口进行操作?
在这里插入图片描述
在这里插入图片描述
TCP端口139是NETBIOS上的SMB。 NETBIOS是一种传输层协议,旨在通过网络在Windows操作系统中使用。
TCP 445是基于IP的SMB。 这是较新的版本,可以在IP网络上正常使用SMB。

445

3、在Nmap扫描中出现的端口445的服务名称是什么?
在这里插入图片描述
microsoft-ds

4、SMB工具可用于“列出”共享内容的“标志”或“开关”是什么?
在这里插入图片描述
在 linux 中,可以使用命令行工具 smbclient进行连接,smbclient将尝试连接到远程主机,并检查是否需要任何身份验证

使用 -L 命令显示服务器端分享的资源
-L
在这里插入图片描述
smbclient -L 10.129.193.22

在这里插入图片描述
这个真的太坑了,试了好久,可能是目标主机不太稳定吧
smbclient -L=10.129.193.22 这样也试了

其他三个都是默认共享的,可以用自己物理机输入命令net share就知道了

所有我们关注WorkShares这个

5、如果密码为空,我们最终能够访问的共享名称是什么?
在这里插入图片描述
因为s结尾,我就直接试了一下上面得到的那个sharename
WorkShares

所以我们得到了,WorkShares是不需要密码的

连接该共享文件
smbclient \\\\10.129.193.22\\WorkShares

同理也可以连接别的
smbclient \\\\10.129.193.22\\C$

在这里插入图片描述
终于连接上了
在这里插入图片描述
worknotes.txt并不是我们的flag
看另一个目录,里面有flag.txt
直接用more就能看到flag了
在这里插入图片描述

6、我们可以在SMB shell中使用什么命令来下载我们找到的文件?
在这里插入图片描述

get

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Dancing Links 算法是用于解决精确覆盖问题的算法,俄罗斯方块覆盖问题可以被转化为精确覆盖问题,因此可以使用 Dancing Links 算法求解。下面是使用 Matlab 实现 Dancing Links 算法解决俄罗斯方块覆盖问题的代码: ```matlab function [sol, num_solutions] = tetris_dlx(m, n, blocks) % m: 棋盘行数 % n: 棋盘列数 % blocks: 方块形状,每个方块用一个矩阵表示(0表示空,1表示方块) max_nodes = m * n * numel(blocks); % 初始化 Dancing Links 数据结构 dl = DancingLinks(max_nodes); % 构建 Dancing Links 矩阵 for i = 1:m for j = 1:n for k = 1:numel(blocks) block = blocks{k}; if i + size(block, 1) - 1 > m || j + size(block, 2) - 1 > n continue; end % 将方块转换为约束条件 constraint = zeros(m, n); constraint(i:i+size(block,1)-1, j:j+size(block,2)-1) = block; % 将约束条件插入 Dancing Links 矩阵 columns = (i-1)*n + j + (0:numel(constraint)-1)*m*n; dl.insert_constraint(columns, constraint(:)); end end end % 解决 Dancing Links 矩阵,得到所有解 solutions = dl.solve(); % 将解转换为棋盘布局 num_solutions = size(solutions, 2); sol = cell(num_solutions, 1); for i = 1:num_solutions sol{i} = zeros(m, n); for j = solutions(:, i)' [row, col, k] = ind2sub([m, n, numel(blocks)], j); block = blocks{k}; sol{i}(row:row+size(block,1)-1, col:col+size(block,2)-1) = block; end end end ``` 这个函数接受三个参数:棋盘行数 `m`,棋盘列数 `n`,和方块形状 `blocks`。`blocks` 是一个包含所有方块形状的矩阵数组,每个矩阵表示一个方块,其中 0 表示空,1 表示方块。函数返回两个值:`sol` 是包含所有解的单元格数组,每个单元格表示一个解的棋盘布局;`num_solutions` 是找到的解的数量。 下面是一个使用示例: ```matlab % 定义方块形状 block1 = [1 1; 1 1]; block2 = [1 1 1; 0 1 0]; block3 = [1 1 1; 0 1 1]; block4 = [1 1 0; 0 1 1]; blocks = {block1, block2, block3, block4}; % 解决俄罗斯方块覆盖问题 sol = tetris_dlx(4, 4, blocks); for i = 1:numel(sol) disp(sol{i}); end ``` 这个例子解决了一个 4x4 的俄罗斯方块覆盖问题,使用了四种不同的方块形状。程序输出所有解的棋盘布局。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值