# 모르스 웜의 공격 기법
1. 유닉스의 sendmail 프로그램 취약점 이용
2. 유닉스의 finger 데몬(daemon) 취약점 이용
3. 사용자이름과 패스워드의 목록을 사용하여 원격 쉘(RSH)로 공격대상 연결 시도
=> 이 중 단 한가지만 성공해도 웜은 프로그램을 사용하여 바이러스의 나머지 부분을 가져올 수 있었음
1. 포트스캐너 만들기
- 정보수집, 공격대상에 어떤 공격을 할 지 결정하기 전에 어디에 취약점이 있는지 먼저 확인한다.
- 열려있는 TCP 포트를 찾기위해 공격대상을 스캔한다(TCP 포트 통신에 앞서 TCP 소켓을 만들어야함)
- 포트 스캔의 종류
TCP SYN : TCP SYN 전송 > TCP ACK 응답 (TCP ACK 응답을 받게되면 해당 포트는 열려있는 것)
TCP 커넥트 스캔 : 3방향 핸드셰이크를 사용하여 특정 서비스나 포트가 열려있는지 판단
1) TCP 풀 커넥트 스캔
1. 호스트 이름과 스캐닝할 포트의 목록을 입력한다.
2. 호스트 이름을 IPv4 인터넷 주소로 변환한다.
3. 각 포트마다 연결을 시도한다
4. 포트에서 실행되고 있는 서비스가 무엇인지 판단하기 위해 가비지 데이터를 전송하고 해당 어플리케이션이 전송 하는 배너값을 읽는다.
+ 쓰레드를 사용하면 더욱 효율이 높아짐
2) Nmap 포트 스캐너 통합하기
- TCP 커넥트 스캔은 제한적인데 반해 Nmap은 ACK, RST, FIN, SYN-ACK 등과 같은 다른 종류의 스캔을 지원한다.
- Nmap은 결과값을 XML형식으로 생성하는데, 파이썬으로 이 기능을 완벽하게 활용가능하여 파이썬으로 Nmap을 많이 사용한다.
-> TCP 커넥트 스캔에서 닫혀있다고 생각했던 포트들이 사실은 필터링 되어있었다는 것을 알 수 있음
-> TCP 커넥트 스캔보다 더 정확한 결과를 알 수 있음
2. 파이썬으로 SSH 봇넷 구축하기
- 모리스웜 > 사용자이름과 패스워드를 강요하는 공격 기법 사용 > 시스템 관리자와 원격으로 컴퓨터에 접속하여 여러 터미널 명령어로 컴퓨터를 관리할 수 있는 수단을 제공 > 이후 공개키 암호화, RSH를 함께 사용하는 SSH(시큐 어 쉘) 프로토콜이 RSH를 대체
1) Pexpect로 SSH 연결하기
- 공격대상의 사용자 계정을 공격하는 자동화 SSH 웜 구현
- connect() 함수 : 사용자 이름, 호스트 이름 그리고 패스워드를 입력 받아서 SSH 통신을 반환하고 SSH 연결을 함
- pexpect 라이브러리를 사용하여 스크립트는 클라이언트에서 기대하고 있는 결과값을 기다림
> 결과값 : 시간 초과, 다른 호스트에 새로운 공개키가 있다는 메시지, 패스워드 프롬프트
=> 실습 안됨..
2) Pxssh SSH 패스워드 공격하기
- Pxssh는 SSH세션과 직접 연동할 수 있으며, login(), logout(), prompt() 등의 메소드가 정의되어있음
- passwd.txt의 파일의 pw목록으로 비밀번호 찾기
실행결과
3. SSH 봇넷 구축하기
- 여러 호스트를 동시에 제어하기
- 봇넷 : 공격자들이 해킹한 컴퓨터 여러 대를 동시에 악의적인 목적으로 사용하는것
- 봇넷 만들기 : Client(), Connect(), send_command(), alive()등의 메소드 사용
- botnet이라는 광역 배열을 만들고, 이 배열에 개개인의 클라이언트 객체를 포함시킴 -> addClient() 함수 만듦
- botnetCommand()를 통해 모든 배열에 작업한 후 봇넷 배열에 있는 각 클라이언트에 명령어를 전송함
실행결과
'Security' 카테고리의 다른 글
컨피커, 노력하면 된다 (0) | 2020.03.12 |
---|---|
침투테스트(FTP와 웹을 이용한 대규모 공격) (0) | 2020.03.11 |
유닉스 패스워드 크래커, 압축파일 패스워드 크래커 (0) | 2020.03.09 |
파이썬 언어(파일I/O, Sys 모듈, OS모듈) (0) | 2020.03.08 |
파이썬 언어(딕셔너리, 네트워크, 선택문, 예외처리, 함수, 반복문) (0) | 2020.03.08 |