배경 나는 scapy를 사용하여 Windows OS 검색 스크립트를 작성하고 있습니다. p0f, nmap과 같은 다른 도구를 SMB 스크립트와 같이 사용할 수는 있지만,이 기능 부분은 전체적으로 하나의 작은 조각이므로 scapy 라우트에 전념하고 있습니다.scapy SMB/CIFS 디코딩
문제점 scapy 꽤 초보자이기 때문에, 나는 몇 가지 문제가 SMB 디코더를 사용하기위한 최선의 방법을 파악하는 데 문제. 지금까지 내가 가진 :
def disp(pkt):
print(pkt.getlayer(IP).src)
if pkt.haslayer(Raw):
print(SMBSession_Setup_AndX_Request(pkt.getlayer(Raw).load).NativeOS)
foo=sniff(prn=disp,filter="port 445",count=10)
당신이 볼 수 있듯이, 나는 단순히는 '원시'페이로드 옳은 일을 할 것입니다 희망에서 SMBSession_Setup_AndX_Request() 클래스를 통해 '원시'레이어를 때우는하고있다.
이것은 기능적으로 보이지만 "Windows 4.0"의 NativeOS 특성에 대한 "기본"클래스 설정을 반환합니다 (글쎄, 내 버전의 scapy의 smb.py에 있음). 때때로 나를 스택으로 처리합니다. Mac이 네트워크에 있는지 여부에 따라 CIFS를 추적합니다. NativeOS를 잡고 그걸로 끝낼 수있는 장님이 분명히 나쁘다.
질문에 대한 답변 : 내 방법론이 잘못되면, scapy의 sniff() 메소드를 사용하는 맞춤 프로토콜 디코딩에 대한 올바른 접근 방법은 무엇입니까?
조언 해 주셔서 감사합니다.
sc.
당신의 답장을 보내 주셔서 감사합니다 - 나는 어딘가에 popen을 포함시킬 것이고 또한 belt-and-bracers 접근을 위해 p0f를 구현할 것입니다. HTTP user-agent는 scapy를 사용하여 좋은 결과를 얻는다. 많은 감사합니다! – swisscheese