SHOW:
|
|
- or go back to the newest paste.
| 1 | ########## | |
| 2 | # VMWare # | |
| 3 | ########## | |
| 4 | - For this workshop you'll need the latest version of VMWare Workstation (Windows), Fusion (Mac), or Player. | |
| 5 | ||
| 6 | - http://www.vmware.com/ap/products/player.html | |
| 7 | ||
| 8 | ||
| 9 | - Although you can get the VM to run in VirtualBox, I will not be supporting this configuration for this class. | |
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | ######################### | |
| 14 | # Class Virtual Machine # | |
| 15 | ######################### | |
| 16 | ||
| 17 | ||
| 18 | Here is the VMWare virtual machine for the class: | |
| 19 | ||
| 20 | https://s3.amazonaws.com/infosecaddictsvirtualmachines/InfoSecAddictsVM.zip | |
| 21 | user: infosecaddicts | |
| 22 | pass: infosecaddicts | |
| 23 | ||
| 24 | ||
| 25 | - | ################# |
| 25 | + | |
| 26 | - | # PCAP Analysis # |
| 26 | + | ################################### |
| 27 | - | ################# |
| 27 | + | # Setting up your virtual machine # |
| 28 | # Note: run as root user # | |
| 29 | - | cd ~/Desktop/ |
| 29 | + | ################################### |
| 30 | ||
| 31 | - | mkdir suspiciouspcap/ |
| 31 | + | |
| 32 | Here is where we will setup all of the required dependencies for the tools we plan to install | |
| 33 | - | cd suspiciouspcap/ |
| 33 | + | |
| 34 | apt update | |
| 35 | apt-get install -y libpcre3-dbg libpcre3-dev autoconf automake libtool libpcap-dev libnet1-dev libyaml-dev libjansson4 libcap-ng-dev libmagic-dev libjansson-dev zlib1g-dev libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev cmake make gcc g++ flex bison libpcap-dev libssl-dev unzip python-dev swig zlib1g-dev sendmail sendmail-bin prads tcpflow python-scapy python-yara tshark whois jq | |
| 36 | ----------------------------------------------------------------------- | |
| 37 | ||
| 38 | ||
| 39 | ||
| 40 | ||
| 41 | Now we install Suricata | |
| 42 | - | firefox index.html |
| 42 | + | |
| 43 | wget https://www.openinfosecfoundation.org/download/suricata-4.0.5.tar.gz | |
| 44 | ||
| 45 | tar -zxvf suricata-4.0.5.tar.gz | |
| 46 | ||
| 47 | cd suricata-4.0.5 | |
| 48 | ||
| 49 | ./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var | |
| 50 | ||
| 51 | make | |
| 52 | ||
| 53 | make install | |
| 54 | - | #################### |
| 54 | + | |
| 55 | - | # Intro to TCPDump # |
| 55 | + | make install-conf |
| 56 | - | #################### |
| 56 | + | |
| 57 | cd rules | |
| 58 | - | sudo apt-get install tcpdump |
| 58 | + | |
| 59 | cp *.rules /etc/suricata/rules/ | |
| 60 | ||
| 61 | cd /etc/suricata/ | |
| 62 | - | Basic sniffing |
| 62 | + | |
| 63 | - | -------------- |
| 63 | + | wget https://rules.emergingthreats.net/open/suricata-4.0/emerging.rules.tar.gz |
| 64 | ||
| 65 | - | sudo tcpdump -n |
| 65 | + | tar -zxvf emerging.rules.tar.gz |
| 66 | ----------------------------------------------------------------------- | |
| 67 | ||
| 68 | - | Now lets increase the display resolution of this packet, or get more details about it. The verbose switch comes in handy |
| 68 | + | |
| 69 | ||
| 70 | - | sudo tcpdump -v -n |
| 70 | + | |
| 71 | ||
| 72 | ################################################################## | |
| 73 | # Analyzing a PCAP Prads # | |
| 74 | - | Getting the ethernet header (link layer headers) |
| 74 | + | # Note: run as regular user # |
| 75 | - | ------------------------------------------------ |
| 75 | + | ################################################################## |
| 76 | - | In the above examples details of the ethernet header are not printed. Use the -e option to print the ethernet header details as well. |
| 76 | + | |
| 77 | ---------------------------Type This----------------------------------- | |
| 78 | - | sudo tcpdump -vv -n -e |
| 78 | + | cd ~ |
| 79 | ||
| 80 | mkdir pcap_analysis/ | |
| 81 | - | Sniffing a particular interface |
| 81 | + | |
| 82 | - | ------------------------------- |
| 82 | + | cd ~/pcap_analysis/ |
| 83 | - | In order to sniff a particular network interface we must specify it with the -i switch. First lets get the list of available interfaces using the -D switch. |
| 83 | + | |
| 84 | mkdir prads | |
| 85 | - | sudo tcpdump -D |
| 85 | + | |
| 86 | cd ~/pcap_analysis/prads | |
| 87 | ||
| 88 | - | Filtering packets using expressions - Selecting protocols |
| 88 | + | |
| 89 | - | --------------------------------------------------------- |
| 89 | + | |
| 90 | prads -r suspicious-time.pcap -l prads-asset.log | |
| 91 | - | $ sudo tcpdump -n tcp |
| 91 | + | |
| 92 | cat prads-asset.log | less | |
| 93 | ||
| 94 | - | Particular host or port |
| 94 | + | cat prads-asset.log | grep SYN | grep -iE 'windows|linux' |
| 95 | - | ----------------------- |
| 95 | + | |
| 96 | - | Expressions can be used to specify source ip, destination ip, and port numbers. The next example picks up all those packets with source address 192.168.1.101 |
| 96 | + | cat prads-asset.log | grep CLIENT | grep -iE 'safari|firefox|opera|chrome' |
| 97 | ||
| 98 | - | $ sudo tcpdump -n 'src 192.168.1.101' |
| 98 | + | cat prads-asset.log | grep SERVER | grep -iE 'apache|linux|ubuntu|nginx|iis' |
| 99 | ----------------------------------------------------------------------- | |
| 100 | ||
| 101 | - | Next example picks up dns request packets, either those packets which originate from local machine and go to port 53 of some other machine. |
| 101 | + | |
| 102 | ||
| 103 | - | $ sudo tcpdump -n 'udp and dst port 53' |
| 103 | + | |
| 104 | ################################## | |
| 105 | # PCAP Analysis with ChaosReader # | |
| 106 | - | To display the FTP packets coming from 192.168.1.100 to 192.168.1.2 |
| 106 | + | # Note: run as regular user # |
| 107 | ################################## | |
| 108 | - | $ sudo tcpdump 'src 192.168.1.100 and dst 192.168.1.2 and port ftp' |
| 108 | + | |
| 109 | cd ~ | |
| 110 | ||
| 111 | - | Search the network traffic using grep |
| 111 | + | mkdir -p pcap_analysis/chaos_reader/ |
| 112 | ||
| 113 | - | Grep can be used along with tcpdump to search the network traffic. Here is a very simple example |
| 113 | + | cd ~/pcap_analysis/chaos_reader/ |
| 114 | ||
| 115 | - | $ sudo tcpdump -n -A | grep -e 'POST' |
| 115 | + | |
| 116 | ||
| 117 | wget https://s3.amazonaws.com/infosecaddictsfiles/chaosreader.pl | |
| 118 | - | So what is the idea behind searching packets. Well one good thing can be to sniff passwords. |
| 118 | + | |
| 119 | - | Here is quick example to sniff passwords using egrep |
| 119 | + | |
| 120 | ||
| 121 | cat index.text | grep -v '"' | grep -oE "([0-9]+\.){3}[0-9]+.*\)"
| |
| 122 | - | tcpdump port http or port ftp or port smtp or port imap or port pop3 -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --color=auto --line-buffered -B20 |
| 122 | + | |
| 123 | cat index.text | grep -v '"' | grep -oE "([0-9]+\.){3}[0-9]+.*\)" | awk '{print $4, $5, $6}' | sort | uniq -c | sort -nr
| |
| 124 | ||
| 125 | ||
| 126 | for i in session_00[0-9]*.http.html; do srcip=`cat "$i" | grep 'http:\ ' | awk '{print $2}' | cut -d ':' -f1`; dstip=`cat "$i" | grep 'http:\ ' | awk '{print $4}' | cut -d ':' -f1`; host=`cat "$i" | grep 'Host:\ ' | sort -u | sed -e 's/Host:\ //g'`; echo "$srcip --> $dstip = $host"; done | sort -u
| |
| 127 | - | ######### |
| 127 | + | |
| 128 | - | # NGrep # |
| 128 | + | python -m SimpleHTTPServer |
| 129 | - | ######### |
| 129 | + | ****** Open a web browser and browse the the IP address of your Linux machine port 8000 for the web page ***** |
| 130 | ||
| 131 | - | Install ngrep on Ubuntu |
| 131 | + | |
| 132 | ||
| 133 | - | $ sudo apt-get install ngrep |
| 133 | + | |
| 134 | ||
| 135 | ||
| 136 | - | Search network traffic for string "User-Agent: " |
| 136 | + | |
| 137 | ||
| 138 | - | $ sudo ngrep -d eth0 "User-Agent: " tcp and port 80 |
| 138 | + | |
| 139 | ||
| 140 | - | In the above command : |
| 140 | + | |
| 141 | - | a) tcp and port 80 - is the bpf filter (Berkeley Packet Filter) , that sniffs only TCP packet with port number 80 |
| 141 | + | |
| 142 | - | b) The d option specifies the interface to sniff. eth0 in this case. |
| 142 | + | # Note: run as regular user # |
| 143 | - | c) "User-Agent: " is the string to search for. All packets that have that string are displayed. |
| 143 | + | |
| 144 | ---------------------------Type This----------------------------------- | |
| 145 | - | 2. Search network packets for GET or POST requests : |
| 145 | + | cd ~/pcap_analysis/ |
| 146 | ||
| 147 | - | $ sudo ngrep -l -q -d eth0 "^GET |^POST " tcp and port 80 |
| 147 | + | mkdir tshark |
| 148 | ||
| 149 | - | The l option makes the output buffered and the q option is for quiet ( Be quiet; don't output any information other than packet headers and their payloads (if relevant) ). |
| 149 | + | cd ~/pcap_analysis/tshark |
| 150 | ||
| 151 | - | 3. ngrep without any options would simply capture all packets. |
| 151 | + | |
| 152 | ||
| 153 | - | $ sudo ngrep |
| 153 | + | tshark -i ens3 -r suspicious-time.pcap -qz io,phs |
| 154 | ||
| 155 | tshark -r suspicious-time.pcap -qz ip_hosts,tree | |
| 156 | - | Reference: |
| 156 | + | |
| 157 | - | https://dl.packetstormsecurity.net/papers/general/ngreptut.txt |
| 157 | + | tshark -r suspicious-time.pcap -Y "http.request" -Tfields -e "ip.src" -e "http.user_agent" | uniq |
| 158 | ||
| 159 | - | $ sudo ngrep -d eth0 -n 3 |
| 159 | + | tshark -r suspicious-time.pcap -Y "dns" -T fields -e "ip.src" -e "dns.flags.response" -e "dns.qry.name" |
| 160 | ||
| 161 | - | $ sudo ngrep -d any port 25 |
| 161 | + | |
| 162 | tshark -r suspicious-time.pcap -Y http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1," -> ",$2, "\t: ","http://"$3$4}'
| |
| 163 | ||
| 164 | - | This will let you monitor all activity crossing source or destination port 25 |
| 164 | + | |
| 165 | - | (SMTP). |
| 165 | + | |
| 166 | whois sploitme.com.cn | |
| 167 | - | $ sudo ngrep -wi -d wlan0 'user|pass' port 6667 |
| 167 | + | |
| 168 | tshark -r suspicious-time.pcap -Y http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1," -> ",$2, "\t: ","http://"$3$4}' | grep -v -e '\/image' -e '.css' -e '.ico' -e google -e 'honeynet.org'
| |
| 169 | - | $ sudo ngrep -wi -d any 'user|pass' port 21 |
| 169 | + | |
| 170 | tshark -r suspicious-time.pcap -qz http_req,tree | |
| 171 | ||
| 172 | tshark -r suspicious-time.pcap -Y "data-text-lines contains \"<script\"" -T fields -e frame.number -e ip.src -e ip.dst | |
| 173 | ||
| 174 | tshark -r suspicious-time.pcap -Y http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1," -> ",$2, "\t: ","http://"$3$4}' | grep -v -e '\/image' -e '.css' -e '.ico' | grep 10.0.3.15 | sed -e 's/\?[^cse].*/\?\.\.\./g'
| |
| 175 | ------------------------------------------------------------------------ | |
| 176 | ||
| 177 | ||
| 178 | ||
| 179 | ||
| 180 | - | sudo tshark -i eth0 -r suspicious-time.pcap -qz io,phs |
| 180 | + | |
| 181 | ||
| 182 | ||
| 183 | - | tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$9}' | sort -u
|
| 183 | + | ############################### |
| 184 | # PCAP Analysis with Suricata # | |
| 185 | # Note: run as root # | |
| 186 | - | tshark -r suspicious-time.pcap | grep 'NB.*1e\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$9}' | sort -u
|
| 186 | + | ############################### |
| 187 | ---------------------------Type This----------------------------------- | |
| 188 | cd /home/joe/pcap_analysis/ | |
| 189 | - | tshark -r suspicious-time.pcap arp | grep has | awk '{print $3," -> ",$9}' | tr -d '?'
|
| 189 | + | |
| 190 | mkdir suricata | |
| 191 | ||
| 192 | - | tshark -r suspicious-time.pcap -Tfields -e "eth.src" | sort | uniq |
| 192 | + | cd suricata/ |
| 193 | ||
| 194 | wget https://s3.amazonaws.com/infosecaddictsfiles/suspicious-time.pcap | |
| 195 | - | tshark -r suspicious-time.pcap -R "browser.command==1" -Tfields -e "ip.src" -e "browser.server" | uniq |
| 195 | + | |
| 196 | mkdir suri | |
| 197 | - | tshark -r suspicious-time.pcap -Tfields -e "eth.src" | sort |uniq |
| 197 | + | |
| 198 | suricata -c /etc/suricata/suricata.yaml -r suspicious-time.pcap -l suri/ | |
| 199 | ||
| 200 | cd suri/ | |
| 201 | - | tshark -r suspicious-time.pcap -R "http.request" -Tfields -e "ip.src" -e "http.user_agent" | uniq |
| 201 | + | |
| 202 | cat stats.log | less | |
| 203 | - | tshark -r suspicious-time.pcap -R "dns" -T fields -e "ip.src" -e "dns.flags.response" -e "dns.qry.name" |
| 203 | + | |
| 204 | cat eve.json |grep -E "e\":\"http"|jq ".timestamp,.http"|csplit - /..T..:/ {*}
| |
| 205 | ||
| 206 | cat xx01 | |
| 207 | ||
| 208 | cat xx02 | |
| 209 | ||
| 210 | cat xx03 | |
| 211 | - | tshark -r suspicious-time.pcap -R http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1," -> ",$2, "\t: ","http://"$3$4}'
|
| 211 | + | |
| 212 | cat xx04 | |
| 213 | - | tshark -r suspicious-time.pcap -R http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1," -> ",$2, "\t: ","http://"$3$4}' | grep -v -e '\/image' -e '.css' -e '.ico' -e google -e 'honeynet.org'
|
| 213 | + | |
| 214 | cat xx05 | |
| 215 | ||
| 216 | cat xx06 | |
| 217 | - | tshark -r suspicious-time.pcap -R "data-text-lines contains \"<script\"" -T fields -e frame.number -e ip.src -e ip.dst |
| 217 | + | ------------------------------------------------------------------------ |
| 218 | ||
| 219 | - | tshark -r suspicious-time.pcap -R http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1," -> ",$2, "\t: ","http://"$3$4}' | grep -v -e '\/image' -e '.css' -e '.ico' | grep 10.0.3.15 | sed -e 's/\?[^cse].*/\?\.\.\./g'
|
| 219 | + | |
| 220 | ############################# | |
| 221 | # PCAP Analysis with Yara # | |
| 222 | # Note: run as regular user # | |
| 223 | - | ###################################### |
| 223 | + | |
| 224 | - | # PCAP Analysis with forensicPCAP.py # |
| 224 | + | |
| 225 | - | ###################################### |
| 225 | + | cd ~/pcap_analysis/ |
| 226 | ||
| 227 | - | cd ~/Desktop/suspiciouspcap/ |
| 227 | + | git clone https://github.com/kevthehermit/YaraPcap.git |
| 228 | cd YaraPcap/ | |
| 229 | - | wget https://raw.githubusercontent.com/madpowah/ForensicPCAP/master/forensicPCAP.py |
| 229 | + | |
| 230 | wget https://github.com/Yara-Rules/rules/archive/master.zip | |
| 231 | - | sudo pip install cmd2==0.7.9 |
| 231 | + | unzip master.zip |
| 232 | cd rules-master/ | |
| 233 | ls | |
| 234 | - | python forensicPCAP.py suspicious-time.pcap |
| 234 | + | cat index.yar |
| 235 | clear | |
| 236 | ./index_gen.sh | |
| 237 | cd .. | |
| 238 | mkdir matching_files/ | |
| 239 | - | ForPCAP >>> help |
| 239 | + | python yaraPcap.py rules-master/index.yar suspicious-time.pcap -s matching_files/ |
| 240 | whereis tcpflow | |
| 241 | vi yaraPcap.py **** fix line 35 with correct path to tcpflow ****:q! | |
| 242 | - | Prints stats about PCAP |
| 242 | + | python yaraPcap.py rules-master/index.yar suspicious-time.pcap -s matching_files/ |
| 243 | cd matching_files/ | |
| 244 | - | ForPCAP >>> stat |
| 244 | + | ls |
| 245 | cat report.txt | |
| 246 | ------------------------------------------------------------------------ | |
| 247 | - | Prints all DNS requests from the PCAP file. The id before the DNS is the packet's id which can be use with the "show" command. |
| 247 | + | |
| 248 | ||
| 249 | - | ForPCAP >>> dns |
| 249 | + | |
| 250 | ####################################################################################################### | |
| 251 | - | ForPCAP >>> show |
| 251 | + | # Analyzing C&C with Bro IDS and RITA # |
| 252 | # Run the following commands as root # | |
| 253 | # References: # | |
| 254 | - | Prints all destination ports from the PCAP file. The id before the DNS is the packet's id which can be use with the "show" command. |
| 254 | + | # https://www.vultr.com/docs/installing-bro-ids-on-ubuntu-16-04 # |
| 255 | # https://www.blackhillsinfosec.com/how-to-hunt-command-and-control-channels-using-bro-ids-and-rita/ # | |
| 256 | - | ForPCAP >>> dstports |
| 256 | + | ####################################################################################################### |
| 257 | ||
| 258 | - | ForPCAP >>> show |
| 258 | + | sh -c "echo 'deb http://download.opensuse.org/repositories/network:/bro/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/bro.list" |
| 259 | wget -nv http://download.opensuse.org/repositories/network:bro/xUbuntu_16.04/Release.key -O Release.key | |
| 260 | apt-key add - < Release.key | |
| 261 | - | Prints the number of ip source and store them. |
| 261 | + | apt-get update |
| 262 | apt-get install -y cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev sendmail sendmail-bin | |
| 263 | - | ForPCAP >>> ipsrc |
| 263 | + | |
| 264 | ||
| 265 | - | ForPCAP >>> show |
| 265 | + | |
| 266 | mkdir -p /root/Bro-IDS/ | |
| 267 | cd /root/Bro-IDS/ | |
| 268 | - | Prints the number of web's requests and store them |
| 268 | + | wget https://www.bro.org/downloads/bro-2.5.2.tar.gz |
| 269 | - | ForPCAP >>> web |
| 269 | + | tar -xvzf bro-2.5.2.tar.gz |
| 270 | cd bro-2.5.2 | |
| 271 | - | ForPCAP >>> show |
| 271 | + | ./configure --prefix=/root/Bro-IDS |
| 272 | make | |
| 273 | make install | |
| 274 | export PATH=/root/Bro-IDS/bin:$PATH | |
| 275 | - | Prints the number of mail's requests and store them |
| 275 | + | |
| 276 | ||
| 277 | - | ForPCAP >>> mail |
| 277 | + | |
| 278 | vi /root/Bro-IDS/etc/node.cfg | |
| 279 | - | ForPCAP >>> show |
| 279 | + | /root/Bro-IDS/bin/broctl |
| 280 | install | |
| 281 | exit | |
| 282 | /root/Bro-IDS/bin/broctl deploy | |
| 283 | ||
| 284 | ||
| 285 | ||
| 286 | ||
| 287 | - | # Understanding Snort rules # |
| 287 | + | mkdir b_analysis/ |
| 288 | cd b_analysis/ | |
| 289 | - | Field 1: Action - Snort can process events in 1 of 3 ways (alert, log, drop) |
| 289 | + | bro -C -r suspicious-time.pcap local "Site::local_nets += { 10.0.0.0/8 }"
|
| 290 | ls -S dns.log | |
| 291 | - | Field 2: Protocol - Snort understands a few types of traffic (tcp, udp, icmp) |
| 291 | + | cat conn.log | bro-cut uid id.orig_h id.resp_h duration | sort -nr -k4 | head -n 5 |
| 292 | ||
| 293 | - | Field 3: Source IP (can be a variable like $External_Net, or an IP, or a range) |
| 293 | + | |
| 294 | ||
| 295 | - | Field 4: Source Port (can be a variable like $WebServer_Ports, or a port number, or a range of ports) |
| 295 | + | |
| 296 | ||
| 297 | - | Field 5: Traffic Direction (->) |
| 297 | + | |
| 298 | ||
| 299 | - | Field 6: Destination IP (can be a variable like $External_Net, or an IP, or a range) |
| 299 | + | |
| 300 | git clone https://github.com/ocmdev/rita.git | |
| 301 | - | Field 7: Destination Port (can be a variable like $WebServer_Ports, or a port number, or a range of ports) |
| 301 | + | |
| 302 | cd rita/ | |
| 303 | - | Field 8: MSG - what is actually displayed on the analysts machine |
| 303 | + | |
| 304 | chmod +x install.sh | |
| 305 | ||
| 306 | - | Let's look at 2 simple rules |
| 306 | + | ./install.sh |
| 307 | - | ---------------------------------------------------------------------------------- |
| 307 | + | |
| 308 | - | alert tcp $EXTERNAL_NET any -> $HOME_NET 135 (msg:”NETBIOS DCERPC ISystemActivator \ |
| 308 | + | source ~/.bashrc |
| 309 | - | bind attempt”; flow:to_server,established; content:”|05|”; distance:0; within:1; \ |
| 309 | + | |
| 310 | - | content:”|0b|”; distance:1; within:1; byte_test:1,&,1,0,relative; content:”|A0 01 00 \ |
| 310 | + | systemctl start mongod |
| 311 | - | 00 00 00 00 00 C0 00 00 00 00 00 00 46|”; distance:29; within:16; \ |
| 311 | + | |
| 312 | - | reference:cve,CAN-2003-0352; classtype:attempted-admin; sid:2192; rev:1;) |
| 312 | + | rita import -i /root/btest/ -d suspicious-time |
| 313 | ||
| 314 | - | alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:”NETBIOS SMB DCERPC ISystemActivator bind \ |
| 314 | + | rita analyze |
| 315 | - | attempt”; flow:to_server,established; content:”|FF|SMB|25|”; nocase; offset:4; \ |
| 315 | + | |
| 316 | - | depth:5; content:”|26 00|”; distance:56; within:2; content:”|5c \ |
| 316 | + | cd suspicious-time |
| 317 | - | 00|P|00|I|00|P|00|E|00 5c 00|”; nocase; distance:5; within:12; content:”|05|”; \ |
| 317 | + | |
| 318 | - | distance:0; within:1; content:”|0b|”; distance:1; within:1; \ |
| 318 | + | python -m SimpleHTTPServer |