Submitted By Rodrigo Montoro
The LOIC tool has been in the news for quite some time now. Many still remember the attacks on Paypal, Mastercard, and Visa, which used this tool. We've had the chance to analyze two versions of LOIC, which use four different approaches. These four approaches allow you to attack a website using both a standalone tool, and a web-only version which utilizes JavaScript. More details about this tool can be found at:
http://www.simpleweb.org/reports/loic-report.pdf
This version of LOIC allows an individual to contribute to a "DDoS Attack" using JavaScript embedded in a webpage. The following shows an example request generated by this tool:
GET /app/?id=1292337572944&msg=BOOM%2520HEADSHOT! HTTP/1.1Host: www.example.comUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 115Connection: keep-alive
For this version of LOIC, the following three items stand out:
Based on this information we created the follow snort rule:
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"SLR - LOIC DoS ToolJS Version"; flow: established,to_server ; uricontent:"id="; uricontent:"msg="; threshold: type threshold, track by_src, count 20 , seconds 5; reference: url, www.simpleweb.org/reports/loic-report.pdf ; classtype:misc-activity; sid:1234568; rev:1;)
The binary version of LOIC has three methods of attack as you can see at this image below:
To use UDP version a user must select the UDP option as seen in the image shown above.
For UDP, the following two behaviors were noticed
Based on the above criteria, we created the following Snort rule:
alert udp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"SLR - LOIC DoS Tool (UDP Mode) - Behavior Rule (tracking/threshold)"; threshold: type threshold, track by_src, count 100 , seconds 5; reference: url, www.simpleweb.org/reports/loic-report.pdf ; classtype:misc-activity; sid:1234590; rev:1;)
# snort -c snort-test.conf -A console -q -r /LABS2/LOIC/PCAP/LOIC-udp.pcap -O
01/27-11:58:38.849802 [**] [1:1234590:1] SLR - LOIC DoS Tool (UDP Mode) - Behavior Rule (tracking/threshold) [**] [Classification: Misc activity] [Priority: 3] {UDP} xxx.xxx.xxx.xxx:59022 -> xxx.xxx.xxx.xxx:8001/27-11:58:38.952511 [**] [1:1234590:1] SLR - LOIC DoS Tool (UDP Mode) - Behavior Rule (tracking/threshold) [**] [Classification: Misc activity] [Priority: 3] {UDP} xxx.xxx.xxx.xxx:59022 -> xxx.xxx.xxx.xxx:8001/27-11:58:39.024253 [**] [1:1234590:1] SLR - LOIC DoS Tool (UDP Mode) - Behavior Rule (tracking/threshold) [**] [Classification: Misc activity] [Priority: 3] {UDP} xxx.xxx.xxx.xxx:59022 -> xxx.xxx.xxx.xxx:80
The following behavior was noticed when this version of LOIC was run:
The following screenshot shows this behavior:
Based on this criteria, we created the following Snort rule:
[REMOVED 01/16/2013 - This rule generated too many false posisiives]
# snort -c snort-test.conf -A console -q -r /LABS2/LOIC/PCAP/LOIC-tcp.pcap –
01/27-11:59:11.405063 [**] [1:123456:1] SLR - LOIC DoS Tool (TCP Mode) - Behavior Rule (tracking/threshold) [**] [Classification: Misc activity] [Priority: 3] {TCP} xxx.xxx.xxx.xxx:55331 -> xxx.xxx.xxx.xxx:8001/27-11:59:11.996198 [**] [1:123456:1] SLR - LOIC DoS Tool (TCP Mode) - Behavior Rule (tracking/threshold) [**] [Classification: Misc activity] [Priority: 3] {TCP} xxx.xxx.xxx.xxx:55331 -> xxx.xxx.xxx.xxx:8001/27-11:59:12.318804 [**] [1:123456:1] SLR - LOIC DoS Tool (TCP Mode) - Behavior Rule (tracking/threshold) [**] [Classification: Misc activity] [Priority: 3] {TCP} xxx.xxx.xxx.xxx:55332 -> xxx.xxx.xxx.xxx:80
GET /HTTP/1.0\r\n
This anomalous request was used in order to fingerprint a LOIC HTTP attack occurring. It is likely that a web application firewall (WAF) or http_inspect may detect this as well.
Based on this, we created the follow snort rule:
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"SLR - LOIC DoS Tool (HTTP Mode)"; flow: established,to_server; content:"|47 45 54 20 20 48 54 54 50 2f 31 2e 30 0d 0a 0d 0a 0d 0a|"; threshold: type threshold, track by_src, count 10 , seconds 10; reference: url, www.simpleweb.org/reports/loic-report.pdf ; classtype:misc-activity; sid:1234569; rev:1; )
# snort -c snort-test.conf -A console -q -r /LABS2/LOIC/PCAP/LOIC-http.pcap -O
01/27-11:57:52.977537 [**] [1:1234569:1] SLR - LOIC DoS Tool (HTTP Mode) [**] [Classification: Misc activity] [Priority: 3] {TCP} xxx.xxx.xxx.xxx:55178 -> xxx.xxx.xxx.xxx:8001/27-11:57:54.184679 [**] [1:1234569:1] SLR - LOIC DoS Tool (HTTP Mode) [**] [Classification: Misc activity] [Priority: 3] {TCP} xxx.xxx.xxx.xxx:55188 -> xxx.xxx.xxx.xxx:8001/27-11:57:55.111591 [**] [1:1234569:1] SLR - LOIC DoS Tool (HTTP Mode) [**] [Classification: Misc activity] [Priority: 3] {TCP} xxx.xxx.xxx.xxx:55198 -> xxx.xxx.xxx.xxx:80
We are still researching this tool and any news or modifications will be published on our blog. Keep an eye out for a post showing how you can identify and combat LOIC types of attacks using web application firewalls as well.