CS4.4繞過vultr特征檢測修改checksum8算法,超詳細過程小白理解
前言
「眾所周知,關于cs相關的資料都非常的少,并且是打得特別緊,特別是這兩年各個安全廠商對cs相關的內容都給予了特征識別等嚴重的打擊,例如vultr網站會檢測特征并關停服務器,我們可以同個多種方式更改特征繞過,接下來我們來講更改cs的算法進行繞過。例如下面這樣」
我弄的環境,就因為開了cs結果就被強制破壞o(╥﹏╥)o
特征檢測
「關于被檢測的特征詳細來概述」
首先我們新建監聽器
這里我們一般用80和443來監聽,因為其他端口的容易被封,這倆端口基本沒人去管
接下來我們打開特征的的一些鏈接看下
可直接下載對應的文件,網上有一大堆檢測腳本,我就不列舉了
鏈接特征
80:http://IP/aaa9 443:https://ip:443/aaa9
當然特征不止這一個「aaa9」例如「http://IP/HjIa」 這個也會出現這種狀態 并不是404 (部分瀏覽器假的404需要多打開幾遍才會請求下載未知文件)只要是符合「checksum8」算法技術出來的文件都可以請求到 「不是唯一值」
?
我們可以看到這里面的請求的一些狀態鏈接都是很短的,只有在發命令通過抓包才是那種長鏈接
下面就直接反編譯,或者你找源碼 都是有的
反編譯
我們更改特征首先要反編譯壓縮包里面所有的.class文件,把他變成.java格式的我們才能編譯
反編譯這里推薦有一個工具比較方便,當然還有其他工具 但是講的話文章會很長 我盡量很詳細,我學習的時候搜索的資料大部分都有坑或者關鍵部分就直接跳過了這就很煩結合了多個文章內容我直達精髓。
JD-GUI:https://jd-gui.apponic.com/download/
我們可以看到很直觀的就可以看到里面的內容
我們通過左上角「File→Save All Sourcel」來保存全部反編譯的文件(也可以下載別人的源代碼或者別的工具反編譯),會讓你選擇路徑以及各式,保存好,我們這里反編譯好了出現了個「cobaltstrike.jar.src.zip」文件
然后我們安裝「JAVAIDE」(這個工具里面也有反編譯的包具體方法可以網上搜索)
Java ide:https://www.jetbrains.com/zh-cn/idea/.
下載安裝 里面有兩個版本 不用糾結 第一個收費 第二個社區的免費 正好也能滿足我們的需求
安裝完成后我們打開安裝中文包插件(英文的我看不懂)在「PLugins」里面搜索「chinese」第二個就是
我們來安裝他 點擊安裝后會重新啟動軟件就變成中文的了
項目和環境配置
這里我首先提醒大家最好用老版本的Java,原因是新版本的編譯的老版本的java不能運行,而老版本的卻向上兼容,這就很蛇皮了,太老的版本可能少程序 推薦java1.8 java1.8=java8 是一樣的。(這個里面可以直接下載Java1.8.0,目前是可以的以后就不知道了)
1、我們新建項目就默認第一個java模塊然后不停的下一步選擇路徑打開,看圖
?
?
2、創建好之后我們新建倆文件夾,在軟件里面和在外面創建都行都是同步刷新的,修改也是。這里我們新建「decompiled_src」和l「lib」文件夾這里我就列舉一個圖減少占用
?
?
3、建立完成就是這個樣子的,現在我們需要兩個文件一個是反編譯后「cobaltstrike」文件,一個是未反編譯的「cobaltstrike.jar」原始文件,原因是編譯需要依賴的文件環境和包,不然各種報錯,非常的惱火,把原始文件「cobaltstrike.jar」放到「lib」文件夾,反編譯后的解壓到「decompiled_src」文件夾
?
?
4、弄好之后就是這個樣子的,然后咱們來設置環境,左上角 文件→項目結構,看一下「sdk」是否正確,然后點擊模塊,然后看圖
?
?
?
?
5、「選擇lib里面cs原始jar包點擊確定,確定完成之后打勾然后應用」
?
6、然后點擊「工件→JAR→來自有依賴項的模塊→然后選擇Aggressor」 出現「aggressor.Aggressor」就說明正確了,然后確定,工件就設置完成了
?
?
?
「7、接下來看一下sdk有沒有設置正確,正確直接應用然后確定」
?
修改checksum8算法
在「D:\cs\decompiled_src\cloudstrike」里面有個「WebServer.java」文件包含算法,這個好像是監聽器里面的,有這個算法的還有另一個「D:\cs\decompiled_src\common\CommonUtils.java」也包含checksum8
我們吧要修改的文件放到「D:\cs\src」 里面,這個文件代表著我們要編譯的文件整合到jar文件里(就是實際只是編譯的這兩個文件)復制的之后要注意吧文件夾也復制過去 它會自動整合到路徑
?
我們雙擊打開「WebServer.java」 然后「ctrl+f」搜索「checksum8」,這里我們很直觀的就可以看到各種結果

「checksum8,輔助算法計算腳本」
public class EchoTest {
public static long checksum8(String text) {
if (text.length() < 4) {
return 0L;
}
text = text.replace("/", "");
long sum = 0L;
for (int x = 0; x < text.length(); x++) {
sum += text.charAt(x);
}
return sum;
}
public static void main(String[] args) throws Exception {
System.out.println(checksum8("ds6f565sdf44s65d4f21dsf1.jpg"));
}
}
首先,我們想一個自己想要生成的stage訪問下載地址“「ds6f565sdf44s65d4f21dsf1.jpg」”可以隨意更換的
我們對于「ds6f565sdf44s65d4f21dsf1.jpg」這個可以隨意換字符,這個是我亂打的到時候請求這個會請求到我們的文件,這個文件用于生成的那種20kb的他是后續會自動下載這個載入進去 你不想要這個可以直接web里邊殺掉這倆stager站點,為了我的內容能少點我就不講其他的了,可以從別的文章了解。
我們通過這個技術按腳本可以把他復制到在線java運行的網站查詢結果,我這邊呢就列舉一個
在線運行java:https://c.runoob.com/compile/10/
進去之后把技術按腳本復制粘貼到里面然后自己把這個字符串隨意編輯一下點擊運行,這里這個運行結果就是我們要更改的值,這里我們需要技術兩個不一樣的值,一樣的話只能生效一個,x64和x86隨意分配計算
注意:x64和x86是分別弄兩個固定的下載stage的文件
「首先,我們第一個x86就如圖所示,checksum8計算之后值等于2260就可以上線」
?
「第二步,此處同理,我們得出第二個想要的值2665,對應的就是傳入的固定jpg路徑」
?
「第三步,修改對應位置的我們剛剛生成的值和字符串」
刪完之后是這個結果如下圖,可別把人家的括號和符號給人家干沒了,不然要報錯,「如圖所示」
「注意:同是小白提醒下,請勿刪多刪少,報錯會讓你知道」
?
「第四步、「然后我們先編譯測試下 因為反編譯的肯定有錯誤的地方會報錯,有時候不報錯運氣好,我們點擊」構建→構建工件」,然后點擊「構建」
?
接下來我們會看到3個錯誤,這個錯誤就是表示重復引用了某個字符,解決也簡單 直接「刪除」,如圖
?
?
?
?
編譯不出錯的不用管這個,這3錯誤搞完就可以編譯了,輸出目錄在「D:\cs\out\artifacts\cs_jar」
?
改完這一個他們通過原本的特征無法檢測到你了,但是你只改這一個的話是無法上線的,你可以在c2文件中吧請求的url改成「ds6f565sdf44s65d4f21dsf1.jpg」或者跟我進行下一步
解釋一下:CommonUtils對應的就是你小馬20kb會主動訪問服務器下載stage的,你得改對訪問路徑,相應是我們上面生成的
接下來改上線,沒錯就是這個 「CommonUtils.java」文件 但是注意別改錯文件了 改「src」文件夾里面的 「CommonUtils.java」文件,我們打開他,還是老樣子,搜索「checksum8」字符定位到相關代碼附近
?
?
把這倆結果更改為你的隨機字符串 我這里是**return "ds6f565sdf44s65d4f21dsf1.jpg";和return "ds78d4fg4er784gdfg4df9g4d8g4.jpg";**到時候的成品我也會有打包,不會的可以替換過渡一下
?
接著構建工件,構建完成了, 接下來開始測試
?
收尾
「在D:\cs\out\artifacts\cs_jar找打了咱們編譯好的文件 ,打開壓縮包把cs.jar\cs\WebServer.class和WebServer還有和
1.class文件移動到到你原本的cobaltstrike.jar文件里對應目錄」
問:為什莫么不直接用生成的cs.jar文件
答:可以直接用 但是需要修改teamserver所有相關cobaltstrike.jar的名稱并且有一些啟動的漢化包什么的也需要改,不能直接重命名,直接重命名是無法打開的,可能是包的名字寫到了java文件里,我也不是很清楚,我這里直接重命名失敗了,并且很容易出錯。
「過程很順利, 沒有絲毫錯誤,然后啟動咱們的cs團隊服務器,在啟動客戶端測試之前測試的鏈接」
?
再次訪問特征處是無法下載的,如圖看流程
?
?
?
?
結果就是可以直接通過我們設置對應的路徑進行上線了
?
?
注意一點:我中途是遇到過坑的,所以可能有些數值對不上,望請諒解
「可以看到是原來默認的是完全訪問不了了的直接就是404狀態,并且cs也是可以上線的,到這里就結束了,希望我的教程可以幫助到您,謝謝您的觀看!!!」












































