본문 바로가기

전체 글

(109)
CS 진단 - 5. 불충분한 인증 및 인가 (권한 우회) 정적분석에서 얻었던 정보를 토대로 불충분한 인증 및 인가 몇가지를 살펴보려고 한다. 정적분석 관련 게시물은 다음 링크에서 확인하면 된다.https://guardkim-hack-lab.tistory.com/127 CS 진단 - 4 . 하드코드된 인증정보CS 진단을 하다보면 많은 취약점을 정적 분석을 통해 찾을 수 있다.주석에 중요한 정보가 노출되어 있는 경우도 존재하며 소스코드 내에 암호화 로직에 필요한 솔트값이 노출되어있거나관리자guardkim-hack-lab.tistory.com - 불충분한 인증 및 인가정적 분석 시 얻었던 정보들로 관리자의 아이디 및 패스워드 정보를 얻어 낼 수 있었다.좀 더 자세히 소스코드를 분석해보면서 이를 어떤 방식으로 이용할 수 있을지 살펴보자소스코드를 좀 더 자세히 들여다 ..
CS 진단 - 4 . 하드코드된 인증정보 CS 진단을 하다보면 많은 취약점을 정적 분석을 통해 찾을 수 있다.주석에 중요한 정보가 노출되어 있는 경우도 존재하며 소스코드 내에 암호화 로직에 필요한 솔트값이 노출되어있거나관리자의 아이디 또는 패스워드가 노출되어있는 경우도 존재한다. 이는 주석을 지우거나 소스코드 난독화를 하는 등의 조치를 취해야한다. betabank의 경우 고의적으로 취약하게 만들어진 금융 프로그램이기 때문에 이러한 문제가 상당수 보인다.대표적인 한가지 취약점을 확인해보자. - 하드코드된 인증정보우선 dnspy를 이용하여 exe 파일을 열어준다.파일이 열리면 소스코드의 양이 너무 많아서 하나하나 열어보며 정보를 찾는 것은 쉽지가 않다.따라서 필요한 키워드를 정하고 그에 맞춰 검색 기능을 사용하는 것이 좋다.다만 이러한 방식으로는 ..
CS 진단 - 3. 메모리 덤프 CS 진단 중 메모리를 덤프하여 내부의 문자열을 확인해보는 등의 행위를 해야하는 경우가 종종 발생한다.특히 BeteBank의 경우 금융권 프로그램으로 만들어졌기 때문에 메모리에 아이디 / 비밀번호가 평문으로 노출되면 안된다. 메모리 덤프를 하는 방법은 다음과 같다. - 필요 도구- Process hacker , 메모장 , string.exe 우선 betabank 프로그램을 실행시킨 후 하단의 create Account 메뉴로 이동한다. 회원가입을 시도한다. 아이디/비밀번호는 tester1/tester1234로 설정하였다.로그인을 시도한 후 Process hacker를 실행해야한다.실행 후 betabank를 검색하여 앱이 실행되는 것을 확인 후 프로세스 우클릭->create Dump file 을 선택하여..
CS 진단 - 2. betaBank 살펴보기 (진단 준비) CS 진단을 연습해보기 위해서 실제 운영중인 프로그램을 대상으로 삼는 것은 좋지 않다.따라서 진단 연습을 위해 만들어진 연습용 프로그램을 이용하여 진단 연습을 하는 것이 좋다. BetaBank는 CS 진단 연습을 위해 의도적으로 취약하게 만들어진 연습용 프로그램이다.GitHub: https://github.com/NetSPI/BetaFast GitHub - NetSPI/BetaFast: Vulnerable thick client applications used as examples in the Introduction to Hacking Desktop ApplicatiVulnerable thick client applications used as examples in the Introduction to H..
CS 진단 - 1. CS 프로그램 진단에 대하여 현업에 종사하다보면 취약점 진단 중 웹 / 모바일만 진단하게 되는 것은 아니다.위 두가지가 주가 되는 경우가 많지만 종종 CS 진단을 하게 되는 경우가 있다. CS 진단은 Client로부터 받은 요청을 Server가 처리하고 다시 client에게 돌려주는 방식이다.웹 진단과는 달리 데스크톱 프로그램(exe)의 보안을 진단하는 것이라고 생각하면 편하다. 진단을 위해서 기본 흐름은 다음과 같다. 1. 환경 분석- 프로그램이 어떤 기술(언어 등)으로 만들어져 있는지 확인해야한다. (.NET, C/C++/ java) 등- 어떤 기술을 통하여 프로그램을 구성했는지에 따라 진단을 위해 사용하는 툴이 달라진다.- 환경 분석을 위해서 사용하는 툴은 Detect It Easy 등이 있다. 2. 정적 분석- 정적 분석을..
웹 해킹) 직접 만든 웹 서버 해킹하기 - 3 저번에 이어 자동화공격과 데이터 평문 전송에 대해서 다룬다. 자동화공격은 이전에 만들어 뒀던 파이썬 코드를 그대로 재사용하였다. 파이썬을 어느정도 할 줄 아는 편이 도구를 제작할때 유용하다. 코드는 다음과 같이 구성한다. 사실 위 코드는 하나하나 설명할 것도 없는 매우 간단한 코드다. 따라서 설명은 따로 하지않는다. 공격 코드가 완성되면 공격을 실행하면 된다. 공격이 실행되면 설정된 수 만큼의 글이 작성된다. 이러한 공격은 서버에 과부하를 줄 수 있다. 이에 대해서도 차후 보안해보겠다. 데이터 평문 전송에 대해서는 스니핑 도구가 필요하다. 대표적인 도구로 와이어샤크를 이용할 수 있다. 칼리 리눅스같은 OS에는 설치가 되어있지만 윈도우나 다른 리눅스같은 경우 설치가 되어있지 않았을 것이다. 따라서 별도로 ..
웹 해킹) 직접 만든 웹 서버 해킹하기 - 2 이전 포스팅에 이어서 이번에는 XSS와 CSRF를 시도해본다. 가끔 XSS와 CSRF를 혼동하는 사람들이 종종 있다. XSS는 게시물 등에 임의의 스크립트를 삽입하는 기법이다. 이를 이용하여 어떤 공격을 할지는 매우 다양하다. 임의의 서버를 구성하여 쿠키를 탈취할 수 도 있고 get요청이 불가한 정보 변경에 활용하는 방법 또한 가능하다. 그 중 정보를 변경하는 것이 유리하여 CSRF에 XSS취약점이 사용될 경우가 많아서 CSRF와 혼동한다. CSRF는 중요 정보를 변경하여 계정을 탈취하는 등의 사용자가 자신의 의지와 무관하게 공격자가 의도한 행위를 요청하게하는 공격이다. 이 때 XSS의 공격 대상은 클라이언트, 즉 이용자이다. 하지만 CSRF의 공격 대상은 서버이다. 목적 또한 다른데 이는 생략하도록 하..
웹 해킹) 직접 만든 웹 서버 해킹하기 - 1 이전까지 직접 만들었던 웹 서버를 해킹해본다. 웹 서버에 대한 자세한 사항은 이전에 포스팅했던 웹 서버 제작기를 참고하면 좋을듯하다. 직접 만든 웹 서버를 해킹해보고 나면 웹 서버를 이를 기반으로 웹 서버를 보강해가는 포스트를 다뤄볼 생각이다. 주요정보통신기반시설 기술적 취약점 분석 평가 방법으로 평가하였다. 우선 SQL injection부터 살펴보자. 해당 웹 서버의 경우 SQLI가 발견되었다. 우선 Error based SQLi가 발견되었고 UnionSQLi가 발견되었다. 이 두가지가 발견되었다는것은 왠만한 SQLI가 모두 가능하다고 봐도 무방하다는 것이다. 하지만 가장 대표적으로 다룰만한 union sqli를 기반으로 리뷰해본다. 참고로 Error based SQLI는 가능하다는 것만 나타내기 위해..