分享一個二進制文件上傳技巧

先說說環境吧,之前在滲透過程中遇到一個linux+tomcat的站,不通外網,能執行大部分的shell命令 權限非root。手上只有一個jspspy的shell,web目錄是掛載的網絡磁盤(類似於NAS之類的吧),整個磁盤被限制只能讀取不能寫入,而且jspspy的上傳功能也無法正常使用(上傳文件提示是上傳成功,但是就是沒有文件,大神說可能是jsp上傳組件關閉的原因)。現在能寫的方式就只有通過shell 新建文本文件的方式寫入到/tmp之類的可寫目錄下。

現在目的是想通過此服務器代理進內網,由於不能寫入webshell 通過jsp代理行不通,往外又不能通,MSF什麼的壓根排不上用場,唯一希望寄託的在dns隧道上,所以只能通過上二進制+dns隧道(最終dnscat是上去了,但dns隧道還是出不來……)。

由於jspspy的上傳功能無法正常使用 想上二進制就成了難題。還好有師傅提醒可以使用base64的方式。中途也遇到不少坑,藉此簡單把這個方式分享下,希望遇到類似的師傅能少走彎路。

首先在本地把需要上傳的二進制文件進行base64加密 例如nc

base64 /root/nc > /root/nc_enc.txt

然後把加密後的字符串用shell寫入到服務器上,然後再用base64還原成二進制文件執行

base64 -d -i /tmp/nc_enc.txt > /tmp/nc

這裏一定要加上-i參數 該參數用於忽略非字母表字符,比如換行符。因爲在POST提交過程中貌似要被添加上換行符,爲此我就被坑了一天時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章