본문 바로가기

전체 글202

[침탐] 8장, 스노트 설치와 설정 스노트는 대표적인 호스트 기반의 IDS 방식이다. 마틴 로시가 시스코 시스템즈의 임원으로 재직하면서 시스템즈가 스노트의 권리를 소유 중이다. 스노트는 서명 기반 방식으로 동작한다. 따라서 스노트를 구동하기 전에 공격 내용을 반영한 일정한 탐지 규칙을 설정해야 한다. 현존하는 모든 상용 IDS 장비는 스노트에 기반해 구현한 만큼 보안 장비를 운영하는 입장에서라면 스노트의 기본 문법 숙지는 필수적이다. 위와 같이 'apt-get install snort' 명령어를 이용하여 다운로드 받을 수 있다. 스노트 설치에 필요한 부가적인 요소 등도 스노트를 설치할 때 같이 설치했음을 알 수 있다. 테스트 모드로 동작하면서 스노트를 초기화한 뒤 실행을 마치는 모습을 볼 수 있다. 스노트에서 기본적으로 제공하는 기본 탐지.. 2021. 5. 6.
[Pwnable.kr] Toddler's Bottle_coin1 문제를 확인해보자. 이번에는 nc로 접속하는 문제이다. 문제에 접속하였더니 다음과 같이 나온다. 해석을 해보면 N개의 코인과 C번의 기회가 주어지고, 이 C번의 기회 동안에 N개의 동전 중 불량 동전을 골라내야 한다. 정상 동전은 무게가 10, 불량 동전은 무게가 9이다. 동전의 번호를 입력으로 줄 수 있는데 입력으로 준 동전들의 무게 합이 출력된다. 그리고 100번을 맞춰야 하는데 60초 안에 해결해야 한다. 코딩을 해야 하는 문제인 것 같다. 코드 2021. 5. 5.
[Pwnable.kr] Toddler's Bottle_shellshock shellshock 문제이다. bash의 shellshock 취약점 문제이다. 먼저, seedUbuntu로 로그인을 하였다. ls -al 명령어로 확인하니 shellshock.c 파일이 눈에 띈다. 확인해보도록 하겠다. 확실히 bash의 shellshock 취약점 문제라는 것을 알 수 있다. 더욱 확실하게 취약점이 있다는 것을 확인하였다. 그렇다면 shellshock의 권한을 이용해서 flag를 읽으면 될 것 같다. flag 값이 나왔다. FLAG: only if I knew CVE-2014-6271 ten years ago..!! 2021. 5. 5.
[Cloud] AWS 클라우드 기반 나의 첫 웹 애플리케이션 만들기 ASW를 통해 손쉽게 첫번째 애플리케이션 배포하기 위한 3가지 방법 1. 정적 웹 사이트 및 프론트엔드 앱 2. 가상 서버 기반 백엔드 앱 3. 완전 관리형 서버 및 DB 기반 앱 1. 정적 웹 사이트 및 프론트엔드 앱 AWS에서는 기본적으로 아마존 S3라고 하는 스토리지 서비스가 있다. 여기에 XML 파일을 올리면 정적 웹 사이트 기능을 통해서 세팅을 할 수 있다. 권한 설정을 하려고 할 때는 별도의 세팅이 필요하다. 전세계로 컨텐츠 배포 네트워크를 사용하려면 아마존 클라우드 프론트라고 하는 서비스를 사용해야 한다. 도메인 명을 갖고 세팅을 하려고 할 때는 아마존 라우터53이라고 하는 서비스를 사용하여 my websit.com과 같이 세팅해야 한다. https 서비스를 제공하려고 할 때는 앱에서 AWS.. 2021. 5. 2.
[Pwnable.kr] Toddler's Bottle_mistake mistake 문제를 보았다. 힌트를 보니 operator priority라고 적혀 있다. 즉, 우선순위 문제이다. 문제에 있는 ssh에 접속한 후, 코드를 보자. ls -l 명령어를 통해 어떤 파일이 있는지 확인하였다. mistake.c 파일을 먼저 확인해보자. [ 조건의 우선순위 ] 비교 연산자는 산술 연산자보다 우선순위가 높다. 결국, ' < '를 먼저 계산하고 ' = '를 그 다음에 계산하라는 의미이다. ' < '를 먼저 계산했을 때, password에 들어있는 것은 0보다 클 것이므로 false가 되고 이는 결국 ' = '로 인해 int fd 안에 들어간다. 결론적으로 fd는 0이 되고 위의 if는 실행되지 않는다. 1. open("/home/mistake/password", O_RDONLY, .. 2021. 4. 27.
[Pwnable.kr] Toddler's Bottle_leg 문제를 보니 문제의 ssh 다운로드 주소가 보인다. ssh는 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜이다. 기본 포트로 22번을 사용한다. key1부터 3까지의 함수들은 ARM 어셈블리어로 작성이 되어 있는 것을 알 수 있다. 먼저, mian 함수를 보면 위 3개의 함수 값을 모두 더한 값을 맞추면 플래그를 얻을 수 있을 것 같다. 함수를 통해 구한 r0 값을 모두 더해서 최종적으로 r2에 들어간다. 각 함수를 자세히 살펴보자. key1() 함수의 c와 어셈블리 코드이다. pc 값을 r3에 넣고 다시 그 r3을 r0에 넣었다. pc 값이 key1 값이라는 것을 알 수 있다. 그렇다면 pc란 무엇일까? cpu가 명령어 하나를 수행할 때 fetch > decode > execute의 과.. 2021. 4. 27.