Try Attack91

BreakPoint 1. 브레이크포인트▶ 브레이크포인트에는 하드웨어 브레이크포인트와 소프트웨어 브레이크포인트가 있다. 1) 소프트웨어 브레이크포인트 [1] 정의 ▶ 실행동작에 브레이크포인트를 설정하는 것을 말한다. ▶ 기계어 'CC'로 표현하며 명령어는 'int 3'으로 표현한다. ▶ 브레이크포인트를 설정한 명령어의 앞 1바이트가 'CC'로 대체된다. ▶ 순차적으로 실행하다가 명령어 앞의 바이트가 'CC'로 되어있으면 인터럽트를 발생시킨다. ▶ 이 때 운영체제는 실행에 대한 제어권을 인터럽트 핸들러에 넘긴다. ▶ 인터럽트 핸들러는 인터럽트를 설정할 때 같이 등록한 인터럽트 서브루틴을 호출한다. ▶ 보통 올리디버거나 이뮤니티디버거에서는 F2로 브레이크포인트를 설정할 수 있다. ▶ 우리가 흔히 알고 사용하는 브레이크포인트가 소.. 2018. 12. 28.
Packing/Unpacking 1. packer ▶ packing하는 프로그램을 말한다. ▶ packing은 압축된 상태에서는 실행이 안되고 메모리에 압축을 풀어서 사용하는 것을 말한다. 1) Compressor [1] 정의 ▶ 실행파일의 용량을 줄이기 위해 압축한다. [2] 사용이유 ▶ 파일 용량을 줄이는데 목적이 있다. ▶ 그러나 프로그램 실행속도가 느려진다. [3] 종류 ▶ Petite, ASPack, MEW, FSG, UPX 등이 있다. 2) Protector [1] 정의 ▶ 실행파일을 암호화하여 분석을 어렵게 하고 실행할 때 복호화하여 메모리에 적재된다. [2] 사용이유 ▶ 내부로직을 보호하는데 목적이 있다. ▶ 파일이 커질 수 있고, 실행속도가 느려진다. [3] 종류 ▶ Themeda, Yoda,ASProtect, arma.. 2018. 12. 19.
Code Caving 1. Code Caving ▶ 위 그림의 왼쪽을 보면 instruction1, instruction2, instruction3, instruction4 가 있다. ▶ instruction3 대신 다른 코드를 삽입하려고 한다. ▶ 그러나 코드의 사이즈가 더욱 커서 instruction3의 사이즈에 들어가지 않는다. ▶ 만약 어거지로 끼워 넣는다면 아래 instruction4가 없어지거나 다른 코드가 밀릴 수 있다. ▶ ------------------------------------------------------------------------------------------------- ▶ 그래서 위 그림의 오른쪽을 확인한다. ▶ instruction3부분이 jump code1로 변경되어 있다. ▶ c.. 2018. 12. 18.
[crackme5] abex' 5th crackme 풀이 및 복원 1. [abex' 5th crackme] 풀이시연 1) 실행파일 실행 [1] 파일 열기 ▶ 프로그램을 실행시키자 Serial 값을 입력하고 Check를 클릭할 수 있도록 만들어져 있다. ▶ Check를 클릭하자 입력한 시리얼 값이 올바르지 않다는 메세지를 출력하고 종료한다. 2) 개발언어 및 링커 확인 [1] Pascal계열의 Delphi로 작성됨을 알 수 있다. [2] 32비트 실행파일임을 알 수 있다. [3] Terbo 링커를 사용하여 링킹한 것을 알 수 있다. [4] 헤더타입이 PE라고 적힌 것이 확인되어 Windows용 실행파일임을 알 수 있다. [5] ImageBase(기준주소)가 0x400000임을 알 수 있다 [6] EntryPoint(시작주소)가 기준주소로부터 0x1000 만큼 떨어진 곳임.. 2018. 11. 16.
[crackme3] abex' 3rd crackme 풀이 및 복원 1. [abex' 3rd crackme] 풀이시연 1) 실행파일 실행 [1] 파일 열기 ▶ 첫 번째 메세지박스는 키파일을 체크 후 확인을 클릭하라고 한다. ▶ 두 번째 메세지박스는 파일을 찾을 수 없다고 한다. 2) 개발언어 및 링커 확인 [1] Pascal계열의 Delphi로 작성됨을 알 수 있다. [2] 32비트 실행파일임을 알 수 있다. [3] Terbo 링커를 사용하여 링킹한 것을 알 수 있다. [4] 헤더타입이 PE라고 적힌 것이 확인되어 Windows용 실행파일임을 알 수 있다. [5] ImageBase(기준주소)가 0x400000임을 알 수 있다 [6] EntryPoint(시작주소)가 기준주소로부터 0x1000 만큼 떨어진 곳임을 알 수 있다. [7] 기타 시그니쳐 및 옵션 세부사항은 직접 .. 2018. 11. 8.
[crackme2] abex' 2nd crackme 풀이 및 복원 ※ 단순한 값만 확인하지 않고 Serial Key Algorithm을 찾는데 목적을 두었습니다. 1. [abex' 2nd crackme] 풀이시연 1) 실행파일 실행 [1] 파일 열기 ▶ 아무 것도 입력하지 않고 Check를 누르면 4글자 이상의 이름을 입력하라는 메세지가 출력된다. [2] 이름 및 시리얼번호 입력 ▶ 이름과 시리얼번호를 입력해주고 체크를 눌러본다. [3] Check 버튼 후 결과 확인 ▶ 시리얼번호가 잘못됬다는 메세지를 확인한다. 2) 개발언어 및 링커 확인 [1] Visual Basic 언어로 작성됨을 알 수 있다. [2] 32비트 실행파일임을 알 수 있다. [3] Microsoft 링커를 사용하여 링킹한 것을 알 수 있다. [4] 헤더타입이 PE라고 적힌 것이 확인되어 Windows.. 2018. 11. 7.
[crackme1] abex' 1th crackme 풀이 및 복원 ※ crack보다 배우는데 목적이 있기 때문에 여러가지 방법으로 시도해 보았다. 1. 리버싱 과정(순서)1) 실행파일 실행 [1] 실행파일을 실행해서 뭐하는 프로그램인지 확인해본다. 2) 개발언어 및 링커 확인 [1] 어떤언어로 개발된 프로그램인지 확인한다. ▶ 언어에 따라 어떤 API를 사용했는지 확인이 가능하다. [2] 어떤 컴파일러를 사용하였는지 확인한다. ▶ 컴파일러에 따라 기계어로 변환하는 방법이 다르기 때문에 컴파일러의 스타일을 확인할 수 있다. 3) 상상 [1] 개발된 언어를 알고 있다면 어떠한 로직으로 구성되었는지 유추해본다. [2] 만약 C++로 제작되었지만 모른다면 의사코드를 이용해 짐작해본다. 4) 디버거 툴을 사용한 분석 [1] 전체분석 ▶ 전체분석의 경우 전체적인 로직을 분석하여 .. 2018. 11. 7.
iptables 1. iptables ▶ 리눅스의 대표적인 방화벽이며 IP와 PORT번호를 확인하여 접근을 허용하거나 차단한다. 1) port번호 [1] Well-Known Port ▶ 잘 알려진 포트를 말하며 0번~1023번 사이의 포트를 말한다 [2] Registered Port ▶ 업체나 어플리케이션 만든 회사의 소프트웨어에서 사용하는 포트를 말한다. ▶ 1024번~49151번 사이의 포트를 말한다. [3] Dynamic Port ▶ 동적으로 할당되는 임의의 포트번호이다. ▶ 49152번~65535번 사이의 포트를 말한다. ※ 웹서비스가 80번을 사용하지만 꼭 80번 포트를 웹서비스포트로 사용할 이유는 없다. 즉, 통상적으로 그렇게 많이 쓴다는 말이다. 2) 옵션 ▶ -A(append) : 새 규칙 추가 ▶ -D(.. 2018. 11. 4.
Nmap 포트스캔 1. Nmap ▶ Network Map(네트워크 지도)의 약자이다. ▶ 네트워크에 연결되어있는 호스트OS의 종류를 알 수 있다. ▶ 서버의 열린포트를 확인할 수 있다. ▶ 서비스하는 프로그램의 버전을 확인할 수 있다. 1) 환경 - kali linux 2018.1 운영체제의 공격자 클라이언트 - 공격자 클라이언트에 설치된 wireshark 프로그램 - ubuntu 16.04 운영체제의 희생자 클라이언트 - 희생자 클라이언트에 설치된 vsftpd 데몬 2) 사전지식 - 보통 공격을 시도할 때는 [주소스캔] - [포트스캔] - [운영체제 및 버전확인] - [연결된 서비스확인] - [CVE리스트에서 취약점확인] 이런 식으로 진행된다. [1] 주소스캔 ▶ 브로드캐스트주소로 ICMP패킷을 전송하여 네트워크에 존재.. 2018. 11. 4.
FTP서버 해킹 ※ 주의사항 : 실제로 공격이 통할 수 있으니 실제로 사용하지 마십시오. 학습용이므로 악용하여 발생한 일에 대해 책임을 지지 않습니다. 1. FTP 서버의 패스워드 탈취 1) 환경 - kali linux 2018.1 운영체제의 공격자 클라이언트 - 공격자 클라이언트에 설치된 hydra 프로그램 - 공격자 클라이언트에 설치된 wireshark 프로그램 - 공격자 클라이언트에 설치된 metasploit 프로그램 - ubuntu 16.04 운영체제의 희생자[FTP서버] 클라이언트 - 희생자 클라이언트에 설치된 vsftpd 데몬 2) 내용설명 ▶ 희생자 PC에 간단한 vsftpd 데몬을 설치 후 어떠한 방법으로 공격을 시도하여 비밀번호를 탈취하려고 한다. 3) 사전지식 [1] hydra : WEB, FTP, S.. 2018. 10. 28.
DNS Spoofing 주의사항 : 실제로 공격이 통할 수 있으니 실제로 사용하지 마십시오. ※ 선행지식 = ARP Spoofing 참고URL = https://ccurity.tistory.com/174?category=657369 1. DNS Spoofing ▶ 도메인 네임 시스템에서 전달되는 IP주소를 변조한다. 1) 환경 - kali linux 2018.1 운영체제의 공격자 클라이언트 - 공격자 클라이언트에 설치된 dnsspoof 프로그램 - 공격자 클라이언트에 생성한 변조할 fake.hosts 파일 - 희생자가 연결될 웹 서버(docker이용) - windows 7 운영체제의 희생자 클라이언트 2) 시연(ARP Spoofing이 성공한 상태에서 진행) [1] 희생자의 hosts 파일의 상태를 확인 ▶ C:\Windows.. 2018. 10. 21.
ARP Spoofing 주의사항 : 실제로 공격이 통할 수 있으니 실제로 사용하지 마십시오. 1. ARP Spoofing - 위조된 arp reply 패킷을 계속 전송하는 방법을 사용한다. - 중간자 공격의 하나이다. 1) 환경 - kali linux 2018.1 운영체제의 공격자 클라이언트 - 공격자 클라이언트에 설치된 arpspoof 프로그램 - 공격자 클라이언트에 설치된 fragrouter 프로그램 - 공격자 클라이언트에 설치된 tcpdump 프로그램 - 공격자 클라이언트에 설치된 ettercap 프로그램 - windows 7 운영체제의 희생자 클라이언트 2) 시연 [1] 희생자의 arp 테이블 확인(희생자) ▶ 정상적으로 IP에 해당하는 MAC주소를 확인할 수 있다. ▶ 희생자의 IP는 200.1.10.115 이다. [.. 2018. 10. 21.