Computer Security/System Security 썸네일형 리스트형 BOF : 쉘 코드 #include void main(){ char cmd[] = {'c','m','d','.','e','x','e','\0'}; //문자는 코드영역이므로 데이터영역에 있는 문자열이 아닌 문자를 사용 WinExec(cmd,SW_SHOW); //이 프로그램을 실행해달라는..(System()) ExitProcess(0); //exit(); 취약한 프로그램에서 실행했을 때 그 기능에 수행되도록 표준함수가 아닌 windows api 함수를 사용 } * 정적링크 : 프로그램 내에 코드가 전부 들어있어야 (ex : 표준함수) 동적링크 : 프로그램 내에 코드가 들어있지 않고 dll에서 불러옴 #include 2: void main(){ 00401010 push ebp 00401011 mov ebp,esp 00401013.. registry 편집 소스코드(마우스속도변경) * Win32 API : Windows에서 쓸 수 있는 32비트용 application 함수 제공 * 레지스트리 조종 함수들은 IN : call by value , OUT : call by reference로 이해하면 된다. * 레지스트리도 파일 입출력에서처럼 value에 접근하려면 key를 먼저 열어야 한다. Win32 -> Win32 프로젝트 -> 빈프로젝트 #include #define DATA "3" int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow){ HKEY key; RegCreateKeyEx(HKEY_CURRENT_USER, "Control Panel\\Mouse", 0, NULL, REG_OPTION_NO.. 루트킷(Rootkit) 루트킷(Root + Kit) : '은닉' 시켜주는 프로그램 1세대 - Application Level Rootkit : 프로그램 조작2세대 - User Mode Level Rootkit : 프로세스의 User 영역 메모리 조작3세대 - Kernel Mode Level Rootkit : 커널 영역 메모리 조작4세대 - Bootkit : 부트로더 조작 Process & Thread Process: 프로그램이 실행되어 메모리에 적재된 상태 Thread: Process 안에서 실행되는 작업의 단위 Process(껍데기) Thread(실제 일 수행하는 단위)(명령 이루고있는 작업의 단위) * 하나의 프로세스는 적어도 하나의 thread(주 thread)를 가지고 있어야 한다. 리눅스의 권한상승용 백도어 * 리눅스에서는 권한 상승용 백도어 방식을 이용한다.* 리눅스의 권한1. 읽기(R), 쓰기(W), 실행(X)2. 특수권한1) SetUID(4000) : 사용자가 파일을 실행하는 동안 파일 소유자의 권한을 획득한다.2) SetGID(2000) : 실행 파일을 소유한 그룹 소유자의 권한을 획득한다.3) Sticky Bit(1000) 3. UID의 종류- RUID(Real UID) : 실제 계정. 현재 로그인 된 실제 사용자의 ID- EUID(Effective UID) : 실행하고 있는 Process의 UID 실습 1)# vim uid_test.c... getuid() //RUID리턴 //root일 때 0값을 리턴... geteuid() //EUID리턴# chmod 4755 uid_test //setuid하면.. 대입공격 개요 1. Local Password Cracking- 패스워드 저장 방식 및 인증절차를 이용한다.- 리눅스는 /etc/shadow 에 비밀번호 저장- 윈도우는 SAM 파일에 비밀번호 저장- 패스워드를 복구할 때는 일반적으로 Tool을 사용한다. - 리눅스에서는 CentOS Live CD를 이용해 로컬 패스워드 변경 - 윈도우즈에서는 ERD Commander를 이용해 로컬 패스워드 변경 2. 서비스 인증 대입 공격- ftp, sshd, rdp, telnet 등** rdp(Remote Desktop Protocol) : 윈도우즈에서 사용하는 프로토콜(원격 데스크탑 프로토콜 : 인증 필요)- Linux와 Windows의 인증 모듈 - Linux : PAM 서비스(어렵지만 세밀한 정책을 설정하는 것이 가능하다) -.. 멀웨어와 백도어에 대하여 Malware(Malicious Software)- 악성코드 : 악의적인 목적을 지닌 프로그램- 기존의 정상적인 프로그램 기능을 악의적으로 사용하는 것- 악성코드의 기능 : 디스크 파괴, 정보 탈취, 시스템 명령 실행 등- 악성코드 감염 경로 - Troy Horse : 겉으로는 이상이 없지만 그 안에 숨어 있는 것 - Autorun : usb 감염 - Worm, Virus - Mail 백도어 - 정상적인 인증을 거치지 않고 시스템에 접속하게 하는 것- 해킹을 한 경우 다음 접속을 쉽게 하기위해 시스템 보안이 제거된 통로- 공격자가 관리자 권한을 획득한 후 공격을 시도하는 것이 일반적이다.* 접속방식 1) Inverse(정방향) : Hacker ->Victim 2) Reverse(역방향) : Victim .. Prev 1 Next