python pdb is your friend
Yo! python debugger pdb in da place for handling npeid issue.
Little debugger but helpful :)
imhidden@Networker:/home/hidden# ./npeid.py
> /home/hidden/npeid.py(18)handleTcpStream()
-> toserver = tcp.server.data[:tcp.server.count]
(Pdb) n
> /home/hidden/npeid.py(19)handleTcpStream()
-> toclient = tcp.client.data[:tcp.client.count]
(Pdb) n
> /home/hidden/npeid.py(20)handleTcpStream()
-> ((src, sport), (dst, dport)) = tcp.addr
(Pdb) n
> /home/hidden/npeid.py(21)handleTcpStream()
-> scan_tcp_body = None
(Pdb) n
> /home/hidden/npeid.py(22)handleTcpStream()
-> proto = None
(Pdb) n
> /home/hidden/npeid.py(23)handleTcpStream()
-> if dport in (80, 8000, 8080):
(Pdb) n
> /home/hidden/npeid.py(24)handleTcpStream()
-> proto = “HTTP”
(Pdb) n
> /home/hidden/npeid.py(25)handleTcpStream()
-> header_len = toclient.find(‘\r\n\r\n’)
(Pdb) n
> /home/hidden/npeid.py(26)handleTcpStream()
-> get_request = toserver.split(‘\n’)[0][:-1]
(Pdb) n
> /home/hidden/npeid.py(27)handleTcpStream()
-> host = toserver.split(‘\n’)[1][:-1]
(Pdb) n
IndexError: ‘list index out of range’
> /home/hidden/npeid.py(27)handleTcpStream()
-> host = toserver.split(‘\n’)[1][:-1]
(Pdb) n
—Return—
> /home/hidden/npeid.py(27)handleTcpStream()->None
-> host = toserver.split(‘\n’)[1][:-1]
(Pdb) n
IndexError: ‘list index out of range’
> /home/hidden/npeid.py(70)main()
-> nids.run()
(Pdb) n
> /home/hidden/npeid.py(71)main()
-> except nids.error, e:
(Pdb) n
> /home/hidden/npeid.py(73)main()
-> except KeyboardInterrupt:
(Pdb) n
> /home/hidden/npeid.py(76)main()
-> except Exception, e:
(Pdb) n
> /home/hidden/npeid.py(77)main()
-> print sys.exc_info()
(Pdb) n
(<type ‘exceptions.IndexError’>, IndexError(‘list index out of range’,), <traceback object at 0x873b7d4>)
—Return—
> /home/hidden/npeid.py(77)main()->None
-> print sys.exc_info()
(Pdb) n
—Return—
> /home/hidden/npeid.py(80)<module>()->None
-> main()
(Pdb) n
Ho yeaaah! damn line number 27! After fixing:
1mh1dd3n@Networker:/home/h1dd3n# ./npeid.py
> /home/h1dd3n/npeid.py(18)handleTcpStream()
-> toserver = tcp.server.data[:tcp.server.count]
(Pdb) n
> /home/h1dd3n/npeid.py(19)handleTcpStream()
-> toclient = tcp.client.data[:tcp.client.count]
(Pdb) c
> /home/h1dd3n/npeid.py(18)handleTcpStream()
-> toserver = tcp.server.data[:tcp.server.count]
(Pdb) c
> /home/h1dd3n/npeid.py(18)handleTcpStream()
-> toserver = tcp.server.data[:tcp.server.count]
(Pdb) n
> /home/h1dd3n/npeid.py(19)handleTcpStream()
-> toclient = tcp.client.data[:tcp.client.count]
(Pdb) n
> /home/h1dd3n/npeid.py(20)handleTcpStream()
-> ((src, sport), (dst, dport)) = tcp.addr
(Pdb) n
> /home/h1dd3n/npeid.py(21)handleTcpStream()
-> scan_tcp_body = None
(Pdb) n
> /home/h1dd3n/npeid.py(22)handleTcpStream()
-> proto = None
(Pdb) n
> /home/h1dd3n/npeid.py(23)handleTcpStream()
-> if dport in (80, 8000, 8080):
(Pdb) n
> /home/h1dd3n/npeid.py(24)handleTcpStream()
-> proto = “HTTP”
(Pdb) n
> /home/h1dd3n/npeid.py(25)handleTcpStream()
-> header_len = toclient.find(‘\r\n\r\n’)
(Pdb) n
> /home/h1dd3n/npeid.py(26)handleTcpStream()
-> get_request = toserver.split(‘\n’)[0][:-1]
(Pdb) n
> /home/h1dd3n/npeid.py(27)handleTcpStream()
-> host = toserver.split(‘\n’)[0][:-1]
(Pdb) n
> /home/h1dd3n/npeid.py(28)handleTcpStream()
-> print “%s” % str(get_request)
(Pdb) n
> /home/h1dd3n/npeid.py(29)handleTcpStream()
-> print “%s” % str(host)
(Pdb) n
> /home/h1dd3n/npeid.py(30)handleTcpStream()
-> try:
(Pdb) n
> /home/h1dd3n/npeid.py(31)handleTcpStream()
-> gzip_data = toclient[header_len+4:]
(Pdb) n
> /home/h1dd3n/npeid.py(32)handleTcpStream()
-> gzip_data = StringIO.StringIO(gzip_data)
(Pdb) n
> /home/h1dd3n/npeid.py(33)handleTcpStream()
-> gzipper = gzip.GzipFile(fileobj=gzip_data)
(Pdb) n
> /home/h1dd3n/npeid.py(34)handleTcpStream()
-> scan_tcp_body = gzipper.read()
(Pdb) n
> /home/h1dd3n/npeid.py(40)handleTcpStream()
-> if scan_tcp_body.startswith(‘MZ’):
(Pdb) n
—Return—
> /home/h1dd3n/npeid.py(40)handleTcpStream()->None
-> if scan_tcp_body.startswith(‘MZ’):
(Pdb) n
—Call—
> /home/h1dd3n/npeid.py(7)handleTcpStream()
-> def handleTcpStream(tcp):
(Pdb) n
> /home/h1dd3n/npeid.py(9)handleTcpStream()
-> if tcp.nids_state == nids.NIDS_JUST_EST:
(Pdb) n
> /home/h1dd3n/npeid.py(10)handleTcpStream()
-> ((src, sport), (dst, dport)) = tcp.addr
(Pdb) n
> /home/h1dd3n/npeid.py(11)handleTcpStream()
-> if dport in (80, 8000, 8080) or sport == 20:
(Pdb) n
> /home/h1dd3n/npeid.py(12)handleTcpStream()
-> tcp.client.collect = 1
(Pdb) n
> /home/h1dd3n/npeid.py(13)handleTcpStream()
-> tcp.server.collect = 1
(Pdb) n
—Return—
> /home/h1dd3n/npeid.py(13)handleTcpStream()->None
-> tcp.server.collect = 1