日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ac2100 反弹shell无法粘贴_记一次突破反弹shell

發布時間:2025/3/8 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ac2100 反弹shell无法粘贴_记一次突破反弹shell 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

某天閑著無聊,小伙伴發來一個某網站,說只能執行命令,不能反彈shell。

測試

對著目標站點一頓測試。

發現確實存在shiro反序列化,并且存在可以利用的gadget。利用

發現確實可以執行命令,但是我們執行反彈的時候。

反彈不回來,emmm。

查看各種系命令以及分析。

發現是一個精簡的Linux,經常用于docker環境的搭建。

并沒有bash環境。

使用sh命令反彈結果一樣,之后嘗試了各種反彈的方法,一言難盡。

所以我們需要一種新的反彈方法,利用java直接創建一個socket反彈。ysoserial

ysoserial是一款在Github開源的知名java 反序列化利用工具,里面集合了各種java反序列化payload。

源碼下載地址:

https://codeload.github.com/frohoff/ysoserial/zip/master

在很多java類的反序列化攻擊場景中會利用到該工具。

例如:apache shiro反序列化,會使用ysoserial生成反序列化語句,再使用key加密,發送攻擊payload。

如下python腳本,就是利用ysoserial生成反序列化語句,再用key加密生成cookie。

目的

各種各樣的反彈shell注入bash、sh、perl、nc、python等等,都比較依賴目標系統的環境和操作系統類型等等,如果可以直接利用java創建一個socket反彈shell則可以無需關心這些環境直接反彈shell。ysoserial分析

在執行ysoserial的時候一般使用的命令是java -cp ysoserial.jar ?/某個payload/ /命令/

打開源碼分析對應的payload類執行過程,如CommonsCollections2。

在執行該類的時候,運行payloadrunner類的run方法,來執行本類的class文件,再加上接收的參數,跟入payloadrunner類。

這里會調用payload中的getObject方法傳入要執行的命令,命令是接收的輸入或者是getDefaultTestCmd(),也就是說我們如果不輸入命令,他會執行以下默認命令。Windows:calcMacOS:calculatorLinux:gnome-calculator\kclac

如果輸入了命令會執行自定義命令,接下來會執行getObject方法()來生成payload,跟入對應類的getObject方法。

getObject方法中,調用Gadgets類中的createTemplatesImpl方法生成臨時的java字節碼文件,跟入對應的方法。

ysoserial改造

可以看到作者在命令獲取處已經留下了注釋。

待做:也可以做一些有趣的事情,比如注入一個純JavaRev/BindShell來繞過幼稚的保護。TODO: could also do fun things like injecting a pure-java rev/bind-shell to bypass naive protections

一般情況我們在ysoserial后面寫的命令調用的是java.lang.Runtime.getRuntime().exec()方法來執行命令,寫死了,此處我們可以進行改造。

在原來的代碼基礎上寫成:

這樣我們再重新打包ysoserial文件再執行命令時使用如下格式。java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections2 'rebound:ip port'

可以直接獲得一個反彈shell。生成payload利用

發送。

Bingo,得到一個反彈shell。

ysoserial改造總結

由于不是所有的payload在構造時都調用了Gadgets.createTemplatesImpl,所以只有以下幾種適用于以上修改。CommonsBeanutils1CommonsCollections2CommonsCollections3CommonsCollections4Hibernate1JavassistWeld1JBossInterceptors1Jdk7u21JSON1ROMESpring1Spring2Vaadin1

此方法不依賴于目標操作系統和組件,可以直接利用java創建反彈shell。

總結

以上是生活随笔為你收集整理的ac2100 反弹shell无法粘贴_记一次突破反弹shell的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。