Tirei férias e ferraram meu servidor?

1. Tirei férias e ferraram meu servidor?

Silas Matos
silasmg

(usa Debian)

Enviado em 26/10/2015 - 15:41h

Olá pessoal, não sou muito expert em servidores, mas criei um pequeno servidor no meu trabalho, para usar a internet com proxy e como servidor de arquivos, com um firewall básico.
Acontece que tirei férias no mês de outubro e quando voltei vi que tinha algumas linhas de comando no terminal que não foram digitadas por mim, gostaria de saber por onde começar para analisar de onde partiu o ataque, se é que foi um ataque.

Tirando a parte em que ele removeu meu iptables eu não sei sobre os outros comandos, após detectar estas alterações eu instalei novamente o iptables e removi o screen e curl, que foram instalados pelos comandos abaixo:


root@saude:~# wget www.csservers.ro/csservers_redirecte_linux_hlds_dp.tar.gz
root@saude:~# tar -pxzf csservers_redirecte_linux_hlds_dp.tar.gz
root@saude:~# cd csservers_redirecte_linux_hlds_dp
root@saude:~# cd csservers_redirecte_linux_hlds_dp
root@saude:~# yum install screen
root@saude:~# apt-get install screen
root@saude:~# cd csservers_redirecte_linux_hlds_dp
root@saude:~# ./stop
root@saude:~# apt-get install screen
root@saude:~# ./start
root@saude:~# ./stop
root@saude:~# ./start
root@saude:~# netstat -tulpn
root@saude:~# ./stop
root@saude:~# iptables -a input -p udp -sport <27000> -j accept
root@saude:~# iptables -f
root@saude:~# iptables
root@saude:~# cd csservers_redirecte_linux_hlds_dp
root@saude:~# ./start
root@saude:~# cd csservers_redirecte_linux_hlds_dp
root@saude:~# ./stop
root@saude:~# apt-get update
root@saude:~# apt-get install nano screen curl libcurl3
root@saude:~# apt-get install ia32-libs
root@saude:~# apt-get purge -f iptables
root@saude:~# cd /home
root@saude:~# wget http://xhlds.com/downloads/xhlds.tar.gz && tar zxf xhlds.tar.gz && cd xhlds
root@saude:~# screen -a -m -s redirect ./xhlds
root@saude:~# cd csservers_redirecte_linux_hlds_dp
root@saude:~# ./start
root@saude:~# cd csservers_redirecte_linux_hlds_dp
root@saude:~# ./start
root@saude:~# iptables -a input -p udp -sport <27000> -j reject


Isso tudo estava no terminal, com certeza fizeram mais coisas e por isso gostaria de saber como verificar tudo, poderiam me dar um auxilio?


  


2. Re: Tirei férias e ferraram meu servidor?

Eduardo Paim Silveira
eduardo

(usa Linux Mint)

Enviado em 26/10/2015 - 15:51h

Pelo visto, parece que instalaram um servidor de CS (Counter Strike) no teu server. Depois ele tentou liberar a porta, mas parece que não conseguiu e desinstalou o Iptables.
O mais gritante é como a pessoa conseguiu acesso ao teu root. Tua senha é forte?



3. Re: Tirei férias e ferraram meu servidor?

Renan Arantes
R3nan

(usa Debian)

Enviado em 26/10/2015 - 16:01h

vc deixou o usuario root logado no console local? esses comandos foram digitados "sentando na frente do serivdor" e não remotamente via ssh correto? pelo visto parece que algum funcionário da sua empresa tentou instalar um "servidor de cs" counter strinke alguém ai gosta muito desse jogo deve ter feito isso e provavelmente acompanhou esse video https://www.youtube.com/watch?v=JV3lI7_jsak veja quais sao os funcionarios "espertinhos" que podem ter feito isso e que adoram um cs que vc pega o meliante.

esperto ter ajudado




4. Re: Tirei férias e ferraram meu servidor?

Silas Matos
silasmg

(usa Debian)

Enviado em 26/10/2015 - 16:11h

Eu costumo logar como root, e provavelmente deixei a tela aberta, mas ninguém acessa minha mesa diretamente, e ninguém tem conhecimento de linux por aqui, por isso acredito ser um acesso de fora, tem como eu detectar por algum log se entraram ou o que fizeram exatamente?

A senha do root é com letras e números, mas nada exagerado, algo como xx9999999, tudo minúsculo, eu estou é curioso para saber como entraram, para fechar a brecha, vou postar o firewall aqui:


#!/bin/sh
#

### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start firewall at boot time
# Description: Enable service provided by firewall.
### END INIT INFO

iniciar(){
# IP do servidor SQUID
SQUID_SERVER="10.0.2.1"
# Interface que se conecta com a internet
INTERNET="ppp0"
# Interface da rede local
LAN_IN="eth1"
# Porta do SQUID
SQUID_PORT="3128"


# NÃO MODIFIQUE AS LINHAS ABAIXO:
# LIMPAR FIREWALL
iptables -F
iptables -X
iptables -X -t filter
iptables -F -t filter
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# CARREGAR MÓDULOS PARA NAT E SUPORTE PARA IP CONTRACK
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe tun
modprobe ipt_string
# COMPARTILHAMENTO DE INTERNET.
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# DEFINIR POLITICAS DE ACESSO
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# ACESSO ILIMITADO AO LOOPBACK
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# LIBERAÇÃO DE PORTAS
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
iptables -A INPUT -p tcp --dport 5931 -j ACCEPT
iptables -A INPUT -p tcp --dport 1863 -j ACCEPT
iptables -A INPUT -p udp --dport 1863 -j ACCEPT

#bloqueando Ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#Ultra Surf, Ares, uTorrent, p2p
iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf="
iptables -A FORWARD -d 199.59.162.71 -j LOG --log-prefix "=Ares_Galaxy="
iptables -A FORWARD -d 98.143.146.7 -j LOG --log-prefix "=uTorrent= "
iptables -A FORWARD -m string --algo bm --string "BitTorrent" -j LOG --log-prefix "=uTorrent= "
iptables -A FORWARD -m string --algo bm --string "peer_id=" -j LOG --log-prefix "=uTorrent="
iptables -A FORWARD -m string --algo bm --string "torrent" -j LOG --log-prefix "=uTorrent="
iptables -A FORWARD -m string --algo bm --string "announce" -j LOG --log-prefix "=uTorrent="
iptables -A FORWARD -m string --algo bm --string "tracker" -j LOG --log-prefix "=uTorrent="
iptables -A FORWARD -m string --algo bm --string "find_node" -j LOG --log-prefix "=uTorrent="
iptables -A FORWARD -m string --algo bm --string "info_hash" -j LOG --log-prefix "=uTorrent="
iptables -A FORWARD -m string --algo bm --string "get_peers" -j LOG --log-prefix "=uTorrent="

# PERMITIR UDP, DNS E FTP PASSIVO
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# DEFINIR ESTE SISTEMA COMO O ROTEADOR PADRÃO PARA O RESTO DA LAN
iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE
iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# ACESSO ILIMITADO PELA LAN
iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# NAT PARA A PORTA 80 SOLICITADA PELA LAN PARA A PORTA DO SQUID 3128 ($SQUID_PORT) PROXY TRANSPARENTE
iptables -t nat -I PREROUTING -p tcp -i $LAN_IN --dport 80 -j REDIRECT --to-port 3128
# NAT PARA A PORTA 443 SOLICITADA PELA LAN PARA PORTAS HTTPS
#iptables -t nat -I PREROUTING -p tcp -m multiport -i $LAN_IN --dport 443 -j REDIRECT --to-ports 3128

# REJEITAR O RESTO E CRIAR LOG
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP
echo "Firewall Habilitado"
}
parar(){
iptables -F
iptables -X
iptables -X -t filter
iptables -F -t filter
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
echo "Firewall desabilidatado"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start, stop ou restart"
esac




5. Re: Tirei férias e ferraram meu servidor?

Silas Matos
silasmg

(usa Debian)

Enviado em 26/10/2015 - 16:17h

Se foram digitados diretamente no terminal, tem como saber o horário em que foi digitado os comandos?


6. Re: Tirei férias e ferraram meu servidor?

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 26/10/2015 - 16:23h

Silas Matos escreveu:

Se foram digitados diretamente no terminal, tem como saber o horário em que foi digitado os comandos?

Olá,

Tem sim, rode o comando abaixo no terminal:
 HISTTIMEFORMAT="%d/%m/%y %T " 

Agora, rode o history e pronto, estão aí os comandos executados e suas respectivas datas.

Da uma olha na dica 2 desse artigo: http://www.vivaolinux.com.br/artigo/Diario-de-um-SysAdmin-2-Truques-Macetes-Atalhos-e-Comandos/


Abs,



---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


7. Re: Tirei férias e ferraram meu servidor?

Silas Matos
silasmg

(usa Debian)

Enviado em 26/10/2015 - 16:39h

As 4 primeiras linhas foi eu, neste dia eu estava a trabalho já (23/10/2015)
As 5 últimas linhas também foi eu, foi onde eu iria dar um tcptrack, então apertei a tecla direcional para cima para listar os últimos comandos e quando apareceu todos aqueles comandos eu imediatamente tentei dar um reject, mas o iptables já estava desinstalado.
Todos os comandos anteriores estão como 23/10/15 11:11:05, apenas depois de todo o ocorrido que ele coloca o horário correto na hora dos comandos.

Eu tenho VNC instalado no servidor, não sei se teria essa possibilidade.


* 460 23/10/15 11:11:05 clear
* 461 23/10/15 11:11:05 /etc/init.d/isc-dhcp-server restart
* 462 23/10/15 11:11:05 clear
* 463 23/10/15 11:11:05 tcptrack -i eth1
464 23/10/15 11:11:05 wget www.csservers.ro/csservers_redirecte_linux_hlds_dp.tar.gz
465 23/10/15 11:11:05 tar -pxzf csservers_redirecte_linux_hlds_dp.tar.gz
466 23/10/15 11:11:05 cd csservers_redirecte_linux_hlds_dp
467 23/10/15 11:11:05 ./start
468 23/10/15 11:11:05 yum install screen
469 23/10/15 11:11:05 apt-get install ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssscreen
470 23/10/15 11:11:05 cd csservers_redirecte_linux_hlds_dp
471 23/10/15 11:11:05 ./stop
472 23/10/15 11:11:05 apt-get install screen
473 23/10/15 11:11:05 ./start
474 23/10/15 11:11:05 ./stop
475 23/10/15 11:11:05 ./start
476 23/10/15 11:11:05 netstat -tulpn
477 23/10/15 11:11:05 ./stop
478 23/10/15 11:11:05 iptables -a input -p udp -sport <27000> -j accept
479 23/10/15 11:11:05 iptables -f
480 23/10/15 11:11:05 iptables
481 23/10/15 11:11:05 cd csservers_redirecte_linux_hlds_dp
482 23/10/15 11:11:05 ./start
483 23/10/15 11:11:05 cd csservers_redirecte_linux_hlds_dp
484 23/10/15 11:11:05 ./stop
485 23/10/15 11:11:05 apt-get update
486 23/10/15 11:11:05 apt-get install nano screen curl libcurl3
487 23/10/15 11:11:05 apt-get install ia32-libs
488 23/10/15 11:11:05 apt-get purge -f iptables
489 23/10/15 11:11:05 cd /home
490 23/10/15 11:11:05 wget http://xhlds.com/downloads/xhlds.tar.gz && tar zxf xhlds.tar.gz && cd xhlds
491 23/10/15 11:11:05 screen -a -m -s redirect ./xhlds
492 23/10/15 11:11:05 cd csservers_redirecte_linux_hlds_dp
493 23/10/15 11:11:05 ./start
494 23/10/15 11:11:05 cd csservers_redirecte_linux_hlds_dp
495 23/10/15 11:11:05 ./start
* 496 23/10/15 11:11:50 iptables -a input -p udp -sport <27000> -j reject
* 497 23/10/15 11:11:59 iptables -a input -p udp -sport 27000 -j reject
* 498 23/10/15 11:12:29 tcptrack -i eth1
* 499 26/10/15 15:01:05 tcptrack -i eth1
* 500 26/10/15 15:04:40 /etc/init.d/firewall restart



8. Re: Tirei férias e ferraram meu servidor?

Giovanni  M
Giovanni_Menezes

(usa Devuan)

Enviado em 26/10/2015 - 16:44h

Para terem desinstalado o iptables é porque ele tava bloqueando, o mais provável é que foi registrado no log.

de uma olhada no log, o log marca data e hora do ocorrido tail -50 /var/log/*.log (kern.log)



9. Re: Tirei férias e ferraram meu servidor?

Silas Matos
silasmg

(usa Debian)

Enviado em 26/10/2015 - 16:53h

No comando deu assim:

tail: opção usada em um contexto inválido - - 5

Então retirei o -50 e ficou assim:

==> /var/log/kern.log <==
Oct 26 16:43:06 saude kernel: [1740888.053484] IN=ppp0 OUT= MAC= SRC=31.13.85.8 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=87 ID=24960 DF PROTO=TCP SPT=443 DPT=55039 WINDOW=14100 RES=0x00 ACK FIN URGP=0
Oct 26 16:43:07 saude kernel: [1740888.568403] IN=ppp0 OUT= MAC= SRC=31.13.85.8 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=87 ID=38401 DF PROTO=TCP SPT=443 DPT=55038 WINDOW=14100 RES=0x00 ACK FIN URGP=0
Oct 26 16:43:08 saude kernel: [1740890.364347] IN=ppp0 OUT= MAC= SRC=120.195.152.150 DST=188.78.178.73 LEN=44 TOS=0x00 PREC=0x00 TTL=42 ID=0 DF PROTO=TCP SPT=8450 DPT=24033 WINDOW=14600 RES=0x00 ACK SYN URGP=0
Oct 26 16:44:12 saude kernel: [1740953.995216] IN=ppp0 OUT= MAC= SRC=192.99.127.246 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=53 ID=0 DF PROTO=TCP SPT=80 DPT=53153 WINDOW=0 RES=0x00 RST URGP=0
Oct 26 16:44:28 saude kernel: [1740969.651189] IN=ppp0 OUT= MAC= SRC=74.119.118.100 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=241 ID=28245 DF PROTO=TCP SPT=80 DPT=42344 WINDOW=0 RES=0x00 ACK RST URGP=0
Oct 26 16:44:28 saude kernel: [1740970.332359] IN=ppp0 OUT= MAC= SRC=74.119.118.100 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=241 ID=43534 DF PROTO=TCP SPT=80 DPT=42344 WINDOW=0 RES=0x00 ACK RST URGP=0
Oct 26 16:44:30 saude kernel: [1740971.700329] IN=ppp0 OUT= MAC= SRC=74.119.118.100 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=241 ID=12353 DF PROTO=TCP SPT=80 DPT=42344 WINDOW=0 RES=0x00 ACK RST URGP=0
Oct 26 16:44:38 saude kernel: [1740979.754844] IN=ppp0 OUT= MAC= SRC=74.119.118.100 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=241 ID=28079 DF PROTO=TCP SPT=80 DPT=42344 WINDOW=0 RES=0x00 ACK RST URGP=0
Oct 26 16:44:42 saude kernel: [1740983.767412] IN=ppp0 OUT= MAC= SRC=192.99.127.246 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=52 ID=0 DF PROTO=TCP SPT=80 DPT=50977 WINDOW=0 RES=0x00 RST URGP=0
Oct 26 16:44:49 saude kernel: [1740990.511610] IN=ppp0 OUT= MAC= SRC=74.119.118.100 DST=188.78.178.73 LEN=40 TOS=0x00 PREC=0x00 TTL=241 ID=42396 DF PROTO=TCP SPT=80 DPT=42344 WINDOW=0 RES=0x00 ACK RST URGP=0


Segue print dos arquivos baixados pelos comandos, ali tem datas bem diferentes.

http://i.imgur.com/N48miat.png
http://i.imgur.com/fTliKJh.png


10. Re: Tirei férias e ferraram meu servidor?

Giovanni  M
Giovanni_Menezes

(usa Devuan)

Enviado em 26/10/2015 - 17:01h

Aqui funciono, mas abre com o gedit então que fica mais facil gedit /var/log/kern.log

Como você já tem as datas prováveis, só olhar no log o dia em questão, control +F ajuda na busca



11. Re: Tirei férias e ferraram meu servidor?

Ricardo Fabiano Silva
madrugada

(usa Gentoo)

Enviado em 26/10/2015 - 19:44h

Silas Matos escreveu:

Eu costumo logar como root, e provavelmente deixei a tela aberta, mas ninguém acessa minha mesa diretamente, e ninguém tem conhecimento de linux por aqui, por isso acredito ser um acesso de fora, tem como eu detectar por algum log se entraram ou o que fizeram exatamente?

A senha do root é com letras e números, mas nada exagerado, algo como xx9999999, tudo minúsculo, eu estou é curioso para saber como entraram, para fechar a brecha, vou postar o firewall aqui:


Tem câmeras no ambiente?




12. Re: Tirei férias e ferraram meu servidor?

Patrick
Freud_Tux

(usa Outra)

Enviado em 26/10/2015 - 22:15h

Silas Matos escreveu:

Eu costumo logar como root, e provavelmente deixei a tela aberta, mas ninguém acessa minha mesa diretamente, e ninguém tem conhecimento de linux por aqui, por isso acredito ser um acesso de fora, tem como eu detectar por algum log se entraram ou o que fizeram exatamente?

A senha do root é com letras e números, mas nada exagerado, algo como xx9999999, tudo minúsculo, eu estou é curioso para saber como entraram, para fechar a brecha,[...]"


Muda a tua senha de root.
Hoje em dia, estão usando até as GPU's para rodarem programas para quebrar senha junto com a CPU.
Eu aconselho a reinstalar tudo, pois seu servidor foi comprometido, mas antes, dá uma fuçada nos logs (/var/log) e veja como foi realizada a conexão na sua máquina, horário, tudo...
Pelos logs dá pra ter uma ideia e mapear os rastros.

T+ e boa sorte ;)



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts