Basic03 힌트를보면 비주얼베이직의 스트링 비교함수를 알아오라고 합니다. 구글링해서 답을 찾을 수 있는 문제지만, 디버깅을 통해 알아보는게 실력향상에 도움이 될겁니다. 분석할 실행파일을 실행하고 등록을 눌렀더니 오류가 뜨네요. 저 문자열을 기억하고 있겠습니다. 스트링을 비교해서 True이면 맞는 값을, False면 저 msg의 경고창을 날리는 종류인 것 같습니다. Exeinfo PE로 확인을 해보면 visual Basic으로 컴파일이 되어있고 패킹은 안되어 있습니다. 디버깅을 해보면, VB 파일을 디버깅하게 되면 항상 저런 모습의 exe파일과 다르게 점프문 형식으로 이루어져 있습니다. VB는 이벤트 값으로 실행하고 불러오는 구조이기 때문에 그렇습니다. exe파일 분석하다가 이런 파일 만나면 너무 어렵..
Basic02의 힌트를 보면 패스워드가 무엇인지 분석하라고 나옵니다. 일단, 실행을 해보겠습니다. 실행은 안되고 오류가 뜨네요. 흠.. 헥스레이로 한번 살펴보겠습니다. 예상대로 기존의 실행 파일과는 많이 다르네요. MZ(4D 5A)만 정상이고 다른 것들은 좀 이상해보입니다. 아래는 일반 실행파일과 이번 문제 파일의 비교입니다. 일반 실행파일의 헤더 구조 이상하다 싶어서 아래를 계속 내리니 헤더 복구가 된다면 정상적인 API 함수도 사용하고 기존의 True/False 루틴도 나옵니다. 그런데 문자열 속에 무언가를 숨겨놓네요.
코드엔진 Basic부터 차근차근 풀어가도록 하겠습니다. 다른 사이트와 다르게 답을 공개하면 불이익이 주어지네요. 풀이만 공개하겠습니다. 일단, 문제를 보시면 HDD를 CD-ROM으로 인식하기 위해서 리턴값을 바꿔야 하는 것 같은데, 바로 올리디버거로 분석 해보겠습니다. 밑의 화면을 보시면 처음에 MsgBox를 띄워줍니다. 당신의 HDD를 CD-Rom으로 만들어라. 흠.. 아래의 API 함수가 눈에 띄네요. GetDriveTypeA라는 함수는 현재 드라이브를 가져와서 리턴 시키는 함수입니다. UINT WINAPI GetDriveType( _In_opt_ LPCTSTR lpRootPathName ); 인자로는 path 값을 받아서 실행을 합니다. 밑의 화면은 GetDriveType의 리턴 값입니다. 트레이싱..
문제 풀이에 앞서, 아래 사이트를 참고해 fd(file descriptor)에 대해서 참고.http://levanterb.tistory.com/11 문제를 보시면 애새끼가 엄마한테 리눅스의 파일 디스크립터가 뭐야?? 라고 힌트를 주네요.일단, 접속을 해보겠습니다. 원격으로 접속한 결과 메타스플로잇 같이 멋있는 그림이 나옵니다. ls -al로 파일의 권한을 확인해 보겠습니다. 일단 fd와 flag가 유심히 보이네요. fd에는 setuid 권한이 설정되어 있고, 답이 적혀있는 것 같은 flag 파일에는 fd2 권한이 되어야 볼 수가 있네요. 이제 fd 소스를 한번 보겠습니다. 일단, 버퍼오버플로우를 의심했었는데, 버퍼오버플로우에 취약한 함수가 쓰이지 않는걸로 봐서 아닌 것 같습니다. 소스를 일단 설명하자면,..
1. PEID로 열어본 화면입니다. C++로 만들어져있고, GUI에, 패킹이 안되어 있습니다.2. 실행을 하고 123을 눌렀지만 오류가 나네요!3. Resource Hacker로 열어본 결과 Control ID값을 확인할 수 있었습니다. EditText 창은 '1002' Button(Check)는 '1003' TextArea(Wrong)는 '1001'입니다. 4. IDA로 봤더니, 전체적인 소스 흐름은 EditText에 정확한 숫자를 입력해야 성공을 하는 것 같은데, IDA는 'Correct'부분을 해석하지 못합니다. 분석을 어렵게 하기 위해 조작을 했을 것 같네요.5. 올리디버거로 실행하여 user32.dll의 DialogBoxParamA(DialogBox 띄움), GetDlgItemInt(입력 글자를..
1. 분석 하기 전에 ImagePrc를 PEID에 붙여봅니다. C++로 만들어졌고, Win32 GUI가 SubSystem이네요. 2. ImagePrc를 실행 했을 때 모습입니다. 그림을 그려넣는 걸로봐서 알맞은 글씨나, 그림을 넣어야 되나..?3. IDA로 본 main 코드입니다. WinMain 함수를 쓰는 코드를 보면 공통점이 lpfnWndProc 부분에 주요 코드를 저장하기 때문에 401130 주소로 가보겠습니다.4. GetDc, CreateCompatibleBitmap, Rectangle 함수를 쓴 걸로 보아 화면을 띄우는 역할을 하는 부분입니다. 5. 밑을 내려가다 보면 워게임 문제가 다 그렇듯, 오류 메시지 근처에 답이 존재합니다 ^____^; 오류 메시지의 반대 루틴으로 가게끔 BP를 걸어서 ..
- Total
- Today
- Yesterday
- 악성코드
- CVE-2018-0798
- .wll
- Kimsuky
- 비트코인
- cuckoo-sandbox
- VirusBulletin
- 출처 : Do it 안드로이드 프로그래밍
- keylogger
- malware
- infostealer
- Bisonal
- Yara
- Static Analysis Engine
- 위협정보공유
- 한글악성코드
- MS-Office
- CVE-2018-9375
- koodous
- Servey
- 스피어피싱
- Cisco Talos
- 멋쟁이사자처럼 4기
- us-cert
- vuln
- AMSI
- Flybits
- Decoding
- idapython
- 해킹메일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |