Fig. 1: A session between a Windows client and a Linux box running
soicmp daemon.
Fig. 2: A session between two linux boxes.
FAQs
Why should I use soicmp instead of tools like telnet, ssh or netcat?
Soimp
permits to establish a more hidden connection channel with a remote
host by using ICMP data injection instead of a classical TCP
socket-based connection. The main advantage of using ICMP data
injection technique is that no suspicious ports are opened on the
workstation running soicmp daemon.
If you aim to have a secondary access to a remote system, invasive as
little as possible, soicmp could reveal a nice tool, otherwise is
recommended to use more solid and better-featured solutions that use a
'real' connection oriented protocol like TCP is.
How could an administrator reveals the presence of a soicmpd?
Revealing
soicmp is quite simple if an administrator pays attention to the
traffic running through the ethernet wire: it is sufficient to run a
common software sniffer to reveal the presence of the flowing ICMP
packets containing the strings of the arbitrary commands and their
output in clear text.
On which network types does soicmp work?
Which network adapters are supported by soicmp?
Soicmp
only works on ethernet based networks. If you're using something
different from an ethernet interface card, like a modem, soicmp won't
work.
Does soicmp can work on loopback (127.0.0.1) devices?
Excepting Windows systems soicmp can work on loopback devices. This is a limitation of Windows systems and not of pcap API.
Why I can use only 127.0.0.1 as spoofed IP source address on Windows XP SP2 platforms?
This
is one of the many security limitations that Microsoft has introduced
in the last service pack release and that affects the raw sockets API.
I heard that "instead of sending raw IP packets, we can move one layer down and send our raw IP packets in raw ethernet frames" and avoid this problem but I'm still trying to understand how to do a stuff like that. :-)
What about NAT? Can I use soicmp behind it?
If
you're using soicmp behind a NAT or other sort of gateways things
become quite hard because of the connection-less nature of soicmp.
In this case you could have to forward all incoming ICMP ECHOREPLY
packets from the NAT to the internal workstation running soicmp client
or server. Depending on communication mode chosen by the client you
could also have to forward ICMP_ECHO packets type.
This is surely the biggest limitation that affects all that tools
similar to soicmp that use data injection technique over
connection-less protocols.
What about the new ICMP id value added in v0.5?
A
problem in the previous versions of soicmp was that multiple client
instances couldn't run on the same machine because soicmpd outputs was
printed by ALL clients. In the newer versions the client will compile
ICMP packets having identifier (id) equal to its current process ID (PID).
ICMP packets returned by server will have the same id value so that
only the current client instance will accept (and print) them.
How do I run soicmp server in background on Windows?
If you're using soicmp from sources just run (from command prompt) serverw.pyw instead of server.py. If you're using soicmp Win32 binaries use serverw.exe instead of server.exe.
How do I install pcapy extension on Linux?
In order you need to resolve dependencies first. On Linux Debian you can easily do it by using apt:
root@dst:~# apt-get install python-dev gcc g++ libpcap0.8 libpcap0.8-dev make
...then unpack pcapy release into a directory and run "python setup.py install". That's all.
Can I contribute to the development of soicmp project?
Of course you can. You can do so:
- by improving the source code quality.
- by trying to implement some ideas I wrote in TODO.TXT file contained in source distribution.
- by trying to implement ideas of yours.
- by trying soicmp and mailing me your report about your experience with it or simply by reporting me a bug.
- The
source code is well commented, thus it should be easy to follow the
flux of the program if you have a basic knowledge of Python programming
language.
billiejoex 2006-10-26
|