ImageCapture

Grabs location and webcam pic of person entering wrong password, then E-mails both to you.

Stars
3

ImageCapture

Description

    A program that captures an image and the geolocation data of any user that attempts to login to your compuper x amount of times. The data collected by ImageCapture is then E-mailed to the address you specify. This is a work in progress, so if you find any issues or bugs, please create an issue! I would very much appreciate it! PLEASE FORK INSTEAD OF CLONE, I WOULD GREATLY APPRECIATE IT!

[Details]

Overview:

More to come...

OPTIONS (Highly configurable)

Most options are interchangeable, it's just a matter of what you wish to accomplish!

[Example use cases]

  1. Capture an image of the offender only and E-mail that picture to yourself.

    sudo python imagecapture.py -c -e '[email protected]' -p 'password' -l '/var/log/messages'

  2. Capture an image of the offender, autolog them in, grab the devices location, and E-mail the resulting info to yourself.

    sudo python imagecapture.py -ALc -e '[email protected]' -p 'password' -l '/var/log/messages'

  3. Capture an image of the offender, autolog them in, grab the devices location, specify the auth logs location, specify the browser, specify the camera index, print verbose messages to the log, and E-mail resulting info to yourself.

    sudo python imagecapture.py -AL -v -B '/opt/google/chrom/chrome' -e '[email protected]' -p 'password' -l '/var/log/messages'

  4. Capture an image of the offender, autolog them in, grab the devices location, E-mail the resulting info to yourself, and run the location gathering functionality everytime the computer is booted up.

    sudo python imagecapture.py -ALUc -e '[email protected]' -p 'password' -l '/var/log/messages'

[Visual of All Options]

[anthony@ghost ImageCapture]$ sudo python src/imagecapture.py --help
Usage: imagecapture.py [options]

Options:
  -h, --help            show this help message and exit
  -e EMAIL, --email=EMAIL
                        E-mail address to send notofications to.
  -p PASSWORD, --password=PASSWORD
                        Password used to sign-in to your E-mail account.
  -V VIDEO, --video=VIDEO
                        Specify camera location.
  -v, --verbose         Print the options passed to ImageCapturePy.
  -P PORT, --port=PORT  E-mail port defaults to 587 if not specified.
  -a ATTEMPTS, --attempts=ATTEMPTS
                        Number of failed attempts defaults to 3.
  -L, --location        Enable location capturing.
  -U, --persistent-location
                        Run location capturing routine everytime the computer
                        is powered on.
  -l LOGFILE, --log-file=LOGFILE
                        Log file for program to tail. There is no default and
                        this option is mandatory!
  -c, --enable-cam      Enable cam capture of intruder.
  -A, --auto-login      Auto login user after no of failed attempts.
  -w WEBSITE, --website=WEBSITE
                        Use alternate website to capture location.
  -X, --clear-autologin
                        Remove autologin. Must be root to use this feature.
  -s, --allow-sucessful
                        Run ImageCapture even if login is sucessful.
  -B BROWSER, --browser=BROWSER
                        Select the browser used to grab geolocation data.
  -C CONFIGFILE, --config-file=CONFIGFILE
                        Configuration file path.

[ImageCapture's default values]

  • Browser:

    /opt/google/chrome/chrome

  • Website to grab location data:

    https://imagecapturepy.herokuapp.com/index.html

  • Autologin:

    false

  • Capture image of offender:

    false

  • Logfile(*):

    There is NO default value set for this option.

  • Loation:

    false

  • E-mail port:

    587

  • Print options passed(verbose):

    false

  • Camera index:

    0

  • Password:

    password

  • E-mail address:

    [email protected]

  • Attempt count:

    3

IMAGECAPTURE INSTALLATION

sudo python setup.py sdist 
sudo python setup.py build
sudo python setup.py install

IMAGECAPTURE SYSTEM DEPENDENCY CHECK

sudo python setup.py check

SYSTEM DEPENDENCIES

[Debian Based Systems]

  • libopencv-dev

  • python-opencv

  • python-dev

  • procmail

  • sendmail-base

  • sendmail-bin

  • sendmail-cf

  • sensible-mda

  • syslog-ng

  • sqlite3

    You can install these packages by running sudo apt-get install package_name_above

IMPORTANT!

You must enable less secure apps in your gmail settings or the app will not be able to send notifications! https://support.google.com/accounts/answer/6010255

Building a release for PyPi

Modify version in setup.py via vim/nano before building

BEFORE(vim/nano setup.py):

    setup(
        packages=[],
        name='imagecapture',
        version='0.0.6', # increment version number

AFTER:

    setup(
        packages=[],
        name='imagecapture',
        version='0.0.7', # increment version number

Build package for PyPi

[anthony@ghost ImageCapture]$ sudo python setup.py sdist

[anthony@ghost ImageCapture]$ twine upload dist/*

NOTE: If twine does not work with the above command you can try,

twine upload --repository-url 'https://upload.pypi.org/legacy/' dist/imagecapture-0.0.6.tar.gz.  

NOTE: dist/imagecapture-0.0.6.tar.gz will be the name of the file twine just created.

Contents of ~/.pypirc

[distutils]
index-servers =
  pypi
  pypitest
[pypi]
repository=https://pypi.python.org/pypi
username=username
password='password'
[pypitest]
repository=https://testpypi.python.org/pypi
username=username
password='password'

Building OpenCV with CMake

cmake -DCAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4.0 -DWITH_OPENCL=OFF -DWITH_VTK=OFF -DWITH_QT=OFF -DWITH_EIGEN=ON -DWITH_FFMPEG=ON -DWITH_GSTREAMER=ON -DWITH_GTK=OFF -DWITH_JPEG=ON -DWITH_OPENGL=OFF -DWITH_OPENCL=OFF -DWITH_PNG=ON -DWITH_V4L=ON -DWITH_LIBV4L=ON -DWITH_VA=ON -DWITH_GPHOTO2=ON -DINSTALL_PYTHON_EXAMPLES=ON -DBUILD_EXAMPLES=ON -DBUILD_DOCS=ON -DWITH_CUDA=OFF -DWITH_OPENCL_SVM=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
anthony@anthony:~/Documents/Source/opencv_contrib$ git branch -r | more
  origin/3.4
  origin/HEAD -> origin/master
  origin/master
anthony@anthony:~/Documents/Source/opencv_contrib$
  • git checkout 3.4