일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- backtrack
- BTr3
- window
- 마운트
- 윈도우서버
- 실습
- CentOS
- cybersecurity
- VMwares
- TrueCrypt
- 프로젝트
- 네트워크
- 윈도우
- Linux
- mount
- DiskQuata
- debian
- VPN
- defrag
- redhat
- ㅂ
- 윈도우볼륨축소
- 오류
- 정보보안
- 예시
- network
- 제어판
- 볼륨
- ipsec
- Today
- Total
목록전체 글 (95)
정보 보안을 향한 항해
iptables 체인에 대한 규칙에는 7가지 정도가 있다. 1. 체인에 있는 룰은 처음부터 순차적으로 실행된다. ※ 체인에 있는 룰의 각각 설정을 엔트리(entry) 라고 부른다 2. 매치되는 룰을 만나면 그곳에서 더 이상 아래로 내려가지 않고 체인을 벗어나서 타겟에게 액션을 적용시킨다. 3. 추가 (-A INPUT ~) 시 맨 아래에 저장된다. 4. 체인 변경 -I INPUT 2 두번째 엔트리로 만드는 것 -I INPUT 2 5. 체인 교체 -R INPUT 3 ~ (세 번째 엔트리를 바꿈) 세 번째 엔트리를 바꾸는 것 -R INPUT 3 ~ 6. 체인 저장 iptables-save > /etc/iptables.ori iptables.ori 는 임으로 지정한 파일 이름이다. 7. 체인 복원 iptable..
iptables 룰의 기본 구조는 # iptables -A INPUT -p tcp -m multiport --dports 80,443 -i eth0 -s 192.168.100.0/24 -d 10.10.10.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT 이렇게 사용하는 것도 가능하다. # iptables -A INPUT -p tcp -m multiport --dports 20:100 -i eth0 -s 192.168.100.100 -d 10.10.10.10 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 가능한 것들을 정리하자면, --dports 80,443 --dports 20:100 -s 192.168.100.0/24 -..
체인 종류 설명 특징 A(ppend) 추가 해당 체인의 룰에서 맨 끝에 자리함 I(nsert) 끼워 넣기 체인의 시작이나 어느 포인트에도 자리할 수 있는데 '-I 체인 룰_번호'식으로 지정해서 어느 곳이라도 위치시킬 수 있다. 대부분 체인의 시작에 룰을 둘 때 사용된다. 룰 1뒤에 -I INPUT 2 ~ 식으로 넣으면 이후의 룰은 번호가 하나씩 밀리게 된다. R(eplace) 대체 '-R 체인 룰_번호'식으로 사용하면 해당 룰이 새로운 룰로 대체됨 D(elete) 삭제 -D만 사용하면 매치되는 첫 번째 룰 삭제 '-D 체인 룰_번호' 는 해당 룰만 삭제 옵션 -C 체인 규칙 확인 -L 체인 규칙 보기 -C(체인 규칙확인), -L(체인 규칙보기), -F(지정한 체인내의 모든 규칙제거), -N(사용자_정의 ..
GUI 로 실행된 iptables 이다. iptables 실행하는 방법에는 4가지가 있다. 1. System > Administration > Firewall 2. system-config-firewall 명령어 3. console 에서 iptables 명령어 사용 # iptables -A INPUT tcp -m state --state NEW,RELATED --dport=22 -j DROP 4. /etc/sysconfig/iptables 파일에 작성 파일에서 작업시 save 가 적용되지 않는 경우가 있으므로 주의한다. 또한, 다른 머신 같은 파일에 설정을 복사해서 붙여넣으면 같은 방화벽 tables 사용이 가능하다. 예를들어서 centos1 에서의 방화벽 table 을 centos2 나 centos 3..
iptables 에서 사용하는 용어 용어 설명 특징 주의 policy 패킷에게 적용되는 룰 정책 tables filter(걸러줌), nat(주소전환), mangle(섞임), raw(순수형태) iptables에서는 주로 filter를 사용하고 INPUT(들어옴), OUTPUT(나감), FORWARD(전달) 체인을 가진다. ex. iptables -t filter --list chain 일단의 룰을 말하는데 하나의 체인에 여러 룰이 한 줄에 하나 씩 들어있다. match 룰에서의 각 조건을 말하는데 --source(-s 출발지), --destination(-d 목적지), --protocol(-p 프로토콜), --in- interface(-i 입력_인터페이스), --out-interface(-o 츨력_인터페이..
# ls /lib64/security/ pam_tally2.so 확인 이 파일이 passwd 규제 하는 파일이다 수정전 auth required pam_tally2.so deny=3 unlock_time=1800 no_magic_root reset 추가한다 required 강제 sufficient 보다 강한 것이다 no_magic_root 루트는 해당하지 않는다 unlock_time=1800 30분 제한한다 ctrl o + ctrl x 로 저장후 닫기 다른 machine 에서 ssh 시도 3번째 시도에서 Permission denied 된다. 취소후 재시도해도 권한 거부된다. 주의할 점은 telnet 에서도 들어갈수 없다는 점이다. root 는 3번 틀린 후에도 ssh 시도가 가능하다 # nano -c ..
# ls /lib64/security lib(rary) 파일은 널리 그리고 자주 사용되는 모듈(printing, file read, ...) 을 생성해서 여러 프로그램에서 변형없이 바로 사용할 수 있는 프로그램 단위이다. 이런걸 module 이라고 하고, 일종의 code block 이라 얘기할수도 있다. 확장자 .so 는 source 를 의미한다. # nano -c /etc/pam.d/sshd 수정전 auth required pam_listfile.so item=user sense=deny file=/etc/no_sshusers onerr=succeed 추가한다. 다른 콘솔로 /lib64/security/pam_listfile.so 확인 이 pam_listfile.so 의 보안 모듈을 가져오려는 것이다 ..
PAM 실습1 - 특정 사용자의 crond 서비스 이용시간 제한하는 실습 사용자 2명 생성 crond 파일 확인 # ls /etc/pam.d # cat /etc/pam.d/cond 확인 새 터미널 열기 # crontab -e # nano -c /etc/security/time.conf time.conf 번째 줄을 61번째줄을 따라서 넣는다 ctrl o + ctrl x Hello! 는 pts/1 에 계속 나오고 있다 # nano -c /etc/pam.d/crond /etc/pam.d/crond 파일 수정전 모습 추가한다 required 는 필수를 의미한다 ctrl o + ctrl x # crontab -e 확인 주석 붙여서 ESC 누르고 :wq PAM 으로도 할수있지만 /etc/cron.deny 파일에서도..
VMware MAC 주소와 machine MAC 주소가 일치하지 않을때 발생하는 에러이다. 1. VMware 우측 상단 VM > Settings > Network Adapter > Advanced 제일 아래의 Mac 주소를 복사한다 2. nano /etc/udev/rules.d/70-persistent-net.rules 에서 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0C:29:B3:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 에서 ATTR{address}== 뒤에 붙여넣고 저장한다. 3. nano /etc/sysconfig/network-scripts/ifcfg-eth0 에서도 HW..
이제까지 ssh 사용은 사용자와 passwd 입력해서 연결했다 이제는 key 를 넣어서 인증하겠다 centos 에서 작업한다 [root@centos1 centos]# service sshd start [root@centos1 centos]# netstat -nltp | grep 22 Permissive 확인 [root@centos1 centos]# setenforce 0 && getenforce Permissive [root@centos1 centos]# iptables -nL --line-numbers 기본적인 ssh 설정을 마쳤다 Win7 에서 머신 가동 PUTTYGEN을 사용할것이다 정식으로 설치한다 OK 먼저 putty 설치후 PUTTY GEN 실행시킨다 Generate 누르면 엄청 느리지만 마우..
# echo # truecrypt Dismount All 2번 선택후 Select File mount OK password 입력후 OK mount 됐다 더블클릭 secreted.txt 확인 물론 여기서 더블클릭해서 내용 볼수 있다 mount 경로 지정도 할수있다 /root/123 Open /root/crypted 로 mount point 설정된 것 확인 console 에서 확인하기
filesystem 전체를 암호화하는 도구 BTr3 으로 실습한다. BTr3 machine 을 연다. Install TrueCrypt Agree enter enter 명령어 # truecrypt 64개의 파일이 보인다 ㅇ 이건 mount 규제하는 것이다 Create Volume Next Standard 다른 거 하면 나중에 파일 생성해도 아무도 알수없다 Select File root 아래 crypted 라는 파일로 생성된다 Next 암호화 알고리즘 AES 해쉬 알고리즘 RIPEMD-160 그대로 Next 10 passwd 입력후 Keyfiles Generate Random keyfile... 마우스를 움직이면 Pool 이 생성된다 적당히 하고 Save 이름 입력후 Save OK Add Files /roo..
바로 전 실습은 우리가 만들어서 했지만 지금은 web 에서 다운받아서 해보는 실습이다. 디렉토리 생성 후 이동 # mkdir /gpgdir_src # cd /gpgdir_src/ wget 으로 gpgdir 패키지를 다운받는다 GPG Sig 서명파일(~.asc) 도 다운 받는다 다운 확인 # ls asc가 공개키임을 알수있다 asc 는 디지털 인증서와 비슷하다. 중간 점검 .asc 전자 서명한 내용이 들어가 있는 파일이다. 이름 변경 # cat public_key > gpgdir-1.9.5.tar.bz2 확인 키링에다가 넣어준다 # gpg --import public_key # gpg --list-keys 전자서명한 파일 (~.asc )로 만들어준다 # gpg --verify gpgdir-1.9.5.tar..
비대칭키인 개인키/공개키 암호화는 공적인 비밀 파일을 주고받을 때 사용하면 좋다. A와 B의 개인키는 서로 다르지만 공개키는 같아야한다 A가 상대방 B가 보내준 공개키와 A 자신의 개인키로 파일을 암호화해서 B에게 보내면 B는 A가 보내온 암호문을 자신의 개인키와 A에게 보냈었던 공개키로 복호화한다. 따라서 수신자 B는 송신자 A가 암호화할 때 사용할 자신의 공개키와 A가 보내온 암호문을 복호화할때 사용될 사진의 개인키를 모두 가지고 있어야 한다. B는 자신이 공개키를 만들거나 신뢰할 수있는 인증기관(CA) 으로 부터 공개키를 받아서 A에게 보낼 수있다. 공개키와 개인키는 함께 만들어져야 효력이 있다. 하지만 B가 자신의 공개키를 A, C, D, E … 등 여러 사용자에게 파일로 첨부해서 보내면 보안 상..
CentOS machine과 BackTrack을 활용한다. 평문장 하나를 만든다 gpg openssl ssl 암호화 평문장을 암호화 문장으로 만들겠다 rootoor 를 넣어준다 이 rootoor 가 키(key) 이다 한번더 rootoor 입력 확인한다 # ls 깨지는 게 정상이다 암호화 했기 때문이다 BTr3 sshd start 해주자 방화벽 열기 # ufw allow 22/tcp # service sshd start 해주었지만 확인해본다 centos에 있는 파일을 가져온다 # scp centos@192.168.100.128:/home/centos/sym_key.txt.gpg gpg 를 풀어준다 root passwd를 입력해야한다 읽는다 # cat /root/Desktop/sym_key.txt
backtrack 에 온갖도구가 다 있기 때문에 BTr3 에서 실습한다. Appllications > BackTrack > Forensics > Forensic Hashing Tools > md5deep 참고로 Forensic Hashing Tools 위에 있는 Carving 을 죽은 것을 살린다는 의미이다. 콘솔창이 열리면 # echo "I" > test1.txt hash 를 확인한다 # md5deep test1.txt # echo "I" > test1.txt # md5deep test1.txt hash 길이는 32글자로 같다 sha256deep sha256deep 암호화 알고리즘에 따라서 hash 의 길이가 달라진다 만약에 md5deep 에 소문자 "i" 넣는다면 # echo "i" > test3.t..
Untangle 에서 admin 의 초기 패스워드는 passwd 지만 안 먹혀서 초기화시키려한다 Recovery Utilities Yes Reset Administraties Accounts 에서 ENTER Yes ENTER Exit Yes 꺼진다 이제 admin 로그인이 초기 패스워드인 passwd 로 가능하다.
설치중이다 memory 가 작다고 나와도 continue 클릭 format yes disk write yes 설치중 continue 클릭 자동 rebooting 된다 이 상태에서 안 넘어가면 강제로 power off 후에 다시 power on 해준다 external 이 eth0, internal 이 eth1 이다 인터넷 커넥션 클릭 save
다른 machine 에서 EFW 의 주소로 들어간다 # firefox https://192.168.152.200:10443 upgrade 필요없음을 클릭하면 로그인창이 뜬다 아이디 admin 비밀번호 endian 모두 체크 Nerwork configuration 클릭 >>> GREEN (bridge) ip 주소 입력 RED host-only ip 주소 입력 끝
시리얼연결 eth0 brigde eth1 host-only 시간이 걸린다니 기다린다 주소를 기억해놓자 https 주의 설치 끝났다 rebooting 된다 POST 화면 빨간색이면 Hardware 나 Software 에 문제가 있는 것이다 기다린다 2번 선택 root 패스워드 설정 초기 루트 비밀번호는 endian 이다 endian 입력후 새로운 패스워드 설정 짧으면 오류가 날수도 있으니 평소 비밀번호에 12를 붙여준다. ENTER 후 0 입력 SHELL 로 들어왔다 login 입력 아까 설정한 root 패스워드 입력 로그인 성공 # ifconfig # exit 다시 menu 화면으로 돌아간다. 5입력 hostname 설정 efw DHCP 를 지우고 STATIC 입력 ENTER 오렌지 그린은 필요없으니 E..
# ifconfig MAC 주소 복사한다 입력 static 고정 ip 사용시에는 Use DHCP * 에서 space bar 를 누릅니다. ok # ifconfig 로 확인한다 BOOTPROTO=static 으로 변경 HWADDR 올바른지 확인, 대소문자는 관계없다. ONBOOT 가 no 로 되어있다면 yes 로 바꾼다 DNS1, DNS2 와 GATEWAY 도 확인해준다 저장 CTRL O 나가기 CTRL X 설정이 제대로 되어있는지 확인한다 firefox 로 인터넷 접속 네트워크가 죽어있어서 reboot 한 후 다시 시도 1443 은 packetfense 의 port 이다 reboot 시에도 안 되면 auto Ethernet 삭제 후 auto eth0 의 Edit 클릭 IPv4 Settings 클릭 DHC..
Create a New Virtual Machine 게스트 OS 는 Linux Version 은 CentOS 6 64bit 나머지는 모두 Next 로 설치한다 terminal 에서 # sudo su root 패스워드 지정 # passwd root 바탕화면의 Install to Hard Drive 더블 클릭후 방금 설정한 root passwd 입력한다 Yes, discard any data 데이터는 버린다 이름은 PF 로 설정한다. 설치된다 # reboot forward 두번 use anyway finish yes 자동 reboot 되면서 이 화면이 뜨면 성공이다
먼저 설치한다. 금방된다. 이게 단어가 아니라 하나하나가 옵션이다 과정을 자세히 보여라 packet 을 보내지 않고 듣고있는 애만 보여라 열린 애들은 이렇게 뜬다 이런식으로 NC 를 이용해 포트 스캔 (port scan) 을 할수있다 나중에 알겠지만 DNS 는 TCP 와 UNS 를 다 사용한다 TCP 와 UDP 는 다음에 설명하겠다 DNS 는 호스트 이름을 IP (아이피) 로 바꾸어주는 것이다 www.naver.com. 이 있다면 맨 뒤에있는 .이 root이다 root 부터 시작해서 com 에 들어있는 -w timeout 5초 동안 스캔해서 안 되면 그만둬라 열려있는 port 를 알수있다 nmap 과는 다르다. nmap 이 좀더 쌈박함 html 소스를 알아낼수있다 이런식으로 나중에 홈페이지등을 변경할수 있다
nmap 자주쓰는 옵션 sS SYN session 수립 않은 - default sT TCP 스캔 sN Null 모든 플래그를 off 로 설정 sF finish FIN 플래그만 설정 sX X-mas 모든 플래그를 ON로 설정 X-mas 는 크리스마스 트리처럼 모든게 다 있는 걸 체크하는것이다 sP Ping 으로 라이브 노드만 점검 sU UCP 스캔 sO protocol 점검 sl 해당 machine 이 zombie machine인지 확인 sW window (data 전송량) 크기 점검 sV 열린 port 와 version 보기 O OS 보기, -A : OS 와 OS 버전 보기 v 상세 결과 보기 등과 이외의 많은 플래그 들이 있다 ※ UDP, TCP 중에서 TCP 가 연결지향적이라 시간이 덜 걸린다. ※ ..
# nano /etc/network/interfaces 저는 수동으로 ip 주소를 주기위해 static 으로 변경했습니다. address netmask gateway dns-servers 입력해줍니다. 입력후에 저장 ctrl + o 나가기 ctrl x # service networking restart # reboot 해준후 # ifconfig 잘 들어갔는지를 확인합니다 # ping 다른 머신 주소로 ping 을 보냅니다. 다른 머신이 없다면 ping 8.8.8.8 해도 됩니다. ping 이 잘 가는 것을 확인하면 따로 vmware tool 을 깔아줄 필요가 없기 때문에 바로 # clear snapshot 을 찍어줍니다.
metasploitable2 다운 받는 주소 https://sourceforge.net/projects/metasploitable/ Open a Virtual Machine 클릭 Meta 의 default 사용자는 msfadmin 패스워드도 msfadmin root 패스워드 생성 # sudo su # passwd root
해커가 타겟 서버의 IP 를 자신의 출발지 네트워크로 위장해서 수시로 전체 네트워크에 ARP 프로토콜로 echo request 브로드 캐스팅해서 특정 노드를 찾으면, 모든 클라이언트들이 이 패킷을 받고 해당 노드가 echo reply 로 자신의 MAC 주소를 해커에게 응답하므로 네트워크상의 트래픽이 과부하되어 서버가 DoS 공격을 받게 되는 셈이 된다. 또 nmap -sS 192.168.100.100 식으로 타겟머신의 서비스와 포트를 알아내는 nmap 도구도 ICMP 프로토콜이 사용되므로 echo request 에 대한 echo reply 를 막아두면 내부 정보가 노출되지 않을 것이다. ⇒ 이런 공격을 막으려면 브로드캐스트로 요청되는 echo request ICMP 패킷에 응답하지 않게 하거나, 라우터와..
# nano buffer.c 파일을 만들어서 명령어를 넣어줍니다. library - 여러 프로그램에서 공동으로 사용하는 module 을 ( 헤더 파일을) 원래 memory 는 16 진수로 표시된다 10진수 %d (정수) 전 이런 명령어를 넣었습니다. 상관 없는 warning 입니다. # ls buffer 가 실행파일임을 확인 # ./buffer buffer 실행파일 실행 명령어 32 칸을 채웠다 - name 에 해당되는 주소공간이라 문제없다 system command 에 해당되는 문자열이 필요하다 32 숫자 뒤에 cat 붙였다 cat = system 문자열 명령어가 실행된 걸 볼수있습니다. 다른 명령어도 잘 실행됩니다.
yum (Yellowdog Updater Modified) yum 명령어를 통해서 간편하게 종속적인 패키지 문제도 한 번에 해결해 가면서 작업할 수있는 이유는 소프트웨어 repository 인 /etc/yum.repos.d/ 디렉토리에 대부분 패키지 사이트에 관한 경로 정보를 가지고 있는 ~.repo 파일들이 들어있기 때문이다 RedHat 계열의 YUM 은 Debian Linux 계열의 APT *Advanced Packaging Tool) 와 비슷한 역할을 한다. 디폴트 리포지토리인 CentOS-Base.repo 이외에 nginx.repo 와 같은 특정 패키지에 대한 repository 파일과 EPEL, REMI, 그리고 IUS 들 repository 를 추가해두면 software 관리를 더욱 풍부하게 ..
file 과 dir 를 묶어나 압축할 때 tar 를 주로 사용하지만, 파일 압축에 gzip 을 사용하기도 한다. 파일 압축은 file 의 저장공간을 줄여주고, 파일 전송 시 전송시간을 줄여주지만 여러 file 을 묶어서 하나의 file 로 백업할 때도 사용된다. gzip 에서는 별도로 생성되는 file명을 지정하지 않으면 “해당_파일_명.gz” 으로 입력된다 gzip 실습 # gzip /root/install.log install.log 파일이 압축파일로 변경된다 # gzip -r /root/ root 밑에 3개를 다 압축하라는 뜻 주의 ) directory 는 압축되지 않음 gzip -r dir 전체 ⇒ dir 안 모든 file 압축 -r option 은 recursive 를 의미 gzip 압축 풀기 ..