gravatar

Nemesis - man in the middle

Nemesis 是一套使用在 LAN 的工具程式。由 jclin 於大四寒假~畢業期間所開發,之後就終止開發。一來是已經用不到,二者是沒有那個網路環境可以用。發展工具為 Microsoft Visual Studio 6.0、Win32 SDK/MFC、WinPcap,環境是 Windows 2000。

Nemesis 的目的和作用是,透過 MAC spoof,把自己的電腦當作 man-in-the-middle,建立為 victim 和 gatway 之間 packet forwarding 的電腦。在使用這個程式且為運作階段,電腦的網路卡會變成 promiscuous mode,抓取全部 LAN 的封包,但是透過 Winpcap library 只擷取感興趣的 victim TCP 封包。例如有興趣的 port 是 23、25、80、和 110,那麼只會由 pcap 擷取有這些 port 的 packets,然後透過自己的電腦轉送原本 gateway⇄victim 的 packets(也就是變成gateway⇄HOST⇄victim),來達成 victim 這些 port 的網路連線正常。相對的,其他的封包則不理會,因而造成 victim 對 remote host 的其他 port 連線無法運作。利用 WinPcap 除了是封包擷取外,其實透過 Windows NDIS(Network Driver Interface Specification) API 也可以做到相同的功能,但是 WinPcap 可以讓 user 更直覺地使用命令語法,例如 port 23 or port 80 或是 not port (6881 and 4662) ,就可以達到某些 packet capture 的目的。節省 programmer 在處理 Interactive UI 和 BPF(BSD Packet Filter) 上面的時間和功夫。

由於使用 ADSL+NAT 的分享狀態,當有人狂用 P2P 下載卻不限流,會造成其他用戶很大的困擾甚至網路無法正常運作、斷線。透過這個程式,讓 victim 的一些正常 services 還是可以連線,並且限制他使用其他非允許通過之 port 的網路傳輸。因此這就是該程式主要的由來和目的。但是由於後來沒有機會繼續用該網路,也沒有測試環境,目前也大部份使用 MacOS X 而非 windows,因此中止很久的發展階段,並沒有想繼續再維護下去。透過 Open Source,如果有人能夠再行擴充或讓他更強大,倒也不失為一種方法。原始碼下載

Tags: , LAN