Перейти к содержимому

 Друзья: Всё для вебмастера | [ Реклама на форуме ]


Rutor
Rutor


[ DDos Услуги. DDos атака. Заказать ДДос ]


Знакомство/Изучение устройств Мульти-Касс


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1
RusTeam

RusTeam

    Carding ModeR

  • Members
  • 19 сообщений
Приветствую всех мемберов и стариков форума PLB.
В данной статье я вам хочу рассказать как устроены терминалы/мульти-Кассы (программно).
Начну с того что Все знают терминалы/мульти-Кассы, и как через них можно пополнить себе баланс на мобильные телефоны и различные платёжные системы,
Как все думают что бы нелегально пополнить себе на телефон, Нужно подключиться к терминалу,Знать логин и пороль.И сидеть и пополнять на халяву.
На самом деле ребята всё подругому.Все терминалы используют обычные XML
запросы, которые отправляются на сервер с помощью шаблонов,У каждого терминала есть свои ключи(обычно это 64 битный ключ) С помощью этого ключа терминал авторизируеться на сервер для осуществления платежей.  B)
Вот реальный пример с одного из терминалов:

Цитата

<REQUEST>
    <PAYMENT>  
        <DEALER_INFO>  
            <DEALER_ID>%dealer%</DEALER_ID>  
            <TERMINAL_ID>%terminal% </TERMINAL_ID>  
        </DEALER_INFO>  
        <PAYMENT_INFO>  
            <OPERATOR>%operator%</OPERATOR>  
            <PHONE_NUMBER>%phone%</PHONE_NUMBER>  
            <HOLDER_FIRST_NAME>%firstname%</HOLDER_FIRST_NAME>
            <HOLDER_SECOND_NAME>%lastname%</HOLDER_SECOND_NAME>
            <HOLDER_MIDDLE_NAME>%middlename%</HOLDER_MIDDLE_NAME>  
            <AMOUNT>%summa%</AMOUNT>  
            <COMMENT>%comment%</COMMENT>  
        </PAYMENT_INFO>  
    </PAYMENT>  
</REQUEST>

Это  формы запроса на сервер для авторизации.

Цитата

<?php
class AKS {
private $dealerid = "654852";
private $terminalid = "2";

  function checkValues() {

  }

  function encrypt($data) {
    $data = base64_encode($data);

    $sapKey = <<<EOF
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC6GI5uaA7hEkgeP98VHL6TSxJwwPI+Mh+rFxKQPCgarT3/nZCS
Gz1r223+gfH/adV4IDvlbYT18VQ4vSspX+QRAidFeZvsfv99FewnwNoTL3LwYp/K
r9eW5YCpCEe8Crziks0vf92PNoHgNAL0iVo0Zma1ScDBSPBlQJoZ1UiwoQIDAP//
AoGAMs3U9+LqKsWra8V1iPYA0LCoOmY2x8dwwqKwGQY1LPWGSWVqE/z5soJ6upxu
D9sRPLtxdWRqV5p4S3GX0QRZg7Jfb9vPdHpJXtZyQ4vxMdYyRRaSDT9drCfgjLUn
0qMDHYTU0Z3qY4iiFr0HzpTa0acV0MMhnEEZ0Gc0JKKsab8CQQDx7yT26vHTsA/+
af6X51rhXcVakaw3Rrxw/MHkbaONiqwaEDxsWJ/ZCGRT5diwP3rRqu7o4aSIMSx4
SNx06ikpAkEAxOpWRyTByzh3gfIu+VVPP89/7526O5qdcG58JNoWufHbyTxJh3BO
naRSuVXvjA/htqv7iAXUkmvPoqVTqX2iuQJAMkE78dn9N1LglVw/s3NM7u72Rmda
qhIGhIq1HRT3NwTOBnP30QU1sT2UfJXR2WX4+/g6enAhKj9JGQFTdEh79wJASyhP
iETCr8fD/H+gh1AjqFlliKS2ufhz8V5Mhgk217z0BJkkFXJlo7ZcPRLWmUalB3JZ
Wbq7ZYHFaDQLy2s75wJAeHsEgQSxj2idJoZltLU/HIevL2pXurBvzLKY8qgz0hoK
B1Jd1G5U8NqLsrc8C9UQBbohihTjihGHEVzKr01Tgg==
-----END RSA PRIVATE KEY-----
EOF;
    $sapKeyID = openssl_get_privatekey($sapKey);
    openssl_sign($data, $signature, $sapKeyID, 2);
    $signature = base64_encode($signature);

    return array('data' => $data,'sign' => $signature);
  }

  function sendRequest($data) {
    $PostData = "data=". urlencode($data['data']) ."&sign=". urlencode($data['sign']);
    $len = strlen($PostData);

    $zapros= "POST ]]>https://217.198.178.10:8443/srv/pay]]> HTTP/1.0\r\n".
             "Content-Type: application/x-www-form-urlencoded\r\n".
             "Content-Length: ". $len ."\r\n".
             "Host: 217.198.178.10\r\n".
             "Accept: */*\r\n".
             "Accept-Encoding: gzip, deflate\r\n".
             "Connection: Keep-Alive\r\n".
             "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)\r\n\r\n".
             $PostData;

    $fp = fsockopen("ssl://217.198.178.10", 8443, &$errno, &$errstr, 300);
    if(!$fp) {
      echo "Ошибка соединения с сервером!";
      return false;
    }

    fputs($fp,$zapros);
    while(trim(fgets($fp,1024)) != "") {
    }
    $otvet = '';
    while(!feof($fp)) {
      $otvet .= fgets($fp,1024);
    }
    fclose($fp);

    return $otvet;
  }

  function sendData($tpl,$toreplace) {
//    $basedir = $_SERVER['DOCUMENT_ROOT'];
    $xmlf=str_replace("\\","/",dirname(__FILE__) ."/aks/". $tpl);
    if(!file_exists($xmlf) || !is_readable($xmlf)) {
      return false;
    }

    $xml = implode('',file($xmlf));
    $toreplace['%dealer%'] = $this->dealerid;
    $toreplace['%terminal%'] = $this->terminalid;
    $xml = str_replace(array_keys($toreplace),array_values($toreplace),$xml);
//   echo "<pre>".htmlspecialchars($xml)."</pre>";
    //$datasign = $this->encrypt($xml); массив с закодированными данными и подписью
    $otvet = $this->sendRequest( $this->encrypt($xml) );
//   echo "<pre>".htmlspecialchars($otvet)."</pre>";
    if($otvet === false)
      return false;

    $sxe = @simplexml_load_string("<?xml version=\"1.0\" encoding=\"windows-1251\"?>".$otvet);
    //file_put_contents("1.txt",var_export($otvet,true));
    if ($sxe === false)
      return false;
    return $sxe;
  }

  function Payment($toreplace,$tpl) {
    return $this->sendData($tpl ."_pay.xml",$toreplace);
  }

  function checkPayment($toreplace,$tpl) {

    return $this->sendData($tpl ."_check.xml",$toreplace);
  }
}
?>
Сдесь мы видим Скрипт конфигурации для отправки запроса на сервер с помощью шаблона,сдесь используется ключ.
--------------------------------------------------------------------------------------------------
Как мы видим,что терминал использует  шаблон для построения запроса.
Думаю уже многие догадались что, даже нам не составит труда отправить такой же запрос на сервер,как вы уже догадались с помощью своих рук и головы :P

Рассмотрим шаблон запроса пополнения ОСС.

Цитата

<OPERATOR>%operator%</OPERATOR>  
            <PHONE_NUMBER>%phone%</PHONE_NUMBER>  
            <HOLDER_FIRST_NAME>%firstname%</HOLDER_FIRST_NAME>
            <HOLDER_SECOND_NAME>%lastname%</HOLDER_SECOND_NAME>
            <HOLDER_MIDDLE_NAME>%middlename%</HOLDER_MIDDLE_NAME>  
            <AMOUNT>%summa%</AMOUNT>  
            <COMMENT>%comment%</COMMENT>

Во всех шаблонах вместо значка % подменяются данные на введённые юзером.

Сам файл настройки терминала хранит тоже очень важную информацию.

Рассмотрим его:

Цитата

[Debug]
DebugMode=1
DumpMode=1
ShowMouse=0
;DemoMode=1

[WatchDog]
; Тип сторожевого таймера (NONE при отсутствии)
Type=NONE
;Type=LISCO
;Type=ITRUS
; Таймаут обновления файла слежения или нотификации (в секундах)
Timeout=50

;*** параметры только для LISCO
; Имя сервиса
ServiceName=NONE
;ServiceName=wd_main
; Путь к файлу слежения - ПРОПИШИТЕ СВОЙ!!!!!
RunningFile=C:\1.tst

;*** параметры только для ITRUS
; Таймаут пингования модема (в секундах), если = 0 пинг не проводится
PingTimeout=600
; Количество неудачных попыток пингования модема перед принятием решения о зависании
; если = 0 пинг не проводится
MaxFailedPings=3
; К какому разъему подключен модем (USB1, USB2, RELAY), если
; не указано пинг не проводится
ModemPowerSource=RELAY

[Printer]
; Путь к dll с драйверами принтеров
Lib=PrinterPack.dll

[BillCollector]
; Тип купюроприемника
Type=Fir8999
;Type=U70
;Type=CashCode
;Type=NV9

; COM порт используемый купюроприемником
Port=1
; Набор купюр, принимаемых к оплате
Use5=0
Use10=1
Use50=1
Use100=1
Use500=1
Use1K=1
Use5K=0
Use10K=0
; Максимальное количество купюр, если 0, то не проверяется
AmountThreshold=800

[Daemon]
; Время на которое демон засыпает после обработки блока отложенных транзакций (в минутах)
SleepTime=30
; Время на которое демон засыпает, если требуется вмешательство администратора АКС (в минутах)
ProblemTime=300
; Время в течении которого транзакции хранятся в блоке отложенных транзакций (в сутках)
LifeTime=30
; Время в течении которого транзакция из блока отложенных транзакций активна (в часах)
ActiveTime=12

[Terminal]
; Логин администратора (фиктивный номер телефона)
AdminLogin=9061111111
; Пароль администратора
AdminPassword=222
; Если 0 звук есть, если 1 то звук не проигрывается
Mute=0
; Идентификатор дилера, выданный АКС
DealerId=654852
; Идентификатор терминала, выданный АКС
TerminalId=22
; Имя абонента для отображения в системе
Abonent=Абонент киоска  
; Логин терминала, устанавливается администратором дилера
Login=admin
; Пароль терминала, устанавливается администратором дилера
Password=admin
; Внутренний код терминала (устанавливается дилером)
TerminalCode= Kiosk
; Количество секунд неактивности терминала для переключения на стартовую страницу
IdleTimeout=40
; Время (в секундах) в течении которого показывать сообщение о запрете сервиса
DisabledTime=2
; Степень прозрачности сообщения запрета сервиса (0-255)
DisabledBlend=90

[Connector]
; Параметры коннектора
;IP=192.168.0.1
IP=217.198.178.10
;IP=127.0.0.1
Port=8181
Encoding=ZIP
;Connection=Beeline-GPRS
Connection=
Timeout=10

[MRUOperators]
Count=4
; Megafon NW
Operator1=2
; MTC
Operator2=8
; Beeline
Operator3=5
; Skylink NW
Operator4=7

[Keys]

; Секретный ключ терминала
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCeiJPjP6w8smOZ7Icx40Epe42gex9+NB19ZGkR8MidFfPkkW0v
eBQTNO9GLq8qmu2iRpTkWiPsn1p2Tw+Vf6vrPKyr5GcWmvJwJ6U0GZnA1I2qAJmO
Dgv43jbkxIZuSZkjpSEnVhPaqXGRzg3vwfQR36VwTG1exOkCmTcrAbY15wIDAP//
AoGAGcwDHHVw1DE7Nj8bHtFBY6lmbQt141cOQ32iNnWMmlw0094dyl8sY2x4e7wE
bMsyhiJSTJqXgxBRIKFuApmQ6s5ydC/Aip1ZhQwAoes9EOlE4718U/LYMAvTPa93
BbXghbLTjKSILUmsniAKtmcgrhOcy9AqING4D8+E/OJj7z8CQQDJrDj7rO341YQg
FFmZseALCanbKP5q8AlRMofb1xQ/69nvGA7+xrcXBq5VGva8a3Bzy/voXFt3HBYb
liLjqXbzAkEAyT1h4bV7GTWC63DU3iA0Oib9cXoCIiSlJBUGxR+97iWDp33REU+e
EAh0AJ3vUC+LpkNErp8c2yp/OnrgnisqPQJBAKeJ/MR4Fg0cFSXnbbKOqeh1SJM7
6k5qhHf7jT5bM8qpza5gT91Qm6v5lc6C+9nUrriw/o6vQB778Q2Nz7umJFkCQFG3
0prtwG44/OZ/s6/2W6uIyKsA6iavcA5a6B6rxleea1hKm1PW3FH3ALHQ06IvMLAw
OO/xZDUTMsT98nusms8CQDzD0jQRBAwE4Y/35Alaz79njiOK6hNA7U/zLoi/vNxG
/nErqNju3JcBqgpEuE5btD50dKKcaCOgn0T8YRLyiOo=
-----END RSA PRIVATE KEY-----

; Публичный ключ ACS
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBALoYjm5oDuESSB4/3xUcvpNLEnDA8j4yH6sXEpA8KBqtPf+dkJIbPWvb
bf6B8f9p1XggO+VthPXxVDi9Kylf5BECJ0V5m+x+/30V7CfA2hMvcvBin8qv15bl
gKkIR7wKvOKSzS9/3Y82geA0AvSJWjRmZrVJwMFI8GVAmhnVSLChAgMA//8=
-----END RSA PUBLIC KEY-----

Как мы видим что, используется сдесь 2 ключа.
1 ключ - это ключ для авторизации терминала с сервером, 2 ключ - используется для логирования на сервере отчётов.
Как из всего этого мы видим, что терминалы/Мульти-кассы не используют суппер-пупер защиту ;)
Ссори, не смогу вам рассказать как осуществить не законное пополнение Мобильного телефона :P  Но каждый может догадаться и попробывать всё сам.
Информация будет дополняться.
Прошу строго не судить :rolleyes:
С наилучшими пожеланиями throughout

-----------------------
Статья написана специально для web-hack.ru и prologic.ws
Чёрный квадрат...?

#2
aka PSIH

aka PSIH

    ~~~

  • Extended
  • PipPip
  • 238 сообщений
хорошая статья ;)
Everything that was made by human is possible to crack => ideal protection does not exist
*********
icq:162295
*********

#3
blaga

blaga

    Килобайт

  • Honourаble
  • PipPip
  • 189 сообщений
Статья действительно неплоха. Но есть вопрос. Где брать шаблоны тех или иных мультикасс?

#4
RusTeam

RusTeam

    Carding ModeR

  • Members
  • 19 сообщений
На всех мульти-кассах шаблоны одинаковые,только файлы конфигурации разные.
ЗЫ) В следущей статье напишу как скомуниздить файлы конфигурации и шаблоны)
Чёрный квадрат...?

#5
blaga

blaga

    Килобайт

  • Honourаble
  • PipPip
  • 189 сообщений

Цитата

В следущей статье напишу как скомуниздить файлы конфигурации и шаблоны)
Ну чтож пиши. Думаю будет интересно.

#6
RusTeam

RusTeam

    Carding ModeR

  • Members
  • 19 сообщений
Так,и добавлю что $data это параметр функции encrypt
на 82 строке в функцию encrypt передается переменная $xml
Чёрный квадрат...?

#7
RusTeam

RusTeam

    Carding ModeR

  • Members
  • 19 сообщений
Кстати чтобы войти в инженерное меню на некоторых мультикассах, заходите в меню мобильная связь, там левый верхний элемент меню (обычно это мтс) и вводите номер 000 123 4567
Если еще отмычка есть то можно и инкассацию провести )
Это подходит к аппаратам оранжевого цвета, а вот систему я не скажу сами найдете)
На всех аппаратах стоит винда.. И есть интернет.. И зачастую не стоит ни авера ни файра.
Чёрный квадрат...?


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных