This document describes PeerShark, a system for detecting peer-to-peer botnets by tracking conversations on a network. It analyzes network traffic to identify conversations between IP addresses and aggregates them to detect long, stealthy botnet conversations despite variations in protocols and ports. PeerShark extracts features from conversations like duration, packet count, volume, and inter-arrival times. It then classifies conversations as benign peer-to-peer applications or malicious botnets using machine learning. When tested on real peer-to-peer application and botnet traffic, PeerShark achieved over 95% accuracy on average at detecting botnets.