OSCP/OSCP 공부일지

SMBclient 'protocol negotiation failed' 에러 해결

takudaddy 2021. 6. 9. 15:28

 

 

 

 

 

Lab 내 몇몇의 서버들에서

smbclient 혹은 enum4linux

사용을 요하는데 줄곧 다음과 같은 에러

 

 

 

protocol negotiation failed:

#NT_STATUS_CONNECTION_DISCONNECTED

 

또는

 

protocol negotiation failed:

#NT_STATUS_INVALID_NETWORK_RESPONSE

 

 

 

가 나오면서 사용이 안되곤 했다.

 

 

 

예)

$ smbclient -L \\10.11.1.115 1 ⚙ protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED

 

 

 

 

난 이 에러들을 대수롭지 않게 여겼고 단순히

서버에서 막아놨다 보다~ 하며 넘어가곤 했는데

그게 아니었다.

 

 

 

해당 에러의 원인은

서버 간의 SMB 프로토콜 버전

차이에서 발생하는 것으로

 

 

 

Kali에 깔려있는

최신 버전의 smbclient와

연결을 시도하는 특정 서버의

프로토콜 버전이 다르기 때문에

발생하는 문제였다.

 

 

 

해결책은 samba 설정 파일에 들어가

(/etc/samba/smbd.conf)

global section에 다음과 같은 설정을

추가해 주면 된다.

 

 

 

[global]

client min protocol = LANMAN1

 

 

 

LANMAN1은

First modern version of the protocol,

Long filename을 지원하는 값이다.

 

 

 

변경 내용을 저장 후 smb 데몬을 재기동,

(systemct restart smbd)

또는

(service smbd restart)

 

 

 

이제 에러를 반환했던 서버에

동일한 요청을 다시 시도해보면

다른 결과를 얻을 수 있게 될 것이다.

 

 

 

 

참조 :

https://www.linuxquestions.org/questions/linux-networking-3/samba-min-protocol-%3D-smb2-causes-protocol-negotiation-failed-nt_status_invalid_network_response-4175597669/

 

 

 

 

팁 :

smbclient와 더불어 사용할때 유용한

ngrep을 활용한 패킷 내용 출력

 

탭 1
$ sudo ngrep -i -d tun0 's.?a.?m.?b.?a.*[[:digit:]]' 

탭 2
$ smbclient -L 
728x90