전체 글 18

[코니그룹] 국세청 사칭 악성코드 - 국세청 종합소득세 해명자료 제출 안내 (2023.9.4)

참고: https://wezard4u.tistory.com/6592 파일 구성 파일명: d245f208d2a682f4d2c4464557973bf26dee756b251f162adb00b4074b4db3ac.zip 해시값 MD5: ddd07976e889bfc58e2925cd22e5198a SHA-1: cabb494d8a2a36a3f653aa7900a14a921dccf05e SHA-256: d245f208d2a682f4d2c4464557973bf26dee756b251f162adb00b4074b4db3ac 총 3가지 파일이 들어가 있음 국세청 종합소득세 해명자료 제출 안내.hwp.lnk 바로가기 파일로 되어 있음 국채 및 통화안정증권 거래ㆍ보유 명세서(소득세법 시행규칙).hwp 근로소득지급명세서(개정안_2302..

전라남도 코로나 바이러스 대응 긴급 조회.hwp

파일 구성 파일명: 전라남도 코로나 바이러스 대응 긴급 조회.hwp 해시값 MD5: 8451be72b75a38516e7ba7972729909e SHA-1: 45de8115b49ef68915e868138c04da375dfb7096 SHA-256: 7050af905f1696b2b8cdb4c6e6805a618addf5acfbd4edc3fc807a663016ab26 바이러스 토탈 조회시 드롭퍼, 다운로더 진단명이 제일 많이 보이는 것을 알 수 있음 SSVIEW hwp파일의 OLE 객체 정보를 파싱해주는 도구로 내부 데이터를 뽑아낼 수 있다. .ps(포스트 스크립트) 파일이 있는 것으로 보아 해당 BIN0005.ps 파일이 악성 파일을 다운로드 하는 쉘 코드로 추정된다. BIN0005.ps compress 되어 ..

[라자루스] 미국 구인공고.zip 악성코드

혹시라도 분석이 잘못되었거나 틀린 부분이 있다면 알려주세요. 참고: https://www.securonix.com/blog/detecting-ongoing-starkmule-attack-campaign-targeting-victims-using-us-military-document-lures/ 파일 구성 파일명: 미군 구인공고 웹사이트 주소 및 사용방법 안내.zip 해시값 MD5: 6277fee38a64f218291c73db5326e1bf SHA-1: 66515b6a0e09194511708c1057a62d767a11344f SHA-256: 7f4bb17b1011c05d206f62be4685384a4dba063bd29f55113442b58669b8c252 총 3가지 파일이 들어가 있음 Multi Natio..

[pwnable.kr] dragon

이 문제는 type error와 uaf 취약점 2개를 이용해서 푸는 문제였다. main함수에서 PlayGame() 함수로 넘어가보자 FlightDragon 함수랑 SecretLevel 함수가 보인다. 이 함수로 넘어오면 shell을 실행할 수 있는데, 입력한 문자열과 Nice_Try 부분 문자열이 일치하는지 확인함, 근데 10글자밖에 못가져와서 이 부분은 사실상 의미가 없었다. 하지만 system("/bin/sh")를 실행하면 쉘이 실행될테니 해당 주소를 기억해두자 SecretLevel 함수를 확인해보면 0x08048dbf 함수에서 부터 system("/bin/sh") 함수가 실행되는 것을 알 수 있다. 이번엔 FlightDragon 함수 로직을 파악해보자. 간단하게 확인해보면 캐릭터를 생성해서 용이랑 ..

[pwnable.kr] Collision

20byte를 받아서 check_password함수에서 정수형 포인터를 통해 4바이트씩 읽어서 더하는 것을 알 수 있었음 끝에서 hashcode랑 비교를 하게 되는데, 0x21DD09EC랑 일치해야 플래그 값이 출력됨 0x21DD09EC를 임의로 5등분 하게 되면, 이런식으로 나옴 06C5 CEC8 / 06C5 CEC8 / 06C5 CEC8 / 06C5 CEC8 / 06c5 CECC 그러면 이걸 더해서 20바이트 맞춰주면 될거라 생각함 근데 여기서 뻘짓 했던게 ascii 테이블에 있는 문자로 치환해서 넣어야 겠다라고 생각해서 조금 뻘짓을 하게됨.. 일단 어셈블리 상으로 보면 check_password+39 부분에서 ebp-0x8에 eax를 다 더하고 나중에 그 값을 eax로 옮긴 뒤 리턴하는 것을 볼 수..

[pwnable.kr] fd

fd에 대해서 알고 있는지 물어보는 문제 read를 통해 buf에 할당하고 있는데, fd를 0으로 맞춰줘야함 그렇다면 read함수의 fd를 0으로 맞춰주면 됨 fd는 첫번째 인자에서 0x1234를 빼게됨 그럼 인자에 0x1234(10진수: 4660)를 주게되면 fd가 0으로 할당되고, buf에 값을 할당 가능 buf에 값을 LETMEWIN으로 맞춰주면 플래그가 출력됨 4660 입력 후 LETMEWIN 입력하니까 플래그 출력!

[DreamHack] oob1

idx의 범위 제한 로직이 없기 때문에 해당 idx에 큰값을 주어서 name쪽으로 넘어가면 될것이라 생각 일단 처음에 가장 중요한 name, command의 시작주소를 알아보자 name 시작주소: 0x804a0ac command 시작주소: 0x804a060 scanf에서 eax를 입력받는걸 알 수 있음 eax*4 + 0x804a060 → 즉 eax는 idx값이고, 현재 32비트이기 때문에 4바이트씩 증가 되면서 인덱스를 맞추는 것으로 볼 수 있음 그러면 name의 주소에서 command의 주소를 빼면 거리차이가 있을 거고 4바이트로 나누게 되면 idx를 추측할 수 있음 거리차이: 0x4C → 10진수: 76 76/4 = 19 즉 command의 19번째가 name의 시작임 익스플로잇 짜는 과정에서 nam..

[DreamHack] SSP01

BOF가 터지는 부분에 대해서 조금씩 보다가 print_box 함수를 통해 canary값을 가져올 수 있을것이라 판단했다. 또한, box, name, select 버퍼가 있기 때문에 마지막 case 'E' 선택 후 name 버퍼를 채워주어서 ret를 변조해 get_shell()을 불러오면 될거라 생각했다. gdb를 사용해 canary 위치를 확인해보니 [ebp-0x08] 인것을 확인할 수 있다. 그러면 box 시작부분부터 canary가 얼마나 떨어져 있는지 확인해서 idx를 통해 한바이트씩 출력시켜서 canary 값을 확인할 수 있다. lea eax, [ebp-0x88]을 통해서 box의 시작부분이 ebp-0x88부터 인것을 알 수 있음 buf 시작주소: 0xffffcf80 canary 시작주소: 0xf..