728x90

/ 보안 훈련
- 매뉴얼 훈련

 

728x90

'정보보안학원 > KITRI 침해대응' 카테고리의 다른 글

101일차 - 보안가이드라인  (0) 2023.03.09
100일차 - 보안가이드라인  (0) 2023.03.08
99일차 - 보안가이드라인  (0) 2023.03.07
98일차 - 보안가이드라인  (0) 2023.03.07
97일차 - 이더채널  (0) 2023.03.03

728x90

/ 리눅스
- 리눅스는 자신의 상태를 알려주는 다양한 기능이 존재한다.
- 자동 보고 기능
- abrt-cli list --since 1677720201
- rsyslogd  ---> /var/log
 > 윈도우(sysmon.exe)

 

/ 윈도우 방화벽
- 방화벽 : 시스템 방화벽 -> 고급 방화벽 -> iptables와 유사하다.(특정 프로그램 / 특정 포트를 대상으로 한다.)
- defender(커널단...) -> selinux와 유사하다. 
- 직접 설치 : 백신 / 키로그방지 / 브라우저 자체 방화벽
- 방화벽 모듈 --> WAF ---> CATLE / Web Knight / Snort

/ 리눅스 방화벽
- selinux(커널단 방화벽)
 > enforcing  : 활성화
 > permissive : 비활성화
 > disabled   : 꺼짐
 > 명령 : setenforce / getenforce / setbool
- iptables : port / service 단위 등록 / Network + rich rule(기본 룰 + 추가 옵션)
- RHEL --> firewalld
 ex) firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="14.36.28.128/25" port protocol="tcp" port="22" accept'
- Ubuntu ---> ufw
 ex) ufw allow from 10.0.2.15 to any port 9666
- 최신형 nftable(nework filter tables)
 > iptables, ip6tables, arptables 기능을 모두 포함하는 tool 입니다. 
- tcpwrapper ---> 서비스단에 전달되기 직전 방화벽

/ rich rule
- ACCEPT     tcp  --  14.36.28.128/25      anywhere             tcp dpt:9200
- iptables -L
- iptables -A INPUT -p tcp -s SRC.IP --sport SRC.PORT -d DEST.IP --dport DEST.PORT -j ACEEPT
- -A : append : 정책을 추가할꺼야~

-j  : 정책 ---> 1. DROP
                2. ACCEPT
                3. REJECT
                4. LOG
                5. RETURN
-A : 새로운 규칙을 추가한다. (--append)
-D : 규칙을 삭제한다. (--delete)
-C : 패킷을 테스트한다. (--check)
-I : 새로운 규칙을 삽입한다. (--insert)  
 * -A와 다른점은 -A는 아무런 규칙이 없는 상태에서 추가를 하는 것이고 -I 옵션은 규칙이 생성된 상태에서 삽입한다는 의미이다.
-R : 새로운 규칙으로 교체한다. (--replace)
-L : 새로운 규칙을 출력한다. (--list)
-F : 체인의 모든 규칙을 삭제한다. (--flush)
-Z : 모든 체인의 패킷과 바이트 카운터 값을 0으로 만든다. (--zero)
-N : 새로운 체인을 만든다. (--new)
-X : 체인을 삭제한다. (--delete-chain)
-P : 기본정책을 변경한다. (--policy)
-p : 패킷의 프로토콜의 포트번호 또는 이름을 명시한다. (--proto) (ex: tcp, udp, 21, 22)
-s : 패킷의 발신지를 명시한다. (--source)
-d : 패킷의 도착지를 명시한다. (--destination)
-i : 규칙을 적용할 인터페이스 이름을 명시한다. (--in-interface)
-j : 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시한다. (--jump)
-y : 접속 요청 패킷인 SYN패킷을 허용하지 않는다. (--syn)
-f : 두 번째 이후의 패킷에 대해서 규칙을 명시한다. (--fragment)
-m : 특정 모듈과의 매치 (--match)

 

/ 예제

iptables -A INPUT -p tcp -m tcp --dport 80 -j --syn DROP
iptables -A INPUT -p tcp -s 192.168.0.0/24 -d 192.168.0.10 --dport 80 -j DROP
ssh 서비스로 60초간 10번의 접속 시도가 발생하면 DROP
iptables -I INPUT -p tcp --dport 22 -m state NEW -m recent --update --seconds 60 --hitcount 10 -j DROP
firewall-cmd --list-all
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd reload
ufw status
ufw allow tcp/80
nftables ---> iptables로 구성된 설정 ---> 변환 적용 가능 (iptables-translate)
최신 도커를 올리는 경우 실행할 때 추가 옵션이 필요한 경우 있음
   --iptables=false

 

/ 서버 입장에서 가장 성가신 부분
- DOS 공격 : icmp
- 기본적인 보안 세팅 : icmp_echo_ignore
- cd /proc/sys/net/ipv4
- cat icmp_echo_ignore_all
 > 0 : disable
 > 1 : enable
- 핑 응답을 하지 않도록 설정 : echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 > Netdiscovery를 방지 할 수 있다.

/ 취약점 (분석) 명령어
- 현재 실행중인 프로세스 확인 : ps -ef
- 마지막 접속 정보 확인 : last
- 현재 접속중인 사용자 : w / who

/ Set UID : (권한제어)
- 접근제어
 > superuser만 사용할 수 있는 디렉터리 : /sbin
 > 일반계정도 사용할 수 있는 디렉터리   : /bin
- find / -user root -perm -4000 -print > 4000_perm.txt
 > 현재 상태 : 백도어가 없는 클린 상태 4000_perm.txt
- find / -user root -perm -4000 -print > 4000_perm_1.txt
- diff 4000_perm.txt 4000_perm_1.txt

root@Centos7:~/tmp# find / -user root -perm -4000 -print > 4000_perm.txt
find: ‘/proc/130270/task/130270/fd/5’: 그런 파일이나 디렉터리가 없습니다
find: ‘/proc/130270/task/130270/fdinfo/5’: 그런 파일이나 디렉터리가 없습니다
find: ‘/proc/130270/fd/6’: 그런 파일이나 디렉터리가 없습니다
find: ‘/proc/130270/fdinfo/6’: 그런 파일이나 디렉터리가 없습니다
root@Centos7:~/tmp# find / -user root -perm -4000 -print > 4000_perm_1.txt
find: ‘/proc/130389/task/130389/fd/5’: 그런 파일이나 디렉터리가 없습니다
find: ‘/proc/130389/task/130389/fdinfo/5’: 그런 파일이나 디렉터리가 없습니다
find: ‘/proc/130389/fd/6’: 그런 파일이나 디렉터리가 없습니다
find: ‘/proc/130389/fdinfo/6’: 그런 파일이나 디렉터리가 없습니다
root@Centos7:~/tmp# diff 4000_perm.txt 4000_perm_1.txt
root@Centos7:~/tmp#
sticky (4000)으로 설정된 추가파일이 없음

 

/ 백도어 설치 여부 점검
- /dev, /tmp 체크 : 기본적으로 디렉토리 퍼미션에 sticky가 붙어있다.

/ rootkit 탐색
- find /dev -type f -exec ls -l {} \;

/ 무결성 검사
- tripwire : 파일의 변동 사항 유무 체크
- wget https://src.fedoraproject.org/repo/pkgs/tripwire/tripwire-2.3.1-2.tar.gz/6a15fe110565cef9ed33c1c7e070355e/tripwire-2.3.1-2.tar.gz

/ 포트 스캔
- 열려있는 포트 및 응답 가능한 포트 점검 : 좀비PC 감염 여부
- 자신의 시스템에서 netstat -atp | grep LISTEN

/ 외부 호스트의 포트 확인
- telnet IP port

/ for문
- 윈도우 DOS

for %i in (1,1,65534) do telnet 192.168.0.30 %i

- 리눅스

for i in {55..59}
 > do
 > ping 192.168.0.%i -c 1
 > done

 

/ 시스템에서 열려있는 파일에 대한 정보를 출력
- lsof == list open files
- lsof | grep LISTEN

root@Centos7:~# lsof | grep LISTEN
httpd      1646                root    4u     IPv6              33965        0t0        TCP              *:http (LISTEN)
httpd      1646                root    6u     IPv6              33969        0t0        TCP              *:https (LISTEN)
dovecot    1674                root   25u     IPv4              32127        0t0        TCP              *:pop3 (LISTEN)
dovecot    1674                root   37u     IPv4              32150        0t0        TCP              *:imap (LISTEN)
master     1893                root   13u     IPv4              33403        0t0        TCP              *:smtp (LISTEN)
master     1893                root   92u     IPv4              33489        0t0        TCP              localhost:10025 (LISTEN)
/usr/bin/  2105                root    5u     IPv4              32568        0t0        TCP              localhost:783 (LISTEN)
/usr/sbin  2328              amavis    5u     IPv4              35298        0t0        TCP              localhost:10024 (LISTEN)
httpd      2329              apache    4u     IPv6              33965        0t0        TCP              *:http (LISTEN)
httpd      2329              apache    6u     IPv6              33969        0t0        TCP              *:https (LISTEN)
spamd      2341                root    5u     IPv4              32568        0t0        TCP              localhost:783 (LISTEN)
/usr/sbin  2343              amavis    5u     IPv4              35298        0t0        TCP              localhost:10024 (LISTEN)
프로세스명  PID             프로세스 소유자     프로토콜 버전                              TCP/UDP 여부                       현재 응답 가능 여부

 

/ pstree
- 최상위가 systemd이면 최소 centos7이다.

/ top
- top -d2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'정보보안학원 > KITRI 침해대응' 카테고리의 다른 글

102일차 - ISMS-P  (0) 2023.03.14
101일차 - 보안가이드라인  (0) 2023.03.09
99일차 - 보안가이드라인  (0) 2023.03.07
98일차 - 보안가이드라인  (0) 2023.03.07
97일차 - 이더채널  (0) 2023.03.03
728x90
ISO : 국제 표준 기구
    보안과 관련된 사항을 정리 ----> ISO 2700X 패밀리 : 최소한...
    --> 27001 정보보호관리체계  ===> ISMS
    처벌 규정이 존재하지 않는다.  ---> 다만 국제 정보처리 과정 : ISMS 인증을 받은 기관끼리만 정보 교류가 가능하다.
    개인정보보호관리체계 ---> PIMS.
    정부기관 정보보호관리체계 ---> G-ISMS

    KISA ---> ISMS + P-ISMS  ===> ISMS-P

    ISMS ---->   1. 물리적 보안 ---> 캡스 (접근제어 : 인간)
                 2. 기술적 보안 ----> 보안 담당자
                 3. 관리적 보안 ----> ISMS 의 집중사항  : 보안 책임자
        
        유럽 : GDPR --> 보안 가이드 + 처벌
        국제 : ISMS
        한국 : ISMS-P

기술적 보안  ---> 시스템 (주정통)   --- 1. Linux 계열
                                      2. 윈도우 계열
                                      #3. ARM <--- 산업용 제외
                                      3. 보안위협 / 취약점 점검 / 보안관리
                                      ===> 서버 / 네트워크 관제 <--- OP  : 운영관리 OK
                                                                        모니터링 : OUT
                                           보안 관제 ---> 분석 ---> 평가 / 취약점 점검  ---> CERT
                 네트워크 (주정통)  --- 1. 계층별 패킷 분석(L1 ~ L4)
                                      2. 네트워크 장비 (스위치 / 라우터)
                                      3. 네트워크 보안 장비 (IPS / IDS)
                        
                     ---> ESM --> SIEM
                
                 어플리케이션      ---  1. DB
                                       2. APP (어플리케이션) -- 1. 모바일
                                                               2. Web
                                       3. WAS
                 보안법규      --- 1. 개인정보
                                  2. 안전조치   ----------> CERT 
                                  3. 사고 사례

1. 시스템 -- 윈도우 / 리눅스
      윈도우 ---> POST 과정
                    1. 전원 켜기
                    2. post(POWER ON SELF TEST)
                       ㄴ ROM -> 저장된 BIOS 프로그램 작동 -> BIOS 설정된 하드웨어의 장비가 이상이 없는지 체크 -> (이상 발생 시 소리)
                       1. 메인보드 전원 확인
                       2. CPU 확인
                       3. 그래픽카드 확인
                       4. RAM 체크
                    ===============  기본 장비엔 이상이 없음. =====================
                    3. MBR(Master Boot Recoder) 읽기
                        BIOS에 설정된 부팅 순서에 따라 
                        MBR : Boot Loader ----> NTLDR : XP 이하
                                                BOOTMGR
                              저장소에 있는 부팅 이미지를 메모리에 상주 시킨다.
                              ---> 부팅과 관련된 설정 정보
                              ---> 멀티 부팅이 가능하다.
                        정보 : BIOS가 갖고 있는 정보 + 윈도우 (프로필)에 등록된 정보보   
                        winload.exe : *** Ntoskrnl.exe / hal.dll 실행
                        => 레지스트리에 등록되어 있는 시스템 설정정보를 읽어서 하드웨어 관련 드라이브 로딩 
                        => 로그온 화면 출력
                    4. 로그인 ----> 단독 그룹  ---> Local 프로필
                              ----> 도메인    ----> 도메인안에 있는 프로필

실습 
cmd <--- 도스 명령어
도스 명령어 
for %i in (1,1,5) do echo %i
for /L %i in (1,1,5) do echo %i
파이썬 코드
for i in range(1,6,1):
    print(i)


세상에서 제일 쉬운 브루트 포스 공격
대상 서버 : 192.168.0.160  <-- 공유폴더   :  smb 계정을 사용한다. 
                                           패스워드 : 4자리의 숫자를 사용한다. 1234
           공유폴더이름 : /share
공유폴더 접근을 위한 명령어
net use \\192.168.0.160\share /USER:smb 1234

C:\Users\kitri>net use \\192.168.0.160\share /USER:smb 1234
시스템 오류 86이(가) 생겼습니다.

지정된 네트워크 암호가 맞지 않습니다.

ID는 맞으나 비밀번호가 틀림.
for /L %i in (1230,1,1235) do net use \\192.168.0.160\share /USER:smb %i

C:\Users\kitri>net use \\192.168.0.160\share /USER:smb 1233
시스템 오류 86이(가) 생겼습니다.

지정된 네트워크 암호가 맞지 않습니다.


C:\Users\kitri>net use \\192.168.0.160\share /USER:smb 1234
명령을 잘 실행했습니다.


C:\Users\kitri>net use \\192.168.0.160\share /USER:smb 1235
시스템 오류 1219이(가) 생겼습니다.

동일한 사용자가 둘 이상의 사용자 이름으로 서버 또는 공유 리소스에 다중 연결할 수 없습니다. 서버나 공유  리소스에 대한 이전 연결을 모두 끊고 다시 시도하십시오.

C:\Users\kitri>net use \\192.168.0.160\share /USER:smb 1234
명령을 잘 실행했습니다.

패스워드 : 1234 임을 알 수 있다.

주정통의 설정값 -----> 로컬보안정책  : 수동으로 확인
자동화 ---> 보안템플릿 내보내기
로컬 보안 정책 > 동작 > 정책 내보내기

https://docs.microsoft.com/ko-kr/windows-server/administration/windows-commands/secedit-export
secedit-export

secedit /export /cfg
실행 명령
export 위치 : C:\Users\kitri\Desktop
export 파일명 : kong.inf
secedit /export /cfg C:\Users\kitri\Desktop\kong.inf

분기 ----> 1. kong.inf을 이용해 취약성 점검
          2. 취약성 점검을 통해 알아낸 취약성 보완

secedit /import /cfg C:\Users\kitri\Desktop\kong.inf

* SID : 보안 식별자 / UID
*S-1-5-32-544  ===> SID  : 계정 확인

===   위에선 보안 탬플릿을 통해 보안 정책을 확인 / 수정  ===

특정 계정에 대한 정보를 확인
net user smb

C:\Users\kitri>net user smb
사용자 이름                        smb
전체 이름                          smb
설명
사용자 설명
국가/지역 코드                     000 (시스템 기본값)
활성 계정                          예
계정 만료 날짜                     기한 없음

마지막으로 암호 설정한 날짜        2022-05-25 오전 11:05:55
암호 만료 날짜                     기한 없음
암호를 바꿀 수 있는 날짜           2022-05-25 오전 11:05:55
암호 필요                          예
사용자가 암호를 바꿀 수도 있음     아니요

허용된 워크스테이션                전체
로그온 스크립트
사용자 프로필
홈 디렉터리
최근 로그온                        아님

허용된 로그온 시간                 전체

로컬 그룹 구성원                   *Users
글로벌 그룹 구성원                 *없음
명령을 잘 실행했습니다.

inp = input("계정명:")
print("net user " + inp + " >> " + inp + ".txt")

filename = inp + ".txt"
f = open(filename, "a")
data = f.readlines()

계정 생성
net user kkk /add

C:\WINDOWS\system32>net user kkk /add
명령을 잘 실행했습니다.


C:\WINDOWS\system32>net user kkk
사용자 이름                        kkk
전체 이름
설명
사용자 설명
국가/지역 코드                     000 (시스템 기본값)
활성 계정                          예
계정 만료 날짜                     기한 없음

마지막으로 암호 설정한 날짜        2023-03-07 오전 9:48:41
암호 만료 날짜                     2023-04-18 오전 9:48:41
암호를 바꿀 수 있는 날짜           2023-03-07 오전 9:48:41
암호 필요                          예
사용자가 암호를 바꿀 수도 있음     예

허용된 워크스테이션                전체
로그온 스크립트
사용자 프로필
홈 디렉터리
최근 로그온                        아님

허용된 로그온 시간                 전체

로컬 그룹 구성원                   *Users
글로벌 그룹 구성원                 *없음
명령을 잘 실행했습니다.

계정 삭제
net user kkk /delete
C:\WINDOWS\system32>net user kkk /delete
명령을 잘 실행했습니다.

계정의 권한 확인
C:\WINDOWS\system32>net accounts ?
이 명령에 대한 구문:

NET ACCOUNTS
[/FORCELOGOFF:{minutes | NO}] [/MINPWLEN:length]
              [/MAXPWAGE:{days | UNLIMITED}] [/MINPWAGE:days]
              [/UNIQUEPW:number] [/DOMAIN]

C:\WINDOWS\system32>net accounts
만료 시간이 지난 얼마 후에 강제 로그오프하시겠습니까?:     아님
최소 암호 사용 기간 (일):                                  0
최대 암호 사용 기간 (일):                                  42
최소 암호 길이:                                            0
암호 기록 개수:                                            없음
잠금 임계값:                                               아님
잠금 기간 (분):                                            30
잠금 관찰 창 (분):                                         30
컴퓨터 역할:                                               WORKSTATION
명령을 잘 실행했습니다.


 

/ spawn
- 별도의 프로세스로 움직이는 애들

/ runas
- spawn ---> 하위 프로세스를 생성 ---> fork
- 파이썬 -> 브라우저 실행
- runas /user:kitri notepad.exe
- runas /user:kitri "notepad.exe \"aaa.txt\""
- 다른 계정을 이용해서 커맨드 실행이 가능하다

/ 실습
- 현재 자신이 접속한 계정 : kitri
 > cmd(관리자 권한 실행)
- 현재 접속한 자신의 계정 정보 확인
 > query session
- runas /user:administrator "notepad.exe \"C:\Users\kitri\Desktop\시스템.txt\""

/ 방화벽 해제
- netsh advfirewall set allprofiles state off

/ 방화벽 제어
- 특정 포트를 열어준다.
- 445번 포트
- 이터널 블루 취약점
- smb취약점(MS17-010)
- netsh advfirewall firewall add rule name="tcp-445" dir=in action=allow protocol=tcp localport=445

/ 원격데스크탑 허용
- 레지스트리 편집 (regedit)
- 컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 

- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

/ 다른 컴퓨터에 접속하는 방법
- net use \\192.168.0.160 /u:kitri

/ 특정 사용자 로그오프
- 다른 컴퓨터 사용자 확인 : query session /server:localhost
- 다른 컴퓨터 사용자 확인 : query session /server:192.168.0.160
- 로그오프 : logoff /server:192.168.0.160 세션ID
 > logoff /server:192.168.0.160 2

/ 주요정보통신기반시설
- 기술적 취약점 분석/평가 방법 상세가이드를 참고하여 체크한다.
- 파이썬을 사용하여 자동으로 검사하도록 만들어보자.

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'정보보안학원 > KITRI 침해대응' 카테고리의 다른 글

101일차 - 보안가이드라인  (0) 2023.03.09
100일차 - 보안가이드라인  (0) 2023.03.08
98일차 - 보안가이드라인  (0) 2023.03.07
97일차 - 이더채널  (0) 2023.03.03
96일차 - 본딩  (0) 2023.03.02

+ Recent posts