■ SNMP 취약점 공격
- NMS(Network Management System) : 네트워크 관리 시스템
- SNMP(Simple Network Management Protocol) : NMS에서 관리시스템과 관리대상 간에 정보를 전달하기 위한 프로토콜
=> 정보가 전달할 때 받기 위해 일종의 패스워드인 Community String을 사용한다
- Community String은 Default로 public, private로 설정된 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 시스템의 주요 정보 및 설정을 파악할 수 있음.
○ Metasploit 이용
- EthernalBlue 취약점으로 공격을 한 뒤, hashdump 입력
=> EthernalBlue 취약점 공격하는 방법 : https://yoonix.tistory.com/40?category=0
- 사용자의 계정과 비밀번호가 출력이 된다.
- hashdump 내용을 복사해서 메모장에 저장
- 문장 인코딩은 CR(Carriage Return, 행의 맨 좌측으로 옮기기) + LF(Line Feed, 줄 바꾸기)로 저장
- 05-Password Attacks -> ophcrack
- PWDUMP file 클릭
- Crack을 누르게 되면 Hash를 분석해서 Password로 변환시켜준다.
- not found는 변환시키지 못했다는 의미이다(Password를 알 수 없다)
- 이렇게 되면 완전히 비밀번호를 알 수 없기 때문에 아래와 같이 공격하게 된다.
- #snmp-check 1.0.0.201 | less : SNMP를 체크하는 명령어
- 명령어를 통해 위와 같이 기본적으로 'public' 으로 설정되어 있는 것을 확인할 수 있다.
- Port는 161번을 사용한다.
- User accounts : 계정 정보로 hashdump로 확인한 계정과 같은 것을 알 수 있다.
- user.txt로 저장한다(아래에서 Password를 알아내기 위해 쓰인다)
- 실제 공격 대상 PC로 접속하여, 서비스 -> SNMP Service -> 속성
- 보안을 보게 되면 Community가 public인 것을 확인할 수 있다!!!
- Community 이름 변경 -> pub
- 변경 후, snmp를 체크하게 되면 timeout이 뜨는 것을 확인할 수 있다.
- #snmp-check 1.0.0.201 -c pub : community를 pub로 설정해서 체크
- 다시 정상적으로 정보를 확인할 수 있게 된다.
=> community를 모르면 상대방은 확인할 수 없다.
- #crunch 4 4 0123456789 : crunch [min] [max] [options] - 숫자로 되어있고, 4글자인 암호를 생성한다.
- /usr/share/rainbowcrack/charset.txt에서 ascii-32-95와 같은 Character Set를 확인할 수 있다.
- #crunch 1 8 -f /usr/share/rainbowcrack/charset.txt ascii-32-95 : 이런 식으로 생성할 수 있지만, 실행하게 되면 많은 시간이 걸리므로 알아만 두면 된다.
- crunch 명령어를 통해서 만들어도 되지만, 지금은 테스트이기 때문에 직접 Password 텍스트 파일을 만든다. pass.txt 생성
- 아래에서 Password를 알아내기 위해 쓰인다.
- msfconsole 실행
- search ssh : ssh 모듈 검색
- 18번에 있는 auxiliary/scanner/ssh/ssh_loin : Login 정보를 수집하는 모듈 선택
- use auxiliary/scanner/ssh/ssh_login : 해당 모듈 사용
- show options : 해당 모듈의 Option을 확인한다.
- Required가 yes로 되어있는 것은 필수이기 때문에 공백으로 되어있으면 설정해줘야 한다.
- 그 외에도 설정 변경할 것이 있으면 바꿔주면 된다.
- pass_file의 경우, 설정을 하게 되면 해당 파일 안의 텍스트와 Password를 비교하게 된다.
- 이전에 비교하기 위해 만든 파일로 설정한다.
- rhosts는 공격 대상 IP로 설정하면 된다.
- user_file의 경우, 설정을 하게 되면 해당 파일 안의 텍스트와 User 명을 비교하게 된다.
- 이전에 비교하기 위해 만든 파일로 설정한다.
- run으로 실행하게 되면, 공격 대상 PC의 계정과 Password를 File들과 비교해서 맞는 것이 있다면, Success와 함께 [ID]:[Password]를 출력한다.
- 위와 같이 파일을 비교해서 확인하기 때문에, crunch 명령어를 통해 Password 파일을 생성해서 확인한다.
- #ssh -L 9000:1.0.0.201:3389 vagrant@1.0.0.201 : ssh -L [Local Port(원하는 포트 설정)] : [공격 대상 IP] : [3389(원격 접속 Port)] [User ID]@[공격 대상 IP]
- 접속이 되면 쉘이 바뀌는 것을 알 수 있다.
- 이렇게 위의 방법으로 ID와 Password를 알게 되면 SSH 터널링 등을 이용하여 쉽게 접근할 수 있게 된다.
=> 막는 방법은 비밀번호를 몇 번 이상 틀리면 정지시키는 방법과 같은 공격자를 귀찮게 하는 방법밖에 없다.
'Server > 보안' 카테고리의 다른 글
Kali Linux - DHCP Starvation 공격 (Yersinia 이용) (0) | 2019.07.23 |
---|---|
Kali Linux - 취약점 분석 도구, 명령어(정보 수집 / openvas, nessus, nmap, dig, beef) (0) | 2019.07.22 |
Kali Linux - 악성코드를 이용한 공격(Metasploit 이용) (0) | 2019.07.10 |
Kali Linux - Windows EternalBlue 취약점 공격(Metasploit 이용) (0) | 2019.07.10 |
Kali Linux 한글화 (0) | 2019.07.10 |