[Riversing]/[코드엔진] MALWARE (6) 썸네일형 리스트형 [코드엔진] malware06 코드엔진 사이트에 들어가 malware06 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) 6번 프로그램의 Thread Mutex가 무엇인지 물어본다. 우선 Thread Mutex를 간단하게 설명하면 멀티 쓰레드 환경을 구축 할 때에는 공유 자원 영역에 대한 동기화가 필요하다. 이 동기화를 하는 방법에는 여러가지 방법이 있는데, 이 중 하나가 Mutex 라고 할 수 있다. 쉽게 얘기하면 Mutex는 화장실이 하나 있는 식당이다. ThreadA , ThreadB 가 식당의 손님이라고 가정하면, 화장실은 공유 자원 영역이 될 것이고, 화장실의 key는 하나 뿐이다. A가 화장실을 이용하는 중이라면, B는 당연히 화장실에 못들어가고 밖에서 기다려야 한다. 이러한 방식으로 critical sec.. [코드엔진] malware05 코드엔진 사이트에 들어가 malware05 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) 이번에도 소스코드가 텍스트 파일로 되어있다. 확인해보자. 눈에 띄는걸 먼저 찾아보면, encode 와 Table 배열에 모든 문자열이 다 포함되어 있다는 것, 그리고 어떠한 연산과정을 거치고 나서 encode 를 반환 한다는 것 정도이다. 주석을 달아가면서 분석해보자. 15번째 줄에서 0x3f 와 and 연산을 통해 buffer2가 어떤 값이든 Table 인덱스에 접근 할 수 있게 수를 맞춰준다. 그리고 그 맞춰진 값을 인덱스로 Table 배열의 값을 어떠한 값으로 바꿔준다. Table 배열의 원소 갯수는 64 개이다. => Base64 encoding 이라고 판단 할 수 있다. Success! 창.. [코드엔진] malware04 코드엔진 사이트에 들어가 malware04 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) SQL injection 공격을 당하고 있다고 한다. SQL Injection 이란 코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 DB를 공격할 수 있는 공격방식을 말하는데, 주로 사용자가 입력한 데이터를 제대로 필터링, 이스케이핑하지 못했을 경우에 발생한다. php 설정파일에서 sql인젝션을 방어하는 옵션은 magic_quotes_gpc 이다. 보통 공격을 할때는 홑따옴표 ' (single quotes)를 사용하는데, magic_quotes_gpc 옵션을 키게 되면 addslashes() 라는 함수가 홑따옴표를 만나면 \' 의 형식으로 바꿔서 이스케이핑 할 수 있다. 하지만 이 .. [코드엔진] malware03 코드엔진 사이트에 들어가 malware03 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) 파일을 열어보면 간단해보이는 소스코드가 적혀있는 메모장 파일이 나온다. 흠, 주석을 달아 분석해보자. 결과적으로 이 함수는 체크섬 역할을 하는 함수이다. data의 1bit 만 달라져도 value 값이 완전 달라지기 때문에 오류검출할 때 쓰는 함수이다. [코드엔진] malware02 코드엔진 사이트에 들어가 malware02 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) 코드를 열어보면 Malware1번 문제처럼 코드가 주욱 나온다. 분석 ㄱ 처음 body[] 부분에 xml 버전이 나와있고 알만한 문자열중에 DAV 라는게 눈에 띈다. 잘은 몰라서 구글링을 해보니 WebDav 라는 내용이 많이 나온다. WebDav를 구글링해 보자. 텀즈에 아래와 같이 설명되어있다. WebDAV[웹답]은 웹상의 공동 저작활동을 지원하기 위한 IETF 표준으로서, 멀리 떨어져 있는 사용자들 간에 인터넷을 통해 파일을 공동 편집하고 관리할 수 있도록 해주는 일련의 HTTP 확장이다. WebDAV은 원격 그룹들 간에 새로운 방식으로 공동 작업을 가능하게 함으로써, 가상 기업의 개발 효과를 .. [코드엔진] malware01 코드엔진 사이트에 들어가 malware01 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn) 파일을 열어보면 알수없는 코드가 있고, 이를 분석해서 어떠한 기법인지 알아내는 문제이다. 자세한 분석을 위해 코드에 주석을 달아 분석해 보았다. => 코드(주석포함) 텍스트형식 더보기 //------------------------------------------------------------------------------ // 공격준비 //------------------------------------------------------------------------------ addr_in.sin_family=AF_INET; //IPv4 주소체계에서 사용하므.. 이전 1 다음