SSH-brute-force
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. SSH Brute-force 공격 분석 최근 들어서 리눅스 서버의 secure 로그나 Abuse 메일들을 확인해 보면 … Continue reading
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. SSH Brute-force 공격 분석 최근 들어서 리눅스 서버의 secure 로그나 Abuse 메일들을 확인해 보면 … Continue reading
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. ssh port scan 소스 중 일부이다. 해킹당한 고객사 서버 점검 중 발견..(하여간 보안에 제발 … Continue reading
지겨운놈들.. 계속 공격 시도중… 경로 위치는 /usr/local/service/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
]# vi denyip.sh #!/bin/bash # Script by Yunkiman # Modified by icworld # Second Modified by dksniper(http://blog.naver.com/dksniper) # Convert oops-firewall to hosts.deny days=`date +%d` nowdir=`pwd` savedir="$nowdir/denylist" cleanfile="$nowdir/hosts.dat" cnt=0 if [ -e /var/log/secure ] then for i in $( tail -n50 /var/log/secure | grep "^[A-Za-z ]\{4,\}$days" | grep "Failed password" | awk -F "from" '{print $2}' | awk '{prin t $1}' | sort | uniq -c | awk '$1 > 8 {print $2}'); do denyip=${i#::ffff:} #ip format ::ffff:0.0.0.0 echo "ALL : $denyip" >> $savedir cnt=$(($cnt+1)) done fi #If not found then exit if [ $cnt = 0 ] then exit fi for a in $( cat /etc/hosts.deny | grep "ALL : " | awk '{print $3}' | sort | uniq -c | awk '{print $2}'); do echo "ALL : $a" >> $savedir done #cp $cleanfile /etc/hosts.deny echo "# # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! " > /etc/hosts.deny for b in $( cat $savedir | grep "ALL : " | awk '{print $3}' | sort | uniq -c | awk '{print $2}'); do echo "ALL : $b" >> /etc/hosts.deny done rm -rf $savedir /etc/init.d/xinetd reload |
위의 파일을 스크립트를 실행할 디렉토리(저의 경우는 /usr/local/service/)에 만들어 넣은 후 crontab에 다음과 같이 등록.
1 |
1-60/5 * * * * /usr/local/service/denyip.sh > /dev/null 2>&1 |
이렇게 하면 5분마다 한번씩 검사하여 5번이상 틀린사람은 거부를 하게함. 참고 : http://www.oops.org/SERVICE/jsboard/read.php?table=jsboard_oopsFAQ&no=426&page=2 http://www.oops.org/SERVICE/jsboard/read.php?table=jsboard_oopsFAQ&no=503&page=2
오늘 우연찮게 message 로그를 보게 되었는데.. 이런!!!! 이런 메세지들이 엄청나게 있는것이 아닌가?ㅡㅡ;;;;
1 2 3 4 5 6 7 8 9 10 11 |
Aug 10 08:26:28 xxxxxxxx sshd(pam_unix)[31593]: check pass; user unknown Aug 10 08:26:28 xxxxxxxx sshd(pam_unix)[31593]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=hostpartner-32.open-path.net Aug 10 08:26:33 xxxxxxxx sshd(pam_unix)[31594]: check pass; user unknown Aug 10 08:26:33 xxxxxxxx sshd(pam_unix)[31594]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=hostpartner-32.open-path.net Aug 10 08:26:39 xxxxxxxx sshd(pam_unix)[31595]: check pass; user unknown Aug 10 08:26:39 xxxxxxxx sshd(pam_unix)[31595]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=hostpartner-32.open-path.net Aug 10 08:26:44 xxxxxxxx sshd(pam_unix)[31596]: check pass; user unknown Aug 10 08:26:44 xxxxxxxx sshd(pam_unix)[31596]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=hostpartner-32.open-path.net Aug 10 08:26:49 xxxxxxxx sshd(pam_unix)[31597]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=hostpartner-32.open-path.net user=root Aug 10 08:26:54 xxxxxxxx sshd(pam_unix)[31598]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=hostpartner-32.open-path.net user=root Aug 10 08:27:00 xxxxxxxx sshd(pam_unix)[31599]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=hostpartner-32.open-path.net user=root |
어떤 XX가 서버에 root로 로그인을 하려고 수작을 부리는게 분명했다.. 그래서 어떻할까 고민을 하다가 우선은 sshd의 root 접속을 막고, 포트를 바꿔야 겠다..ㅋ /etc/ssh/sshd_config 변경. PermitRootLogin no Port … Continue reading
이제 학교는 졸업했지만.. 영어에 대한 압박은 여전히..ㅠㅠ
특정 경로이하 또는 파일에서 특정 문자열을 원하는 문자열로 변경하는 펄 스크립트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#! /usr/bin/perl -w # PERL Scripted by bando # DATE : 20040805 # Mail : bando@bando.org # MSN : bando@bando.org # 특정 경로이하 또는 파일에서 특정 문자열을 원하는 문자열로 변경하는 펄 스크립트 if ( $#ARGV != 2 ) { &Usage(); } $Chan_path = $ARGV[0]; $Chan_ch = $ARGV[1]; $Chand_ch = $ARGV[2]; $total = 0; if ( ! -e $Chan_path) { print "$Chan_path 와 같은 파일이나 디렉토리는 없습니다!\n"; exit 1; } @arry = `grep "$Chan_ch" -l -r $Chan_path`; foreach(0..$#arry) { $arry[$_] =~ s/\&/\\&/g; $arry[$_] =~ s/\(/\\(/g; $arry[$_] =~ s/\)/\\)/g; chomp($arry[$_]); `perl -p -i -e 's/$Chan_ch/$Chand_ch/g' $arry[$_]`; print "$arry[$_] : $Chan_ch => $Chand_ch [OK]\n"; $total++; } print "\nTOTAL : $total 개 변경됨!\n\n"; sub Usage { print "\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n"; print "사용법 : $0 [이 경로이하 또는 파일에서] [이 문자열을] [이 문자열로 변경]\n\n"; print "설명 : 일치하는 문자열을 특정 문자열로 변경한다.\n"; print "예제 : $0 /home localhost 127.0.0.1\n"; print "결과 : /home 디렉토리 이하의 모든 파일에서 localhost문자열을 127.0.0.1문자열로 변경한다.\n"; print "\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n"; exit; } |
간단한 네트웍 트래픽 측정 스크립트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#!/bin/sh # # Scripted by JoungKyun Kim # 2001.2.15 http://www.oops.org # This Script follows GPL2 License if [ "$1" != "" ]; then # ethnet device ETH="$1:" CHECK=/proc/net/dev CAT=/bin/cat GREP="/bin/grep ${ETH}" SED="sed -e s/${ETH}//" UPTIME=/usr/bin/uptime # parcket user check set `${CAT} ${CHECK} | ${GREP} | ${SED}` # Transmit packet let "in1 = $1" let "out1 = $9" echo "측정중입니다. 기다려주세요" sleep 10 set `${CAT} ${CHECK} | ${GREP} | ${SED}` let "in0 = $1" let "out0 = $9" let " in = ($in0 - $in1)/(10*1024)" let " out = ($out0 - $out1)/(10*1024)" echo "수신(in) $in kbyte/s" echo "송신(out) $out kbyte/s" else echo "USAGE: $0 [ethernet device no]" echo "ex) ./$0 eth0" fi exit 0 |
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. ######################################################################### # ICMP패킷을 이용한 장난감 # # 글쓴이 : 노광민 # email : dalgu2@orgio.net … Continue reading
chkrootkit 설치 파일 무결성 검사, 루트킷 체킹 프로그램(chkrootkit)을 이용하여 검사 가능 홈페이지 : http://www.chkrootkit.org/ 다운받기
1 |
]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz |
설치는 그냥 컴파일만 하면된다.
1 |
]# make |
실행
1 |
]# ./chkrootkit |
크론으로 매일 특정시간에 체크해서 로그를 남겨두면 좋을 것 같다.
docbook을 설치 하려고 다운을 받았는데 zip파일이였다. 당연히 unzip이 있을 줄 알고
1 |
]$ unzip xxx.zip |
했더니 OTL 없었다..ㅡㅡ;;
1 |
]$ rpm -qa | grep unzip |
요즘 배포판은 unzip도 안깔려있는게냐? 암튼 귀찮아서 yum으로 설치 하려고 했다.
1 2 3 4 5 |
]# yum install unzip Traceback (most recent call last): File "/usr/bin/yum", line 22, in <module> import yummain ImportError: Bad magic number in /usr/share/yum/yummain.pyc |
이게 먼말이다냐? 지난번에 잘썼던 yum인데.. 그냥 yum 을하든 yum list를 하든 모두 … Continue reading