From 5aece7a641a797f0f3a307dbc324cef14a5324bc Mon Sep 17 00:00:00 2001 From: wraith-wireless Date: Sat, 14 May 2016 20:45:31 -0600 Subject: [PATCH] 0.0.7 --- PyRIC.pdf | Bin 176975 -> 263532 bytes README.md | 4 +- pyric/TODO | 7 +- pyric/docs/res/PyRIC.tex | 515 +++++++++++++++++++++++++-------------- pyric/lib/libnl.py | 33 +-- pyric/net/netlink_h.py | 1 + pyric/pyw.py | 3 +- setup.py | 2 +- 8 files changed, 362 insertions(+), 203 deletions(-) diff --git a/PyRIC.pdf b/PyRIC.pdf index e54637ad317df10113168340a00c85bfe441b2f4..6ef746aed1970a98463c89d6904476a579d5661f 100644 GIT binary patch delta 143885 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 Q%qJwukI%}gsHKGeUyphx)&Kwi delta 59489 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 N@uAYtfRv?C{|nm+h&ccN diff --git a/README.md b/README.md index fdacc9e..b7ecf3d 100644 --- a/README.md +++ b/README.md @@ -315,7 +315,7 @@ Extending PyRIC is fun and easy too, see the user guide PyRIC.pdf. ## 5. ARCHITECTURE/HEIRARCHY: Brief Overview of the project file structure -* pyric root Distribution directory +* PyRIC root Distribution directory - \_\_init\_\_.py initialize distrubution PyRIC module - examples example folder + pentest.py create wireless pentest environment example @@ -324,7 +324,7 @@ Extending PyRIC is fun and easy too, see the user guide PyRIC.pdf. - MANIFEST.in used by setup.py - README.md this file - LICENSE GPLv3 License - * PyRIC.pdf User Guide + - PyRIC.pdf User Guide - pyric package directory + \_\_init\_\_.py initialize pyric module + pyw.py wireless nic functionality diff --git a/pyric/TODO b/pyric/TODO index 25df1d0..f9806a5 100644 --- a/pyric/TODO +++ b/pyric/TODO @@ -11,8 +11,5 @@ o see (1) in RFI o define attr_ops and attr_mcast_groups in nla_policy_attr 4) pyw - o add txget from iw perspective - o figure out why txset doesn't work - o devstds sucks, find a better way to find the supported standards of a card - 5) User Guide - o finish it \ No newline at end of file + o add txget from iw i.e. netlink perspective + o devstds sucks, find a better way to find the supported standards of a card \ No newline at end of file diff --git a/pyric/docs/res/PyRIC.tex b/pyric/docs/res/PyRIC.tex index 4b39ca6..9644207 100644 --- a/pyric/docs/res/PyRIC.tex +++ b/pyric/docs/res/PyRIC.tex @@ -72,7 +72,7 @@ basicstyle=\footnotesize } -\title{PyRIC v0.0.5: User Manual} +\title{PyRIC v0.0.7: User Manual} \author{Dale V. Patterson\\ wraith.wireless@yandex.com} \begin{document} @@ -96,12 +96,15 @@ \section{About PyRIC}\label{sec:About} At this time, PyRIC (through pyw functions) can: \begin{itemize} \item enumerate interfaces and wireless interfaces, +\item get/set regulatory domain, \item get/set hw address, \item identify a radio's chipset and driver, \item turn device on/off, \item get supported standards, -\item get/set regulatory domain, -\item get info on device, +\item get supported commands, +\item get supported modes, +\item get dev/phy info on device, +\item get/set mode, and \item add/delete interfaces. \end{itemize} It also provides users with the ability, through libnl(.py) to extend the above @@ -154,10 +157,23 @@ \subsection{Hierarchy/Architecture} PyRIC's hierarchy is briefly discussed next. \begin{enumerate} -\item \textbf{\_\_init\_\_.py}: Initialize PyRIC, defines the EUNDEF error code -(PyRIC uses errno for all errorcodes adding EUNDEF) and PyRIC's common exception -class, 'error' - all submodules use this class for any exceptions. +\item \textbf{\_\_init\_\_.py}: Initialize PyRIC, the root distribution directory +use for PyPI packaging \item \textbf{README.md}: self-descriptive +\item \textbf{setup.py}: install file +\item \textbf{setup.cfg}: used by setup.py +\item \textbf{MANIFEST.in}: used by setup.py +\item \textbf{LICENSE}: GPLv3 License +\item \textbf{PyRIC.pdf}: this file +\item \textbf{examples}: examples directory +\begin{enumerate} +\item \textbf{pentest.py}: create wireless pentest environment +\end{enumerate} +\item \textbf{pyric} package directory +\begin{enumerate} +\item \textbf{\_\_init\_\_.py}: Initialize pyric defines the EUNDEF error code +(PyRIC uses errno for all errorcodes adding EUNDEF) and the common exception +class, 'error' - all submodules use this class for any exceptions. \item \textbf{TODO}: lists any outstanding TODOs, ideas for future revisions \item \textbf{RFI}: comments and observations about netlinks, nl80211 etc \item \textbf{channels.py}: ISM and UNII frequencies and channels, with conversion functions @@ -189,36 +205,85 @@ \subsection{Hierarchy/Architecture} \item \textbf{nlhelp.py}: functions to search display nl80211 constants \item \textbf{commands.help}: nl80211 commands help data (json) \item \textbf{attributes.help}: nl80211 attributes help data (json) -\item \textbf{PyRIC.pdf}: this file \item \textbf{res}:resource subpackage \begin{enumerate} \item \textbf{PyRIC.tex}: LaTeX for user guide \item \textbf{PyRIC.bib}: bibliography for user guide \end{enumerate} \end{enumerate} +\end{enumerate} \section{Installing PyRIC}\label{sec:installing} -PyRIC is self-sufficient in that there are no third-party/external dependencies -and can be run out of the box. To install, from a terminal type 'pip install ---pre PyRIC' as root. This is my first attempt at packaging and it has not been -currently tested. The latest PyRIC release can be downloaded as a tarball on PyPI -at https://pypi.python.org/pypi?name=PyRIC or github at -https://github.com/wraith-wireless/pyric/releases/latest. If you decide to download -the tarball and run PyRIC outside of it's directory or from another program, you -should put it on your Python path. Use Google for directions on doing so. Note: -put /yourpath/pyric/pyric in the .pth file, not the outer pyric directory. +Starting with version 0.0.6, the structure (see Section \ref{sec:About} has +changed to facilitate packaging on PyPI. This restructing has of course led +to some minor difficulties especially when attempting to install (or even +just test) outside of a pip installation. \\ + +Obviously, the easiest way to install PyRIC is through PyPI:\\ + + \texttt{sudo pip install --pre PyRIC}\\ + +Note the use of the '--pre' flag. Without it, pip will not install PyRIC since +it is still in the developmental stage.\\ + +You can also install PyRIC from source. The tarball can be downloaded from: + +\begin{itemize} +\item PyPi: https://pypi.python.org/pypi/PyRIC, +\item PyRIC Web: http://wraith-wireless.github.io/PyRIC, or +\item Github: https://github.com/wraith-wireless/PyRIC. +\end{itemize} + +After downloading, extract and run:\\ + + \texttt{sudo python setup.py install}\\ + +If you just want to test PyRIC out, download your choice from above. After +extraction, move the pyric folder (the package directory) to your location of +choice and from there start Python and import pyw. It is very important that you +do not try and run it from PyRIC which is the distribution directory. This will +break the imports pyw.py uses. \\ + +You will only be able to test PyRIC from the pyric directory but, if you want to, +you can add it to your Python path and run it from any program or any location. +To do so, assume you untared PyRIC to /home/bob/PyRIC. Create a text file named +pyric.pth with one line + + /home/bob/PyRIC + +and save this file to /usr/lib/python2.7/dist-packages (or +/usr/lib/python3/dist-packages if you want to try it in Python 3). + +\begin{table} +\begin{center} +\begin{tabular}{| l | r | r | r | } +\hline +Source & Stability & Recency & Installation \\ +\hline +pip & 5 & 3 & 5\\ +\hline +PyPI & 5 & 3 & 4\\ +\hline +PyRIC Web & 4 & 4 & 4\\ +\hline +Github & 3 & 5 & 3\\ +\hline +\end{tabular} +\caption{Stability vs Recency vs Installation} +\end{center} +\label{tab:install} +\end{table} \section{Using PyRIC}\label{sec:using} As stated previously, PyRIC provides a set of functions to interact with your system's radio(s) and the ability to interact directly with the kernel through netlink and ioctl sockets. \\ -It is expected that the reader has a basic knowledge of netlinks. For a -review see Graf\cite{libnl}. +It is helpful if the reader has a basic knowledge of netlinks. For a review, see "Communicating between the kernel and user-space in Linux using Netlink sockets". \subsection{Interacting with the Wireless Core and Wireless NICs: pyw.py} -If you can use iw, you can use pyw. The easist way to explain how to use pyw is -with an example. Imagine your wireless network on ch 6 has been experiencing +If you can use iw, you can use pyw.py. The easist way to explain how to use pyw +is with an example. Imagine your wireless network is on ch 6 has been experiencing difficulites lately and you want to capture some traffic to analyse it. Listing \ref{lst:pentest} shows how to set up a wireless pentest environment. \\ @@ -230,74 +295,85 @@ \subsection{Interacting with the Wireless Core and Wireless NICs: pyw.py} 3: from pyric import device # for chipset/driver 4: from pyric.channels import rf2ch # rf to channel conversion 5: - 6: # list interfaces, wireless interfaces - 7: print "Interfaces: ", pyw.interfaces() - 8: print "Wireless Interfaces: ", pyw.winterfaces() - 9: -10: # get a Card & info for alfa0 & print a description -11: info = pyw.devinfo('alfa0') -12: card = info['card'] -13: driver = device.ifdriver(card.dev) -14: chipset = device.ifchipset(driver) -15: msg = "{Using {0} in mode: {1}".format(card,info['mode']) -16: if info['mode'] == 'managed': -17: msg += " currently on channel {0} width {1}".format(rf2ch(info['RF']), -18: info['CHW']) -19: msg += " driver: {0}, chipset: {1}".format(driver,chipset) -20: print msg + 6: dev = 'wlan0' + 7: ifaces = pyw.interfaces() + 8: wifaces = pyw.winterfaces() + 9: if dev not in ifaces: +10: print "Device {0} is not valid, use one of {1}".format(dev,ifaces) +11: return +12: elif dev not in wifaces: +13: print "Device {0} is not wireless, use one of {1}".format(dev,wifaces) +14: +15: print "Regulatory Domain currently: ", pyw.regget() +16: dinfo = pyw.devinfo(dev) +17: card = dinfo['card'] +18: pinfo = pyw.phyinfo(card) +19: driver = device.ifdriver(card.dev) +20: chipset = device.ifchipset(driver) 21: -22: # prepare a virtual interface named pent0 in monitor mode -23: pdev = 'pent0' -24: pcard = pyw.devadd(card,pdev,'monitor') -25: for iface in pyw.ifaces(card): -26: if iface[0].dev != pdev: -27: msg = "deleting {0} in mode {1}".format(iface[0],iface[1]) -28: print msg -29: pyw.devdel(iface[0]) -30: pyw.macset(pcard,'00:03:93:57:54:46') -31: pyw.up(pcard) -32: pyw.chset(pcard,6,None) -33: msg = "Virtual interface {0} in monitor mode on ch 6".format(pcard) -34: print msg + ", using hwaddr: {0}".format(pyw.macget(pcard) -35: -36: # DO stuff here -37: -38: # restore original -39: print "deleting ", pcard -40: pyw.devdel(pcard) -41: card = pyw.devadd(card,card.dev,info['mode']) -42: pyw.up(card) -43: print "card ", card, " restored" +22: pyw.down(card) +23: pyw.macset(card,'00:03:93:57:54:46') +24: +25: msg = "Using {0} currently in mode: {1}\n".format(card,dinfo['mode']) +26: msg += "\tDriver: {0} Chipset: {1}\n".format(driver,chipset) +27: if dinfo['mode'] == 'managed': +28: msg += "\ton channel {0} width {1}\n".format(rf2ch(dinfo['RF']), +29: dinfo['CHW']) +30: msg += "\tSupports modes {0}\n".format(pinfo['modes']) +31: msg += "\tSupports commands {0}".format(pinfo['commands']) +32: msg += "\thw addr {0}".format(pyw.macget(card)) +33: print msg +34: +35: pdev = 'pent0' +36: for iface in pyw.ifaces(card): +37: pyw.devdel(iface[0]) +38: pcard = pyw.devadd(card, pdev, 'monitor') +39: pyw.up(pcard) +40: pyw.chset(pcard,6,None) +41: +42: # DO STUFF HERE +43: +44: pyw.devdel(pcard) +45: +46: card = pyw.devadd(card,card.dev,dinfo['mode']) +47: pyw.macset(card,dinfo['mac']) +48: pyw.up(card) \end{lstlisting} Listing \ref{lst:pentest} attempts to show most of the available pyw functions in use and is the basic shell used in another project, Wraith\cite{wraith}, to -instantiate a wireless (802.11) sensor. Lines 1 and 2 should always be included -as they import the pyric error and pyw functions. Lines 3 and 4 import ifchipset, -ifdriver and rf2ch functions. In lines 10 through 20, a Card object for 'alfa0' -is created and details about the interface are printed. On line 24, a device named -'pent0' is created in monitor mode and in lines 25 through 29, all interfaces on -the same phy as the new device are deleted (we have found that it is better to -delete all interfaces on the same phy ensuring that processes like NetworkManager -for example, don't interfere with the new device). Then, the mac address is spoofed -and the device is set to listen on channel 6 NOHT. Starting on line 40, the system -is restored by deleting the monitor card and restoring the original device, 'alfa0'. -Note, only 'alfa0' is restored, and not any devices that may have been deleted on -line 29. Additionally, bringing the device up (line 43) will usually result in the -device reconnecting although in some situations, a manual reconnect to the AP is -required. Future versions of pyw will include "connect" functionality to rectify -this. +instantiate a wireless (802.11) sensor - (for a full listing of all pyw functions +see Appendix \ref{sec:pywapi}) - with scanning capabilities. Lines 1 and 2 should +always be included as they import the pyric error and pyw functions. Line 3 +imports device which provides the ifchipset and ifdriver functions and Line 4 +imports the rf2ch conversion function. \\ + +In lines 6 through 13, the device wlan0 is confirmed wireless and lines 16 through +20 a Card object for 'wlan0' is created and details about the interface are printed. +Next, the mac address of wlan0 is changed on lines 23. Note, the device is brought +down first. \\ + +More information on the device is printed in lines 25 through 33. Starting on +line 35, a device named 'pent0' is created in monitor mode. First in lines 36 +and 37, all interfaces on the same phy are deleted \footnote{we have found that +it is better to delete all interfaces on the same phy ensuring that external +processes don't interfere with the new device} before creating the new device, +bringing the card up and setting it to channel 6 NOHT.\\ + +Restoring the device starts on line 45, where the virtual interface is deleted, +the previous interface is restored and the mac address is reset. \subsubsection{One-time vs Persistent Sockets} -The example Listing \ref{lst:pentest} uses one-time sockets (netlink and ioctl). -When using iw, there are several things that occur prior to the actual command -or request being submitted. First, iw creates a netlink socket. Then, iw will -request the family id for nl80211. The relative time spent doing this is neglible -but, it is redundant and it may become noticeable in programs that repeatedly -use the Netlink service. Once comlete, iw closes the socket. PyRIC eliminates -these redundancies by using a global variable in pyw that stores the family id -after the first time it is requested and by providing callers the option to use -persistent sockets. +The example in Listing \ref{lst:pentest} uses one-time sockets (netlink and +ioctl). When using iw, there are several things that occur prior to the actual +command or request being submitted. First, iw creates a netlink socket. Then, +iw will request the family id for nl80211. The relative time spent doing this +is neglible but, it is redundant and it may become noticeable in programs that +repeatedly use the Netlink service. Once comlete, iw closes the socket. In some +cases, the ifindex of the device is needed and iw will also initiate an ioctl +call to retrieve it. PyRIC eliminates these redundancies by using a global +variable in pyw that stores the family id after the first time it is requested +and by providing callers the option to use persistent sockets. \begin{itemize} \item \textbf{One-time Sockets} Similar to iw. The command, creates the netlink socket (or ioctl socket), composes the message, sends the message and receives @@ -316,7 +392,7 @@ \subsubsection{One-time vs Persistent Sockets} sockets. It is advised to use one-time functions as much as possible and save the use of persistent sockets for use in code that repeatedly makes use of netlink. \\ -The latest version of pyw (v 0.1.*) implements this functionality through the +The latest version of pyw.py (v 0.1.*) implements this functionality through the use of what I call templates\footnote{I use templates and stubs for the lack of any better naming convention}, Listing \ref{lst:template} and stubs Listing \ref{lst:stub}. @@ -365,65 +441,17 @@ \subsubsection{One-time vs Persistent Sockets} language=Python] 1: import pyric # pyric error (and ecode EUNDEF) 2: from pyric import pyw # for iw functionality - 3: from pyric import device # for chipset/driver - 4: from pyric.channels import rf2ch # rf to channel conversion - 5: from pyric.lib import libnl as nl # for netlink sockets - 6: from pyric.lib import libio as io # for ioctl sockets - 7: - 8: # create our sockets - 9: nlsock = nl.nl_socket_alloc(timeout=1) -10: iosock = io.io_socket_alloc() -11: -12: # list interfaces, wireless interfaces -13: print "Interfaces: ", pyw.interfaces() -14: print "Wireless Interfaces: ", pyw.winterfaces(iosock): -15: -16: # get a Card & info for alfa0 & print a description -17: info = pyw.devinfo('alfa0',nlsock) -18: card = info['card'] -19: driver = device.ifdriver(card.dev) -20: chipset = device.ifchipset(driver) -21: msg = "{Using {0} in mode: {1}".format(card,info['mode']) -22: if info['mode'] == 'managed': -23: msg += " currently on channel {0} width {1}".format(rf2ch(info['RF']), -24: info['CHW']) -25: msg += " driver: {0}, chipset: {1}".format(driver,chipset) -26: print msg -27: -28: # prepare a virtual interface named pent0 in monitor mode -29: pdev = 'pent0' -30: pcard = pyw.devadd(card,pdev,'monitor',nlsock) -31: for iface in pyw.ifaces(card,nlsock): -32: if iface[0].dev != pdev: -33: msg = "deleting {0} in mode {1}".format(iface[0],iface[1]) -34: print msg -35: pyw.devdel(iface[0],nlsock) -36: pyw.macset(pcard,'00:03:93:57:54:46',iosock) -37: pyw.up(pcard,ioctl) -38: pyw.chset(pcard,6,None) -39: msg = "Virtual interface {0} in monitor mode on ch 6".format(pcard) -40: msg += ", using hwaddr: {0}".format(pyw.macget(pcard,iosock) -41: -42: # DO stuff here -43: -44: # restore original -45: print "deleting ", pcard -46: pyw.devdel(pcard,nlsock) -47: card = pyw.devadd(card,card.dev,info['mode'],nlsock) -48: pyw.up(card,ioctl) -49: print "card ", card, " restored" -50: -51: # release the sockets -52: nl.nl_socket_free(nlsock) -53: io.io_socket_alloc(iosock) + 3: from pyric.lib import libnl as nl # for netlink sockets + 4: + 5: nlsock = nl.nl_socket_alloc(timeout=1) + 6: card = pyw.getcard('wlan0',nlsock) + 7: print pyw.devmodes(card,nlsock) + 8: nl.nl_socket_free(nlsock) \end{lstlisting} -In Listing \ref{lst:persistent}, the wireless pentesting environment from Listing -\ref{lst:pentest} is repeated, this time using persistent sockets. Note the imports -at lines 5 and 6 for libnl and libio, socket creation at lines 9 and 10 and socket -destructions at lines 52 and 53. Also, note the lack of a socket used in the -pyw.interfaces() call. This is due to the fact the function interfaces() reads -from the file system and does not use netlink or ioctl. \\ +Listing \ref{lst:persistent}, shows the creation of a persistent netlink socket +that is used in the creation of a card and in retrieved the card's supported +modes. \\ Use Python's built in help features on pyw functions or see Appendex \ref{sec:pywapi} to determine what type of @@ -434,17 +462,17 @@ \subsection{Interacting with the Kernel: libnl.py and libio.py} They handle socket creation/deletion, message creation/parsing and kernel communication. Aside from creating and deleting persistent sockets, there is little need to access their functions unless you plan on extending pyw -functionality. As such, a further discussion of libnl.py and libio.py can be in -the next section. +functionality. As such, a further discussion of libnl.py and libio.py can be +found in the next section. \section{Extending PyRIC}\label{sec:extending} You may find that pyw does not offer some of the functionality you need. Using libnl.py and/or libnl.io, additional functionality can be added to your program. \subsection{Porting C} -All Python ports of C header files can be found in the net directory. C Enums and -\#defines are ported using constants. C structs are ported using three Python -structures and the Python struct package: +All Python ports of C header files can be found in the net directory. C Enums +and \#defines are ported using constants. C structs are ported using three +Python structures and the Python struct package: \begin{enumerate} \item a format string for packing and unpacking the struct \item a constant specifying the size of the struct in bytes @@ -494,9 +522,131 @@ \subsection{Netlink and nl80211} Documentation on Netlink, and nl80211 in particular, is so minimal as to be neglible. The clusterfuck of code and lack of comments in the iw source tree make it impossible to use as any sort of roadmap. Fortunately Thomas Graf's -site\cite{libnl} has excellent coverage of the libnl, the Netlink library. -Using this as a reference, a simple Netlink parser was put together. With -strace and the parser, Netlink messages could be dissected and analyzed. \\ +site\cite{libnl} has excellent coverage of libnl, the Netlink library. Using +this as a reference, a simple Netlink parser was put together which later became +libnl.py. Using the command line tool strace and libnl.py, Netlink messages could +be dissected and analyzed.\\ + +Let us consider adding a virtual interface with the command:\\ + + \texttt{sudo iw phy0 interface add test0 type monitor}\\ + +First, we need to see what is going on under the covers. Using strace:\\ + + \texttt{strace -f -x -s 4096 iw phy0 interface add test0 type monitor}\\ + +from a terminal will give a you a lot of output, most irrelevant (to us). Scroll +through this until the netlink socket creation as highlighted in Figure +\ref{fig:nlsock}. You can see that a socket of type PF\_NETLINK is created and +the send/receive buffers are set to 32768. +\begin{center} +\begin{figure}[h] +\includegraphics{nlsock} +\caption{Netlink socket creation} +\label{fig:nlsock} +\end{figure} +\end{center} +What we want to analyze are the messages sent and received over the netlink +socket. In Figure \ref{fig:nlsock}, iw is requesting the family id for nl80211. +This id will be used in subsequent requests related to nl80211 as we will see +shortly. The return message gives the nl80211 family id as 26 and returns other +nl80211 attributes. This is handled by the private function \_familyid\_ in +pyw.py. + +Figure \ref{fig:nlsend} shows the add interface message being sent to the kernel. +\begin{center} +\begin{figure}[h] +\includegraphics{nlsend} +\caption{Netlink sendmsg} +\label{fig:nlsend} +\end{figure} +\end{center} +We are interested in the byte sequence following msg\_iov(1). Copy this and paste +into in a python variable as in Listing \ref{lst:nlparse} and pass it to the +function nlmsg\_fromstream which parses the byte stream and returns the GENLMsg.\\ + +\begin{lstlisting}[caption={Parsing netlink messages}, + label={lst:nlparse}, + language=Python] +>>> from pyric.lib import libnl as nl +>>> sent = "\x30\x00\x00\x00\x1a...\x00\x00" +>>> msg = nlmsg_fromstream(sent) +>>> msg +nlmsghdr(len=48,type=26,flags=5,seq=1463268720,pid=10982) +genlmsghdr(cmd=7) +attributes: + 0: type=1,datatype=3 + value=0 + 1: type=4,datatype=5 + value=test0 + 2: type=5,datatype=3 + value=6 +\end{lstlisting} + +The first thing to notice is nlmsghdr type = 26, which of course is nl80211 family +id. The rest of the nlmsghdr components len, flags, seq, and pid are handled by +libnl.py although you can supply your own flags if desired. At this time, you can +manually look up what values the cmd, type and datatype correspond to in +nl80211\_h.py and netlink\_h.py or you can use the tools provided in nlhelp.py.\\ + +\begin{lstlisting}[caption={Parsing netlink messages continued}, + label={lst:nlparse2}, + language=Python] +>>> from pyric.net.netlink_h import NLA_DATATYPES +>>> from pyric.docs import nlhelp +>>> nlhelp.cmdbynum(7) +u'@NL80211_CMD_NEW_INTERFACE' +>>> +>>> for attr in msg.attrs: +... print nlhelp.attrbynum(attr[0]), NLA_DATATYPES[attr[2]], attr[1] +... +@NL80211_ATTR_WIPHY u32 0 +@NL80211_ATTR_IFNAME string test0 +@NL80211_ATTR_IFTYPE u32 6 +>>> +>>> from pyric.net.wireless.nl80211_h import NL80211_IFTYPES +>>> NL80211_IFTYPES[6] +'monitor' +\end{lstlisting} + +In Listing \ref{lst:nlparse2} command number 7 corresponds to +NL80211\_CMD\_NEW\_INTERFACE and the attributes that need to be passed to the +kernel are NL80211\_ATTR\_WIPHY, NL80211\_ATTR\_IFNAME and NL80211\_ATTR\_IFTYPE. +The IFTYPE is also known as the mode i.e. 'monitor' which can be found in +nl80211\_h.py NL80211\_IFTYPES. We don't parse the return message from the kernel +but, it follows the same SOP. In this case, it returns the attributes of the new +virtual interface. \\ + +With this information, we can now code our function. Recall the fcttemplate as +defined in Listing \ref{lst:template} and fill in the command execution as shown +in Listing \ref{lst:coding}. \\ + +\begin{lstlisting}[caption={Coding the function}, + label={lst:coding}, + language=Python] +# construct the message +msg = nl.nlmsg_new(nltype=_familyid_(nlsock), + cmd=nl80211h.NL80211_CMD_NEW_INTERFACE, + flags=nlh.NLM_F_REQUEST | nlh.NLM_F_ACK) +nl.nla_put_u32(msg,card.phy,nl80211h.NL80211_ATTR_WIPHY) +nl.nla_put_string(msg,vdev,nl80211h.NL80211_ATTR_IFNAME) +nl.nla_put_u32(msg,IFTYPES.index(mode),nl80211h.NL80211_ATTR_IFTYPE) + +# send, receive and parse return results, returning the new Card +nl.nl_sendmsg(nlsock,msg) +rmsg = nl.nl_recvmsg(nlsock) # success returns new device attributes +return Card(card.phy,vdev,nl.nla_find(rmsg,nl80211h.NL80211_ATTR_IFINDEX)) +\end{lstlisting} + +We construct a new GENLMsg passing the nl80211 family id, the command we got +earlier and flags specifying that this is a request and we want to get an ACK +back\footnote{libnl.py always forces an ACK and handles the underlying process +of receiving it}. Now, add each attribute to the message. Note the order: value, +then attribute. With the message constructed, send it to the kernel, get the +results, parse and return them.\\ + +Rather simple, in fact the hardest part is figuring out what to send to the kernel. +Everything else is handled behind the scenes by libnl.py. \begin{appendices} \section{API: pyw.py}\label{sec:pywapi} @@ -523,17 +673,17 @@ \subsection{Objects/Classes} identifier the function requires. However, in some cases the function requires a dev or accepts both. See the next section on functions.\\ -While callers could create their own Cards, it is recommend to use one of the following +While callers could create their own Cards, it is recommend to use one of the +following \begin{itemize} \item \textbf{pyw.getcard} returns a Card object from a given dev \item \textbf{pyw.devinfo} returns the dict info where info['card'] is the Card object. This function will take either a card or a dev \item \textbf{pyw.devadd} returns a new Card object \item \textbf{pyw.ifaces} returns a list of tuples t = (Card,mode) sharing the -same phy as a given dev -to do so. It is also recommended to periodically validate the Card. On some -cheaper usb wireless nics, there are periodic disconnects which results in a new -phy and ifindex. +same phy as a given device to do so. It is also recommended to periodically +validate the Card. On some cheaper usb wireless nics, there are periodic +disconnects which results in a new phy and ifindex. \end{itemize} \subsection{Functions} @@ -548,19 +698,23 @@ \subsection{Functions} to rd \item getcard(dev,[nlsock]) (N/A), type: hybrid netlink and ioctl: get a Card object for dev +\item validcard(card,[nlsock]): (N/A), type: (hyrbrid netlink and ioctl), verify +card is still valid \item macget(card,[iosock]): (ifconfig card.), type: ioctl get card's hw address \item macset(card,mac,[iosock]): (ifconfig card. hw ether ), type: ioctl, set card's hw address to mac -\item txget(card,[iosock]): (iwconfig card. | grep Tx-Power card), type: -ioctl, get card's transmission power \item up(card,[iosock]) (ifconfig card. up), type: ioctl, bring card up \item down(card,[iosock]): (ifconfig card. down), type: ioctl, bring card down +\item txget(card,[iosock]): (iwconfig card. | grep Tx-Power card), type: +ioctl, get card's transmission power \item devstds(card,[iosock]): (iwconfig card. | grep IEEE), type: ioctl, get list of card's 802.11 supported standards -\item validcard(card,[nlsock]): (N/A), type: (hyrbrid netlink and ioctl), verify -card is still valid +\item devmodes(card,[nlsock]): (iw phy card.phy info | grep interface), type: +netlink, get card's supported modes +\item devcmds(card,[nlsock]): (iw phy card.phy info | grep commands), type: +netlink, get card's supported commands \item devinfo(card,[nlsock]): (iw dev card. info), type: netlink, get info for dev \item phyinfo(card,[nlsock]): (iw phy card. info), type: netlink, get info @@ -571,8 +725,14 @@ \subsection{Functions} netlink, get card's current channel (only works for cards in mode managed) \item chset(card,ch,chw,[nlsock]): iw phy set channel ), type: netlink, set card's current channel to ch with width chw +\item freqset(card,rf,chw,[nlsock]): iw phy set freq ), +type: netlink, set card's current frequency to rf with width chw \item devmodes(card,[iosock]): (iw phy card.), type: netlink, get modes supported by card +\item modeset(card,mode,[flags],[nlsock]): (iw dev card. set type +[flags]), type: netlink, set card's mode to mode with flags (if mode is monitor) +\item modeget(card[nlsock]): (iw dev card. info | grep mode), type: netlink, +get card's mode \item devadd(card,vnic,mode,[flags],[nlsock]): (iw phy card. interface add type flags ), type: netlink, creates a new virtual interface on card's phy with dev vdev, in mode and using flags. Note: flags are only supported @@ -677,23 +837,10 @@ \subsubsection{GENLMsg} \begin{itemize} \item \_\_repr\_\_(): returns a string representation useful for debugging \item tostream(): returns a packed netlink message -\item nla\_put(v,a,t): appends the attribute a, with value v and datatype t to -the attribute list -\item nla\_put\_(v,a): eight specialize functions that append attribute -a with value v and type to the attribute list -\item nla\_putat(i,v,a,d): puts attribute a, with value v and datatype d at -index i in the attribute list. -\item nla\_pop(i): removes the attribute tuple at index i, returning the popped -tuple -\item nla\_find(a,value=True): returns the first attribute a. If value returns only -the value otherwise returns the attribute tuple -\item nla\_get(i,value=True): returns the attribute at index i. If value returns only -the value otherwise returns the attribute tuple -\item \_attrpack(a,v,d): (private) packs the attribute tuple -\end{itemize} -There are two methods of creating a GENLMsg. Create a new message (to send) with nlmsg\_new and create a message from a received packet with nlmsg\_fromstream. These -are discussed below. +There are two methods of creating a GENLMsg. Create a new message (to send) with +nlmsg\_new and create a message from a received packet with nlmsg\_fromstream. +These are discussed below. \subsection{Functions}\label{sec:libnlfct} \begin{itemize} @@ -720,14 +867,28 @@ \subsection{Functions}\label{sec:libnlfct} \item nlmsg\_fromstream(stream): parses the message in stream returning the corresponding GENLMsg \item nla\_parse(msg,l,mtype,stream,idx): parses the attributes in stream appending -them to the attribute list of message where msg = the GENLMsg, l = the total length -of the message, mtype = the message content (i.e. netlink type) stream is the -original byte stream and idx is the index of the start of the attribute list +them to the attribute list of message where msg = the GENLMsg, l = the total +length of the message, mtype = the message content (i.e. netlink type) stream is +the original byte stream and idx is the index of the start of the attribute list \item nla\_parse\_nested(nested): returns the list of packed nested attributes extracted from the stream nested. Callers must unpack and parse the returned attributes themselves +\item nla\_put(msg,v,a,t): appends the attribute a, with value v and datatype t +to the msg's attribute list +\item nla\_put\_(msg,v,a): eight specialized functions that append +attribute a with the value v and type to msg's attribute list +\item nla\_putat(msg,i,v,a,d): puts attribute a, with value v and datatype d at +index i in msg's attribute list. +\item nla\_pop(msg,i): removes the attribute tuple at index i, returning the popped +tuple +\item nla\_find(msg,a,value=True): returns the first attribute a in msg's attribute +list. If value returns only the value otherwise returns the attribute tuple +\item nla\_get(msg,i,value=True): returns the attribute at index i. If value returns +only the value otherwise returns the attribute tuple \item \_nla\_strip(v): (private) strips padding bytes from the end of v -\item \_maxbufsz\_(): returns the maximum allowable socket buffer size +\item \_attrpack(a,v,d): (private) packs the attribute tuple +\end{itemize} +\item \_maxbufsz\_(): (private) returns the maximum allowable socket buffer size \end{itemize} \end{itemize} @@ -782,4 +943,4 @@ \section{Copyright and License}\label{sec:copy} \bibliography{PyRIC} %\addcontentsline{toc}{chapter}{Bibliography} -\end{document} \ No newline at end of file +\end{document} diff --git a/pyric/lib/libnl.py b/pyric/lib/libnl.py index 6a0a3d3..b0713f1 100644 --- a/pyric/lib/libnl.py +++ b/pyric/lib/libnl.py @@ -474,7 +474,7 @@ def nla_parse(msg,l,mtype,stream,idx): # Note: we use unpack_from which will ignore the null bytes in numeric # datatypes & for strings & unspec we just strip trailing null bytes - if dt == nlh.NLA_STRING or dt == nlh.NLA_UNSPEC: a = _nla_strip(a) + if dt == nlh.NLA_STRING or dt == nlh.NLA_UNSPEC: a = _nla_strip_(a) if dt == nlh.NLA_NESTED: a = nla_parse_nested(a) elif dt == nlh.NLA_U8: a = struct.unpack_from("B",a,0)[0] elif dt == nlh.NLA_U16: a = struct.unpack_from("H",a,0)[0] @@ -485,7 +485,7 @@ def nla_parse(msg,l,mtype,stream,idx): nla_put(msg,a,atype,dt) except struct.error: # append as Error, stripping null bytes - nla_put(msg,_nla_strip(a),atype,nlh.NLA_ERROR) + nla_put(msg,_nla_strip_(a),atype,nlh.NLA_ERROR) idx = nlh.NLMSG_ALIGN(idx + alen) # move index to next attr def nla_parse_nested(nested): @@ -531,20 +531,6 @@ def nla_parse_nested(nested): idx = nlh.NLMSG_ALIGN(idx + alen) return ns -def _nla_strip(v): - """ - strips padding from v - :param v: value to strip - :returns: v w/o padding - **NOTE: Do not use on numeric attributes - """ - try: - for i,e in reversed(list(enumerate(v))): - if e != '\x00': return v[:i+1] - return v - except IndexError: - return v - def nla_put(msg,v,a,d): """ append attribute to msg's attribute list @@ -617,6 +603,21 @@ def nla_get(msg,i,value=True): #### FILE PRIVATE #### +def _nla_strip_(v): + """ + strips padding from v + :param v: value to strip + :returns: v w/o padding + **NOTE: Do not use on numeric attributes + """ + try: + for i,e in reversed(list(enumerate(v))): + if e != '\x00': return v[:i+1] + return v + except IndexError: + return v + + def _attrpack_(a,v,d): """ :param a: attribute type diff --git a/pyric/net/netlink_h.py b/pyric/net/netlink_h.py index 8f853ff..d29f9a0 100644 --- a/pyric/net/netlink_h.py +++ b/pyric/net/netlink_h.py @@ -268,6 +268,7 @@ def nlmsgerr(error,mlen,nltype,flags,seq,pid): """ # Attribute Datatypes +NLA_DATATYPES = ['unspec','u8','u16','u32','u64','string','flag','msecs','nested'] NLA_ERROR = -1 # my own -> failed to unpack attribute, treat as unspec NLA_UNSPEC = 0 # Unspecified type, binary data chunk NLA_U8 = 1 # 8 bit integer diff --git a/pyric/pyw.py b/pyric/pyw.py index b2304d8..fa75ae5 100644 --- a/pyric/pyw.py +++ b/pyric/pyw.py @@ -690,8 +690,7 @@ def modeset(card,mode,flags=None,*argv): 'Can only set flags in monitor mode') for flag in flags: if flag not in MNTRFLAGS: - raise pyric.error(errno.EINVAL, 'Invalid flag: {0}', - format(flag)) + raise pyric.error(errno.EINVAL, 'Invalid flag: {0}',format(flag)) else: flags = [] try: diff --git a/setup.py b/setup.py index 447aae3..28b57a0 100644 --- a/setup.py +++ b/setup.py @@ -46,7 +46,7 @@ setup(name='PyRIC', version=pyric.__version__, - description="PyRIC: python port of a subset of iw", + description="Pythonic iw", long_description=long_desc, url='http://wraith-wireless.github.io/pyric', download_url="https://github.com/wraith-wireless/pyric/archive/"+pyric.__version__+".tar.gz",