<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5983595990532538800</id><updated>2011-07-08T02:24:28.186-07:00</updated><category term='FreeBSD'/><category term='Perl'/><title type='text'>Derek's random thoughts</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dereksrandomthoughts.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dereksrandomthoughts.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Derek</name><uri>http://www.blogger.com/profile/04523034799890875514</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5983595990532538800.post-4309623580996355731</id><published>2010-04-22T08:16:00.000-07:00</published><updated>2010-04-22T08:40:29.037-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Converting IP Options from binary to hex in Perl</title><content type='html'>A quick one liner to convert TCP Options from binary to Hex.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: white;"&gt; &lt;b&gt;my&lt;/b&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;$tcp_obj&lt;/span&gt;&lt;span style="color: white;"&gt; = &lt;/span&gt;&lt;span style="color: rgb(100, 74, 155);"&gt;NetPacket::TCP&lt;/span&gt;&lt;span style="color:white;"&gt;-&amp;gt;decode(&lt;/span&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;$ip_obj&lt;/span&gt;&lt;span style="color: white;"&gt;-&amp;gt;{data});&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white;"&gt; &lt;b&gt;my&lt;/b&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;$tcp_options&lt;/span&gt;&lt;span style="color: white;"&gt; = &lt;/span&gt;&lt;span style="color: rgb(100, 74, 155);"&gt;sprintf&lt;/span&gt;&lt;span style="color: white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;%08X&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;span style="color: white;"&gt;,&lt;/span&gt;&lt;span style="color: rgb(100, 74, 155);"&gt;unpack&lt;/span&gt;&lt;span style="color: white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;N&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;span style="color: white;"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 87, 174);"&gt;$tcp_obj&lt;/span&gt;&lt;span style="color: white;"&gt;-&amp;gt;{options})).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5983595990532538800-4309623580996355731?l=dereksrandomthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dereksrandomthoughts.blogspot.com/feeds/4309623580996355731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5983595990532538800&amp;postID=4309623580996355731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/4309623580996355731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/4309623580996355731'/><link rel='alternate' type='text/html' href='http://dereksrandomthoughts.blogspot.com/2010/04/converting-ip-options-from-binary-to.html' title='Converting IP Options from binary to hex in Perl'/><author><name>Derek</name><uri>http://www.blogger.com/profile/04523034799890875514</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5983595990532538800.post-6131815911000189044</id><published>2009-11-10T16:53:00.000-08:00</published><updated>2009-11-10T16:57:26.673-08:00</updated><title type='text'>UDP Port 3437</title><content type='html'>I have been seeing traffic like this on my firewall more and more. Does anyone know what it is?&lt;br /&gt;&lt;br /&gt;99. 101103 rule 19/0(match): block in on le0: 4.234.24.139.34247 &gt; 192.168.100.7.3437: UDP, length 31&lt;br /&gt;44. 809854 rule 19/0(match): block in on le0: 24.197.158.193.36787 &gt; 192.168.100.7.3437: UDP, length 35&lt;br /&gt;19. 922285 rule 19/0(match): block in on le0: 219.58.194.9.6346 &gt; 192.168.100.7.3437: UDP, length 31&lt;br /&gt;603. 012552 rule 19/0(match): block in on le0: 75.83.84.151.24363 &gt; 192.168.100.7.3437: UDP, length 31&lt;br /&gt;509. 641906 rule 19/0(match): block in on le0: 124.184.98.120.25705 &gt; 192.168.100.7.3437: UDP, length 35&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5983595990532538800-6131815911000189044?l=dereksrandomthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dereksrandomthoughts.blogspot.com/feeds/6131815911000189044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5983595990532538800&amp;postID=6131815911000189044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/6131815911000189044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/6131815911000189044'/><link rel='alternate' type='text/html' href='http://dereksrandomthoughts.blogspot.com/2009/11/udp-porttext.html' title='UDP Port 3437'/><author><name>Derek</name><uri>http://www.blogger.com/profile/04523034799890875514</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5983595990532538800.post-8953010925154039344</id><published>2009-11-03T13:48:00.000-08:00</published><updated>2009-11-04T14:38:22.956-08:00</updated><title type='text'>Listen for http connections with C</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;sys/socket.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;netinet/in.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;netdb.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;signal.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include  &amp;lt;arpa/inet.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#include &amp;lt;time.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#define PORT 30000&lt;/span&gt;&lt;br /&gt;&lt;span style='color: #006e28'&gt;#define MAXBUFF 1024&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: #0057ae'&gt;int&lt;/span&gt;&lt;span style='color: white'&gt; wwwsock;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: #0057ae'&gt;void&lt;/span&gt;&lt;span style='color: white'&gt; myError(&lt;/span&gt;&lt;span style='color: #0057ae'&gt;char&lt;/span&gt;&lt;span style='color: white'&gt; *err) {&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    perror(err);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    exit(&lt;/span&gt;&lt;span style='color: #b08000'&gt;1&lt;/span&gt;&lt;span style='color: white'&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: #0057ae'&gt;void&lt;/span&gt;&lt;span style='color: white'&gt; catchSig(&lt;/span&gt;&lt;span style='color: #0057ae'&gt;int&lt;/span&gt;&lt;span style='color: white'&gt; sig) {&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  close(wwwsock);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; exit(&lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: #0057ae'&gt;int&lt;/span&gt;&lt;span style='color: white'&gt; main(&lt;/span&gt;&lt;span style='color: #0057ae'&gt;int&lt;/span&gt;&lt;span style='color: white'&gt; argc, &lt;/span&gt;&lt;span style='color: #0057ae'&gt;char&lt;/span&gt;&lt;span style='color: white'&gt; *argv[]) {&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;span style='color: #0057ae'&gt;char&lt;/span&gt;&lt;span style='color: white'&gt; timebuff[&lt;/span&gt;&lt;span style='color: #b08000'&gt;250&lt;/span&gt;&lt;span style='color: white'&gt;];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;span style='color: #0057ae'&gt;char&lt;/span&gt;&lt;span style='color: white'&gt; *buffer;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;span style='color: #0057ae'&gt;char&lt;/span&gt;&lt;span style='color: white'&gt; *req;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;span style='color: #0057ae'&gt;int&lt;/span&gt;&lt;span style='color: white'&gt; clientAddr, newConnection, size;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;span style='color: #0057ae'&gt;int&lt;/span&gt;&lt;span style='color: white'&gt; optval=&lt;/span&gt;&lt;span style='color: #b08000'&gt;1&lt;/span&gt;&lt;span style='color: white'&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt; time_t curtime;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;b&gt;struct&lt;/b&gt; sockaddr_in serv_addr, cli_addr;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  (&lt;/span&gt;&lt;span style='color: #0057ae'&gt;void&lt;/span&gt;&lt;span style='color: white'&gt;)signal(SIGINT, catchSig);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; wwwsock = socket(AF_INET, SOCK_STREAM, &lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;b&gt;if&lt;/b&gt;(wwwsock&amp;lt;&lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;) &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  myError(&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"Socket Failed&lt;/span&gt;&lt;span style='color: #ff80e0'&gt;\n&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"&lt;/span&gt;&lt;span style='color: white'&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt; memset(&amp;amp;serv_addr,&lt;/span&gt;&lt;span style='color: #ff80e0'&gt;'\0'&lt;/span&gt;&lt;span style='color: white'&gt;,&lt;b&gt;sizeof&lt;/b&gt;(serv_addr));&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; serv_addr.sin_family = AF_INET;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; serv_addr.sin_addr.s_addr = INADDR_ANY;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; serv_addr.sin_port = htons(PORT);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt; setsockopt(wwwsock, SOL_SOCKET, SO_REUSEADDR, &amp;amp;optval, &lt;b&gt;sizeof&lt;/b&gt; optval);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;b&gt;if&lt;/b&gt; (bind(wwwsock,(&lt;b&gt;struct&lt;/b&gt; sockaddr *) &amp;amp;serv_addr,&lt;b&gt;sizeof&lt;/b&gt;(serv_addr)) &amp;lt; &lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  &lt;/span&gt;&lt;span style='color: #0057ae'&gt;char&lt;/span&gt;&lt;span style='color: white'&gt; error[&lt;/span&gt;&lt;span style='color: #b08000'&gt;30&lt;/span&gt;&lt;span style='color: white'&gt;];&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  sprintf(error,&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"ERROR binding to port %d"&lt;/span&gt;&lt;span style='color: white'&gt;,PORT);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  myError(error);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; listen(wwwsock,&lt;/span&gt;&lt;span style='color: #b08000'&gt;5&lt;/span&gt;&lt;span style='color: white'&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; clientAddr=&lt;b&gt;sizeof&lt;/b&gt;(&lt;b&gt;struct&lt;/b&gt; sockaddr_in);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; buffer=malloc(MAXBUFF); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt; req=malloc(MAXBUFF);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;b&gt;while&lt;/b&gt;(&lt;/span&gt;&lt;span style='color: #b08000'&gt;1&lt;/span&gt;&lt;span style='color: white'&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  newConnection=accept(wwwsock,(&lt;b&gt;struct&lt;/b&gt; sockaddr *) &amp;amp;cli_addr,(socklen_t *)&amp;amp;clientAddr);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  memset(buffer,&lt;/span&gt;&lt;span style='color: #ff80e0'&gt;'\0'&lt;/span&gt;&lt;span style='color: white'&gt;,&lt;b&gt;sizeof&lt;/b&gt;(buffer));&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  &lt;b&gt;if&lt;/b&gt;(recv(newConnection,buffer,MAXBUFF,&lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;) &amp;gt; &lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   &lt;b&gt;if&lt;/b&gt;(strstr(buffer,&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"&lt;/span&gt;&lt;span style='color: #ff80e0'&gt;\n&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"&lt;/span&gt;&lt;span style='color: white'&gt;)) {&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    size=(strlen(buffer)-strlen(strstr(buffer,&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"&lt;/span&gt;&lt;span style='color: #ff80e0'&gt;\n&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"&lt;/span&gt;&lt;span style='color: white'&gt;)));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   &lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    size=&lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   &lt;b&gt;if&lt;/b&gt;(size&amp;gt;&lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt; &amp;amp;&amp;amp; size&amp;lt;MAXBUFF) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    curtime=time(NULL);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    strftime(timebuff,&lt;b&gt;sizeof&lt;/b&gt;(timebuff),&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"%c"&lt;/span&gt;&lt;span style='color: white'&gt;,localtime (&amp;amp;curtime));&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    strncpy(req,buffer,size+&lt;/span&gt;&lt;span style='color: #b08000'&gt;1&lt;/span&gt;&lt;span style='color: white'&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;    printf(&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"%s Client %s Requested %s"&lt;/span&gt;&lt;span style='color: white'&gt;,timebuff,inet_ntoa(cli_addr.sin_addr),req);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   send(newConnection,&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"HTTP/1.1 404 Not Found&lt;/span&gt;&lt;span style='color: #ff80e0'&gt;\r\n&lt;/span&gt;&lt;span style='color: #bf0303'&gt;Connection: close&lt;/span&gt;&lt;span style='color: #ff80e0'&gt;\r\n\r\n&lt;/span&gt;&lt;span style='color: #bf0303'&gt;"&lt;/span&gt;&lt;span style='color: white'&gt;,&lt;/span&gt;&lt;span style='color: #b08000'&gt;22&lt;/span&gt;&lt;span style='color: white'&gt;,&lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;   close(newConnection);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; } &lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; close(wwwsock);&lt;/span&gt;&lt;br /&gt;&lt;span style='color: white'&gt; &lt;b&gt;return&lt;/b&gt; &lt;/span&gt;&lt;span style='color: #b08000'&gt;0&lt;/span&gt;&lt;span style='color: white'&gt;; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color: white'&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5983595990532538800-8953010925154039344?l=dereksrandomthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dereksrandomthoughts.blogspot.com/feeds/8953010925154039344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5983595990532538800&amp;postID=8953010925154039344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/8953010925154039344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/8953010925154039344'/><link rel='alternate' type='text/html' href='http://dereksrandomthoughts.blogspot.com/2009/11/listen-for-http-connections-with-c.html' title='Listen for http connections with C'/><author><name>Derek</name><uri>http://www.blogger.com/profile/04523034799890875514</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5983595990532538800.post-5514882085617932532</id><published>2009-02-15T14:08:00.000-08:00</published><updated>2009-02-15T15:43:37.792-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>Using Ports within a jail</title><content type='html'>To cut down on hard drive space use it's a good idea to use the ports directory from the main system in each jail. To secure it the best idea is to mount /usr/ports read only. The problem with having /usr/ports read only is the source can not be saved in /usr/ports/distfiles. To fix this we need to tell make to save the files elsewhere. &lt;br /&gt;&lt;br /&gt;First edit /etc/fstab and add&lt;br /&gt;/usr/ports/PATH_TO_JAIL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/usr/ports&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nullfs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;br /&gt;&lt;br /&gt;After remount file systems&lt;br /&gt;mount -a&lt;br /&gt;&lt;br /&gt;From within the jail create the dir /var/distfile and add&lt;br /&gt;DISTDIR=/var/distfile and WRKDIRPREFIX=/var/distfiles to /etc/make.conf&lt;br /&gt;&lt;br /&gt;All the files shoud besave in /var/distfile from now on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5983595990532538800-5514882085617932532?l=dereksrandomthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dereksrandomthoughts.blogspot.com/feeds/5514882085617932532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5983595990532538800&amp;postID=5514882085617932532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/5514882085617932532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/5514882085617932532'/><link rel='alternate' type='text/html' href='http://dereksrandomthoughts.blogspot.com/2009/02/using-ports-within-jail.html' title='Using Ports within a jail'/><author><name>Derek</name><uri>http://www.blogger.com/profile/04523034799890875514</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5983595990532538800.post-4079900350953095848</id><published>2007-10-14T10:35:00.000-07:00</published><updated>2007-10-16T11:07:09.667-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>HTTP Basic auth brute forcer that connects via a socks proxy</title><content type='html'>&lt;a href="http://itso.rit.edu/~derek/perl/socks.txt"&gt;socks.pl&lt;/a&gt; is a &lt;a href="http://perl.org/"&gt;perl&lt;/a&gt; script that connects to a &lt;a href="http://en.wikipedia.org/wiki/SOCKS"&gt;socks proxy &lt;/a&gt;and try's every user and password in the file given against a protected web directory.&lt;br /&gt;&lt;br /&gt;Modules needed &lt;a href="http://search.cpan.org/%7Ereatmon/IO-Socket-Socks-0.1/lib/IO/Socket/Socks.pm"&gt;IO::Socket::Socks&lt;/a&gt;,  &lt;a href="http://search.cpan.org/%7Egaas/MIME-Base64-3.07/Base64.pm"&gt;MIME::Base64&lt;/a&gt; and &lt;a href="http://perldoc.perl.org/Getopt/Std.html"&gt;Getopt::Std&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;perl socks.pl -s SOCKS_PROXY -d WEB_DIR -f  USER_FILE -i WEB_SERVER -p PROXY_PORT -P WEB_SERVER_PORT&lt;br /&gt;&lt;br /&gt;USER_FILE Format:&lt;br /&gt;User:Pass&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://www.ietf.org/rfc/rfc1945.txt"&gt;RFC1945&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;use&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;IO::Socket::&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;Socks&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;use&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;MIME::Base64&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;use&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;Getopt::Std&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;use&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;strict&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;setOpts&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$optString&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;s:p:f:d:i:P:&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%opt&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$#ARGV&lt;/span&gt;&lt;span style="color:white;"&gt; &amp;gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;11&lt;/span&gt;&lt;span style="color:white;"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        getopts(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$optString&lt;/span&gt;&lt;span style="color:white;"&gt;,\&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%opt&lt;/span&gt;&lt;span style="color:white;"&gt;) &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;or&lt;/span&gt;&lt;span style="color:white;"&gt; printError(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;Error on use &lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;$0&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt; -s Proxy Server -d Protected File  -f User and Password File -p proxyport -i Web Server IP -P Web Server Port&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;PServer&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;s&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;} &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;defined&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;s&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}));&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;PPort&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;p&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;} &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;defined&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;p&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;        $configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;SIP&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;i&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;} &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;defined&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;i&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}));&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;SPort&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;P&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;} &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;defined&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;P&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}));&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;Sdir&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;d&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;} &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;defined&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;d&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}));&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;IDfile&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;f&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;} &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;defined&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$opt&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;f&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;else&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        printError(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;Error on use &lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;$0&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt; -s Proxy Server -d Protected File  -f User and Password File -p proxyport -i Web Server IP -P Web Server Port&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;return&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;connectProxy&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;@_&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;sock&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;} = new &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;IO::Socket&lt;/span&gt;&lt;span style="color:white;"&gt;::&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;Socks&lt;/span&gt;&lt;span style="color:white;"&gt;(ProxyAddr=&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;PServer&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}, &lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;                                                ProxyPort=&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;PPort&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}, &lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;                                                ConnectAddr=&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;SIP&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;},&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;                                                ConnectPort=&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;SPort&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}) &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;or&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;die&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;$!&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;return&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;printError&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$errorMsg&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;$_&lt;/span&gt;&lt;span style="color:white;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;0&lt;/span&gt;&lt;span style="color:white;"&gt;];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;print&lt;/span&gt;&lt;span style="color:white;"&gt; STDERR &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$errorMsg&lt;/span&gt;&lt;span style="color:white;"&gt;.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;\n&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;exit&lt;/span&gt;&lt;span style="color:white;"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;checkFile&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$fileName&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;$_&lt;/span&gt;&lt;span style="color:white;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;0&lt;/span&gt;&lt;span style="color:white;"&gt;];&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt; printError(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;Please check file &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$fileName&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;) &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt; (! &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;-f&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$fileName&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;loadFile&lt;/span&gt;&lt;span style="color:white;"&gt; { &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;@_&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;open&lt;/span&gt;&lt;span style="color:white;"&gt;(USER,&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;,&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;IDfile&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}) &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;or&lt;/span&gt;&lt;span style="color:white;"&gt; printError(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;$!&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt; on file &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;{'IDfile'}&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;convUserPass&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;@_&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;encUserPass&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=encode_base64(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;userInfo&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;return&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;logIN&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;@_&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;while&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;&amp;lt;USER&amp;gt;&lt;/span&gt;&lt;span style="color:white;"&gt;) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=connectProxy(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;userInfo&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}=&lt;/span&gt;&lt;span style="color: rgb(192, 0, 0);"&gt;$_&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;chomp&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;userInfo&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=convUserPass(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$socks&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;sock&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;print&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$socks&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;GET &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;Sdir&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt; HTTP/1.0&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;Host: localhost&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;Authorization: Basic &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;encUserPass&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;\n\n&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$rsp&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$socks&lt;/span&gt;&lt;span style="color:white;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;read&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$rsp&lt;/span&gt;&lt;span style="color:white;"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;15&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;print&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;userInfo&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;}.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;\n&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;"&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;if&lt;/span&gt;&lt;span style="color:white;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$rsp&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;eq&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;HTTP/1.1 200 OK&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;closeProxy&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;@_&lt;/span&gt;&lt;span style="color:white;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=connectProxy(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;)-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;close&lt;/span&gt;&lt;span style="color:white;"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:white;" &gt;sub &lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;init&lt;/span&gt;&lt;span style="color:white;"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color:white;" &gt;my&lt;/span&gt;&lt;span style="color:white;"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;=setOpts();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    checkFile(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;$configHash&lt;/span&gt;&lt;span style="color:white;"&gt;{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color: rgb(255, 108, 108);"&gt;IDfile&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;span style="color:white;"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    loadFile(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;    logIN(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;%configHash&lt;/span&gt;&lt;span style="color:white;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;init();&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5983595990532538800-4079900350953095848?l=dereksrandomthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dereksrandomthoughts.blogspot.com/feeds/4079900350953095848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5983595990532538800&amp;postID=4079900350953095848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/4079900350953095848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/4079900350953095848'/><link rel='alternate' type='text/html' href='http://dereksrandomthoughts.blogspot.com/2007/10/http-basic-auth-brute-forcer-that_8573.html' title='HTTP Basic auth brute forcer that connects via a socks proxy'/><author><name>Derek</name><uri>http://www.blogger.com/profile/04523034799890875514</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5983595990532538800.post-3357701116438847883</id><published>2007-10-13T21:44:00.000-07:00</published><updated>2007-10-14T12:34:55.493-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>FreeBSD jails the easy way</title><content type='html'>Jails are a nice easy way to isolate processes in FreeBSD.  A jail makes it possible to run services in a virtual system keeping them from interacting with the host system.  More in depth information can be found &lt;a href="http://docs.freebsd.org/44doc/papers/jail/jail.html"&gt;here&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;Most if not all of the tutorials I have found  have you recompile the system into a new directory like the &lt;a href="http://www.section6.net/wiki/index.php/Creating_a_FreeBSD_Jail"&gt;section6 wiki&lt;/a&gt;.  This just seems overly complicated and hard to do especially if you are in a pinch for time.  Getting ready for a &lt;a href="http://en.wikipedia.org/wiki/SPARSA#ISTS"&gt;security competition&lt;/a&gt; my partner Sean Jordan introduced me to the &lt;a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/using-sysinstall.html"&gt;sysinstall&lt;/a&gt; method of making jails.&lt;br /&gt;&lt;br /&gt;When making partitions I like to create a /jail partition to give the jails their own partition. I suggest making it at least 2 gigs for each jail. Also remember all the files used by the users / services in the jail need to be on that partition so size it accordingly. Each jail needs it's own &lt;a href="http://en.wikipedia.org/wiki/IP_address"&gt;ip address&lt;/a&gt;, for my set up I am behind a router running &lt;a href="http://en.wikipedia.org/wiki/Network_address_translation"&gt;nat&lt;/a&gt; using the &lt;a href="http://en.wikipedia.org/wiki/Subnetwork"&gt;subnet&lt;/a&gt; 172.16.67.0/24.&lt;br /&gt;&lt;br /&gt;Once FreeBSD is installed start making the needed directories.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;mkdir /jail/master&lt;/li&gt;&lt;li&gt;mkdir /jail/master/usr/&lt;/li&gt;&lt;li&gt;cp -R /bin/ /jail/master/bin&lt;/li&gt;&lt;li&gt;cp -R /etc/ /jail/master/etc&lt;/li&gt;&lt;li&gt;cp -R /lib/ /jail/master/lib&lt;/li&gt;&lt;li&gt;cp -R /libexec/ /jail/master/libexec&lt;/li&gt;&lt;li&gt;cp -R /sbin/ /jail/master/sbin&lt;/li&gt;&lt;li&gt;cp -R /usr/share /jail/master/usr/share&lt;/li&gt;&lt;li&gt;cp -R /usr/bin /jail/master/usr/bin&lt;/li&gt;&lt;li&gt;cp -R /usr/sbin /jail/master/usr/sbin&lt;/li&gt;&lt;li&gt;cp -R /usr/lib /jail/master/usr/lib&lt;/li&gt;&lt;/ol&gt;Once you have all the need directories &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=chroot"&gt;chroot&lt;/a&gt; your self into /jail/master and run &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=sysinstall"&gt;sysinstall&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;chroot /jail/master /bin/csh&lt;/li&gt;&lt;li&gt;/usr/sbin/sysinstall&lt;/li&gt;&lt;/ol&gt;Once you are in choose&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Configure&lt;/li&gt;&lt;li&gt;Distributions&lt;/li&gt;&lt;li&gt;base&lt;/li&gt;&lt;li&gt;(use ftp for media source)&lt;/li&gt;&lt;li&gt;exit sysinstall&lt;/li&gt;&lt;/ol&gt;When you have the whole base distributions exit the &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=chroot"&gt;chroot&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;exit&lt;/li&gt;&lt;/ol&gt;For demonstration purposes I'll create 2 jails ssh and dns&lt;br /&gt;&lt;ol&gt;&lt;li&gt;cp -R /jail/master/ /jail/ssh&lt;/li&gt;&lt;li&gt;cp -R /jail/master/ /jail/dns&lt;/li&gt;&lt;/ol&gt;After the directories are made edit /etc/rc.conf&lt;br /&gt;&lt;ol&gt;&lt;li&gt;vi /etc/rc.conf&lt;/li&gt;&lt;/ol&gt;Add the following lines&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ifconfig_lnc0_alias0="172.16.67.47 netmask 255.255.255.0" #Add alias for your network&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ifconfig_lnc0_alias1="172.16.67.48 netmask 255.255.255.0" #Add alias for your network &lt;/li&gt;&lt;li&gt;jail_enable="YES"        # Set to NO to disable starting of any jails&lt;/li&gt;&lt;li&gt;jail_list="ssh dns"            # Space separated list of names of jails&lt;/li&gt;&lt;li&gt;jail_set_hostname_allow="NO" # Allow root user in a jail to change its hostname&lt;/li&gt;&lt;li&gt;jail_socket_unixiproute_only="YES" # Route only TCP/IP within a jail&lt;/li&gt;&lt;li&gt;jail_ssh_rootdir="/jail/ssh"&lt;/li&gt;&lt;li&gt;jail_ssh_hostname="ssh.bsd.local"&lt;/li&gt;&lt;li&gt;jail_ssh_ip="172.16.67.47"&lt;/li&gt;&lt;li&gt;jail_ssh_exec_start="/bin/sh /etc/rc"&lt;/li&gt;&lt;li&gt;jail_ssh_devfs_enable="YES"&lt;/li&gt;&lt;li&gt;jail_ssh_devfs_ruleset="devfsrules_jail"&lt;/li&gt;&lt;li&gt;jail_dns_rootdir="/jail/dns"&lt;/li&gt;&lt;li&gt;jail_dns_hostname="dns.bsd.local"&lt;/li&gt;&lt;li&gt;jail_dns_ip="172.16.67.48"&lt;/li&gt;&lt;li&gt;jail_dns_exec_start="/bin/sh /etc/rc"&lt;/li&gt;&lt;li&gt;jail_dns_devfs_enable="YES"&lt;/li&gt;&lt;li&gt;jail_dns_devfs_ruleset="devfsrules_jail"&lt;/li&gt;&lt;/ol&gt; Once the file is saved start the jails and setup the nic&lt;br /&gt;&lt;ol&gt;&lt;li&gt;sh /etc/rc&lt;/li&gt;&lt;/ol&gt;Check to see that the jails are running by using &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=jls"&gt;jls&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   JID  IP Address      Hostname                      Path&lt;/li&gt;&lt;li&gt;       2  172.16.67.48   dns.bsd.local                    /jail/dns&lt;/li&gt;&lt;li&gt;  1  172.16.67.47   ssh.bsd.local                    /jail/ssh &lt;/li&gt;&lt;/ul&gt;Check to see if the interface is listening on the correct ip address by running &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=ifconfig"&gt;ifconfig&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;lnc0: flags=108843&lt;up,broadcast,running,simplex,multicast,needsgiant&gt; mtu 1500&lt;/up,broadcast,running,simplex,multicast,needsgiant&gt;&lt;/li&gt;&lt;li&gt;             inet6 fe80::20c:29ff:fe3c:1ce8%lnc0 prefixlen 64 scopeid 0x1 &lt;/li&gt;&lt;li&gt;                     inet 172.16.67.46 netmask 0xffffff00 broadcast 172.16.67.255&lt;/li&gt;&lt;li&gt;                     inet172.16.67.47 netmask 0xffffff00 broadcast 172.16.67.255&lt;/li&gt;&lt;li&gt;                     inet 172.16.67.48 netmask 0xffffff00 broadcast 172.16.67.255&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;To enter a jail use &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=jexec"&gt;jexec&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;jexec 1 /usr/local/bin/bash&lt;/li&gt;&lt;/ol&gt;Stopping jails can be done in two ways /etc/rc.d/jail or &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=pkill"&gt;pkill.&lt;/a&gt;&lt;br /&gt;To stop all running jails run&lt;br /&gt;&lt;ol&gt;&lt;li&gt;/etc/rc.d/jail stop&lt;/li&gt;&lt;/ol&gt;To stop just 1 jail run&lt;br /&gt;&lt;ol&gt;&lt;li&gt;pkill -j JID&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Once you are in the jail you can do what ever you would do on a normal system. If you want to use  icmp within the  set security.jail.allow_raw_sockets to 1 in  /etc/sysctl.conf&lt;br /&gt;&lt;ol&gt;&lt;li&gt;security.jail.allow_raw_sockets=1&lt;/li&gt;&lt;/ol&gt;On a final note there are no users within the jail yet and the root user has no password so be sure to set one using the &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=passwd"&gt;passwd&lt;/a&gt; command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5983595990532538800-3357701116438847883?l=dereksrandomthoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dereksrandomthoughts.blogspot.com/feeds/3357701116438847883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5983595990532538800&amp;postID=3357701116438847883' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/3357701116438847883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5983595990532538800/posts/default/3357701116438847883'/><link rel='alternate' type='text/html' href='http://dereksrandomthoughts.blogspot.com/2007/10/freebsd-jails-easy-way.html' title='FreeBSD jails the easy way'/><author><name>Derek</name><uri>http://www.blogger.com/profile/04523034799890875514</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
