Sniffit
sniffit은 hunt에서 제공하는 정보보다 좀더 많은 정보를 제공한다.
작성자 : Brecht Claehout
필요조건 : C, IP 헤더, libpcap 라이버리( ftp://ftp.ee.lbl.gov/libpcap.tar.Z)
Download : http://reptile.rug.ac.be/~coder/sniffit/sniffit.html
sniffit은 상당한 설정 기능을 제공하는 비장의 카드이다. 그러나 사용할 때에 고려해야 할 점들이 많이 있으므로 주의한다.
설치
[root@linux mk]#./configure
[root@linux mk]#make
** 인터렉티브 모드로 작동시키기
[root@linux mk]# ./sniffit -i
Server : 211.234.52.20
Client : 211.234.52.10
Source Target
211.234.52.10 : 1704 - 211.234.52.20 : 23 /* ls, pwd 등 명령만 출력 */
211.234.52.20 : 23 - 211.234.52.10 : 1704 /* ls, pwd 등 명령와 결과도 출력 */
** 패킷 모니터링 (모티터 출력)
[root@linux mk]# ./sniffit -d -t 211.234.52.10
[root@linux mk]# ./sniffit -d -t 211.234.52.20 -p 23
** 패킷 모니터링 (파일출력)
[root@linux mk]# ./sniffit -t 211.234.52.20 -p 23
파일명 : 211.234.52.10.1704-211.234.52.20.23 /* ls, pwd 등 명령만 출력 */
[root@linux mk]# ./sniffit -t 211.234.52.10
파일명 : 211.234.52.20.23-211.234.52.10.1704 /* ls, pwd 등 명령와 결과도 출력 */
일반모드(Normal mode)
각 커넥션에 대한 데이터가 "출발지IP.출발지포트-도착지IP.도착지포트"와 같은 형식으로 저장된다.
Dump 모드
-d, -a 옵션 등을 주었을 경우 데이터가 stdout으로 바로 출력된다.
-c : 설정파일 명시
-p : 특별히 감시할 포트 설정
-s : 발신지 IP로부터 들어오는 패킷을 수집
-t : 목적지 IP로부터 들어오는 패킷을 수집
인터렉티브 모드(Interactive mode)
-i, -I 옵션 등을 주었을 경우 데이터가 curses를 사용하는 터미널로 출력됩니다. 각 커넥션 리스트가 나오고 브라우징이 가능합니다.
F1 : 출발지 호스트에 대한 필터링
F2 : 목적지 호스트에 대한 필터링
F3 : 출발지 포트에 대한 필터링
F4 : 도착지 포트에 대한 필터링
7/29/2009
7/23/2009
tcpdump 사용법
tcpdump 기본 사용법
# tcpdump -i eth0 => 특정 ethernt(eth0) 으로 송수신 되는 데이터 패킷 덤프하여 확인
# tcpdump -i eth0 -w TCPDUMP => 특정 ethernet으로 송수신 되는 패킷들 파일에 저장 및 확인
# tcpdump -r TCPDUMP => TCPDUMP에 저장된 패킷헤드들을 확인
# tcpdump -i eth0 -c 10 => 특정 ethernet에서 지정한 개수만큼의 네트워크 패킷 덤프하여 확인
# tcpdump -w tcpdump.log -s 1500 tcp port 22 and host 192.168.0.1
=> 서버의 특정포트로 송수신되는 모든 데이터패킷 전체를 확인
이 명령의 의미는 현재 로컬서버와 192.168.0.00서버사이의 통신데이터패킷 중 tcp 22번포트의
모든 패킷을 1500길이로 캡쳐하여 tcpdump.log파일에 저장
# tcpdum -Xqnr tcpdump.log => 캡쳐한 tcpdump.log파일의 내용을 ASCII모드로 확인
# tcpdump -q \( dst net 1.2.3.0/24 or 1.2.4.0/25 \) and dst port 80
; 목적지 주소가 1.2.3.x/24 와 1.2.4.x/25 이고 80번포트인 패킷 캡쳐
- # tcpdump host A
; A 호스트로/부터의 모든 도착/출발 패킷 출력
- # tcpdump host A and \( B or C \)
; A 호스트와 B 또는 C 사이의 모든 트래픽 출력
- # tcpdump ip host A and not B
; A호스트와 B를 제외한 호스트 간의 모든 IP 패킷 출력
- # tcpdump net ucb-ether
; 로컬호스트와 Berkeley의 호스트들 간의 모든 트래픽 출력
- # tcpdump 'gateway A and (port ftp or ftp-data)'
; 게이트웨이 A를 통한 모든 ftp 트래픽 출력
- # tcpdump ip and not net
; 로컬네트워크로/부터가 아닌 모든 트래픽 출력
- # tcpdump 'tcp[13] & 3 != 0 and not src and dst net '
; 로컬네트워크가 아닌 TCP 시작과 마지막 패킷 출력
- # tcpdump 'gateway A and ip[2:2] > 576'
; 게이트웨이 A를 통해 보내지는 576 Bytes보다 긴 IP 패킷 출력
- # tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'
; 이더넷이 아닌 IP 브로드 또는 멀티 캐스트 패킷 출력
- # tcpdump 'icmp[0] != 8 and icmp[0] != 0'
; echo 요청/응답이 아닌 모든 ICMP 패킷 출력 (ping 아닌 패킷)
- # tcpdump src net 1.2.3 or 1.2.4 and not dst net 1.2.3 or 1.2.4
; 1.2.3 과 1.2.4 IP주소 (내부) 패킷을 제외한 모든 패킷 출력
- # tcpdump -i br1
; br1 인터페이스의 모든 패킷 출력
; 목적지 주소가 1.2.3.x/24 와 1.2.4.x/25 이고 80번포트인 패킷 캡쳐
- # tcpdump host A
; A 호스트로/부터의 모든 도착/출발 패킷 출력
- # tcpdump host A and \( B or C \)
; A 호스트와 B 또는 C 사이의 모든 트래픽 출력
- # tcpdump ip host A and not B
; A호스트와 B를 제외한 호스트 간의 모든 IP 패킷 출력
- # tcpdump net ucb-ether
; 로컬호스트와 Berkeley의 호스트들 간의 모든 트래픽 출력
- # tcpdump 'gateway A and (port ftp or ftp-data)'
; 게이트웨이 A를 통한 모든 ftp 트래픽 출력
- # tcpdump ip and not net
; 로컬네트워크로/부터가 아닌 모든 트래픽 출력
- # tcpdump 'tcp[13] & 3 != 0 and not src and dst net '
; 로컬네트워크가 아닌 TCP 시작과 마지막 패킷 출력
- # tcpdump 'gateway A and ip[2:2] > 576'
; 게이트웨이 A를 통해 보내지는 576 Bytes보다 긴 IP 패킷 출력
- # tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'
; 이더넷이 아닌 IP 브로드 또는 멀티 캐스트 패킷 출력
- # tcpdump 'icmp[0] != 8 and icmp[0] != 0'
; echo 요청/응답이 아닌 모든 ICMP 패킷 출력 (ping 아닌 패킷)
- # tcpdump src net 1.2.3 or 1.2.4 and not dst net 1.2.3 or 1.2.4
; 1.2.3 과 1.2.4 IP주소 (내부) 패킷을 제외한 모든 패킷 출력
- # tcpdump -i br1
; br1 인터페이스의 모든 패킷 출력
7/21/2009
7/13/2009
clamav
clamav rpm 을 다운받고 rpm을 설치-
clamscan -ri /home > /root/clamscan.log 2>&1 : 구동 방법-!
virus scan..
[root@kyen etc]# cat /root/clamscan.log
----------- SCAN SUMMARY -----------
Known viruses: 585291
Engine version: 0.95.2
Scanned directories: 1664
Scanned files: 30557
Infected files: 0
Data scanned: 1088.32 MB
Data read: 697.22 MB (ratio 1.56:1)
Time: 401.626 sec (6 m 41 s)
결과물-
7/10/2009
yum 이 안될때
얼마전에 개인용도으로 Redhat을 깔았는데.
yum이 안되더군요 yum을 누르면 아래와 같은 메시지가 뜹니다.
This system is not registered with RHN
CentOS는 Redhat의 쌍둥이 클론입니다. 즉 같은 rpm을 사용한다고 보시면 됩니다.
(Redhat 5 Update 2 => CentOs 5.2 와 같이 Update 버전에 따라서 서브 버전이 나뉩니다.)
게다가, 말로만 듣던 gcc버그때문에, gcc를 업데이트할 일이 있어서.
구글링을 하다가 관련 자료를 찾아서 함 시도해보았습니다.
(http://www.linuxquestions.org/questions/linux-software-2/using-centos-repos-under-rhel-644632/)
1. /etc/yum.repos.d/rhel-debuginfo.repo 을 백업하고 삭제합니다.
2. /etc/yum/pluginconf.d/rhnplugin.conf 을 수정합니다.
(사실 이건 상관없을것 같은데. 기분상 해줍니다 -_-)
3. /etc/yum.repos.d 디렉토리에 아무 파일이나 만들어서 .repo 를 생성합니다.
현재 전 WS5 update1 버전입니다.. 빨강 부분을 주의하세요 :)
yum update 로 확인해본다-
yum이 안되더군요 yum을 누르면 아래와 같은 메시지가 뜹니다.
This system is not registered with RHN
CentOS는 Redhat의 쌍둥이 클론입니다. 즉 같은 rpm을 사용한다고 보시면 됩니다.
(Redhat 5 Update 2 => CentOs 5.2 와 같이 Update 버전에 따라서 서브 버전이 나뉩니다.)
게다가, 말로만 듣던 gcc버그때문에, gcc를 업데이트할 일이 있어서.
구글링을 하다가 관련 자료를 찾아서 함 시도해보았습니다.
(http://www.linuxquestions.org/questions/linux-software-2/using-centos-repos-under-rhel-644632/)
1. /etc/yum.repos.d/rhel-debuginfo.repo 을 백업하고 삭제합니다.
2. /etc/yum/pluginconf.d/rhnplugin.conf 을 수정합니다.
(사실 이건 상관없을것 같은데. 기분상 해줍니다 -_-)
[main]
enabled = 0
gpgcheck = 1
enabled = 0
gpgcheck = 1
3. /etc/yum.repos.d 디렉토리에 아무 파일이나 만들어서 .repo 를 생성합니다.
현재 전 WS5 update1 버전입니다.. 빨강 부분을 주의하세요 :)
# Cent.repo
[base]
name=CentOS-5 - Base
baseurl=http://mirror.centos.org/centos/5/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-5 - Updates
baseurl=http://mirror.centos.org/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
baseurl=http://mirror.centos.org/centos/5/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
baseurl=http://mirror.centos.org/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
baseurl=http://mirror.centos.org/centos/5/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[base]
name=CentOS-5 - Base
baseurl=http://mirror.centos.org/centos/5/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-5 - Updates
baseurl=http://mirror.centos.org/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
baseurl=http://mirror.centos.org/centos/5/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
baseurl=http://mirror.centos.org/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
baseurl=http://mirror.centos.org/centos/5/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
yum update 로 확인해본다-
7/08/2009
rkhunter
해킹 여부를 알려줍니다. 일종의 PC의 백신 같은 역할을 하는데 치료는 직접해야 합니다. 지속적인 업데이틀 통해 리눅스 바이러스를 체크해 줍니다.
- 설치
다음에서 최신 버젼을 다운로드 받습니다.
http://www.rootkit.nl/projects/rootkit_hunter.html
설치를 하고 나서 실행을 해 봅니다.
rkhunter -c -sk
에러들이 나오고 마지막에 결과가 정리되어 나옵니다.
Possible infected의 숫자가 0이 아닌 것이 나오면 바이러스에 걸린 것이니 로그를 보고 해당 부분에 대한 조치(주로 삭제)를 취해야 합니다.
로그
/tmp/rkhunter.log
업데이트
rkhunter --update
bin이나 sbin 등의 유틸리티의 경우는 동일한 OS의 서버에서 복사해 오면 복구가 가능합니다.
삭제를 했는데 권한이 없다고 나오면
chattr -isa 해당 파일
clamv
rkhunter가 시스템 rootkit 위주로 검사를 하는 반면 clamav는 PC의 바이러스처럼 전체 파일을 검사해서 바이러스 유무를 알려 줍니다.
- 설치
yum -y install clamav*
사용 방법
clamscan -ri /home >/root/clamscan.log 2>&1
home을 검색해서 clamscan.log에 결과를 저장합니다.
저장된 내용을 보고 바이러스를 제거 합니다.
업데이트가 필요하면 다음을 실행합니다.
/usr/bin/freshclam --quiet --no-warnings
바이러스가 많을 경우 일일이 찾아서 삭제하기 어려우니 다음 코드로 virusrm.php 같은 식으로 만들어 실행을 하면 로그 파일을 읽어서 자동으로 삭제해 줍니다.
$filename = "clamscan.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
$filename = "clamscan4.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
fclose($fp) or die("fclose failed");
?>
- 설치
yum -y install clamav*
사용 방법
clamscan -ri /home >/root/clamscan.log 2>&1
home을 검색해서 clamscan.log에 결과를 저장합니다.
저장된 내용을 보고 바이러스를 제거 합니다.
업데이트가 필요하면 다음을 실행합니다.
/usr/bin/freshclam --quiet --no-warnings
바이러스가 많을 경우 일일이 찾아서 삭제하기 어려우니 다음 코드로 virusrm.php 같은 식으로 만들어 실행을 하면 로그 파일을 읽어서 자동으로 삭제해 줍니다.
$filename = "clamscan.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
$filename = "clamscan4.log";
$fp = fopen($filename, "rb") or die("fopen failed");
while(!feof($fp)) {
$fileStr = fgets($fp, 1024);
if ( strstr($fileStr,"home")) {
$query = explode(": ",$fileStr);
$query = $query[0];
$check = system("rm -rvf $query");
echo "rm $query";
}
}
fclose($fp) or die("fclose failed");
?>
Subscribe to:
Posts (Atom)