-
Notifications
You must be signed in to change notification settings - Fork 0
/
trafficgen.sh
100 lines (91 loc) · 2.59 KB
/
trafficgen.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
## Dependencies:
# wget curl tshark
# sed tee phantomjs
#
mkdir -p logs pcaps
### HTTPS ###
function createTrafficCurl() {
urlFile=./url
sleep 20
tshark -i eth0 -f 'tcp port 443' -w ./pcaps/httpscurl.pcap &
while read p; do
urlArray=( $(curl -sSL https://$p -A 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0' \
--connect-timeout 5 --max-time 10 --retry 5 --retry-delay 0 --retry-max-time 1 \
| tr " " "\n" | sed -n 's/href="\(https:\/\/[^"]*\)".*/\1/ipg' | tee ./logs/log.txt) )
echo ${#urlArray[@]}
# which link in the array to curl:
if [ ${#urlArray[@]} -eq 0 ]
then
:
else
tempVar=$(( $RANDOM % ${#urlArray[@]}))
echo ${urlArray[$tempVar]} >> ./logs/selectedsitecurl.txt
# To curl or not to curl a second link
# Create pseudorandom number, 1 or 2
if [ $(( 1 + $RANDOM % 2)) == '1' ]
then
# Curl the selected array
sleep 1
curl -sSL ${urlArray[$tempVar]} -A 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0' | tee >> ./logs/visitedrandomcurl.txt
else
# dont do anything
:
fi
fi
done <$urlFile
sleep 5
pkill tshark
echo "Saved to https.pcap"
}
function downloadFile() {
tshark -w download.pcap "tcp port 443" &
sleep 5
# Download newest firefox
url='https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US'
ua='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0'
# Save to /dev/null
wget -qO- $url --user-agent $ua &> /dev/null
sleep 1
pkill tshark
echo "Saved to download.pcap"
}
function createTrafficPhantom() {
urlFile=./url
# start packet capture:
tshark -f 'tcp port 443' -w ./pcaps/phantomjspcap.pcap &
sleep 10
# Name of phantomjs script:
phantom='./phantomjs/ph2.js'
while read p; do
urlArray=( $(QT_QPA_PLATFORM=offscreen phantomjs $phantom https://$p | tr " " "\n" \
| sed -n 's/href="\(https:\/\/[^"]*\)".*/\1/ipg' | sort | uniq | tee ./logs/log.txt))
echo ${#urlArray[@]}
if [ ${#urlArray[@]} -eq 0 ]
then
:
else
tempVar=$(( $RANDOM % ${#urlArray[@]}))
# Log which URL was chosen
echo ${urlArray[$tempVar]} >> ./logs/selectedsitephantom.txt
# To visit second link or not
# Create pseudorandom number, 1 or 2
if [ $(( 1 + $RANDOM % 2)) == '1' ]
then
# visit
sleep 1
echo ${urlArray[$tempVar]}
QT_QPA_PLATFORM=offscreen phantomjs $phantom ${urlArray[$tempVar]} | tee >> ./logs/visitedrandom.txt
else
# dont do anything
:
fi
fi
done <$urlFile
sleep 5
pkill tshark
}
# Run things:
#createTrafficCurl
#downloadFile
#createTrafficPhantom