본문 바로가기
네트워크 해킹

네트워크 해킹 14

by 윤라경 2024. 6. 4.

[2024.06.04]

[Dos/DDos]

 

01. 디스크 자원 고갈 공격

 

#vi disk.c

 

 

 

disk.c에 해당 화면을 입력해서 넣고

 

 

<컴파일>

 

#gcc -o disk disk.c

 

컴파일 후 ll을 입력하면 disk 파일이 생긴 걸 확인할 수 있다

 

 

해당 명령어로 공격을 시도하게 되면

 

 

다른 화면을 열어 확인했을 때 tempfile에서 숫자가 증가하는 걸 볼 수 있다

 

 

tempfile로 인해 디스크 공간이 부족할 수 있으므로 공격이 성공했다면 해당 파일을 삭제하면 된다

 

 

02. 메모리 자원 고갈 공격

 

#vi mem.c

 

 

mem 파일에 해당 명령어를 적어 넣어 주고 저장

 

 

해당 메모리 자원 고갈 공격은 Heap에 해당되며, 동적 구현이다

 

 

해당 메모리 파일도 컴파일 후 확인해 준다

 

 

 

./mem으로 공격하게 되면 메모리가 꽉 차게 되어 작동이 되지 않고 잠잠하다가

 

 

위의 화면은 공격 직후의 gnome-system-monitor 화면이며, 아무 변동이 없는 걸 확인할 수 있다

 

 

 

혼자 꺼진 후에 화면처럼 변동이 일어나는 걸 확인할 수 있다

 

 

03. 프로세스 다량 생성

 

#vi proc.c

 

 

 

proc 파일에 해당 화면의 내용을 기입하여 주고

 

 

컴파일 후 확인한다

 

 

컴파일 확인 후 공격을 시도하게 되면 작동되지 않아 화면이 멈춘 걸 확인할 수 있다

이 경우에는 나올 방법이 없어 리부팅을 시도해야 된다

 

 

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

 

[보안 솔루션]

 

01. 방화벽(Firewall)

 

1) iptables

2) firewalld

 

 

> 방화벽 작동 상태 확인(시스템 자체에서의 작동 상태 확인)

#systemctl status firewalld

 

> 방화벽 시작/재시작

#systemctl start/restart firewalld

 

 

> 방화벽 중지

#systemctl stop firewalld

 

 

> 부팅 시 자동 시작/활성화

#systemctl enble firewalld

 

 

> 부팅 시 자동 중지/비활성화

#systemctl disable firewalld

 

 

> 그래픽 모드 실행

#firewall-config  <-- 방화벽이 실행되어 있어야 함

(CentOS7 자체에서 들어가려면 프로그램 -> 잡다 -> 방화벽을 클릭하면 된다)

 


> 방화벽 작동 상태 확인

#firewall-cmd --state

 

 

#firewall-cmd --list-all 명령어를 사용하게 되면,

방화벽에서 열려 있는 포트를 확인할 수 있다

 

 

방화벽을 열어 설정을 영구적으로 바꿔 준 다음 http를 설정해 주고,

옵션에서 firewalld 다시 불러오기를 눌러 주면 적용된다

방화벽 설정 확인 전체 명령어로 확인하면 http가 추가된 걸 볼 수 있다

 

 

마찬가지로 포트로 가서 21번 포트를 추가해 준 다음 적용시키고 확인하면,

화면에서 ports: 21/tcp가 추가된 걸 확인할 수 있다

 

> 방화벽 설정 확인(전체)

# firewall-cmd --list-all

 

> 방화벽 설정 확인(서비스)
# firewall-cmd --list-services

 

> 방화벽 설정 확인(포트)
# firewall-cmd --list-ports

 

 

> 영역 확인(전체)

#firewall-cmd --get-zones

 

 

> 영역 확인(전체 - 상세 정보)

# firewall-cmd --list-all-zones

 

 

> 디폴트 영역 확인

#firewall-cmd --get-default-zone

 

 

> 디폴트 영역을 'trusted' 영역으로 설정

#firewall-cmd --set-default-zone=trusted

 

 

> 특정 영역(public)에 대한 상세 정보

#firewall-cmd --info-zone=public

 

 

> 특정 서비스(http)에 대한 상세 정보

#firewall-cmd --info-service=http

 

 

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

 

[영역 설명]

 

> block: 들어오는 모든 패킷 차단, 나가는 모든 패킷 허용

> dmz: SSH를 제외한 모든 패킷 차단, 나가는 모든 패킷 허용

> drop: 들어오는 모든 패킷 폐기

> extenal: SSH를 제외한 들어오는 모든 패킷 거부(Reject)

> home: SSH, dhcpv6, ipp-client, mdns, samba-client를 제외하고 들어오는 모든 패킷 거부(reject), 나가는 모든 패킷 허용

> internal: SSH, dhcpv6, ipp-client, mdns, samba-client를 제외하고 들어오는 모든 패킷 거부(reject), 나가는 모든 패킷 허용

> public: SSH를 제외한 들어오는 모든 패킷 거부(Reject), 나가는 모든 패킷 허용

> trusted: 들어오는 모든 패킷 허용, 나가는 모든 패킷 허용

> work: SSH, dhcpv6, ipp-client, samba-client를 제외하고 들어오는 모든 패킷 거부(reject), 나가는 모든 패킷 허용(accept)

 

 

drop: 패킷 차단 후 로그 등 남기지 않음

reject: 차단 후  로그나 메시지를 남김

 

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

 

 

'네트워크 해킹' 카테고리의 다른 글

네트워크 해킹 15  (0) 2024.06.14
네트워크 해킹 13  (1) 2024.06.03
네트워크 해킹 12  (1) 2024.05.31
네트워크 해킹 11  (0) 2024.05.29
네트워크 해킹 10  (0) 2024.05.29