From a86e33f3473f15c25ef80799d5da71a0a2a9f434 Mon Sep 17 00:00:00 2001
From: "Md. Nur habib" <68025241+thenurhabib@users.noreply.github.com>
Date: Sun, 15 May 2022 01:39:37 +0600
Subject: [PATCH] Add files via upload
---
README.md | 93 ++++++++++++++++++++
install.sh | 76 ++++++++++++++++
main.py | 85 ++++++++++++++++++
plugins/__pycache__/styling.cpython-310.pyc | Bin 0 -> 1135 bytes
plugins/__pycache__/styling.cpython-39.pyc | Bin 0 -> 1134 bytes
plugins/styling.py | 36 ++++++++
6 files changed, 290 insertions(+)
create mode 100644 README.md
create mode 100644 install.sh
create mode 100644 main.py
create mode 100644 plugins/__pycache__/styling.cpython-310.pyc
create mode 100644 plugins/__pycache__/styling.cpython-39.pyc
create mode 100644 plugins/styling.py
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f600401
--- /dev/null
+++ b/README.md
@@ -0,0 +1,93 @@
+
+
+ untimSubs
+
+
+
+It makes easy to use all subdomain enumeration with all popular tools.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### untimSubs use multiple subdomain enemeration tools and find all subdomains and save it in particularly text files.
+
+
+
+### Main Features
+- Web Crawler
+- Scan Spring4Shell RCE
+
+
+
+### Documentation
+### install
+```yaml
+git clone https://github.com/thenurhabib/untimsubs.git
+cd untimsubs
+```
+
+
+#### Usage
+
+```bash
+┌──(habib㉿kali)-[~/Desktop/untimSubs]
+└─$ python3 main.py -h
+
+ __ _ _____ __
+ __ ______ / /_(_)___ ___ / ___/__ __/ /_ _____
+ / / / / __ \/ __/ / __ `__ \\__ \/ / / / __ \/ ___/
+/ /_/ / / / / /_/ / / / / / /__/ / /_/ / /_/ (__ )
+\__,_/_/ /_/\__/_/_/ /_/ /_/____/\__,_/_.___/____/ v1.0.0
+
+It makes easy to use all subdomain enumeration with all popular tools.
+
+ develop by @thenurhabib
+
+usage: Help Menu of untimSubs
+
+optional arguments:
+ -h, --help show this help message and exit
+ -d D, --domain D Enter Domain Name
+
+
+```
+
+
+
+## 🔗 Used Tools :
+
+- [Amass](https://github.com/OWASP/Amass)
+- [sublist3r](https://github.com/aboul3la/Sublist3r)
+- [subfinder](https://github.com/projectdiscovery/subfinder)
+- [SubBrute](https://github.com/TheRook/subbrute)
+- [Knock](https://github.com/guelfoweb/knock)
+
+
+
+
+### Author
+```yaml
+Name : Md. Nur habib
+Medium : thenurhabib.medium.com
+Twitter : https://twitter.com/thenurhab1b
+HackerRank : https://www.hackerrank.com/thenurhabib
+
+```
+
+##### Thank You.
diff --git a/install.sh b/install.sh
new file mode 100644
index 0000000..04527e8
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,76 @@
+sudo apt update -y
+sudo apt autoremove -y
+clear
+
+
+echo ""
+echo "Check if python3 lang installed or not..."
+echo ""
+if ! command -v python3 &> /dev/null
+ then
+ echo "python3 language not installed."
+ echo "Installing python3 Language..."
+ echo ""
+ sudo apt install python3 -y
+ else
+ echo "Python Already installed."
+fi
+
+sleep 1
+clear
+echo ""
+echo "Check if go lang installed or not..."
+echo ""
+sleep 2
+
+if ! command -v go &> /dev/null
+
+ then
+ echo "Go language not installed."
+ echo "Installing Go Language..."
+ echo ""
+ sudo curl -O https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
+ sudo tar -xvf go1.8.linux-amd64.tar.gz
+ sudo mv go /usr/local
+ sudo nano ~/.profile
+ export PATH=$PATH:/usr/local/go/bin
+ export GOROOT=$HOME/go
+ export PATH=$PATH:$GOROOT/bin
+ source ~/.profile
+
+ else
+ echo "Go already installed."
+fi
+
+
+# Installing Tools
+mkdir Tools
+cd Tools
+echo ""
+echo "Installing amass"
+echo ""
+sudo apt install amass
+
+
+echo ""
+echo "Installing sublist3r"
+echo ""
+sudo apt install sublist3r
+
+
+echo ""
+echo "Installing subfinder"
+echo ""
+sudo apt install subfinder
+
+
+echo ""
+echo "Installing SubBrute"
+echo ""
+git clone https://github.com/TheRook/subbrute.git
+
+
+echo ""
+echo "Installing Knock"
+echo ""
+git clone https://github.com/santiko/KnockPy.git
\ No newline at end of file
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..d567685
--- /dev/null
+++ b/main.py
@@ -0,0 +1,85 @@
+#!/usr/bin python3
+
+from os import system, path
+from sys import exit
+import warnings
+import argparse
+from plugins.styling import *
+
+
+# Disable wornings
+warnings.filterwarnings("ignore")
+
+def x(command):
+ system(command)
+
+# Print Banner
+bannerFunc()
+
+# Command Line Utility
+parser = argparse.ArgumentParser(usage="Help Menu of untimSubs")
+parser.add_argument('-d', '--domain' ,dest="d", help="Enter Domain Name", type=str, required=True)
+args = parser.parse_args()
+
+domainName = args.d
+
+def mainFunction():
+
+ if domainName:
+ print("")
+ print(f"{bold}{orange}Target :{purple} {domainName} {reset}")
+ print("")
+ # Make and change or Change Directory
+ if path.exists("Tools") == True:
+ x("cd Tools")
+
+ else:
+ x("mkdir Tools")
+ x("cd Tools")
+ x("mkdir Subdomains")
+
+ # Finding Subdomains using amass
+ print(f"{bold}{blue}\nFinding Subdomains using amass, Please wait...{reset}")
+ x(f"amass enum -d {domainName} > Subdomains/subdomansAmass.txt")
+
+ # Finding Subdomains using sublist3r
+ print(f"{bold}{blue}\nFinding Subdomains using sublist3r, Please wait...{reset}")
+ x(f"sublist3r -d {domainName} > Subdomains/subdomansSublist3r.txt")
+ print("\n\n")
+
+ # Finding Subdomains using sublist3r
+ print(f"{bold}{blue}\nFinding Subdomains using sublist3r, Please wait...{reset}")
+ x(f"subfinder -d {domainName} -o Subdomains/subdomansSubfinder.txt")
+ print("\n\n")
+
+ # Finding Subdomains using subbrute
+ print(f"{bold}{blue}\nFinding Subdomains using subbrute, Please wait...{reset}")
+ x("cd subbrute")
+ x(f"python3 subbrute.py {domainName} > Subdomains/subdomansSubbrute.txt")
+ x("cd ..")
+ print("\n\n")
+
+ # Finding Subdomains using Knock
+ print(f"{bold}{blue}\nFinding Subdomains using Knock, Please wait...{reset}")
+ x("cd KnockPy")
+ x(f"python knock.py {domainName} > Subdomains/subdomansKnock.txt")
+ x("cd ..")
+ print("\n\n")
+
+ else:
+ print("")
+ print(f"{bold}{red}Please enter valid credential.{reset}")
+ exit(0)
+
+# Call main function
+if __name__ == "__main__":
+ try:
+ mainFunction()
+ except KeyboardInterrupt:
+ getOpinion = input("\nWant to exit : (y/n)").lower()
+ if getOpinion == "y":
+ exit()
+ elif getOpinion == "n":
+ pass
+ else:
+ print("Enter 'y' for yes and 'n' for no.")
\ No newline at end of file
diff --git a/plugins/__pycache__/styling.cpython-310.pyc b/plugins/__pycache__/styling.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..33fb3dd3c914d6ecacff57968f96774d0a63ddbc
GIT binary patch
literal 1135
zcmaJ=&2H2%5Kgj5b~pRiA2A-MEX#KBYw$=ceD)^Q@oX|=g<
zfVZf403L`-t~>z8O69^h-nQ(8aps#De=~N*va`X!GeCa+{t_Ry4C9vy{uK*?W6lF
z2eAEp^wl)soS?7HNz^tC!$X@Ah6urTBcYOYaO)r_YVy{skNj{i9IH&FzCvFoC`u)R
zctGd@)R{_B5%`}~e5NNi6GGpEi6&1I8$K|ay2U+M1dWjgi#>rqXllU+Py1>u^(+25
zVWRwIqOuUGO|N?Ay_YDBmb5@LDpp8ls4OUo7(+!#vNTFKqMW9Qh-8v+bdktK!{%9D
zvP?ih#)^sOReeP0Ib~Un;uWff=vXc&FU2B?lNeP_bME7A?c^fivbN)lk=k8R#Q;8{s)H!nrbXl>6{5w9IV3o3sYq6asjf$OQi$WrPzoA_^Nv6NZv
zms}?4X&D!O&dPbh3%`&nmhkx`U)5e5aZbhClFuHfTlEm2Z(5H1r%~6wwz~F}*5Q>H
z0DUsv6|UM+Jxu|x(!fs4qS;b7jXxKZa_nXz;&Uq6DygHOtJp3}<_ifaD|m~MSZc4C
zgr>1~LsKs7yL{C>w)2E9*9)ivXny9ddF}O~sP4Q>Gg3183NE-&JO;2W80P;+-~J03
C{}tu{
literal 0
HcmV?d00001
diff --git a/plugins/__pycache__/styling.cpython-39.pyc b/plugins/__pycache__/styling.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..48b51e1ec478bb314b37441e697267352059bb59
GIT binary patch
literal 1134
zcmah|PjAyO6i?D5ZPRw$A2Nt_(Y)Vc@
z@GT}j0N)7Z%7;K27oOv8qbFYC-+Rx$-*fz|I2w&S1MH{yB|hpH#xIrpYZfFYFp3WV
z#J~nIu}Lg!kq+(<8{5Re4so$dy0}YvxJUZ9Pdx0A0UnSc9+D9rkuAJM#&}G&@iy7P
zJ7kyaeKYVbd2nt_9@g&V!E`pA)%KH5v$S>q4_bGqv%_`vTu&Zq_d>fP?T)p3*}6d2
z1-dTKb%Cx6bX}n9g5z`!eQnq_WN%>_`XDmM)+pyMV6j
z0d~KSznUhT6ZF+Pi@K&^cxcnY5FvPPEmXEn?g9iwt!~Zw$Pf3!iBhWJEA+KMQA!Nv
z0ihqDE|f@R5Pw$rg`V6LguVw8txgjgF)*6C!+lr;O^^qRJ%b&zwGcz3W3`srioX_2
zRoqV07DA2b)u-O6L}|351)@<=A(^4FpeSMt6=h7aG)g$4yiBQxWRh`omB?jF=UHB|
zNI*r#imB(-LqzB$Wm%5m3e{WaL@uFFETcGyQSGz`Kj}A4E)p&qJI)ws+=?=mT{Rs+
zNizt;k5m-!l`sUJm9%m5Qsj&__PmOC;|N+%`NI$c_!U~Xnfc2srGEPn{~aw>GRysv
z%OpK712ugY5W+LJXD!NM4Q_xpzpCyZ>1W5F%l~swUf{^
x_HJp)g?+DA-D5jX_-eg?I)HXF_s#2Q2t`frb()cq(Kl*y#Zv&=vd#ZI_FqFY6|?{V
literal 0
HcmV?d00001
diff --git a/plugins/styling.py b/plugins/styling.py
new file mode 100644
index 0000000..01ac2a7
--- /dev/null
+++ b/plugins/styling.py
@@ -0,0 +1,36 @@
+#!/usr/bin python3
+
+__Version__ = "v1.0.0"
+
+reset='\033[0m'
+bold='\033[01m'
+black='\033[30m'
+red='\033[31m'
+green='\033[32m'
+orange='\033[33m'
+blue='\033[34m'
+purple='\033[35m'
+cyan='\033[36m'
+lightgrey='\033[37m'
+darkgrey='\033[90m'
+lightred='\033[91m'
+lightgreen='\033[92m'
+yellow='\033[93m'
+lightblue='\033[94m'
+pink='\033[95m'
+lightcyan='\033[96m'
+
+
+
+def bannerFunc():
+ print(f"""{bold}{yellow}
+ __ _ _____ __
+ __ ______ / /_(_)___ ___ / ___/__ __/ /_ _____
+ / / / / __ \/ __/ / __ `__ \\\__ \/ / / / __ \/ ___/
+/ /_/ / / / / /_/ / / / / / /__/ / /_/ / /_/ (__ )
+\__,_/_/ /_/\__/_/_/ /_/ /_/____/\__,_/_.___/____/{red} {__Version__}
+{blue}
+It makes easy to use all subdomain enumeration with all popular tools.
+
+{purple} develop by {cyan} @thenurhabib {reset}
+ """)
\ No newline at end of file