분류 전체보기 (24) 썸네일형 리스트형 포렌식 수사(메타데이터) 1. 레지스트리의 무선 AP 분석 - 윈도우 레지스트리 >운영체제의 설정을 저장하는 데이터베이스로 무선 통신과 관련된 정보가 저장됨 > 레지스트리의 키의 위치와 의미에 따라 실제 노트북 컴퓨터가 어디에 있었는지 확인 가능 > 윈도우(Vista 이후) HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList \Signature\Unamanged 밑 서브키에 각각의 네트워크를 저장함 > 저장된 값을 통해 Guid, 네트워크 설명, 네트워크 이름, 게이트웨이 MAC 주소등의 정보를 얻을 수 있음 2. WinReg로 윈도우 레지스트리 읽기 - 레지스트리는 게이트웨이 MAC주솔르 REG_BINARY 타입으로 저장함 주요 레지스트리 값의 종류 REG_SZ 일반문.. 컨피커, 노력하면 된다 # 컨피커 - 두 개의 서로 다른 벡터를 사용하여 공격함. - 윈도우 서버 서비스에 있는 제로 데이 취약점을 활용함 > 스택을 변조하여 쉘코드를 실행시키고, 감염된 호스트에 자신의 복사본을 다운로드 하게함 - 이 공격이 실패하면, 디폴트 관리자 네트워크 공유(ADMIN$)의 계정에 무차별 대입공격을 하여 접근 권한을 획득함 # 메타스플로잇 - 사용자가 명령어를 입력하여 공격실행 or 배치 파일을 통해 공격 가능 - 순차적으로 배치 파일에 있는 명령어를 처리하여 공격 실행 1. 메타스플로잇 공격 - 공격코드 : exploit/windows/smb/ms08_067_netapi - 공격대상 : 192.168.--.-- - 페이로드 : windows/meterpreter/reverse_tcp - 공격자 컴퓨터 .. 침투테스트(FTP와 웹을 이용한 대규모 공격) 1. FTP와 웹을 이용한 대규모 공격 # k986ytv # FTP(File Transfer Protocol, 파일 전송 프로토콜) - TCP 기반의 네트워크에서 사용자들이 서로 파일을 전송할 수 있도록함 - 일반적으로 사용자는 사용자이름과 패스워드 조합으로 FTP서버에 인증함 - 익명인증 : 사용자이름 - "anonymous"입력, 패스워드 대신 이메일주소 입력 1) 파이썬으로 익명 FTP 스캐너 만들기 - ftplib 를 활용하여 특정 서버가 익명로그인을 허용파는지 판단하는 스크립트 작성 - anonLogin()함수는 호스트 이름을 입력받고 익명 로그인이 허용되는지 묘사하는 불리언 반환 (성공하면 "True", 연결을 시도하는 과정에서 예외가 발생하면 "False") 실행결과 2) Ftplib로 FT.. 침투 테스트(포트스캐너 만들기, SSH 봇넷 구축하기) # 모르스 웜의 공격 기법 1. 유닉스의 sendmail 프로그램 취약점 이용 2. 유닉스의 finger 데몬(daemon) 취약점 이용 3. 사용자이름과 패스워드의 목록을 사용하여 원격 쉘(RSH)로 공격대상 연결 시도 => 이 중 단 한가지만 성공해도 웜은 프로그램을 사용하여 바이러스의 나머지 부분을 가져올 수 있었음 1. 포트스캐너 만들기 - 정보수집, 공격대상에 어떤 공격을 할 지 결정하기 전에 어디에 취약점이 있는지 먼저 확인한다. - 열려있는 TCP 포트를 찾기위해 공격대상을 스캔한다(TCP 포트 통신에 앞서 TCP 소켓을 만들어야함) - 포트 스캔의 종류 TCP SYN : TCP SYN 전송 > TCP ACK 응답 (TCP ACK 응답을 받게되면 해당 포트는 열려있는 것) TCP 커넥트 스캔.. 유닉스 패스워드 크래커, 압축파일 패스워드 크래커 # 뻐꾸기의 알 위와 같은 사실로 공격자가 암호화된 패스워드를 알아내기 위해서 딕셔너리 공격을 했다는 것을 알게되었다. 해커는 딕셔너리에 있는 모든 단어를 사용하여 유닉스의 Crypt()함수로 암호화 하였다. 그리고 각 패스워드를 암호화한 후에 해커는 탈취한 암호화된 패스워드와 비교하였다. 딕셔너리와 패스워드가 일치하면 패스워드 크래킹에 성공한다. 1. 첫번째 파이썬 프로그램 - 유닉스 패스워드 크래커 - 유닉스 패스워드 크래커를 만들기 위해 crypt() 알고리즘 사용 - 암호화된 유닉스 패스워드 해시를 계산하기 1) crypt.crypt()함수 호출 2) 이 함수에 패스워드와 솔트(salt) 전달 # 유닉스 패스워드 크래커 프로그램 만들기 1. main 함수 만들기 - 암호화된 패스워드 파일인 "pa.. 파이썬 언어(파일I/O, Sys 모듈, OS모듈) 10. 파일I/O - f = open("vuln_banners.txt", 'r' ) 모드 설명 r 읽기모드 w 쓰기모드(기존 파일이 존재하면 덮어씀) a 쓰기모드(기존 파일위에 씀) b 바이너리모드 t 텍스트모드 x 배타적 생성모드 열기(파일이 존재하면 IOError) + 읽기, 쓰기모드 * .readlines() : 파일에 있는 각 라인을 읽어옴 * .strip() : 각 라인에 있는 해당 문자를 제거 11. Sys 모듈 - 파이썬 인터프리터가 사용하거나 유지하고 있는 개체에 접근할 수 있도록 해줌 - 파이썬 스크립트를 작성할 때 유용 - sys.argv : 모든 커맨드라인 인자값을 포함하고 있는 배열 -> sys.argv[0]에는 파이썬 스크립트의 이름이 포함되어 있음 12. OS 모듈 - 이 모듈을.. 파이썬 언어(딕셔너리, 네트워크, 선택문, 예외처리, 함수, 반복문) 4. 딕셔너리 - 파이썬 객체를 저장할 수 있는 해시테이블 제공 - 키와 값으로 구성 * .keys() : key 목록 반환 * .items() : 키 아이템 쌍 목록 * .has_key() : 해당 키가 있는 지 검색 * .[key] : key에 대한 item값 확인 포트 : 21 - ftp(제어), 22 - ssh, 35 - smtp, 80 - http, 443 - https 5. 네트워크 - 소켓 모듈에서 제공하는 라이브러리를 통해 파이썬으로 네트워크 연결 가능 => socket import => connect() 메소드를 사용하여 IP주소와 포트 네트워크 연결 => recv(1024) : 소켓에서 1024비트를 읽어옴 => 결과 출력 6. 선택문 - if/elif를 사용 7. 예외처리 - try/.. 파이썬 언어(변수, 문자열, 리스트) 1. 변수 - 메모리에 저장되어 있는 데이터 - 타입 : 정수, 실수, 불리언, 문자열 등등(파이썬에서는 변수타입 구분X) * str(cast) : cast값을 문자열로 바꾸어줌. * type(cast) : cast의 타입을 알려줌 2. 문자열 * .upper() : 변수의 문자열을 대문자로 변환 * .lower() : 변수의 문자열을 소문자로 변환 * .replace(old, new) : 'old' 부분을 'new'의 내용으로 바꿈 * .find(x) : x의 문자 위치를 알려줌 3. 리스트 - 객체를 배열로 저장하기 위한 수단으로 사용 - 모든 데이터 타입의 리스트의 만들 수 있음 * .append() : 리스트에 아이템 추가 * .sort() : 오름차순 정렬 * .sort(reverse = Tru.. 이전 1 2 3 다음