Beispiel #1
0
 def get_password(self):
     """
     \xe9\x95\xbf\xe5\xba\xa6: 16(\xe5\x9b\xba\xe5\xae\x9a)
     \xe6\x8f\x8f\xe8\xbf\xb0: \xe8\xaf\xa5\xe5\xb1\x9e\xe6\x80\xa7\xe8\xa1\xa8\xe6\x98\x8e\xe4\xba\x86\xe5\xbe\x85\xe9\xaa\x8c\xe8\xaf\x81\xe7\x9a\x84\xe7\x94\xa8\xe6\x88\xb7\xe7\x9a\x84\xe5\xaf\x86\xe7\xa0\x81\xef\xbc\x8c\xe5\x9c\xa8\xe4\xbc\xa0\xe8\xbe\x93\xe8\xbf\x87\xe7\xa8\x8b\xe4\xb8\xad\xe6\x98\xaf\xe5\x8a\xa0\xe5\xaf\x86\xe7\x9a\x84\xe3\x80\x82\xe5\xbd\x93\xe7\x94\xa8\xe6\x88\xb7\xe9\x87\x87\xe7\x94\xa8PAP\xe6\x96\xb9\xe5\xbc\x8f\xe8\xae\xa4\xe8\xaf\x81\xe6\x97\xb6\xef\xbc\x8c\xe5\xbf\x85\xe9\xa1\xbb\xe5\x87\xba\xe7\x8e\xb0\xe5\x9c\xa8REQ_AUTH\xef\xbc\x8803\xef\xbc\x89\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xe3\x80\x82
     \xe6\xad\xa4\xe5\xb1\x9e\xe6\x80\xa7\xe5\x80\xbc\xe7\x9a\x84\xe9\x95\xbf\xe5\xba\xa6\xe8\xa6\x81\xe6\xb1\x82\xe5\xb0\x91\xe4\xba\x8e32\xe5\xad\x97\xe8\x8a\x82\xe3\x80\x82
     """
     for attr in self.attrs:
         if attr[0] == 2:
             return pktutils.DecodeString(attr[1])
Beispiel #2
0
 def get_password(self):
     """
     长度: 16(固定)
     描述: 该属性表明了待验证的用户的密码,在传输过程中是加密的。当用户采用PAP方式认证时,必须出现在REQ_AUTH(03)报文中。
     此属性值的长度要求少于32字节。
     """
     for attr in self.attrs:
         if attr[0] == 2:
             return pktutils.DecodeString(attr[1])
Beispiel #3
0
 def get_user_name(self):
     """
     长度: <=16(可变)
     描述: 该属性表示要认证的用户的名字,必须出现在REQ_AUTH(03)报文中。
     该属性表明了待验证的用户的密码,在传输过程中是加密的。当用户采用PAP方式认证时,必须出现在REQ_AUTH(03)报文中。
     """
     for attr in self.attrs:
         if attr[0] == 1:
             return pktutils.DecodeString(attr[1])
Beispiel #4
0
 def get_port(self):
     """
     \xe9\x95\xbf\xe5\xba\xa6: >=2\xef\xbc\x8c<=255
     \xe6\x8f\x8f\xe8\xbf\xb0: \xe6\x9c\xac\xe5\xb1\x9e\xe6\x80\xa7\xe5\x8f\xaa\xe8\x83\xbd\xe7\x94\xa8\xe5\x9c\xa8REQ_INFO\xef\xbc\x88Type\xef\xbc\x9d9\xef\xbc\x89\xe5\x92\x8cACK_INFO\xef\xbc\x88Type\xef\xbc\x9d0x0a\xef\xbc\x89\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xef\xbc\x8c\xe6\x95\xb0\xe9\x87\x8f\xe4\xb8\x8d\xe8\x83\xbd\xe8\xb6\x85\xe8\xbf\x871\xe3\x80\x82
     \xe5\xbd\x93\xe6\x98\xafREQ_INFO\xe6\x8a\xa5\xe6\x96\x87\xe6\x97\xb6\xef\xbc\x8c\xe9\x95\xbf\xe5\xba\xa6\xe4\xb8\xba2\xe5\xad\x97\xe8\x8a\x82\xe3\x80\x82
     \xe5\xbd\x93\xe6\x98\xafACK_INFO\xe6\x8a\xa5\xe6\x96\x87\xe6\x97\xb6\xef\xbc\x8c\xe5\x8f\x98\xe9\x95\xbf\xef\xbc\x8c\xe4\xbd\x86\xe4\xb8\x8d\xe8\x83\xbd\xe8\xb6\x85\xe8\xbf\x87253\xe5\xad\x97\xe8\x8a\x82\xe3\x80\x82\xe5\x86\x85\xe5\xae\xb9\xe4\xb8\xba\xe4\xb8\x80\xe4\xb8\xaa\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xef\xbc\x88\xe6\x97\xa0'\x00'\xe7\xbb\x93\xe6\x9d\x9f\xe7\xac\xa6\xef\xbc\x89\xe3\x80\x82
     \xe5\xb1\x9e\xe6\x80\xa7\xe5\x80\xbc\xe8\x87\xb3\xe5\xb0\x912\xe5\xad\x97\xe8\x8a\x82\xef\xbc\x8c\xe4\xbd\x86\xe4\xb8\x8d\xe8\xb6\x85\xe8\xbf\x8734\xe5\xad\x97\xe8\x8a\x82\xe3\x80\x82\xe5\xbf\x85\xe9\xa1\xbb\xe5\x87\xba\xe7\x8e\xb0\xe5\x9c\xa8REQ_INFO\xe5\x92\x8cACK_INFO\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xe3\x80\x82
     \xe5\x85\xb6\xe6\xa0\xbc\xe5\xbc\x8f\xe4\xb8\xba\xe4\xb8\xbb\xe6\x9c\xba\xe5\x90\x8d-vlan-\xe6\xa7\xbd\xe4\xbd\x8d\xef\xbc\x882 Bytes-vlan \xe6\xa0\x87\xe8\xaf\x86\xef\xbc\x884 Bytes\xef\xbc\x89@vlan-SSID-SSID\xe6\xa0\x87\xe8\xaf\x86(\xe6\x9c\x80\xe9\x95\xbf32\xe5\xad\x97\xe8\x8a\x82)@SSID\xe3\x80\x82
     """
     for attr in self.attrs:
         if attr[0] == 8:
             return pktutils.DecodeString(attr[1])
Beispiel #5
0
 def get_port(self):
     """
     长度: >=2,<=255
     描述: 本属性只能用在REQ_INFO(Type=9)和ACK_INFO(Type=0x0a)报文中,数量不能超过1。
     当是REQ_INFO报文时,长度为2字节。
     当是ACK_INFO报文时,变长,但不能超过253字节。内容为一个字符串(无' '结束符)。
     属性值至少2字节,但不超过34字节。必须出现在REQ_INFO和ACK_INFO报文中。
     其格式为主机名-vlan-槽位(2 Bytes-vlan 标识(4 Bytes)@vlan-SSID-SSID标识(最长32字节)@SSID。
     """
     for attr in self.attrs:
         if attr[0] == 8:
             return pktutils.DecodeString(attr[1])
Beispiel #6
0
    def get_eap_message(self):
        """
        \xe9\x95\xbf\xe5\xba\xa6: <=254
        \xe6\x8f\x8f\xe8\xbf\xb0: \xe6\xad\xa4\xe5\xb1\x9e\xe6\x80\xa7\xe4\xb8\xbb\xe8\xa6\x81\xe9\x80\x82\xe7\x94\xa8\xe4\xba\x8eEAP_TLS\xe8\xae\xa4\xe8\xaf\x81\xe3\x80\x82\xe5\x85\x81\xe8\xae\xb8\xe5\x87\xba\xe7\x8e\xb0\xe5\xa4\x9a\xe4\xb8\xaa\xef\xbc\x8cEAP\xe8\xae\xa4\xe8\xaf\x81\xe6\x96\xb9\xe5\xbc\x8f\xe6\x97\xb6\xef\xbc\x8c\xe5\xbf\x85\xe9\xa1\xbb\xe5\x87\xba\xe7\x8e\xb0\xe5\x9c\xa8REQ_AUTH\xe5\x8f\x8aNTF_CHALLENGE\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xe3\x80\x82
        \xe5\xb1\x9e\xe6\x80\xa7\xe5\x80\xbc\xe6\x9c\x80\xe9\x95\xbf255\xe4\xb8\xaa\xe5\xad\x97\xe8\x8a\x82\xef\xbc\x8c\xe7\x94\xa8\xe4\xba\x8e\xe8\xaf\x81\xe4\xb9\xa6\xe8\xaf\xb7\xe6\xb1\x82\xe6\x8a\xa5\xe6\x96\x87\xef\xbc\x88NTF_CHALLENGE\xef\xbc\x88Type=0x012\xef\xbc\x89\xef\xbc\x89\xe5\x92\x8c\xe8\xae\xa4\xe8\xaf\x81\xe8\xaf\xb7\xe6\xb1\x82\xe6\x8a\xa5\xe6\x96\x87\xef\xbc\x88REQ_AUTH\xef\xbc\x88Type=0x03\xef\xbc\x89\xef\xbc\x89\xe3\x80\x82
        REQ_AUTH\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xe8\xaf\xa5\xe5\xb1\x9e\xe6\x80\xa7\xe5\x80\xbc\xe4\xb8\xad\xe9\x9c\x80\xe8\xa6\x81\xe5\x8c\x85\xe5\x90\xab\xe7\x99\xbb\xe5\xbd\x95\xe5\x90\x8d\xef\xbc\x8cNTF_CHALLENGE\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xe8\xaf\xa5\xe5\xb1\x9e\xe6\x80\xa7\xe5\x80\xbc\xe4\xb8\xbb\xe8\xa6\x81\xe7\x94\xa8\xe4\xba\x8e\xe4\xbc\xa0\xe8\xbe\x93\xe8\xaf\x81\xe4\xb9\xa6\xe3\x80\x82
        """
        texts = []
        for attr in self.attrs:
            if attr[0] == 14:
                texts.append(pktutils.DecodeString(attr[1]))

        return texts
Beispiel #7
0
    def get_eap_message(self):
        """
        长度: <=254
        描述: 此属性主要适用于EAP_TLS认证。允许出现多个,EAP认证方式时,必须出现在REQ_AUTH及NTF_CHALLENGE报文中。
        属性值最长255个字节,用于证书请求报文(NTF_CHALLENGE(Type=0x012))和认证请求报文(REQ_AUTH(Type=0x03))。
        REQ_AUTH报文中该属性值中需要包含登录名,NTF_CHALLENGE报文中该属性值主要用于传输证书。
        """
        texts = []
        for attr in self.attrs:
            if attr[0] == 14:
                texts.append(pktutils.DecodeString(attr[1]))

        return texts
Beispiel #8
0
    def get_text_info(self):
        """
        \xe9\x95\xbf\xe5\xba\xa6: \xe5\xa4\xa7\xe4\xba\x8e\xe7\xad\x89\xe4\xba\x8e3,\xe5\xb0\x8f\xe4\xba\x8e\xe7\xad\x89\xe4\xba\x8e255
        \xe6\x8f\x8f\xe8\xbf\xb0: \xe8\xaf\xa5\xe5\xb1\x9e\xe6\x80\xa7\xe7\x94\xa8\xe4\xba\x8eBAS\xe5\xb0\x86RADIUS\xe7\xad\x89\xe7\xac\xac\xe4\xb8\x89\xe6\x96\xb9\xe8\xae\xa4\xe8\xaf\x81\xe8\xae\xbe\xe5\xa4\x87\xe7\x9a\x84\xe6\x8f\x90\xe7\xa4\xba\xe4\xbf\xa1\xe6\x81\xaf\xe9\x80\x8f\xe4\xbc\xa0\xe5\x88\xb0Portal Server\xe3\x80\x82
        \xe5\xbd\x93\xe8\xae\xa4\xe8\xaf\x81\xe5\xa4\xb1\xe8\xb4\xa5\xe6\x97\xb6\xef\xbc\x8c\xe8\xa1\xa8\xe7\xa4\xba\xe8\xae\xa4\xe8\xaf\x81\xe5\xa4\xb1\xe8\xb4\xa5\xe5\x8e\x9f\xe5\x9b\xa0\xe3\x80\x82
        \xe5\xbf\x85\xe9\xa1\xbb\xe5\x87\xba\xe7\x8e\xb0\xe5\x9c\xa8NTF_LOGOUT\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xef\xbc\x8c\xe8\xa1\xa8\xe7\xa4\xbaBAS\xe5\xbc\xba\xe5\x88\xb6\xe7\x94\xa8\xe6\x88\xb7\xe4\xb8\x8b\xe7\xba\xbf\xe7\x9a\x84\xe5\x8e\x9f\xe5\x9b\xa0\xef\xbc\x8c\xe5\xbd\x93\xe8\xae\xa4\xe8\xaf\x81\xe6\x8b\x92\xe7\xbb\x9d\xe6\x88\x96\xe8\x80\x85\xe8\xae\xa4\xe8\xaf\x81\xe8\xb6\x85\xe6\x97\xb6\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xef\xbc\x8c\xe5\xbf\x85\xe9\xa1\xbb\xe5\x87\xba\xe7\x8e\xb0\xe5\x9c\xa8ACK_AUTH\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xe3\x80\x82
        \xe9\x95\xbf\xe5\xba\xa6\xe8\x87\xb3\xe5\xb0\x91\xe4\xb8\xba3\xe5\xad\x97\xe8\x8a\x82\xef\xbc\x8c\xe4\xbd\x86\xe4\xb8\x8d\xe8\xb6\x85\xe8\xbf\x87253\xe5\xad\x97\xe8\x8a\x82\xe3\x80\x82\xe5\x86\x85\xe5\xae\xb9\xe5\x8f\xaf\xe4\xbb\xa5\xe4\xb8\xba\xe4\xbb\xbb\xe6\x84\x8f\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xef\xbc\x8c\xe4\xbd\x86\xe6\x98\xaf\xe4\xb8\x8d\xe5\x8c\x85\xe6\x8b\xac\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xe7\xbb\x93\xe6\x9d\x9f\xe7\xac\xa6\xe2\x80\x98\x00\xe2\x80\x99\xe3\x80\x82
        \xe8\xaf\xa5\xe5\xb1\x9e\xe6\x80\xa7\xe5\x8f\xaf\xe4\xbb\xa5\xe5\xad\x98\xe5\x9c\xa8\xe4\xba\x8e\xe4\xbb\x8eBAS\xe5\x88\xb0Portal Server\xe7\x9a\x84\xe4\xbb\xbb\xe4\xbd\x95\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xef\xbc\x8c\xe5\x90\x8c\xe4\xb8\x80\xe4\xb8\xaa\xe6\x8a\xa5\xe6\x96\x87\xe4\xb8\xad\xe5\x85\x81\xe8\xae\xb8\xe6\x9c\x89\xe5\xa4\x9a\xe4\xb8\xaa\xe8\xaf\xa5\xe5\xb1\x9e\xe6\x80\xa7\xef\xbc\x8c\xe5\xbb\xba\xe8\xae\xae\xe5\x8f\xaa\xe6\x90\xba\xe5\xb8\xa61\xe4\xb8\xaa\xe3\x80\x82
        """
        texts = []
        for attr in self.attrs:
            if attr[0] == 5:
                texts.append(pktutils.DecodeString(attr[1]))

        return texts
Beispiel #9
0
    def get_text_info(self):
        """
        长度: 大于等于3,小于等于255
        描述: 该属性用于BAS将RADIUS等第三方认证设备的提示信息透传到Portal Server。
        当认证失败时,表示认证失败原因。
        必须出现在NTF_LOGOUT报文中,表示BAS强制用户下线的原因,当认证拒绝或者认证超时的时候,必须出现在ACK_AUTH报文中。
        长度至少为3字节,但不超过253字节。内容可以为任意字符串,但是不包括字符串结束符‘ ’。
        该属性可以存在于从BAS到Portal Server的任何报文中,同一个报文中允许有多个该属性,建议只携带1个。
        """
        texts = []
        for attr in self.attrs:
            if attr[0] == 5:
                texts.append(pktutils.DecodeString(attr[1]))

        return texts