본문 바로가기

워게임200

node 롸업 정리 https://github.com/rkhal101/Hack-the-Box-OSCP-Preparation/blob/master/linux-boxes/node-writeup-w-o-metasploit.md GitHub - rkhal101/Hack-the-Box-OSCP-Preparation: Hack-the-Box-OSCP-Preparation Hack-the-Box-OSCP-Preparation. Contribute to rkhal101/Hack-the-Box-OSCP-Preparation development by creating an account on GitHub. github.com nmap http://10.10.10.58:3000 / password가 hash된 값인 것 같다. sha256으로 .. 2021. 8. 15.
[HTB] lame - 참고 링크 정리 풀이 https://rana-khalil.gitbook.io/hack-the-box-oscp-preparation/linux-boxes/lame-writeup-w-o-metasploit Lame Writeup w/o Metasploit rana-khalil.gitbook.io 순서 1. nmap으로 옵션 잘 줘서 상세히 확인/ udp 스캔 잊지 않기 2. 포트 하나하나 분석/구글링/ nmap --script(ls /usr/share/nmap/scripts/*~~*) 3. smb 취약점 발견 4. smbclient(공유된 자원 확인)/ smbhost(공유된 자원 permission 확인) 5. cve 발견.. cve 코드 찾아서 보니까 공통점 발견. 6. nohup을 이용해서 reverse shell 얻기.. 2021. 8. 15.
LOB - zombie_assassin(RTL chain) #include #include #include // the inspector int check = 0; void MO(char *cmd) { if(check != 4) exit(0); printf("welcome to the MO!\n"); // olleh! system(cmd); } void YUT(void) { if(check != 3) exit(0); printf("welcome to the YUT!\n"); check = 4; } void GUL(void) { if(check != 2) exit(0); printf("welcome to the GUL!\n"); check = 3; } void GYE(void) { if(check != 1) exit(0); printf("welcome to the.. 2021. 8. 8.
LOB - assassin(semi ROP) 이번엔 ret을 leave, ret 명령어가 연달아 있는 주소로 옮겨서 익스해야 한다. gdb까보면, main 함수 마지막쯤에 leave, ret이 있는데, 그 주소를 따오면 된다. (0x80484df) 그러면, leave - ret - leave - ret 이렇게 실행되며, 마지막 ret에서 쉘 코드가 실행되는 방식이겠거니, 생각이 든다. 내가 생각한 방식대로 하려면, buffer주소 - 8 ---------------------- buffer주소 - 4 ---------------------- buffer[40] ---------------------- sfp ---------------------- ret ---------------------- 이런 스택 구조에서, 익스할 48바이트 중 40-43.. 2021. 8. 7.
LOB - giant (semi ROP) 버퍼 지워버리고, RTL도 안되고, stack도 안된다??? 남은 건 코드 영역 뿐..... objdump -D assassin | grep ret ☞ ret 코드를 찾는다. 여러 개가 뜰텐데 하나 그냥 고르면 된다. 그리고 libc 주소, system 함수 offset, /bin/sh offset 찾으면 된다... buffer[40] --------------------- sfp --------------------- ret --------------------- 이런 스택 구조인데, 다음과 같이 만들면 된다. ▼ ▼ A * 40 ---------------------- AAAA ---------------------- ret -> 다른 ret 주소로 덮기 ---------------------- sy.. 2021. 8. 7.
LOB - bugbear(RTL, execve함수) 대충 해석해보면 친히 execve의 주소를 구해서 char *ret이 execve의 주소와 같아야 한다는 조건이 있다. ret에 argv[1][44]부터 4만큼 복사하므로, 내가 인자로 줄 값의 44-47까지의 값이 ret에 복사되는 것이다. 그러므로, 44-47번 값을 execve 함수의 주소로 주면 되겄지 [*] 참고사항 c언어 execve 함수 execve(char *filename, char *const argv[], char *const envp[]) 파일이름 파일 인자의 포인터 환경변수의 포인터 ☞ filename이 가리키는 파일을 실행한다. 이 파일은 바이너리 실행 파일이거나 스크립트 파일이어야 한다. argv, envp는 포인터 배열로 filename의 인자로 들어간다. * 만약 filen.. 2021. 8. 7.